1. 21 Dec, 2018 3 commits
    • Swann Perarnau's avatar
      [fix] disable application actuator · 4bca474a
      Swann Perarnau authored
      Doesn't work with the new downstream API.
      4bca474a
    • Swann Perarnau's avatar
      [refactor] use downstream messaging layer · 75df2004
      Swann Perarnau authored
      Replace the downstream API handling by the new messaging layer. Not that
      we don't have a clean way to deal with dynamic concurrency control using
      this API, so we disable the handling of it for now.
      75df2004
    • Swann Perarnau's avatar
      [feature] add downstream rpc to messaging layer · 0bae924d
      Swann Perarnau authored
      Add downstream RPC client/server classes that are the same as the
      upstream ones.
      
      This is part of a series of changes to downstream to allow for more
      reliable communications between the daemon and applications. At this
      time, the daemon never replies, so the RPC_REQ is basically used as a
      way to publish events to the daemon.
      0bae924d
  2. 18 Dec, 2018 2 commits
  3. 17 Dec, 2018 1 commit
    • Valentin Reis's avatar
      [ci] Pinning integration tests · 9be3146c
      Valentin Reis authored
      This commit pins the integration tests. This is done in the .integration.nix
      file, which in turns uses the derivations from the 'argotest'
      repository. These pin argopkgs - which itself pins nixpkgs, so
      everything should be completely reproducible.
      
      The integration target provisions the dependencies using nix-shell and
      runs the basic 'hello world' container test.
      9be3146c
  4. 14 Dec, 2018 2 commits
  5. 12 Dec, 2018 6 commits
    • Valentin Reis's avatar
      Merge branch 'wip/config-rebased' into 'master' · 3dd86585
      Valentin Reis authored
      [feature] commandline arguments, config file management.
      
      See merge request !37
      3dd86585
    • Valentin Reis's avatar
      [feature] Added integration tests · aedf9396
      Valentin Reis authored
      Added integration tests to the `.gitlab-ci.yaml` file. These tests
      run any runner tagged "integration". They depend on the 'argotest'
      repository master branch being able to run the tests, which
      uses 'argopkgs' repository. The runner must be Nix
      enabled. This therefore currently uses a rolling release of the
      integration tests.
      aedf9396
    • Valentin Reis's avatar
    • Valentin Reis's avatar
      [fix] Sending a raw 'kill' message to upstream when `cmd` receives SIGINT · 5a3b9fc8
      Valentin Reis authored
      `cmd` now sends a container kill message to the upstream api and exits
      whenever it receives SIGINT, via C-c for instance.
      5a3b9fc8
    • Valentin Reis's avatar
      [fix] Fixes the process kill call. · ec503ffa
      Valentin Reis authored
      Fixing a bug introduced by the 'progress-report' branch in a recent
      previous commit. The process object is the result of a tornado spawn, so
      the call has to be slightly different than what was there.
      ec503ffa
    • Valentin Reis's avatar
      [Feature] Adds configuration management and environment variables · 25443c64
      Valentin Reis authored
      This commit adds a command-line interface to `daemon`:
      ```
      usage: daemon [-h] [-c FILE] [-d] [--nrm_log NRM_LOG] [--hwloc HWLOC]
                    [--argo_nodeos_config ARGO_NODEOS_CONFIG] [--perf PERF]
                    [--argo_perf_wrapper ARGO_PERF_WRAPPER]
      
      optional arguments:
        -h, --help            show this help message and exit
        -c FILE, --configuration FILE
                              Specify a config json-formatted config file to
                              override any of the available CLI options. If an
                              option is actually provided on the command-line, it
                              overrides its corresponding value from the
                              configuration file.
        -d, --print_defaults  Print the default configuration file.
        --nrm_log NRM_LOG     Main log file. Override default with the NRM_LOG.
                              environment variable
        --hwloc HWLOC         Path to the hwloc to use. This path can be relative
                              and makes uses of the $PATH if necessary. Override
                              default with the HWLOC environment variable.
        --argo_nodeos_config ARGO_NODEOS_CONFIG
                              Path to the argo_nodeos_config to use. This path can
                              be relative and makes uses of the $PATH if necessary.
                              Override default with the ARGO_NODEOS_CONFIG
                              environment variable.
        --perf PERF           Path to the linux perf tool to use. This path can be
                              relative and makes uses of the $PATH if necessary.
                              Override default with the PERF environment variable.
        --argo_perf_wrapper ARGO_PERF_WRAPPER
                              Path to the linux perf tool to use. This path can be
                              relative and makes uses of the $PATH if necessary.
                              Override default with the PERFWRAPPER environment
                              variable.
      ```
      25443c64
  6. 10 Dec, 2018 3 commits
  7. 28 Nov, 2018 7 commits
    • Swann Perarnau's avatar
      [feature/fix] add listen command for upstream pub · e626053c
      Swann Perarnau authored
      Add a listen command to get access to the event stream of the upstream
      pub/sub API.
      
      This patch gives back access from the command line to the power
      information of a container, including filtering the event stream to only
      have events relevent to this container.
      
      This changes the workflow a little bit for users, but should result in a
      cleaner access to profiling data in the future.
      
      Related to #18.
      e626053c
    • Swann Perarnau's avatar
      [fix] remove container ownership concept · a47ec65f
      Swann Perarnau authored
      Make it so that the daemon will delete containers when all commands it
      is aware of are finished, instead of relying on a single owner that
      needs to be tracked.
      
      This simplifies the handling to multiple commands in the same container,
      and should not impact the rest.
      a47ec65f
    • Swann Perarnau's avatar
      [refactor] move container start/exit to up_pub · f81b95e0
      Swann Perarnau authored
      Move the container start/exit events to the upstream pub/sub event
      stream. As these are more of a global event now that we support multiple
      commands in the same container, it makes sense to move them to the more
      general event stream.
      
      This patch also remove the code in cmd waiting for container start or
      exit, making (temporarily) the cmd unable to report power metrics. We
      will fix that in a later commit.
      
      This patch fixes complicated issues we had with how a job running
      multiple commands in the container might not all wait for the end of the
      container: now none of them do.
      f81b95e0
    • Swann Perarnau's avatar
      [feature] add messaging class for pub client · c4e50535
      Swann Perarnau authored
      Add a upstream pub client, to be able to listen to messages coming from
      the daemon on the upstream pub/sub channel.
      
      Doesn't support any fancy filter, as that's not used by the daemon so
      far.
      c4e50535
    • Swann Perarnau's avatar
      [fix] ensure container has single owner · 93ae9144
      Swann Perarnau authored
      Ensure that the client that created the container is considered as the
      one owning it, with the consequence that if its command exits, the
      container is destroyed. Also deals with the race issue we had on the cmd
      side.
      93ae9144
    • Swann Perarnau's avatar
      [refactor/fix] always send process events for run · 6e0c1e7a
      Swann Perarnau authored
      Current code sends start/exit events when a container is created and
      process_start/process_exit when its already there. Instead, have the
      container start/exit only care about container stuff, and always sends
      the process start/exit events around. That makes the cmd run fsm easier
      to work out.
      
      Changes the message format a tiny bit.
      Fixes some missing stdout/stderr issues we had before.
      6e0c1e7a
    • Swann Perarnau's avatar
      [fix] have command provide a default uuid · 2344824c
      Swann Perarnau authored
      Previous merges let the cmd send an empty container uuid, resulting in
      some issues when the user doesn't provide one. Restore the previous
      behavior.
      2344824c
  8. 26 Nov, 2018 1 commit
  9. 01 Nov, 2018 1 commit
  10. 23 Oct, 2018 2 commits
  11. 21 Oct, 2018 3 commits
  12. 17 Oct, 2018 2 commits
  13. 06 Sep, 2018 2 commits
    • Swann Perarnau's avatar
      Merge branch 'fix-ioloop' into 'master' · aece6b21
      Swann Perarnau authored
      [fix] Lock with Pipenv all packages
      
      See merge request !25
      aece6b21
    • Swann Perarnau's avatar
      [fix] Lock with Pipenv all packages · 3e1742f9
      Swann Perarnau authored
      Some packages were being pulled into the virtual environment through
      setup.py. It just happens that the new versions of pyzmq and tornado
      don't really play nice with the current daemon code. Mostly because of a
      "better" ioloop hijacking mecanism, that doesn't work for us.
      
      This patch moves the install requirements of the setup.py to Pipfile,
      and lock them to a working version.
      
      Note: the code still currently triggers #14.
      3e1742f9
  14. 15 Aug, 2018 3 commits
  15. 14 Aug, 2018 1 commit
  16. 13 Aug, 2018 1 commit