1. 17 May, 2013 6 commits
  2. 13 May, 2013 1 commit
  3. 30 Apr, 2013 1 commit
  4. 29 Apr, 2013 1 commit
  5. 25 Apr, 2013 1 commit
  6. 24 Apr, 2013 1 commit
  7. 22 Apr, 2013 1 commit
    • Klaus Aehlig's avatar
      Add unit tests for hroller · 754b9b1c
      Klaus Aehlig authored
      Add a unit test for hroller in a situation where the order
      is completely determined. There are 3 nodes where node 2 has,
      for each of the other nodes, an instanced shared with it. So
      node 2 has to be a reboot group of its own. There are no more
      instances, hence, my minimality, the other two nodes have to
      form a single group. Node 1 is the master, and hence has to
      be rebooted last; this determines the order.
      Also add a unit test verifying that hroller rejects configurations
      with multiple master nodes, even if the option --force is given.
      Signed-off-by: default avatarKlaus Aehlig <aehlig@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
  8. 19 Apr, 2013 1 commit
  9. 17 Apr, 2013 2 commits
  10. 11 Apr, 2013 2 commits
  11. 09 Apr, 2013 1 commit
  12. 05 Apr, 2013 1 commit
  13. 21 Mar, 2013 1 commit
  14. 15 Mar, 2013 1 commit
  15. 13 Mar, 2013 1 commit
  16. 06 Mar, 2013 2 commits
    • Iustin Pop's avatar
      Fix bug in man build rule · 67c15d8b
      Iustin Pop authored
      Currently the man page build rule is run without ‘-e’, so the actual
      checks in there are just warnings (check-man-warnings,
      The patch fixes this and also fixes the man pages which made me see the
      Additionally, check-man-dashes is now verbose, otherwise it's hard to
      find out actually where in the page the error is.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
    • Iustin Pop's avatar
      Fix hscolour style sheet building · e61db4b2
      Iustin Pop authored
      Currently we only symlink this into two hard-coded directories, which
      breaks the source code viewing for all the others.
      The patch replaces this with automatic building; as playing with
      relative symlinks is non-trivial, I just generate it many times (the
      file is small enough (<250) that it shouldn't matter, size-wise, and
      it takes 2ms to do it).
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
  17. 05 Mar, 2013 1 commit
    • Iustin Pop's avatar
      Expand Haddock to run over test files as well · 7ddd8e4c
      Iustin Pop authored
      This patch does multiple enhancements to the way we build the Haddock
      docs, motivated by the fact that if we don't run Haddock over test
      files as well, bad formatting can be submitted and will accumulate
      over time (without any checks).
      The patch does:
      - replace manual built ALL_APIDOC_HS_DIRS with automatically built one
        (from HS_DIRS)
      - change Haddock so that it runs from the top directory (instead of
        from src/)
      - change HsColour target file to be built via bash parameter
        substitution, rather than sed (I don't know how to do it in one go,
        so I use 2 intermediate variables)
      - change 'hs-apidoc' target so that it depends on the real target
        file; in case no source file has been modified, running 'make
        hs-apidoc' twice will not result in two runs
      - run HsColour/Haddock under en_US.UTF-8 locale, otherwise they can't
        parse correctly the Unicode chars in the test files
      Additionally, wrong formatting (oops) in a test file has been
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
  18. 25 Feb, 2013 1 commit
    • Iustin Pop's avatar
      Implement Export queries in Haskell · c4bf507b
      Iustin Pop authored
      This is a simple query as it has only two fields, however it's the
      first query that doesn't have a clear 'base' object and 1:1
      correspondence between such objects and the results (groups, nodes and
      networks do so).
      We keep nodes as the 'base' object, since that's what we want to
      filter on for RPC selection, and we have a very simple type as the
      runtime type, since we only have one other field. The
      'collectLiveData' function is the one that does the expansion from
      [node] to [(node, path)], with the help of 'rpcExtractor'.
      Also, this patch introduces a slightly different naming structure for
      the exported names out of the module, to reduce naming conflicts.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
  19. 20 Feb, 2013 2 commits
    • Iustin Pop's avatar
      Add a Ganeti-specific implementation of Curl Multi · cc40185c
      Iustin Pop authored
      As we want to be able to run queries against multiple nodes in
      parallel, and furthermore in parallel with other work, we need to
      implement the Curl Multi interface (see libcurl-multi(3)).
      This patch adds a Ganeti-specific such implementation, to be used
      until upstream Curl bindings provide it. The implemented interface
      (there are two 'multi' interfaces) is the older curl_multi_perform(3).
      It has one downside (which is also, somewhat, and advantage): we use
      polling instead of more properly select() or poll. This is due to how
      waiting for FDs is implemented in Haskell: currently, it's not
      possible to wait for multiple FDs at once nicely, so we'd have to fork
      many threads for each FD to be watched, or alternatively one could use
      FFI select, but that would block the entire runtime.
      With the current poll method, the implementation achieves consistent
      ~100 RPC/s per second (with 10 multi interfaces running in parallel,
      each with 10 easy handles), and over ~1 hour of runtime the memory
      usage is stable, so memory allocation/deallocation (manual when
      dealing with FFI) _seems_ to be well handled.
      Future optimisations could be to move to curl_multi_socket_action(3),
      which might allow better integration with the Haskell runtime.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
    • Iustin Pop's avatar
      Switch the curl bindings from optional to required · 1ca709c1
      Iustin Pop authored
      Currently, we support curl being optional via some sporting exercises:
      ifdefs in the code, data types that represent 'Curl is disabled'
      state, etc. However, with the future work on RPC, we would have to
      even make the dependencies list conditional on it, etc. This is too
      much work, when the curl library is included even in stable
      This patch changes curl from option to required, the same as the other
      base libraries.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
  20. 19 Feb, 2013 1 commit
  21. 18 Feb, 2013 3 commits
  22. 15 Feb, 2013 3 commits
  23. 12 Feb, 2013 2 commits
  24. 08 Feb, 2013 1 commit
  25. 07 Feb, 2013 1 commit
  26. 05 Feb, 2013 1 commit