- May 25, 2009
-
-
Iustin Pop authored
This patch implements filtering out of the offline/drained nodes and fixes a bug in IAllocator.hs parsing (similar to an older bug in Rapi.hs from where the code was copied).
-
Iustin Pop authored
-
Iustin Pop authored
This patch implements non-mirrored instance allocation, by allocating as secondary node “noSecondary”.
-
Iustin Pop authored
Both allocate and relocate compute new node lists, whose score must be ranked and the best option chosen. This means we can convert the code to a generic function.
-
- May 24, 2009
-
-
Iustin Pop authored
This patch implements allocate for two node requests. One node requests can be done as soon as we have a valid allocateOn function for single nodes.
-
Iustin Pop authored
This patch completes the implementation of hail relocate. It maps all valid destination nodes through a ReplaceSecondary IMove, filters out the failed relocations, computes the resulting scores and picks the lowest one.
-
Iustin Pop authored
This patch implements a very stupid (and broken) version of hail ‘allocate’.
-
- May 23, 2009
-
-
Iustin Pop authored
This is not yet used.
-
Iustin Pop authored
Since we have Node/Instance.name, we can now simplify a few constructs.
-
Iustin Pop authored
This patch generalizes a little the CLI handling by not passing in a special function for help and such, but instead requiring that the options object supports some common functionality.
-
- May 22, 2009
-
-
Iustin Pop authored
This new big patch does a couple of more cleanups in the loading of data chapter: - introduce a Types module that holds most types (except the base Node/Instance/etc.) so that multiple other modules can use these (instead of only Cluster and its users) - bring IAlloc.hs in line with the recent changes of providing data types and not strings - removal of obsolete Utils.hs json-related functions
-
- May 21, 2009
-
-
Iustin Pop authored
This makes hail compile and get a request parsed via IAlloc, but nothing more.
-
- May 20, 2009
-
-
Iustin Pop authored
This patch changes Cluster.loadData to return a Result, instead of directly the values; this will allow us to return meaningful error values (e.g. when an instances lives on unknown node) rather than simply abort. Currently the result is always an Ok, the actual signalling of errors will come later. Its callers are changed to accommodate for the new return type and to display errors as needed.
-
Iustin Pop authored
This big patch converts from our home-grown monad-like constructs (the Either stuff) to a real, Either-like-but-another-name monad. We introduce a “Result a” monad, and this allows dropping many of the extra constructs. Hopefully the code is also more clear. Many of the functions could now be written in a generic-monad style, instead of Result specifically, but that will come in future patches. IAlloc.hs also has some unrelated patches.
-
- Apr 26, 2009
-
-
Iustin Pop authored
This option is the opposite of the --verbose option, and it allows decreasing the verbosity level from the default of one to zero (which currently doesn't show the warning messages for missing disk/memory).
-
- Apr 25, 2009
-
-
Iustin Pop authored
This patch moves the oneline format into a separate function for easier usage.
-
Iustin Pop authored
For clusters with no instances, there is no point in computing either the score or in running the algorithm. In this case, we exit prematurely and when running in one-line mode we show dummy information.
-
Iustin Pop authored
This new parameter causes the algorithm to finish (or even not start at all) if we reach/have a score better than it.
-
- Apr 20, 2009
-
-
Iustin Pop authored
This patch adds support for selecting the instance/node file names via two environment variables (HTOOLS_NODES, HTOOLS_INSTANCES). Unfortunately we still have lots of duplicated code, since the options are not unified.
-
Iustin Pop authored
Neither hbal nor hn1 take any arguments beside the options, so if any are passed is most likely an unintended error. This patch aborts in such cases.
-
- Apr 18, 2009
-
-
Iustin Pop authored
This patch adds support in hbal for writing the command list to a shell script, with error checking and allowing for early exit.
-
- Apr 16, 2009
-
-
Iustin Pop authored
Since it's easy to pass a wrong node name as offline, we should abort instead of silently ignoring it.
-
- Mar 22, 2009
-
-
Iustin Pop authored
This patch adds checking of cluster data in the binaries and display of node's x_mem/i_mem in the node list.
-
Iustin Pop authored
This patch moves the common CLI functionality (as much as currently possible) into a separate module. This means we only have one parseOpts and that Utils.hs doesn't keep this kind of functions anymore.
-
- Mar 21, 2009
-
-
Iustin Pop authored
This is added for better readability, since this is very often used in declarations.
-
- Mar 20, 2009
-
-
Iustin Pop authored
This patch modifies hbal (only, hn1 not yet) for setting nodes offline.
-
Iustin Pop authored
The modules are moved from the ‘top’ namespace to ‘Ganeti.HTools’, in compliance with standard practices.
-
- Mar 14, 2009
-
-
Iustin Pop authored
This patch moves the version string creation into a function in Utils which shows some more information.
-
Iustin Pop authored
This patch adds a -V, --version command line option that shows the program version and also updates the hn1 usage string (similar to hbal).
-
Iustin Pop authored
This just reorders some functions for a more logical ordering.
-
Iustin Pop authored
This patch changes the solution list to include a step counter so that it's more clear these are successive steps (in a definite order), and not just an unordered list of changes.
-
Iustin Pop authored
This patch added a verbose output and changed the output so that by default it is less verbose and more clear.
-
- Mar 13, 2009
-
-
Iustin Pop authored
This patch moves the formatting of the command list to Cluster.hs and enhances it with separator messages between the steps.
-
Iustin Pop authored
Currently hbal does multiple rounds, stopping when a rounds doesn't bring improvements. With the recent changes to not remove instances from the candidate list, this is obsolete as the first round will always run to the end of the improvements. This patch changes this so that the Cluster.checkMove function doesn't recurse, but just computes the next best move (as its docstring says). This means we can actually incrementally compute and print the solution, and this is needed as otherwise an instance could move twice and the second time it needs the current placement to compute the exact command line and operation needed for the move.
-
- Mar 12, 2009
-
-
Iustin Pop authored
This patch attempts to embed the VCS id in binaries, based on the way other projects seem to do this.
-
- Mar 10, 2009
-
-
Iustin Pop authored
Learned how multi-line string literals work in Haskell :)
-
- Mar 09, 2009
-
-
Iustin Pop authored
This patch automatically removes the longest common (domain, i.e. starting with a dot) suffix from the node and instance names. This gives a much clearer display, and this format is compatible with the way Ganeti accepts shortened names.
-
Iustin Pop authored
Based on the node changes, we remove the N+1 check and only show a warning instead.
-
- Feb 15, 2009
-
-
Iustin Pop authored
Currently we always compute the available node list for moves (for an instances) based on the nodes of the initial table. This works find, however is a repeated calculation. We optimize this by passing a node list (of indexes, not full objects), which helps in two ways: - faster to filter later - allows restriction of target nodes by enforcing only this subset as target for moves
-
- Feb 14, 2009
-
-
Iustin Pop authored
This patch moves a function to Utils and changes hn1 to be able to take data from RAPI.
-