1. 16 Oct, 2009 5 commits
    • Iustin Pop's avatar
      Add loading and processing of utilisation data · aa8d2e71
      Iustin Pop authored
      This patch adds loading and processing the utilisation data during
      instance moves. While the data is not yet used, it is correctly modified
      by instance changes between nodes.
      hbal has the new ‘-U’ command line argument for this. The format of the
      file is simply instance name and the four stats, space-separated.
    • Iustin Pop's avatar
      Add an option to input utilisation data · 4f83a560
      Iustin Pop authored
    • Iustin Pop's avatar
      Merge the Node.setPri and Node.addCpus functions · a488a217
      Iustin Pop authored
      The latter is only used right after the former in the Loader module, and
      we'll need more of this 'update not with the data of this instance'
      functionality (which is different than addPri where all information must
      be updated).
      The patch also changes the signature of Node.setSec (to remain
      consistent with setPri).
    • Iustin Pop's avatar
      Move some utility functions to Utils.hs · 5b763470
      Iustin Pop authored
      These were already duplicate (Text and Simu) and we need tryRead in more places.
    • Iustin Pop's avatar
      Show the load on nodes in node lists · 183a9c3d
      Iustin Pop authored
      The strange printf usage is due to some limitation (it seems) in ghc for
      very long argument lists. The whole printout should be rewritten later.
  2. 15 Oct, 2009 4 commits
  3. 14 Oct, 2009 11 commits
  4. 12 Oct, 2009 2 commits
  5. 08 Oct, 2009 2 commits
  6. 02 Oct, 2009 8 commits
    • Iustin Pop's avatar
      Store the instance move in the MoveJobs · a2e90275
      Iustin Pop authored
      This will automatically sort our Ganeti jobs into the independent job
      sets, and then we can submit them separately.
    • Iustin Pop's avatar
      Move some more type definitions to Types.hs · 92e32d76
      Iustin Pop authored
    • Iustin Pop's avatar
      Add a function converting Placements into Jobs · 6b20875c
      Iustin Pop authored
      This converts from htools-specific Placements into Ganeti standard
      OpCodes, which will later allow execution via Luxi.
    • Iustin Pop's avatar
      Add a small implementation of OpCodes · 702a4ee0
      Iustin Pop authored
      These are just a few opcodes we need for executing instance moves.
    • Iustin Pop's avatar
      Record the move being performed in a Placement · 3173c987
      Iustin Pop authored
      This will allow a more descriptive output later in the solution list, as
      opposed to trying to reconstruct the move from the node indices.
      The patch also documents the Placement members.
    • Iustin Pop's avatar
      Add definitions for more Luxi calls · a1b5eeaf
      Iustin Pop authored
    • Iustin Pop's avatar
      Split the Luxi generic parts from the loader · 6583e677
      Iustin Pop authored
      The Luxi loader implements both a generic Ganeti Luxi client and the
      loader; it is better if these two are separated. The patch adds a
      Ganeti/Luxi.hs (not under HTools!) since that is generic for Ganeti, and
      not related necessarily to htools.
    • Iustin Pop's avatar
      hbal: Implement grouping of moves into jobsets · 0e8ae201
      Iustin Pop authored
      Since moving two instances between different node-quadruples (inst X: A,
      B → C, D and inst Y: E, F → G, H) can be parallelised by Ganeti, it
      makes sense to split the operation list into jobsets whose execution
      must be serialised, but whose individual jobs can be parallelised.
      Of course, this doesn't help, because today a single logical job is for
      some cases split in multiple gnt-instance invocations, which (if run
      using ‘--submit’) might be wrongly parallelised by Ganeti. So while for
      now this is mostly a cosmetic hint to the user, and it just a step for
      future improvements.
  7. 30 Sep, 2009 1 commit
    • Iustin Pop's avatar
      Change ExtLoader to only handle I/O errors · 1cf97474
      Iustin Pop authored
      Due to the Control.Exception changes between 6.8 and 6.10, using it
      portably is difficult. Since we're only interested in handling I/O
      errors, we can use prelude's catch and not have to deal with
      Control.Exception at all.
      The use in Luxi.hs where we just use bracket is fine across the two
      versions, so we keep that.
  8. 29 Sep, 2009 3 commits
    • Iustin Pop's avatar
      Brown-paper-bag release fixing haddock issues · cf924b6d
      Iustin Pop authored
      Haddock doesn't like pre-processed files (at least not in all versions).
      Thus we need to remove the ExtLoader module from the haddock-procesed
      file list.
    • Iustin Pop's avatar
      Update NEWS file for the 0.1.7 release · 12fa49b3
      Iustin Pop authored
    • Iustin Pop's avatar
      Make the test suite return an reasonable exit code · 38f536cb
      Iustin Pop authored
      Test.QuickCheck.Batch.runTests doesn't return any error statistics,
      which makes the test suite just display errorrs and always exit with
      exit code 0. This is not good, since one cannot then actually batch run
      This patch adds a wrapper over Batch.run which also modifies a passed
      IORef Int to keep track of how many test failures or test aborts we had.
      This makes it easy then to exit with an appropriate exit code.
  9. 28 Sep, 2009 4 commits
    • Iustin Pop's avatar
      Turn on, and fix, more warnings · fbb95f28
      Iustin Pop authored
      The Makefile was intented to be -Wall and not simply -W, but I missed
      that. This enables more warnings and also enables -Werror (except for
      the tests).
    • Iustin Pop's avatar
      Brown bag fix: invert a test · 685f5bc6
      Iustin Pop authored
      During testing I used the test inversely to see it triggers correctly,
      and committed by mistake the inverted test. Fixing it.
    • Iustin Pop's avatar
      Add support for building without curl · 45ab6a8d
      Iustin Pop authored
      Since curl is not always needed (e.g. when only using luxi or less
      likely file backends only) and is also not always available, it is
      useful for building without it. This of course disabled the RAPI
      This patch changes ExtLoader to build with the ‘-cpp’ option which makes
      ghc run it through cpp first; and based on whether ‘NO_CURL’ is defined
      or not, this toggles RAPI/curl inclusion. The patch also removes the
      import of Rapi in QC.hs since it's not actually used in tests.
      Invoking make as ‘make HEXTRA=-DNO_CURL’ is enough to trigger the new
      build mode.
    • Iustin Pop's avatar
      Split the exernal data loader out of CLI.hs · e8f89bb6
      Iustin Pop authored
      Currently the external data loader is in CLI.hs, which makes all
      programs that need cli functionality (options, etc.) link against the
      network modules (most importantly curl). This patch splits this
      functionality into a new module such that (for example) hail which only
      deals with file I/O doesn't link against these libraries.