Skip to content
Snippets Groups Projects
  1. Jun 02, 2010
    • Iustin Pop's avatar
      Change the Luxi operations structure · 683b1ca7
      Iustin Pop authored
      Currently, we define the LuxiOp type as a simple enumeration, and leave
      the arguments structure to the users of the Ganeti.Luxi module. This is
      suboptimal for a couple of reasons: first, we decouple the operation
      type from operation arguments, and that means we don't use the type
      system for validation of the arguments; second, the clients themselves
      have to know about the JSON encoding of the protocol.
      
      For the above arguments, we change the operation type to contain the
      arguments too, and then the entire conversion/serialization is
      restricted to the Ganeti.Luxi module. Also, the removal of the JSON
      encoding from the clients results in an overall simplification of the
      code.
      683b1ca7
  2. Jun 01, 2010
  3. May 30, 2010
    • Iustin Pop's avatar
      Modify the test runner to show test exceptions · 8c5652f6
      Iustin Pop authored
      QuickCheck's batch driver (at least v1) doesn't show the test aborts,
      but simply discards the specific exception and increases the abort
      count. This makes it hard to debug the tests, so we modify our own test
      wrapper (which so far only tracked total failures) to show any
      exceptions.
      8c5652f6
  4. May 28, 2010
    • Iustin Pop's avatar
      Reduce the warnings during the unittests · 9e35522c
      Iustin Pop authored
      Since the unittests are not 'clean' from the p.o.v. of type
      declarations, and cannot be made clean in all respects (e.g. orphan
      instances), we silence some warnings for the test target, to have a
      cleaner output.
      9e35522c
  5. May 27, 2010
    • Iustin Pop's avatar
      Improve the test driver · 06fe0cea
      Iustin Pop authored
      The tests are moved to a separate data structure, and we can select a
      subset of tests to run.
      06fe0cea
    • Iustin Pop's avatar
      Introduce OpCode unittests · 88f25dd0
      Iustin Pop authored
      88f25dd0
    • Iustin Pop's avatar
      Introduce suport for optional keys in JObjects · f36a8028
      Iustin Pop authored
      Some keys are optional in the Ganeti opcodes (e.g. ‘node’ in the
      OpReplaceDisks), and as such we need to transform them in a Maybe value,
      instead of failing.
      
      The patch reworks a bit fromObj and adds maybeFromObj which parses such
      optional values. It then uses it in the opcode reading.
      f36a8028
    • Iustin Pop's avatar
      Replace fromJResult with annotateJResult · c96d44df
      Iustin Pop authored
      This patch removes all old uses of fromJResult with the annotated
      version, and removes the non-annotated version. All JSON parsing points
      should now have annotated errors.
      c96d44df
    • Iustin Pop's avatar
      Add annotations to loadJSArray · c8b662f1
      Iustin Pop authored
      This allows, for example, the RAPI backend to detail which information
      (instance or node data) fails to parse.
      c8b662f1
    • Iustin Pop's avatar
      Change fromObj error messages · 50d26669
      Iustin Pop authored
      Currently fromObj doesn't detail what we're trying to read, which can
      lead to cryptic messages: "Cannot read Int". The patch changes this
      function to annotate the error messages with the key/value we're trying
      to convert, by using a new version of fromJResult.
      
      Since the display of the key in tryFromObj is now redundant (it was
      already redundant in the 'not found' case), we remove it.
      
      The new version of fromJResult (annotateJResult) simply prepends a
      description string to the actual error message.
      50d26669
  6. May 26, 2010
  7. May 25, 2010
  8. May 20, 2010
    • Iustin Pop's avatar
      Add more unit tests for allocation/balance · 3fea6959
      Iustin Pop authored
      The patch adds some simple unit-tests for both the allocation function
      (we can allocate small instances on an empty cluster, we can allocate in
      tiered more starting from any size) and the balancing functions (one
      single instance is placed optimally, a full cluster plus an empty node
      can be rebalanced). The coverage has increased greatly, since this is
      the bulk of the algorithm/code.
      
      Also, the cluster tests are now being run with different options, since
      they are much slower.
      3fea6959
    • Iustin Pop's avatar
      Move two functions from hspace to Cluster.hs · 3ce8009a
      Iustin Pop authored
      This is done so we can test a longer pipeline.
      3ce8009a
    • Iustin Pop's avatar
      Make CStats instance of show · 8423f76b
      Iustin Pop authored
      This helps debugging via ghci.
      8423f76b
    • Iustin Pop's avatar
      Clarify options related to name passing · ada2fc6d
      Iustin Pop authored
      After the name patches, we can pass in either the short or the full
      name, so update the hbal man page accordingly.
      ada2fc6d
    • Iustin Pop's avatar
      Another haddoc fix… · 381be58a
      Iustin Pop authored
      381be58a
    • Iustin Pop's avatar
      Accept both full and short names in CLI · c854092b
      Iustin Pop authored
      This patch introduces some new functionality in the base Element type
      and in Container which supports searching for all 'known' names of an
      element, such that both short and full names are accept for various
      options like '-O' and '--excluded-instances'.
      c854092b
    • Iustin Pop's avatar
      Stop modifying names for internal computations · 3e4480e0
      Iustin Pop authored
      Currently the name used internally is modified and holds the shortened
      name of the nodes/instances. This has caused issues before, since we
      always have to strip the suffix from input data and reapply it if we
      need to send data back to Ganeti.
      
      This patch changes the code such that the names are never modified, only
      the alias, and all the internal computations can forget about the common
      suffix addition/removal.
      3e4480e0
    • Iustin Pop's avatar
      Add a new node/instance field · 8bcdde0c
      Iustin Pop authored
      This new field ('alias') will hold the shortened/beautified display
      name. When resetting the name, the alias is reset too, and there's a new
      function to update only the alias.
      8bcdde0c
    • Iustin Pop's avatar
      Change some test constants · 49f9627a
      Iustin Pop authored
      First, we reduce the max size of the disks, since Int on 32bits will
      overflow for big simulated clusters. This is a real issue, that will
      need fixing in real life, but for now we just "silence" this test.
      
      Second, we increase the amount of time a test is allowed to run,
      otherwise on slower computers some tests might time-out.
      49f9627a
  9. May 19, 2010
  10. May 18, 2010
    • Iustin Pop's avatar
      Remove the noLimit values and always use limits · f4c0b8c5
      Iustin Pop authored
      This patch moves from allowing no-limits for disk/cpu ratios, and always
      use a real limit. For disk, it's simple since we use 0, which means no
      reservations for disks. For CPU, we set an (arbitrary) limit of 64 v/p,
      which should be reasonable as a default limit (it can be changed via the
      command line).
      f4c0b8c5
  11. May 17, 2010
    • Iustin Pop's avatar
      hspace: change handling of N+1 bad clusters · 317b1040
      Iustin Pop authored
      Currently we just print a fake result and exit early. This is bad, since
      it doesn't use the same codepaths for all the result printing, and has
      already led to a bug where hspace looks like completely ignoring the
      tiered specs request.
      
      This patch changes the code to override the computation, instead of the
      printout, thus allowing tiered specs results for such cases.
      317b1040
  12. May 04, 2010
    • Iustin Pop's avatar
      Fix hspace's KM metrics · e2436511
      Iustin Pop authored
      We returned the KM_POOL_* metrics as the final state, not as the delta
      between the final and the initial state.
      e2436511
  13. Apr 26, 2010
  14. Apr 15, 2010
  15. Apr 14, 2010
  16. Mar 31, 2010
    • Iustin Pop's avatar
      Fix iallocator crash when no solutions exist · 57587760
      Iustin Pop authored
      Commit 54365762 added an un-guarded `head' call, which crashes with
      “Prelude.head: empty list” when no results exists for the per-instance
      allocation/relocation calls.
      
      This patch fixes this, and also adds another check for an unguarded
      `head' call during parsing of input data.
      (cherry picked from commit e41f4ba0)
      57587760
    • Iustin Pop's avatar
      Fix IAllocator multi-evacuate message · 934c62dc
      Iustin Pop authored
      Since Ganeti passes full host names (not common-suffix-stripped), we
      need to remove the suffix from the evac_nodes keys too. In case one node
      is not part of the cluster, it will lead to a wrong error message, but
      for now it fixes the problem.
      934c62dc
  17. Mar 09, 2010
    • Iustin Pop's avatar
      Fix iallocator crash when no solutions exist · e41f4ba0
      Iustin Pop authored
      Commit 54365762 added an un-guarded `head' call, which crashes with
      “Prelude.head: empty list” when no results exists for the per-instance
      allocation/relocation calls.
      
      This patch fixes this, and also adds another check for an unguarded
      `head' call during parsing of input data.
      e41f4ba0
  18. Feb 26, 2010
  19. Feb 25, 2010
Loading