Statistics
| Branch: | Tag: | Revision:

root / src / Ganeti / Rpc.hs @ b9202225

History | View | Annotate | Download (21.6 kB)

# Date Author Comment
ed7f7fd9 01/16/2014 05:13 pm Petr Pudlak

Update set_watcher_pause to use ClockTime instead of Double

This only affects the internal representation in the Haskell part.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

83a451f5 01/07/2014 10:14 am Klaus Aehlig

Add RPC for setting the queue drain flag

As luxid is also responsible for handling requests to drain the job queue,
we need the corresponding RPC in Haskell as well.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Guido Trotter <>

b3cc1646 12/20/2013 03:15 pm Helga Velroyen

Verify incoming RPCs against candidate map

From this patch on, incoming RPC calls are checked against
the map of valid master candidate certificates. If no map
is present, the cluster is assumed to be in
bootstrap/upgrade mode and compares the incoming call...

f3ac6f36 12/19/2013 01:59 pm Klaus Aehlig

Merge branch 'stable-2.10' into master

  • stable-2.10
    Version bump for 2.10.0~rc1
    Update NEWS for 2.10.0 rc1 release
    Fix pylint 0.26.0/Python 2.7 warning
    Update INSTALL and devnotes for 2.10 release
  • stable-2.9
    Bump revision for 2.9.2
    Update NEWS for 2.9.2 release...
c486fb6c 12/16/2013 12:37 pm Thomas Thrainer

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Bump revision for 2.9.2
    Update NEWS for 2.9.2 release
    Pass hvparams to GetInstanceInfo
    Adapt parameters that moved to instance variables
    Avoid lines longer than 80 chars
    SingleNotifyPipeCondition: don't share pollers...
5ce9cc30 12/13/2013 11:57 am Klaus Aehlig

Add the RPC-call set_watcher_pause

With luxid taking over responsibility for handling watcher-pause requests,
it needs to know about this RPC. So have it available in Haskell as well.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

557f5dad 12/13/2013 11:57 am Klaus Aehlig

Generate a separate return type for the job queue update RPC

The instantiation of RPC requires a bidirectional functional dependency
between call type and return type. Hence we cannot use Unit everywhere.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

affe1792 12/11/2013 07:43 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Version bump for 2.8.3
    Update NEWS for 2.8.3 release
    Support reseting arbitrary params of ext disks
    Allow modification of arbitrary params for ext
    Do not clear disk.params in UpgradeConfig()...
289e7fcc 11/27/2013 09:40 am Klaus Aehlig

eta-reduce isIpV6

This is not only better style, but also fixes a lint error.
Also use the infix form of `elem` to increase readability.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Michele Tartara <>

b5c3a4f2 11/26/2013 06:55 pm Guido Trotter

Ganeti.Rpc: use brackets for ipv6 addresses

We detect an IPv6 vs V4 address based on columns, rather than passing
the family from the cluster object to be more future proof (in case
we'll ever support mixed clusters).

Unfortunately quite a bit more code is required to test this: we need an...

835050f3 11/26/2013 03:31 pm Klaus Aehlig

Compress JobqueueUpdate RPCs

Noded understands compressed RPCs for updating files in the
(replicated) job queue. Make use of this feature.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

0808e9d5 11/14/2013 05:40 pm Petr Pudlak

Add NodeGroup to InstanceConsoleInfoParams

Before, calls to `gnt-instance list -o console` with an instance on a
node with a custom SSH port failed because of missing group
configuration. This patch fixes the problem.

Signed-off-by: Petr Pudlak <>...

14933c17 11/14/2013 03:08 pm Jose A. Lopes

Add Haskell hypervisor instance state

Add 'InstanceState' datatype which is the Haskell counterpart of the
Python type 'HvInstanceState'.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

a716edba 11/08/2013 07:00 pm Klaus Aehlig

Support RPC asking to replicate part of the job queue

To be able to replicate the job queue, in particular the serial,
luxid needs to be able to send the jobqueue_update RPC. So add
its definition.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Michele Tartara <>

ad56f735 10/17/2013 11:09 am Hrvoje Ribicic

Haskell RPCs can now differ in parameters

The Haskell interface allowed multi-node RPCs to be executed in
parallel, but with the same parameters every time. This restriction
is now lifted by providing a function call accepting pairs of nodes
and parameters....

b9e12624 10/17/2013 11:09 am Hrvoje Ribicic

Add a console information RPC call

As the instance queries need console information, and the information
is retrieved through python classes that should not be ported yet, an
RPC call supplying the information has been added. Some tests as well.

Signed-off-by: Hrvoje Ribicic <>...

c14ba680 10/16/2013 08:56 pm Hrvoje Ribicic

Enable 'AllInstancesInfo' RPC call in Haskell

The AllInstancesInfo call appears to have been implemented but never
used. The commit makes it usable by modifying the parameter type and
serialization.

Signed-off-by: Hrvoje Ribicic <>
Reviewed-by: Jose A. Lopes <>

c03224f6 10/08/2013 03:57 pm Jose A. Lopes

Hs2Py constants: add RPC timeout constants

Add RPC timeout related constants to the Haskell to Python constant
generation. The Haskell data type 'RpcTimeout' is moved from
'Ganeti.Rpc' to 'Ganeti.Types' so it can be used by
'Ganeti.HsConstants' without causing circularity problems with...

ccf17aa3 09/20/2013 04:02 pm Jose A. Lopes

Move 'StorageField' to 'Ganeti.Types'

Move 'StorageField' to 'Ganeti.Types' in order to break the
circularity of 'Ganeti.Rpc' and be able to generate constants from
this Haskell data type.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Klaus Aehlig <>

6dc0cb59 09/12/2013 02:01 pm Jose A. Lopes

Add 'daemonsPorts' and related constants

  • add 'daemonsPorts' and related constants used in the construction of
    the 'Map' that maps each daemon to its corresponding protocol and
    port. This breaks constant 'daemonsPortsGanetiNoded' which is
    automatically generated from the Python dictionary 'DAEMONS_PORTS'...
c832f7e9 07/16/2013 10:29 am Klaus Aehlig

Merge branch 'stable-2.8' into master

  • stable-2.8
    Change method dispatch in ClientOps to enforce luxi.REQ_ALL
    Allow modify_etc_hosts to be changed
    Add --modify-etc-hosts option for CLI tools
    Add luxiReqQueryNetworks to LuxiOp
    Log received message at debug level...
c393abbf 07/11/2013 02:42 pm Michele Tartara

Log RPC errors from inside executeRpcCall

executeRpcCall is the function to be used for executing RPCs, so it makes sense
to use it as the single point for logging all thte RPC call errors.

Fixes Issue 293.

Signed-off-by: Michele Tartara <>...

a246ce76 07/11/2013 02:41 pm Michele Tartara

Factor out the logRpcErrors function

This function can be useful to multiple RPC calls, therefore it is moved
to the file containing the common RPC functions.

Also, it is made more generic by changing its signature.

Signed-off-by: Michele Tartara <>...

212b66c3 07/02/2013 01:53 pm Helga Velroyen

Turn 'exclusive_storage' into storage parameter (hs)

This is the haskell implementation of my patch "Extend RPC call
'node_info' by storage parameters". It turns the 'exclusive
storage' flag into a storage parameter of the LVM storage types.
Besides that, this patch moves some types into the Types.hs....

f43c898d 07/01/2013 02:40 pm Bernardo Dal Seno

Export CPUs used by the node OS

They are exported through the LUXI, RAPI, and IAllocator interfaces.

Signed-off-by: Bernardo Dal Seno <>
Reviewed-by: Klaus Aehlig <>

32389d91 06/14/2013 02:43 pm Helga Velroyen

Refactor NodeInfo RPC regarding storage reporting

The NodeInfo RPC call is refactored to handle now more than
just storage reporting for volume groups.

Since NodeInfo now returns storage space information not
necessarily for volume groups, but also for other storage...

0f0f6d7d 06/14/2013 02:42 pm Helga Velroyen

Add storage type to NodeInfo result

So far, the storage information returned from RPC call
NodeInfo contained only information about volume groups.
In order to extend the storage reporting to other storage
type, we include another field "type" in the result of...

030ab01a 06/12/2013 10:18 am Helga Velroyen

Add hvparams to RPC call 'node_info'

This patch adds the hvparams parameter to the RPC call
'node_info'. It also adjusts the related code in noded.py
and Query/Node.hs

Signed-off-by: Helga Velroyen <>
Reviewed-by: Thomas Thrainer <>

4b92e992 05/21/2013 03:13 pm Helga Velroyen

RPC 'node_info': <storage_type,key> instead of vg_names

This replaces the field 'vg_names' in the RPC call of 'node info' by
'storage_units'. A storage unit is a tuple <storage_type,key>
and a generalization of a vg_name. The list of vg names is replaced by...

842515dd 02/25/2013 11:36 am Iustin Pop

Add export_list RPC call definitions

This is straightforward, as the call has no parameters and a very simple return type.

Signed-off-by: Iustin Pop <>
Reviewed-by: Guido Trotter <>

08f7d24d 02/25/2013 11:36 am Iustin Pop

Improve TemplateHaskell code to support empty objects

Currently, an empty objects will generate warnings as the arguments of
various functions are unused. By adding conditional code for this, we
can support generation of empty objects, e.g. like needed in Rpc code....

8920fa09 02/20/2013 06:47 pm Iustin Pop

Switch the RPC module over to the multi interface

This replaces the very-basic parMap of IO actions (fully serialised,
as parMap won't work here), to the multi interface.

This makes a simple "time gnt-node list" on a 6-node cluster go from
3.2s to ~0.9s, and allows even better parallelisation - before,...

9c0a27d0 02/20/2013 06:47 pm Iustin Pop

Simplify RPC error cases

This patch removes the node from the RPC error constructurs
CurlLayerError and OfflineNodeError. The rationale is that we anyway
return tuples (node, result), and removing this duplication allows
simplified signatures/calls in the execution of RPC calls....

85f6a869 02/20/2013 06:47 pm Iustin Pop

Reduce duplication of curl options computation

Some curl option are request-specific, but not node specific: e.g. rpc
timeout, etc. The patch changes the HttpClientRequest type so that we
can pre-seed such options, instead of rebuilding the list in each
individual request execution....

1ca709c1 02/20/2013 06:47 pm Iustin Pop

Switch the curl bindings from optional to required

Currently, we support curl being optional via some sporting exercises:
ifdefs in the code, data types that represent 'Curl is disabled'
state, etc. However, with the future work on RPC, we would have to
even make the dependencies list conditional on it, etc. This is too...

3add7574 12/24/2012 11:38 pm Iustin Pop

Rename htools/ to src/

Per offline discussions, this is the first patch of the
renames. Tested with "make distcheck", seems to work fine.

The only change outside of the renaming is a bit of simplification in
the .gitignore rules; otherwise, simply s/htools/src/....