1. 20 Dec, 2017 5 commits
  2. 19 Dec, 2017 12 commits
  3. 18 Dec, 2017 6 commits
    • Swann Perarnau's avatar
      [feature] Implement skeleton downstream API · 19c9eb54
      Swann Perarnau authored
      This patch refactors the downstream API to use pub/sub socket pair, like
      the upstream API. This is part of the effort to improve the downstream
      API. See #2.
      
      This patch doesn't touch the client module, which will be adapted in
      future commits.
      19c9eb54
    • Swann Perarnau's avatar
      Merge branch 'upstream-network-fixes' into 'master' · be059812
      Swann Perarnau authored
      Fix upstream publishers messaging issues
      
      See merge request !8
      be059812
    • Swann Perarnau's avatar
      [refactor] daemon should always bind on sockets · 1391a197
      Swann Perarnau authored
      The way 0MQ works on PUB/SUB sockets, publishers might drop
      messages if subscribers are not detected faster enough. One way to fix
      it is to have the "server" always bind sockets, and the "client" use
      connect. This way, the handshake is initiated properly, and the client
      can publish as soon as the connection is done.
      
      This patch makes the daemon bind on the upstream API and the CLI connect,
      fixing in the process the message dropping we were experiencing before.
      
      Long term, we might have a think of using 2 types of sockets for the
      upstream API: pub/sub for actual events published from the daemon, and
      a REQ/REP or ROUTER/DEALER pair for "commands".
      1391a197
    • Swann Perarnau's avatar
      Merge branch 'coolr-improve-and-check' into 'master' · 6f53bbbd
      Swann Perarnau authored
      Fix recent coolr issues and start building tests for it
      
      See merge request !7
      6f53bbbd
    • Swann Perarnau's avatar
      [test] Add a clr_rapl test matching current code · 37097b20
      Swann Perarnau authored
      This patch adds a test for the nrm/coolr/clr_rapl.py code, based on
      the __main__ code added to it recently. This is an example of how the
      modules should be tested automatically, instead of relying on __main__
      snippets everywhere.
      
      We should replace those snippets bits by bits by tests similar to this
      one. The end goal is to able to active a gitlab pipeline that validate
      merge requests automatically.
      37097b20
    • Swann Perarnau's avatar
      Partial Revert of powercap API update · ec563afb
      Swann Perarnau authored
      Previous commit 0c93ce6a broke the
      sample code used by the daemon, by reverting the sample function to a
      json message generator. This is due to inconsistencies between the coolr
      code and the NRM import: we removed json generation from coolr, to push
      it on the messaging side, while upstream still does it on sensor
      reading.
      
      This commit fixes that, but doesn't touch the new test code embedded in
      clr_rapl.py
      We will move that the test infrastructure later.
      ec563afb
  4. 17 Dec, 2017 1 commit
  5. 15 Dec, 2017 3 commits
    • Swann Perarnau's avatar
      Merge branch 'switch-to-subprocess' into 'master' · 68784add
      Swann Perarnau authored
      Switch to subprocess
      
      See merge request !6
      68784add
    • Swann Perarnau's avatar
      [feature] Properly handle run events in order · 957deb8d
      Swann Perarnau authored
      This patch implements a small finite state machine on the cmd side to be
      able to run a command, wait for all of its output, and then exit.
      
      As the daemon can send those message in any order, we need to wait them
      properly, in particular the closing of stdout/stderr before exiting.
      
      This patch also fixes the read_until_close callback creation to ensure
      that the stream EOF is handled as a distinct message.
      957deb8d
    • Swann Perarnau's avatar
      [refactor] Only track container inside the CM · f2bc8b80
      Swann Perarnau authored
      The daemon code was maintaining its own container tracker using pids,
      instead of using the one in the container manager. This patch removes
      this additional tracking, and let the daemon side deal with an actual
      namedtuple.
      f2bc8b80
  6. 14 Dec, 2017 10 commits
  7. 13 Dec, 2017 3 commits
    • Swann Perarnau's avatar
      [feature] Add kill command · 63c2dea8
      Swann Perarnau authored
      This patch adds a command to kill the parent process of a container
      based on the container uuid, triggering the death of the container.
      
      The os.kill command interacts pretty badly with the custom built
      children handling, causing us to catch unwanted exceptions in an effort
      to keep the code running. The waitpid code was also missing a bit about
      catching children exiting because of signals, so we fixed that.
      
      At this point, two things should be paid attention to:
        - we don't distinguish properly between a container and a command.
        This will probably cause issues later, as it should be possible to
        launch multiple programs in the same container, and for partitions to
        survive the death of the parent process.
        - the message format is growing more complex, but without any
        component having strong ownership over it. This will probably cause
        stability issues in the long term, as the format complexifies and we
        lose track of the fields expected from everyone.
      63c2dea8
    • Swann Perarnau's avatar
      [feature] Add command to list containers · 2f470afb
      Swann Perarnau authored
      This patch adds a very simple command to list the containers currently
      known by the NRM. There's no history or state tracking on the NRM, so
      the code is pretty simple.
      
      We expect that some of the container tracking doesn't need to be sent
      for such a command, so the listing also filters some of the fields.
      
      This patch also adds an 'event' field to container messages, as it would
      probably be needed further for other kind of operations.
      2f470afb
    • Swann Perarnau's avatar
      Merge branch 'containers-launch' into 'master' · 848a9755
      Swann Perarnau authored
      Container launching implementation
      
      See merge request !3
      848a9755