- May 25, 2009
-
-
Iustin Pop authored
-
Iustin Pop authored
-
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 patch removes the ktn/kti lists from most parts of the first half of the loading sequence. Some remain as the [(String, Int)] is the nicest way to lookup names and get indices back.
-
Iustin Pop authored
This removes the return of ktn/kti from Loader.mergeData and associated functions.
-
Iustin Pop authored
This patch removes all uses of ktn/kti from the past-loader stages.
-
Iustin Pop authored
This is not yet used.
-
Iustin Pop authored
These will be used to remove even more uses of ktn/kti in non-critical paths.
-
Iustin Pop authored
Since we have Node/Instance.name, we can now simplify a few constructs.
-
Iustin Pop authored
This strips the suffix from the objects themselves, not only from the ktn/kti vars.
-
Iustin Pop authored
This patch makes the format of IAlloc.loadData be similar the same as Loader.mergeData.
-
Iustin Pop authored
-
Iustin Pop authored
This patch moves the common loading sequence to CLI, such that hbal/hn1 and possible future scripts that take the input from same sources can use it.
-
Iustin Pop authored
This moves the remaining loading function to Loader (together with its associated support functions).
-
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.
-
Iustin Pop authored
Since both nodes and instances support some common functionality (names and indices), we add a class so that we can access these attributes in a generic way.
-
- May 22, 2009
-
-
Iustin Pop authored
In order to simplify the data structures, we add back the name on the node and instance objects. We still keep the index for, well, indexing, but we will use the name directly from the object, in order to get rid of the ktn/kti arguments which are passed around everywhere.
-
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
-
Iustin Pop authored
This big patch changes the loader model from “string data as common format” to actual object structures as common format. The text loading function move from Cluster.hs to a new Text.hs module, some common functions are moved to a new Loader.hs module, and the return values from both Rapi.hs and Text.hs are uniformized.
-
- May 21, 2009
-
-
Iustin Pop authored
This makes hail compile and get a request parsed via IAlloc, but nothing more.
-
Iustin Pop authored
This patch adds experimental support to hbal for non-redundant instances (i.e. instances with only one node). They are currently handled as non-moveable, and as such the algorithm simply ignores them. Supports needs to be added when reading from RAPI via hscan, and probably in other corner cases.
-
Iustin Pop authored
-
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
In case we pass a fully-specified URL to hscan, currently it will use as is and that means the directory in which we want to save the status files changes from what we mean. This patch changes hscan to replace all slashes in the cluster name with underscores when generating the output filenames.
-
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
-