- May 21, 2009
-
-
Iustin Pop authored
This patch switches from plain read to a wrapper over readsPrec that returns better error messages than the buildin 'Prelude: no parse'.
-
Iustin Pop authored
This allows easy checking for valid format of the input data (row-wise).
-
- May 20, 2009
-
-
Iustin Pop authored
This patch converts loadTabular and loadData to a monadic form, thus allowing meaningful error messages from the node/instance load routines.
-
Iustin Pop authored
D'oh, one can extract from a wrapped variable, not only from functions.
-
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 patch adds a very dumb way to override the port and scheme for RAPI: if the master string doesn't contain a colon, we consider it a simple hostname specification, and thus prepend ‘https://’ and append ‘:5080’, (the default RAPI port); otherwise, we consider it a fully specified URL, and don't do any mangling to it. This allows to use saved RAPI responses in testing, with the “file://” scheme, or to use another port or non https mode with an actual RAPI instance.
-
Iustin Pop authored
Now that we dropped 1.2 compatibility, we can removed the special casing for RAPI differences.
-
Iustin Pop authored
We don't really needed, but is more clean like this.
-
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.
-
Iustin Pop authored
Adding a small request type data structure.
-
- May 19, 2009
-
-
Iustin Pop authored
This is just a cosmetic (I hope) change; the nodes shouldn't be used anyway, and we only correct the display message.
-
Iustin Pop authored
Since we only support Ganeti 2.0, we drop the 1.2 compatibility.
-
Iustin Pop authored
This patch drops compatiblity with Ganeti 1.2 and adds support for offline nodes in the cluster. When reading from RAPI, the drained nodes are considered offline so that we don't allocate on them too.
-
- May 18, 2009
-
-
Iustin Pop authored
We know have a working parseData function that returns the node and instance data. This uncovered bad support for non-drbd instances
☹️ -
Iustin Pop authored
This patch moves the generic/reusable JSON functions to Utils.hs, so that they're shared between RAPI/IAlloc.
-
Iustin Pop authored
This will be used in two ways: - format the response to Ganeti (easy, implemented) - parse the input data and build the node/instance lists (hard :)
-
- Apr 25, 2009
-
-
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.
-
Iustin Pop authored
In some case we manually do “if isNothing … then Nothing else …”, which can be very easily replaced with a monadic construct in the Maybe monad.
-
- Apr 20, 2009
-
-
Iustin Pop authored
Since Xen seems to “steal” some amounts of memory (depending on total node memory), we increase the maximum allowed missing memory to 512MB, based on gathered data from multiple machines.
-
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.
-
- 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 23, 2009
-
-
Iustin Pop authored
This removes most of the content of the README file (obsoleted by new algorithm and man pages), modifies the Makefile to include the built documentation in the source archive (so that haddock/hscolour are not needed) and updates the haddock-prologue with current information.
-
- Mar 22, 2009
-
-
Iustin Pop authored
This small patch adds disk space checks to the Cluster.checkData function, and simplifies a little the warning messages.
-
Iustin Pop authored
For Ganeti 1.2 which doesn't have the ‘disk_usage’ instance query field, we need to manually include the DRBD overhead (per disk). This patch modifies the RAPI collection to do this, but loading from disk does not as it's unknown if the query came from hscan or RAPI 1.2 or RAPI 2.0...
-
Iustin Pop authored
This fixes the setFmem function which didn't compute other related fields after free memory change. Ideally, this should be abstracted so that add/remove Pri and similar functions could reuse it instead of duplicating code.
-
Iustin Pop authored
If an instance is down, it's memory is not reflected in the node used memory, and thus the node free memory is higher than the actual value. This patch deducts the memory for such instances from the node free memory, allowing a correct calculation for such cases.
-
Iustin Pop authored
This patch modifies Rapi, the Cluster.loadData and hscan serialization to load and save the instance run status. At instance level, we add both a boolean field denoting the true/false run status, and a string field which holds the original value (since we don't have a 1-to-1 mapping) for use in hscan serialization. The run status is not yet used.
-
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 adds a checkData function which goes over the node list and computes the unaccounted memory, returning a list of warning messages (if any) and the update nodes.
-
Iustin Pop authored
Nodes can have some memory unaccounted for, due to (e.g.) hypervisor overhead, rounding errors in reporting, etc. It is better if we model this memory explicitly instead of hiding it, and actually since the n_mem addition it is actually required to do so. The new attribute is not yet used.
-
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.
-
Iustin Pop authored
The Node.str function is very old and is not useful since the node objects have much more fields today. This patch removes it, and if needed a full node display can be done via ‘show’.
-
- Mar 21, 2009
-
-
Iustin Pop authored
This patch adds a new n_mem field to the node objects, and implements read/save/show support for it. The field is not currently used (except in the node list) but will be used for checking data consistency and instance up/down status.
-
Iustin Pop authored
This patch changes the parameters passed to the node and instance constructors from generic Strings (which are then parsed via “read”) to the actual used types, by converting them earlier in Cluster.loadData.
-
Iustin Pop authored
This patch does some small changes: - fixes a comment - export more node functions (unneeded now, but hscan will use them) - fixes Makefile rule for building the programs
-
Iustin Pop authored
This is added for better readability, since this is very often used in declarations.
-
Iustin Pop authored
This patch changes two things with regard to offline nodes: - first, it only calculates the various coefficients across online nodes - second, it adds a new score denoting the percentage of instances which live on such nodes The first change allows correct score computation in presence of offline nodes (whose properties we don't need to take into account), while the second change actively evacuates offline nodes.
-
Iustin Pop authored
This patch adds a new ‘-’ flag for the node status which denotes offline nodes.
-
- Mar 20, 2009
-
-
Iustin Pop authored
This patch changes the Cluster.checkInstanceMove function to restrict the target move list based on which nodes are online.
-