- Oct 10, 2012
-
-
Iustin Pop authored
The disk free/total values are optional ones, wrapped in a Maybe, so we shouldn't directly serialise them. In order to simplify the embedded extraction, we add a small helper function. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-
Iustin Pop authored
We need to only query the default (first enabled) hypervisor, not all hypervisors. For this, we need to add a manual check to ensure that we don't have a corrupt config (there's no "NonEmptyList" type…). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
The String parameter to 'nodeLiveFieldExtract' is the query2 field name, not the RPC-layer field name. Grrr for not having a real data type for this. Furthermore, we add some safety check that we don't return JSNull via rsNormal… Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-
Iustin Pop authored
This patch makes regex-pcre optional, allowing its disable via a preprocessor define NO_REGEX_PCRE. This define will be added to config.ac/Makefile.am in the next patch. The patch also changes multi-line strings into string concatenation, due to limitations with the CPP language extension. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Oct 08, 2012
-
-
Iustin Pop authored
This patch adds a NiceSort equivalent and the corresponding unittest (partially copied from Python unittest). The difference between the Python version and this one is that this implementation doesn't use regular expressions, and as such it doesn't have the 8-groups limitation. The key-based version is separate from the non-key one (since we don't have default arguments in Haskell), and is tested less in its absolute properties but only that it is identical to the non-key version under some transformations (the non-key version is much more tested). This will be needed later in query name sorting. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This allows the command completion to treat them as separate option types; this is not useful in build-bash-completion right now, but might become so in the future. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This defines the arguments supported and then modifies the --help-completion output to include them too. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Beside parsing the arguments as well, we also change the serialisation format for choices/suggests, to make the Python code simpler. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This extends the current option-only support with support for arguments too. They are serialised without a without the prefix (so just with the type) and the min/max ranges (max="none" for unlimited). A few new option types have been added as well. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This was missing so far… Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This is, I believe, the last non-htools specific file that still lived in the htools directory; it's already widely used in non-htools code, so let's move it before we add more functionality to this module. All changes are related to the name change, imports fixup, etc.; there are no other changes in this patch. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 28, 2012
-
-
Michael Hanselmann authored
unsafePerformIO is required to go from the IO monad to pure code. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
Since ERpcError is still not a monad, a simple foldr will have to do for now. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
parseHttpResponse is such a simple function that we can actually do the entire unpacking in rpcResultParse. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
For now ERpcError is still not a monad, but we can still simplify rpcResultFill implementation for different calls simply by abstracting it into two helpers. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
There is no need (at least right now) for some of the resulting types to be in additional monad, so let us just have more "normal" functions. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
As per Iustin's suggestion, this patch aligns parts of typeclass instance on "=". Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
As per Iustin's suggestion, show is not a good solution - so instead the name is now explainRpcError. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Sep 26, 2012
-
-
Agata Murawska authored
This patch implements single instance info call - somewhat similar to all_instances_info, except we give a specific instance name. Current implementation of reading the InstanceInfo value is somewhat counter-intuitive because when we query a node on thich there is no instance with such name, this is not considered an error - but it does produce an empty answer. Therefore the resulting type is optional. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
For storage_list call, the result type depends on the call parameters. Therefore, we have to add call as an argument for rpcResultFill - and by extension, to the typeclass. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
Implementation of node version query. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
Added support for NodeInfo RPC call as source of data for node query. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
We make use of the parameter added in the previous patch and add option to add live parameters to the query. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
The tests we currently have assume, that all the data required for running the query is available - once we add live data, this will no longer be the case. This patch adds boolean parameter to query function, which tells it whether to ignore live parameters gathering. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
Simple conversion for queries that use live fields gathered from RPC calls. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
This is a helper function that gets the JSON encoding of the first element of the list (if possible). Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
This patch creates ResultT, a monad transformation used later in RPC <-> query integration. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
Implementation of nodegroup queries in Haskell. This is not yet complete as we are missing merged disk parameters and option want_diskparams is not implemented. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
For some results in nodegroup queries we need agregation similar to one that is done for nodes. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
Previous version of RPC calls implementation in Haskell did not take into account that the actual result type for queries is a list, not a dictionary. This patch aims at fixing the problem "for now" - it is not a pretty solution, but it does work. Note that parsing of the result is now split into two parts - first, we check if server's aswer is positive, then if it is, we procede with decoding the actual result. Values and order of some fields in the result type were changed to reflect actual order of arguments from server responses. AllInstancesInfo call was particularly tricky, because it returns a dictionary where keys are instance names - and the response from a given node is correct if all the instances were deserialized, not just some. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
This was repeated a lot, so we should abstract this into a type. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
Curl error messages are self contained and don't need "error" prefix; added RpcResult Error which will be used once proper deserialization of rpc response is in place. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
We now have Hypervisor type in Objects, might just as well use it. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
I assumed this was a copy-paste+forgetting to change the header comment. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Agata Murawska authored
This patch adds missing Path entry and uses it in Rpc. It was not in place before due to different build settings - i.e. if curl was disabled, there were no problems. Signed-off-by:
Agata Murawska <agatamurawska@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
This patch adds support for a --help-completion option, which will display the defined options and their completion information, in a format designed to be parsed easily from Python, for integration into build-bash-completion. The alternative would have been to duplicate the build-bash-completion functionality on the Haskell side, but that would have been lots of duplication for not enough gain (since that is only run at build time). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-
Iustin Pop authored
This is a quite boring patch, just adding annotation information to all existing options. Some of the annotations are not very good; but we don't have support for more precise completion in build-bash-completion, so this is good enough. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-
Iustin Pop authored
This can be used for either option or argument completion (although OptComplNone doesn't make sense for an argument :). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-
Iustin Pop authored
Currently, we test and require that each individual program (hbal, etc.) defines/supports the generic options (currently --help and --version). Even with the test, this is not optimal, since it requires changes in many places whenever we modify the list of generic options, hence we move these out of the individual programs and into the generic CLI handling code. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-