Statistics
| Branch: | Tag: | Revision:

root / lib @ fc6ccde4

# Date Author Comment
fc6ccde4 01/08/2014 03:01 pm Helga Velroyen

Create client certificate for normal nodes

The vcluster QA revealed a bug in the SSL certificate
handling code, where certificates were only created
when the node is a master-candidate. However, every node
should have a certificate, but only the digests of the...

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

Verify client certificates

This patch adds a step to 'gnt-cluster verify' to verify
the existence and validity of the nodes' client
certificates. Since this is a crucial point of the
security concept, the verification is very detailed with
expressive error messages and well tested by unit tests....

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...

28756f80 12/20/2013 03:15 pm Helga Velroyen

Handle promoting/demoting nodes wrt to client certificates

This patch makes Ganeti correctly handle the client
certificates when nodes get promoted to master candidates
or demoted to normal nodes.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

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

Extend RPC call to create SSL certificates

So far the RPC call 'node_crypto_tokens' did only retrieve
the certificate digest of an existing certificate. This
call is now enhanced to also create a new certificate and
return the respective digest. This will be used in various...

60cc531d 12/20/2013 03:15 pm Helga Velroyen

Create client SSL certificates on cluster init

This patch makes Ganeti create a client SSL certificate for
the master node on cluster initialization. Note that some of
the code in this patch is later moved into an LU to serve
requirements for crypto renewal and updates, but for this...

1059337d 12/20/2013 03:15 pm Helga Velroyen

Store candidate certificates in ssconf

This patch enables Ganeti to store the candidate
certificate map in ssconf. A utility function to
read it is provided as well.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

840ad2ab 12/20/2013 03:15 pm Helga Velroyen

Handle client certificates on node add/remove

This patch adds the certificate of a newly added or
readded master candidate node to the map of master candidate
certificates. It removes a master candidate node's certificate
digest from the candidate certificate map if the node is...

5b6f9e35 12/20/2013 03:15 pm Helga Velroyen

Add certificate for master node

On cluster initialization, the master node's
SSL certificate digest is added to the list of master
candidate certificates.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

3bcf2140 12/20/2013 03:15 pm Helga Velroyen

Add candiate certificate map to configuration

At the end of this patch series, incoming RPC calls are
legitimized against a map of master candidate nodes'
SSL certificate digests. This patch adds the map itself
to the cluster's configuration.

Signed-off-by: Helga Velroyen <>...

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

Retrieve a node's certificate digest

In various cluster operations, the master node needs to
retrieve the digest of a node's SSL certificate. For this
purpose, we add an RPC call to retrieve the digest. The
function is designed in a general way to make it possible...

3338a9ce 12/20/2013 03:15 pm Helga Velroyen

Utility functions to manipulate the candidate map

This patch adds a couple of utility functions to manipulate
the map of master candidate SSL certificate digests.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

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...
9ba38706 12/18/2013 07:41 pm Petr Pudlak

Replace errors re-export in luxi.py with proper imports

Instead of re-exporting errors in luxi.py, import rpc/errors.py in the
modules that use them.

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

22656d9a 12/18/2013 04:40 pm Santi Raffa

luxi.py: Fix pylint warning about unused imports

Reexport exception classes more explicitly for pylint's convenience.

Signed-off-by: Santi Raffa <>
Reviewed-by: Helga Velroyen <>

ad3ab87e 12/18/2013 04:34 pm Santi Raffa

rpc: Fix one more py-apidoc warnings

Signed-off-by: Santi Raffa <>
Reviewed-by: Helga Velroyen <>

4e745e62 12/18/2013 03:32 pm Santi Raffa

rpc: Fix py-apidoc warnings

The previous commits shuffled code around using import renames as
glue. apidoc ignores import renames, however, and chokes on some
now invalid link targets.

This commit fixes the issue.

Signed-off-by: Santi Raffa <>...

cda215a9 12/17/2013 10:11 pm Petr Pudlak

Separate the LUXI protocol version from the generic client

This allows other daemons and their clients (such as WconfD) to use a
different versioning sequence of their protocols.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Helga Velroyen <>

24c09d5e 12/17/2013 10:11 pm Petr Pudlak

Rename CallLuxiMethod to CallRPCMethod

Also update error messages and testing code to refer to RPC instead of
LUXI.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Helga Velroyen <>

912b2278 12/17/2013 10:11 pm Petr Pudlak

Split Luxi Client into a generic and a specific part

The generic part will be reused in WConfd.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Helga Velroyen <>

ff1012ef 12/17/2013 10:11 pm Petr Pudlak

Move Transport from luxi.py to a separate module

Also create a new module for RPC errors.
This allows it to be reused for other clients as well.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Helga Velroyen <>

4869595d 12/17/2013 10:11 pm Petr Pudlak

Add a Python directory for RPC code to keep it at one place

Move rpc.py to rpc/node.py and modify imports in existing code.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Helga Velroyen <>

5a904197 12/17/2013 06:12 pm Santi Raffa

Gluster: add the Shared File storage type

The shared file and gluster disk templates should not report their disk
space information like file does, because they do not behave the same.

If a cluster pulls from the same, shared source of storage then it is...

6488e5bc 12/17/2013 06:12 pm Santi Raffa

Gluster: add userspace access support

Add support for the QEMU gluster: protocol. Also change the access
mode routines so they check the access parameter for all templates.

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>...

845b7ed1 12/17/2013 06:12 pm Santi Raffa

Gluster: mount automatically

Add parameters to the Gluster disk template so Gluster can manage the
mount point point autonomously.

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

ac156ecd 12/17/2013 06:12 pm Santi Raffa

Gluster: use ssconf value for mountpoint directory

Gluster still does not mount anything autonomously, but this commit
changes where Gluster expects its mountpoint to be.

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>...

d3e6fd0e 12/17/2013 06:12 pm Santi Raffa

ssconf: Add Gluster mount directory

This commit adds the gluster storage directory to ssconf (without
actually using its value just yet).

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

58793040 12/17/2013 06:12 pm Santi Raffa

Gluster: add GlusterVolume class

This commit teaches Gluster what a volume is and how to use it.

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

8106dd64 12/17/2013 06:12 pm Santi Raffa

Gluster: minimal implementation

Add Gluster to Ganeti by essentially cloning the shared file behaviour
everywhere in the code base.

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

05edafd3 12/17/2013 06:12 pm Santi Raffa

netutils: Add ValidatePortNumber method

This method accepts a port number and checks that it is in fact valid.

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

267520ba 12/17/2013 06:12 pm Santi Raffa

FileStorage: extract file logic to a FileDeviceHelper object

This will allow code reuse for Gluster through composition, rather
than inheritance.

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

2656b017 12/17/2013 06:12 pm Santi Raffa

FileStorage: move to filesstorage.py

Move the FileStorage class in its own file, together with its helper
functions.

Signed-off-by: Santi Raffa <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

d2234191 12/17/2013 06:12 pm Santi Raffa

PathJoin: improve error message when given one argument

PathJoin fails with an unclear message if only one argument is passed
to it. Calling PathJoin("/foo") causes this exception:

Error: path joining resulted in different prefix (/foo != /foo)

However, /foo and /foo obviously share prefixes: what this function...

3fffa0c6 12/17/2013 06:12 pm Santi Raffa

ComputeLDParams: do not spell out disk templates

A large part of the complexity in this function is due to the need
to translate from "template-specific" parameter names to
"template-agnostic" parameter names. This logic is complex and having
complex code for complex logic is okay....

e7d34815 12/17/2013 06:11 pm Santi Raffa

bdev: Fix position of DEV_MAP

This rather important dictionary from constants to classes was hiding
between function definitions. The dict cannot go to the top of the file
as the classes haven't been defined there yet, so it's been pushed
to the bottom of the file....

b0e8ed3f 12/17/2013 04:59 pm Santi Raffa

gnt-cluster verify: demote orphan volume error to warning

Ganeti checks for orphan volume by making sure that it knows about all
volumes on disk; any additional orphan volume, even if created by the
administrator, causes a failure in gnt-cluster verify. Given that...

d75d7772 12/17/2013 01:25 pm Klaus Aehlig

For the commandline, switch to query socket by default

As luxid now understands all the requests used by the command-line tools,
switch the default luxi socket for those to be the socket of luxid.

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

602db636 12/17/2013 10:34 am Klaus Aehlig

Add nic.vlans to the query fields

In commit 3293332 this was only done for the Haskell side; do
so for python as well, to have both views consistent.

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

4a65d4fd 12/16/2013 05:53 pm Thomas Thrainer

Fix pylint 0.26.0/Python 2.7 warning

pylint 0.26.0 on Python 2.7 generates a warning on the string '\ ',
recommending to use the r prefix. This patch adds the missing prefix.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Michele Tartara <>

03b179ce 12/16/2013 05:46 pm Klaus Aehlig

Take a fresh Luxi client for each failing test

Luxid is more strict with closing the connection after receiving
a syntactically incorrect request, gnt-debug cannot use the same
client for several successive tests verifying that a syntactically
incorrect request is recognized as such....

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...
3d680d45 12/12/2013 04:22 pm Klaus Aehlig

Pass hvparams to GetInstanceInfo

...so that the xen command to be called can be determined. This
fixes another semantical conflict of the last merge.

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

ed2fea64 12/12/2013 02:55 pm Klaus Aehlig

Adapt parameters that moved to instance variables

Due to a change in the code organization in stable-2.9, some
method variables became instance variables, causing a semantic
merge conflict. Fix this.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Helga Velroyen <>

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()...
e228ab9c 12/11/2013 01:27 pm Dimitris Aragiorgis

Support reseting arbitrary params of ext disks

If param=default and the param already exists then we remove
it from params dict. This is stolen by GetUpdatedParams() which
is used for hvparams modification/inheritance.

This means that 'default' value is not accepted for an arbitrary...

c5c72215 12/11/2013 01:27 pm Dimitris Aragiorgis

Allow modification of arbitrary params for ext

Disks of ext template are allowed to have arbitrary parameters
stored in the Disk object's params slot. Those parameters can be
passed during creation of a new disk, either in LUInstanceCreate()
or in LUInsanceSetParams(). Still those parameters can not be...

54666867 12/11/2013 01:26 pm Dimitris Aragiorgis

Do not clear disk.params in UpgradeConfig()

Commits 5dbee5e and cce4616 fix disk upgrades concerning params
slot. Since 2.7 params slot should be empty and gets filled
any time needed.

Still ext template allows passing arbitrary params per disk.
These params should be saved in config file for future use....

a63985f3 12/09/2013 02:51 pm Dimitris Aragiorgis

SetDiskID() before accepting an instance

SetDiskID() fills physical_id slot of a Disk object.

LUInstanceSetParams() does not invoke SetDiskID() upon creation of a
new disk. As a result the physical_id slot of the Disk object in
config data is missing.

In case of ext disk template, in AcceptInstance() we invoke...

8b9887c5 12/09/2013 01:59 pm Petr Pudlak

Lock group(s) when creating instances

This is required to prevent race conditions such as removing a network
from a group and adding an instance at the same time. (See issue 621#2.)

Signed-off-by: Petr Pudlak <>
Reviewed-by: Thomas Thrainer <>...

9cbcb1be 12/05/2013 03:10 pm Hrvoje Ribicic

Fix job error message after unclean master shutdown

According to commit 599ee321eb, any job-related error messages should
be encoded within a Ganeti-specific error and not passed on as a
string, to allow for easier parsing.

For jobs suffering from an undesirable status after an unclean master...

77b0d264 12/05/2013 11:39 am Michele Tartara

Add default file_driver if missing

If the file driver of an instance with file based storage is not specified, the
default one is automatically added by the UpgradeConfig function.

Fixes Issue 571.

Signed-off-by: Michele Tartara <>
Reviewed-by: Helga Velroyen <>

364c350f 12/05/2013 11:03 am Jose A. Lopes

Xen handle domain shutdown

Update Xen backend to properly recognize when a domain has been
shutdown by the user and to properly cleanup a shutdown domain when
Ganeti requests Xen to stop this domain.

Partial cherry-pick from 9d22cc90609e3ee8f0f2b34b793a3daced3c0e61...

39348887 12/04/2013 05:52 pm Klaus Aehlig

Remove queue inspection from masterd

When masterd was responsible for queue handling, it would, on
restart, pick up all non-started jobs from the queue. Now that
luxid is responsible for handling the queue, make masterd not
do this any more.

Signed-off-by: Klaus Aehlig <>...

67ec18c0 12/04/2013 04:51 pm Jose A. Lopes

Fix evacuation out of drained node

  • fix node daemon not to skip data, such as, memory and disk size,
    when building the node list to send to HBal, given that these data
    are important for HBal to determine whether an evacuation is
    possible
  • fix iallocator to properly load drained nodes from the list passed...
e8cbe174 12/02/2013 12:39 pm Dimitris Aragiorgis

Introduce _UpgradeSerializedRuntime() method

This method is invoked during _AnalizeSerializedRuntime() and is
meant to modify runtime files in the way cfgupgrade does for
config.data. This could remove deprecated fields, change the
format of the file, add/remove sections, etc....

4eef428e 12/02/2013 12:03 pm Dimitris Aragiorgis

Fix a bug in InstanceSetParams concerning names

In case no name is passed in disk modifications we should
keep the old one. If name=none then set disk name to None.

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Jose A. Lopes <>

546c5100 11/29/2013 02:41 pm Guido Trotter

SingleNotifyPipeCondition: don't share pollers

As widely known Ganeti uses a better1 lock condition notification
library based on operating system pipes.

Inside this library we were using a shared poller for all threads
waiting for a condition. While poller is not thread safe, since (1)...

1c785e0b 11/29/2013 12:23 pm Klaus Aehlig

Parse spindles as integers

When parsing disk parameters, also convert spindles into integers.
This is needed to obtain a syntactically correct request.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Helga Velroyen <>

0359e5d0 11/29/2013 12:10 pm Spyros Trigazis

Add default_iallocator_params cluster parameter

Add a cluster parameter to hold the iallocator parameters used
by the default instance allocator. Implement the option to
modify config.data, query config.data and upgrade man pages,
tests and cfgupgrade tool. The new default_iallocator_params is...

b8f36e88 11/29/2013 12:09 pm Helga Velroyen

Remove parseUnit for spindles

In patch e33c9e6881e6, it was a bit overkill to use
parseUnit for converting the 'spindles' value since it is
only an int without a unit. This patch fixes that.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Klaus Aehlig <>

f228f73c 11/29/2013 12:09 pm Helga Velroyen

Use query client for instance removal

This patch fixes another occurrence of triggering queries
with a non-query client.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Klaus Aehlig <>

70d8491f 11/28/2013 06:01 pm Jose A. Lopes

Destroy Xen domain only if necessary

Check if a given Xen domain still exists after a 'xm shutdown' before
destroying it. This check is necessary in order to cope with Xen
domains created with other version of Ganeti, given that an instance
created in or prior to Ganeti 2.10 will be cleaned up automatically...

059ed766 11/28/2013 06:01 pm Jose A. Lopes

Fix missing '@raise' in docstring of 'StopInstance'

Fix missing '@raise' in docstring of 'StopInstance'.

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

e33c9e68 11/28/2013 10:54 am Helga Velroyen

Fix integer parsing of spindles in gnt-instance add

'gnt-instance' did not parse the spindles value to integer
before submitting the opcode.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Klaus Aehlig <>

3ddc7650 11/27/2013 04:52 pm Jose A. Lopes

Fix error printing

Fixes issue 616.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Michele Tartara <>

62810f07 11/27/2013 03:04 pm Thomas Thrainer

Allow link local IPv6 gateways

Each host using IPv6 always has a link local address in fe80::/10. It is
common to use fe80::1 as default gateway to ease client configuration.
Ganeti prevented this usage, because it made sure that the IPv6 gateway
is in the IPv6 network the instance is connected to....

4289f617 11/27/2013 02:44 pm Thomas Thrainer

Fix NODE/NODE_RES locking in LUInstanceCreate

Both NODE and NODE_RES locks were acquired opportunistically if so
requested by the user. LUInstanceCreate requires, however, that the
actually locked elements on NODE and NODE_RES level are the same.

This patch changes the locking of NODE_RES such that those locks are not...

cfe9bed3 11/27/2013 01:28 pm Helga Velroyen

Fix burnin error of instance name retrieval

Switching to Haskell queries revealed a bug in burnin
regarding the fetching of instance names from queries.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

25bce647 11/26/2013 06:18 pm Santi Raffa

KVM: use custom KVM path if set for version checking

This commit fixes two TODOs from 2008 about using the hardcoded
"default" path for KVM where a custom one could've been set through
`gnt-cluster modify`.

As a result, `gnt-cluster verify` will no longer fail if a custom...

5c98b73e 11/26/2013 11:14 am Helga Velroyen

Instance queries: remove opcodes and LU

Removes the remains of the instance queries.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

64981f25 11/26/2013 11:14 am Helga Velroyen

Export and network queries: remove opcodes and LUs

Removes the remains of the export (aka backup) and network
queries.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

081dc516 11/26/2013 11:14 am Helga Velroyen

Group queries: remove opcodes and LUs

Removes the remains of the group query code.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

dde771ba 11/26/2013 11:14 am Helga Velroyen

Node queries: remove opcodes and LUs

Removes the remains of the node query code.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

71dca138 11/26/2013 11:14 am Helga Velroyen

Make burnin use luxi queries

Burnin was still using some op queries. With this patch,
they are now replaced by luxi queries.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

b40c0e97 11/26/2013 11:14 am Helga Velroyen

Remove op queries from masterd

Masterd still had some 'if' branches for the queries that
used to be op queries, but are now luxi queries. This
patch removes them.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

2a02d6fe 11/26/2013 11:14 am Helga Velroyen

Remove instance query python code

This patch removes the python code for the instance
queries. So far, it replaces it by 'NotImplemented'
exceptions. In a later patch of this series, the
remaining part is remove completely.

Signed-off-by: Helga Velroyen <>...

20fb929a 11/26/2013 11:14 am Helga Velroyen

Make watcher use queries properly

The watcher did not yet use the query client to make
queries. This patch fixes that.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

9045e2c6 11/26/2013 11:14 am Helga Velroyen

Adjust console behavior wrt to operation state

Unlike its cli counterpart, the rapi console operation did
not properly take into account whether the instance is
actually running. This patch fixes this problem.

Signed-off-by: Helga Velroyen <>...

981224e9 11/26/2013 11:14 am Helga Velroyen

User query client necessary for instance queries

There were some places left when code querying for instance
information did not use the query client yet.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

96431562 11/26/2013 11:14 am Helga Velroyen

Switch to Haskell for group queries

This patch removes the group query implementation
in python in order to use the new Haskell implementation.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

fbde16f0 11/26/2013 11:13 am Helga Velroyen

Use query client when neccessary for group queries

This patch makes code use the query client for group
queries where necessary in order to remove the python
queries soon.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

fbeb41e6 11/26/2013 11:13 am Helga Velroyen

Switch to haskell for export (aka backup) queries

This patch removes the python implementation of export
(aka backup) queries. So far, it is replaced by
'NotImplemented' exceptions, but later in this series
it will be replaced completely.

Signed-off-by: Helga Velroyen <>...

44ffd981 11/26/2013 11:13 am Helga Velroyen

Switch to Haskell for network queries

This patch removes the python implementation of network
queries and replaces it with 'NotImplemented' exceptions.
It will be removed completely once all queries are
switched to Haskell.

Signed-off-by: Helga Velroyen <>...

862beeab 11/26/2013 11:13 am Helga Velroyen

Disable node query code

This patch removes the python query implementation for
nodes. So far, the code is replaced by 'NotImplemented'
exceptions, because the overall structure of query classes
can be removed more easily at once when all query
implementations are ready to be removed....

a9532fb0 11/26/2013 11:13 am Helga Velroyen

masterd: implement query via luxi

The master daemon so far still did queries via the python
implementation. This patch implements that it uses the
haskell implementation and removes the node queries from
the list of OP-queriable entities.

Signed-off-by: Helga Velroyen <>...

87747cda 11/26/2013 11:13 am Helga Velroyen

Make watcher use query clients

So far, the watcher was still issuing node queries
via the python implementation. This patche switches to
the haskell implementation.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

a51b19de 11/26/2013 11:13 am Helga Velroyen

Move GetClient() to runtime module

Soon both, the cli and the masterd, will use a luxi
client to run queries. The method to obtain and configure
the luxi client with the right address can be reused from
cli to masterd here. Therefore, this patch moves the...

bc57fa8d 11/26/2013 11:13 am Helga Velroyen

Use a query client for node queries where necessary

To remove the node query's python implementation soon, this
patch makes all users of the queries call the haskell
implementation instead of the python one.

Signed-off-by: Helga Velroyen <>...

1211c6ed 11/26/2013 11:13 am Helga Velroyen

Remove --enable-split-query option

Switching from python to haskell queries, this patch
removes the option to dis/enable the haskell queries
at configure time.

Signed-off-by: Helga Velroyen <>
Reviewed-by: Hrvoje Ribicic <>

fd201010 11/26/2013 11:03 am Jose A. Lopes

Add Xen paused state as a Ganeti running state

The QA test 'TestClusterBurnin' pauses instances and the Xen state
domain 'paused' was not being handled properly by Ganeti because it
was not being classified as either a running or shutdown state. This
patch adds the 'paused' state to the set of running states by...

cc6fd3da 11/25/2013 02:41 pm Dimitris Aragiorgis

Export NIC's UUID and name to network scripts

In case of kvm None values are not allowed in env dict
so we have to add name only if not None.

In case of Xen since we are writing on a file that
is going to be sourced we should not add INTERFACE_NAME=None....

884ec6d4 11/25/2013 02:41 pm Dimitris Aragiorgis

Use HooksDict() to export network options in Xen

Remove duplicate code that exports network options to environment
variables.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

2a3bbbaa 11/25/2013 02:41 pm Dimitris Aragiorgis

Export tags via GetTags() to network scripts

Use GetTags() instance method in order to export instance tags
to NIC configuration scripts and files of kvm and xen hypervisors.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Thomas Thrainer <>...

96ed3a3e 11/21/2013 04:06 pm Dimitris Aragiorgis

Introduce --hotplug-if-possible option

This will be useful for an external entity using RAPI that
wants to modify devices of instances.

The common use case for that is:
"I want to add a NIC/disk to an instance. If it is running
then try to hotplug the device. If not, then just add it to config."...

9e448d7f 11/21/2013 03:45 pm Klaus Aehlig

Parse spindles as integer

The disk parameter "spindles", if present, has to be an integer.
Enforce this already when parsing the command line, instead of
passing around the string representation of that integer.

Signed-off-by: Klaus Aehlig <>...

1ef82b60 11/19/2013 02:18 pm Hrvoje Ribicic

Add an aggregate NIC VLAN field to Python queries

As all other NIC fields have an aggregate retrieval field, add one for
the VLANs as well.

Signed-off-by: Hrvoje Ribicic <>
Reviewed-by: Thomas Thrainer <>

077892f8 11/18/2013 09:51 pm Dimitris Aragiorgis

RAPI: Make use of request_body in Reboot/Remove

Until now, the shutdown_timeout parameter could only be passed to
ShutdownInstance() inside kwargs, causing it to be included in the
request body. Based on that, extend RebootInstance() and
RemoveInstance() so that they can take extra arguments (e.g....

508b9539 11/18/2013 09:51 pm Dimitris Aragiorgis

RAPI: Pass depends body arg (if any) to opcode

Most rlib2 classes override the default _GetDefaultData() method with
custom methods that parse a request's body and query args and return a
(body, specific_static) tuple eventually passed to FillOpCode().
Job dependencies are defined in the `depends` body argument that might...

031d2db1 11/18/2013 05:22 pm Dimitris Aragiorgis

Allow instances to obtain externally reserved IPs

The administrator should be able to assign an externally reserved IP
to a Ganeti instance manually, if desired. Currently this is not
supported. External reservations should act as holes in the pool and
not just as IPs already used by someone outside of Ganeti....

28d466dc 11/18/2013 05:22 pm Dimitris Aragiorgis

Mark cluster's IPs as externally reserved

Currently, upon network creation, nodes' and master's IPs
are reserved in the pool.

This leads to pool reservations ('X' in map) that cannot be changed
afterwards, although they may need to (e.g. in case of node...