1. Jun 03, 2019
  2. Mar 16, 2019
    • Alberto Miranda's avatar
      Remove task descriptors when tasks complete · e14e29a6
      Alberto Miranda authored
      Calling norns(ctl)?_error() to query the status of a running task will
      release its descriptor in the server if the task already completed
      (NORNS_EFINISHED or NORNS_EFINISHEDWERROR). Since norns(ctl)?_wait()
      internally queries the task status to check whether a task has
      completed, we cache the retrieved task_status into the iotask_t user
      descriptor so that it can be retrieved by a subsequent
      norns(ctl)?_error() call.
      e14e29a6
  3. Mar 07, 2019
  4. Mar 06, 2019
  5. Mar 01, 2019
  6. Feb 26, 2019
  7. Feb 22, 2019
  8. Feb 04, 2019
  9. Oct 04, 2018
  10. Sep 20, 2018
    • Alberto Miranda's avatar
      First implementation of shutdown command · 46db6047
      Alberto Miranda authored
      When invoked, the daemon checks whether active tasks remain to be
      processed and, if so, returns NORNS_ETASKSPENDING. If there are no
      active tasks, but there are tracked namespaces that are not empty, the
      daemon return NORNS_ENAMESPACENOTEMPTY. Otherwise, the daemon returns
      NORNS_SUCCESS and shuts itself down.
      46db6047
  11. Sep 19, 2018
  12. Sep 18, 2018
    • Alberto Miranda's avatar
      Add a 'tracked' field to namespaces · 7a589d40
      Alberto Miranda authored
      Clients can now provide a 'track' flag when defining a namespace to let
      urd know that it must keep track of the namespace contents. The flag is
      currently propagated by the messaging system and stored in the internal
      backend metadata. Tracking not implemented yet.
      7a589d40
  13. Aug 29, 2018
  14. Aug 17, 2018
    • Alberto Miranda's avatar
      Add nornsctl_status function · 7fe672fa
      Alberto Miranda authored
      The new nornctl_status function queries the urd daemon and returns
      summarized stats about all iotasks currently in the system. More
      specifically, the function returns a nornsctl_stat_t structure that
      contains the following information:
          st_running_tasks: Number of tasks currently running
          st_pending_tasks: Number of tasks currently pending
          st_eta: Estimated Time of Arrival of the currently running tasks
                  (in seconds). Note that, internally, the daemon estimates
                  how long a task will take by keeping track of the average
                  namespace-to-namespace bandwidth from previous requests.
                  This means that this field may contain NaN if no tasks
                  have yet completed, since the daemon will not be able to
                  estimate the E.T.A.
      7fe672fa
  15. Jul 11, 2018
  16. Jul 10, 2018
  17. Jul 09, 2018
  18. Jun 12, 2018
    • Alberto Miranda's avatar
      Improve daemon and library configuration · ac75a49b
      Alberto Miranda authored
      - Changed the format of the global service configuration file to a
      YAML-like format
      - Urd daemon is now able to read its configuration from the
      newly-formatted configuration file.
      - Companion libraries linorns and libnornsctl are now capable of
      reading their configuration from the global service configuration file.
      - Libraries now encapsulate their state in a context structure shared
      by all threads rather than in globals.
      - Tests are only built now if the --enable-tests option is passed
      when invoking configure
      - Tests updated to patch the libraries on the fly in order to use
      case-by-case configuration files.
      - Tests now only cleanup their internal data if the test succeeds.
      ac75a49b
  19. May 22, 2018
  20. May 13, 2018
    • Alberto Miranda's avatar
      Transferors are now first-class objects · c1b4a7cd
      Alberto Miranda authored
      - Transferors now have a clearly defined API for argument validation
      and transfer execution, rather than relying on free functions.
      - Added tests for memory to local file transfers.
      c1b4a7cd
  21. May 04, 2018
    • Alberto Miranda's avatar
      Significant changes to data resource management · 617bad66
      Alberto Miranda authored
      - Add transferor_registry class to manage resource transfer functions
      - First implementation of 'local path' to 'local path' transferor using
        fadvice+fallocate+sendfile.
      - Add stubs for other converters
      - Move dispatch_table from api to common since it's now also used by
        transferor_registry.
      - Add get() function to dispatch_table class so that stored functors
        can be retrieved.
      - Generic implementation of task::operator()() to transfer resources and
        resource elements between different backends. When constructed, the
        task is provided with the input and ouput resources as well as a
        'transferor' functor that is invoked upon them to perform the actual
        transfer.
      - Add new_resource() and get_resource() methods to backends to promote
        resource_info instances to fully qualified resources.
      - Implementation of new_resource() and get_resource() for a POSIX
        filesystem. Stubs for other backends.
      - New convenience library that aggregates all symbols for resources
      - Add name() and is_collection() methods to class resource_info.
      - Provide implementation for boost::filesystem::relative() in utils.cpp
        if boost version <= 1.6.0
      - Remove resource::buffer, no longer needed (superseeded by transferors).
      - Remove resource::stream, no longer needed (superseeded by transferors).
      - Remove functions resource::info(), resource::backend(), and
        resource::set_backend().
      - Reorganize resources build hierarchy
      - Remove self-registration of backends
      - Update tests
      - Cleanup unused code
      617bad66
  22. Mar 22, 2018
    • Alberto Miranda's avatar
      Fake tasks can now be created for testing · 119084c6
      Alberto Miranda authored
      - task_manager is now a full-fledged class rather than
      inheriting from std::unordered_map
      - changes to handlers to reflect the new interface
      in task_manager
      - new dry_run option for enabling "fake task mode"
      - in libraries, log errors to stderr only if env var
      NORNS_DBG_LOG_TO_STDERR is defined.
      119084c6
  23. Mar 17, 2018
  24. Mar 11, 2018
    • Alberto Miranda's avatar
      07c1fb0c
    • Alberto Miranda's avatar
      Add class 'task_manager' for managing tasks · 274052bb
      Alberto Miranda authored
      Rename handlers:
      
      urd::create_task      -> urd::iotask_create_handler
      urd::check_on_task    -> urd::iotask_status_handler
      urd::ping_request     -> urd::ping_handler
      urd::register_job     -> urd::job_register_handler
      urd::update_job       -> urd::job_update_handler
      urd::remove_job       -> urd::job_remove_handler
      urd::add_process      -> urd::process_add_handler
      urd::remove_process   -> urd::process_remove_handler
      urd::register_backend -> urd::backend_register_handler
      urd::update_backend   -> urd::backend_update_handler
      urd::remove_backend   -> urd::backend_remove_handler
      urd::unknown_request  -> urd::unknown_request_handler
      274052bb
    • Alberto Miranda's avatar
      Classes now belong to namespace norns · f68f84ce
      Alberto Miranda authored
      f68f84ce
  25. Mar 10, 2018
  26. Feb 22, 2018
  27. Feb 02, 2018
  28. Jan 26, 2018
  29. Jan 24, 2018
  30. Sep 08, 2017
  31. Sep 05, 2017
  32. Sep 01, 2017