| Branch: | Tag: | Revision:

root / htools / Ganeti / Query @ ad1c1e41

Name Size
Common.hs 5.5 kB
Filter.hs 8.3 kB
Group.hs 3.3 kB
Language.hs 15 kB
Node.hs 8.2 kB
Query.hs 8.6 kB
Server.hs 9.4 kB
Types.hs 2.1 kB

Latest revisions

# Date Author Comment
ad1c1e41 12/17/2012 01:29 pm Iustin Pop

Implement opcode summary support

This implements in the Haskell codebase the opcode summary. As opposed
to Python, we always use custom code for formatting, since we don't
want to use dynamic attribute lookup.

To test this properly, we need to change MetaOpCode to record-syntax,...

f74b88fa 12/13/2012 07:47 pm Iustin Pop

Log only partial response in Luxi when in debug mode

Currently, we log the entire response (at debug level) in the Luxi
replies. This is not a good idea; the logging library operates on
strings, and as such it will use huge amounts of memory: without debug...

d277b075 11/30/2012 04:17 pm Iustin Pop

Optimise recursive Query filters

Currently, the And and Or filters use very nice code, e.g. in case of

any id <$> mapM evaluateFilter flts

However, looking at the memory profiles shows that application of
any/id to monadic values via '<$>' does not work nicely, losing the...

228ef0f2 11/30/2012 04:17 pm Iustin Pop

Make Query operators enforce strictness

Currently, the query operators (binop, etc.) create thunks, instead of
forcing the evaluation of the simple boolean results. This results in
higher than needed memory use.

Signed-off-by: Iustin Pop <>...

139c0683 11/30/2012 03:54 pm Iustin Pop

Remove read instances from our Haskell code

It turns out that optimising 'read' derived instances (via -O) for
complex data types (like OpCode, or the various objects) can be slow
to very slow. Disabling such instances results in (time make
$all_our_haskell_binaries) large compile-time savings and also smaller...

1283cc38 11/21/2012 03:51 pm Iustin Pop

Split 'Query.Language.ItemType' in two sub-types

The QR_VIA_OP/QR_VIA_LUXI types in Python are using yet another
validation mode: QR_VIA_OP is the base type, and QR_VIA_LUXI extends
it (when doing luxi queries). But on the wire they have the same

51d991d7 11/20/2012 11:26 am Iustin Pop

Fix docstrings for the Filter type

While looking at the opcode docs and clicking accidentally on the
filter type, I saw that the haddock formatting is broken due to
non-escaped use of special chars. Let's convert the ascii-like
formatting to haddock, and have nicer apidoc....

32a569fe 11/15/2012 12:20 pm Iustin Pop

Cleanup THH function use from built module namespace

Currently, THH.hs "injects" into the built code names of library
functions like Text.JSON.makeObj, Ganeti.JSON.fromObj, etc. built
directly from strings, via (e.g.)

varE (mkName "makeObj")

This means that the "makeObj" name must exist in the target module,...

29a30533 11/12/2012 01:21 pm Iustin Pop

Remove unsafePerformIO usage

We need to change a few things, most importantly CLI options defaults,
but otherwise we already used the path to files from functions which
were already in the I/O monad, so we don't have to change much of the
code flow.

Additionally, Path.hs now has an explicit export list, to stop...

73b16ca1 11/12/2012 12:02 pm Iustin Pop

Annotate confd startup/luxi binding error

The luxi binding is now annotated for better readability.

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>

View revisions

Also available in: Atom