- Sep 29, 2009
-
-
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 authored
-
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 tests. 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.
-
- Sep 28, 2009
-
-
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 authored
During testing I used the test inversely to see it triggers correctly, and committed by mistake the inverted test. Fixing it.
-
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 backend. 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 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.
-
- Sep 02, 2009
-
-
Iustin Pop authored
This patch fixes a logic bug in luxi that breaks receive of messages bigger than 4096 bytes. The send message is not impacted as it uses a different algorithm.
-
- Aug 31, 2009
-
-
Iustin Pop authored
-
Iustin Pop authored
This include instance text load tests.
-
- Aug 30, 2009
-
-
Iustin Pop authored
Currently the computation, recursing part and the IO part (progress updates) of the balancing main function (iterateDepth) are all in the same function, which makes it hard to test. This patch moves the decision/computation part (whether to proceed one more round, whether we got a good result, etc.) into Cluster.hs, and leaves only the iteration and screen update in hbal.hs.
-
- Aug 26, 2009
-
-
Iustin Pop authored
This patch adds support for cheap (failover/migrate) operations only in the balancing algorithm and in the hbal command line options. This allows a very quick balancing (compared to allowing replace-disks) which can be useful as a scheduled operation.
-
Iustin Pop authored
This fixes one warning from hlint.
-
Iustin Pop authored
While we can't guarantee that the instance will be in the same state by the time the migrate/failover command will be run, we can at least try to do the right thing assuming no other changes to the cluster state. Of course, the right fix would be for Ganeti to accept a migrate-or-failover opcode that atomically does the move…
-
- Aug 19, 2009
-
-
Iustin Pop authored
-
Iustin Pop authored
Instead of using ioError . userError, we format the error ourselves. This is nicer - no ‘)’ at the end of the output.
-
- Aug 18, 2009
-
-
Iustin Pop authored
This is useful especially for hspace, where we might want to simulate a hypothetical cluster to check allocation beforehand.
-
- Jul 28, 2009
-
-
Guido Trotter authored
Signed-off-by:
Guido Trotter <ultrotter@google.com>
-
- Jul 15, 2009
-
-
Iustin Pop authored
This patch adds an error handler for any exceptions that are raised during the external data load phase. This can be improved further, but it's a good start.
-
Iustin Pop authored
This patch moves all the command line options and their internal representation into CLI.hs. This means that duplicated options between any two binaries are no longer declared twice, and that we no longer need the two *Option classes.
-
- Jul 14, 2009
-
-
Iustin Pop authored
-
Iustin Pop authored
-
Iustin Pop authored
This patch beautifies the man pages for hbal and hspace.
-
Iustin Pop authored
This patch makes CLI abort if more than one backend is selected.
-
Iustin Pop authored
-
Iustin Pop authored
This patch changes the backend selection method in CLI to prefer, in order: - a RAPI specification - a Luxi specification - and finally the node/instance files It also modifies hspace and hbal to provide a ‘-L’ command line option for enabling Luxi.
-
Iustin Pop authored
This patch adds a luxi backend that allows direct query of the master daemon on the local node. This patch doesn't enable the backend to be used. There are a couple of things still missing in the implementation: - we don't have a master timeout in reads and writes, only a per-recv/send-call one - the failure reporting is not as good as it could be
-
Iustin Pop authored
The patch adds two constants in Types.hs for connect and query timeout, then modifies Rapi.hs to use them as the connect and general curl timeout. Rapi could be improved more, as currently we wait double the total timeout due to not aborting early in case the node queries failed.
-
- Jul 09, 2009
-
-
Iustin Pop authored
This is basically a hspace release, so the changelog is small.
-
Iustin Pop authored
-
Iustin Pop authored
Currently hspace doesn't handle failures from tryAlloc correctly; this patch changes the iterateDepth function in hspace to return a Result (…) so that errors can be propagated correctly. The patch also changes one output key to be more clear and a typo in Cluster.hs
-
Iustin Pop authored
Currently, the tryAlloc and tryReloc function return a list with all the results, both failures and successes. This is fine for hail, which does one round of allocations, but is not so good for hspace, which does iterative rounds; since at each (successful) step we only take the best solution, it means that we're using lots of heap space to compute and store node lists which are thrown away at the end of the step. This patch changes these two functions and their callers in hail/hspace to only return the best solution, and error/success counters. This allows hspace to run in a much smaller space, and reduces GC cost greatly. Overall, it is a cleanup, as hail/hspace did a lot of work to chose this best solution, whereas now it's automatically promoted within Cluster.concatAllocs.
-
- Jul 08, 2009
-
-
Iustin Pop authored
Currently the tryAlloc function calls the allocateOnSingle/allocateOnPair and the builds a new tuple with those functions's result plus the new node list. This is however suboptimal in two respects: - the new nodes added are the 'old' versions of the respective nodes, so even though we don't use more than their names, it's logically broken - we do an extra unpack/repack of the result, while we could simply pass it through if allocateOnX returned the correct result This patch makes the allocateOnX functions return the node list too and also removes them and applyMove from the export list, as these are only used within Cluster.hs.
-
Iustin Pop authored
Currently the Cluster.AllocSolution type is defined as a list of ‘(OpResult Node.list, …)’ and the results for applyMove are defined as ‘(OpResult Node.List, …)’. Both these means that the failure/success indication is hidden in the first elements of this tuple, which makes is harder to add other elements depending on the success/failure (like the score for the new node list). This patch moves the OpResult to outside of the tuple, in effect making all these ‘OpResult (…)’ which makes the internal tuple elements consistent. The patch is affecting the applyMove, tryAlloc and tryRealloc functions, and only briefly the hail and hspace programs.
-
Iustin Pop authored
This uses hasktags for building emacs TAGS.
-
Iustin Pop authored
This (big) patch changes the output of hspace from text-format (separated by ‘: ’) to a shell-snippet, in ‘key=value’ format. This will allow sourcing the output or parsing it via awk/sed/etc.
-
Iustin Pop authored
Currently the instance count and cluster score are separated from the other initial/final phase stats, even though they are very similar. This patch moves computation of these two into totalResources/CStats and removes special printing in hspace.
-
- Jul 07, 2009
-
-
Iustin Pop authored
The recent OpResult and CPU values additions broke unittests.
-
Iustin Pop authored
This patch changes Cluster.totalResources to compute more resources and prints them in hspace.
-
Iustin Pop authored
Currently many of the exit and warning conditions mistakenly display error messages on stdout, which makes parsing the output of programs harder. This patch attempts to fix such occurrences.
-