Statistics
| Branch: | Tag: | Revision:

root / lib @ 46ae85de

# Date Author Comment
46ae85de 02/27/2014 05:28 pm Helga Velroyen

Add some whitespace to fix formatting

Some error messages were lacking some spaces between lines
to make it more readable.

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

da27bc7d 02/27/2014 05:28 pm Helga Velroyen

Consider old client cert only when available

This fixes a bug which occurred only after upgrading
from 2.10 to 2.11. During the cluster renew-crypto
operation, Ganeti tries to include the old certificate
in the candidate map while it is providing new
certificates. This failed when there was no certificate...

b3724640 02/27/2014 05:11 pm Jose A. Lopes

Fix return of 'Validate'

  • fix return of 'Validate' in docstrings
  • fix all call sites
  • fix all tests

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Helga Velroyen <>

be6cdf67 02/27/2014 03:17 pm Michele Tartara

Add reason for job pickup to the trail

Add a new entry in the reason trail when a job is picked up by MasterD from the
hard drive, after LuxiD put it there.

Note that the signature of NameToReasonSrc is changed in an incompatible way,
although it's a public method because in this commit we also change its only...

653bc0f1 02/27/2014 03:17 pm Michele Tartara

Make the AddReason method public

It will need to be accessed from outside the class too in one of the next
commits.

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

a8c1f633 02/26/2014 03:48 pm Hrvoje Ribicic

Merge branch 'origin/stable-2.10' into stable-2.11

  • stable-2.9
    Make gnt-debug locks display fake job locks properly
    Make NiceSort treat integers well
    Revision bump for 2.9.5
    Set release date for 2.9.5
    Add NEWS entry for 2.9.5

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

52b655cb 02/26/2014 01:41 pm Hrvoje Ribicic

Merge branch 'origin/stable-2.9' into stable-2.10

  • stable-2.9
    Make gnt-debug locks display fake job locks properly
    Make NiceSort treat integers well

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

fa0192b2 02/26/2014 12:22 pm Hrvoje Ribicic

Make gnt-debug locks display fake job locks properly

When a job is dependent on other jobs, a fake lock is created whose
pending entry contains a list of job ids waiting on the job. gnt-debug
locks did not expect the job ids to be ints, crashing when encountering...

0fe20731 02/26/2014 12:22 pm Hrvoje Ribicic

Make NiceSort treat integers well

NiceSort is invoked on arrays that may contain strings, but in other
situations can contain ints as well. As this surprisingly makes sense,
add a tiny modification to make NiceSort work in these conditions.

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

ead368bb 02/24/2014 04:42 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Let the instance's tuple of nodes start with the primary
    Fix the test that checks for the order of instance's nodes
    Revision bump for the 2.10.0 release
    Update NEWS file for 2.10.0
  • stable-2.9...
0f0ca306 02/24/2014 03:56 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.8
    Fix expression describing optional parameters

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

90402786 02/24/2014 03:47 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Fix expression describing optional parameters

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

ad55b2d4 02/24/2014 03:33 pm Klaus Aehlig

Fix expression describing optional parameters

The NIC's network and vlan are also newly added, hence need to be
considered optional to remain backwards compatible.

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

2977b72c 02/24/2014 01:53 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Fix net-common script in case of routed mode
    Document hspace's SPN parameters
    Document spindles in TSPEC
    man: Update the manual page of gnt-node FAILOVER
    Make hbal deal with no-LVM storage space properly...
f2a3c4f0 02/24/2014 11:20 am Petr Pudlak

Let the instance's tuple of nodes start with the primary

Before the tuple of nodes of an instance was created from a set, listing
the nodes in alphabetical order. This patch ensures that the primary
node is always the first one in the list.

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

9cdea43f 02/24/2014 11:09 am Petr Pudlak

Check the existence of system users and groups at bootstrap

Before, if any of these were missing, the creation of a cluster failed
and the cluster remained in an inconsistent state, without the
possibility to destroy it or to re-create it (#603).

This patch calls 'GetEnts' during bootstrap, which tries to read all...

fd5578ee 02/20/2014 07:05 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Improve job status assert affected by race condition
    Export and import Disk/NIC name
    Fix backup import in case NIC is inside a network
    Override get() method of ConfigParser

Conflicts:
lib/cmdlib/instance.py: manually apply 0973f9ed on...

e6e17529 02/20/2014 05:23 pm Hrvoje Ribicic

Improve job status assert affected by race condition

In the sliver of time between choosing a waiting job to be executed and
trying to acquire locks for its execution, the status of the job can be
changed to canceling. An assert checking the job status neglected to...

0f68f7fa 02/20/2014 04:45 pm Dimitris Aragiorgis

Export and import Disk/NIC name

Name of Disk/NIC were not exported during backup until now.
Use the exported info during gnt-backup import.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Michele Tartara <>
Reviewed-by: Michele Tartara <>

0973f9ed 02/20/2014 04:45 pm Dimitris Aragiorgis

Fix backup import in case NIC is inside a network

Network UUID is written in .ini file during backup export
but is not used by _ReadExportParams(). This patch fixes it.

Please note that in case a network is given, link and mode should
not be included in NIC options....

523170de 02/20/2014 04:45 pm Dimitris Aragiorgis

Override get() method of ConfigParser

During backup import/export SafeConfigParser() is used to
save/restore instance's configuration. There is a possibility if an
export is done with a different Ganeti version, a specific value not
to be saved during export (e.g. the NIC/Disk name) but still...

3e8a6f39 02/20/2014 10:22 am Helga Velroyen

Smooth renewal of client certificates

This patch fixes another chicken-and-egg problem which
occurred when the node certificates get renewed. When
renewing a node certificate, the previous certificate
has to be used to update the configuration. To address...

ab4b1cf2 02/14/2014 03:51 pm Helga Velroyen

Use node UUID as client certificate serial number

It turns out, that some implementations of OpenSSL are more
pedantic in checking the certficates than others. In this
particular case, the SSL connection could not be
established when the serial number of the certificates...

d5104ca4 02/14/2014 03:51 pm Helga Velroyen

Revert "Disabling client certificate usage"

This reverts commit 45f75526b848, which was introduced to
temporarily disable the implementation of SSL client
certificates. As this patch series fixes the reason for
the disabling, we are rolling back the patch....

0cd5ab45 02/12/2014 05:27 pm Petr Pudlak

Remove the HTOOLS configuration variable

.. and update the code that uses it.

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

929efcc3 02/11/2014 06:05 pm Klaus Aehlig

Gracefully handle queries for non-existing nodes

When adding a node, Ganeti checks whether the node is already
part of the cluster by querying for the node name. However,
as queries are meant to return all nodes with the given name,
it might well return the empty list when a new node is to be...

adcccd43 02/10/2014 06:24 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Fix 'JobIdListOnly' type from 'List' to 'Map'
    Remove NEWS entry for 2.9.4
    Workaround for monitor bug related to greeting msg
    hotplug: Verify if a command succeeded or not
    hotplug: Call each qemu commmand with an own socat...
ddd667f7 02/06/2014 12:45 pm Thomas Thrainer

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Make the LUInstanceCreate return node names, not UUIDs
    Document new handling of degraded instances in NEWS
    Gracefully handle degraded instances in verification
    Be aware of the degraded case when cleaning up an instance...
7231ca26 02/06/2014 10:49 am Dimitris Aragiorgis

Workaround for monitor bug related to greeting msg

QMP may return multiple greeting messages upon connection.
This is reported on qemu-devel. The fix is one-liner but
until it get's released this is a quick and dirty workaround
that flushes the client's buffer after getting the first...

066f16b0 02/06/2014 10:49 am Dimitris Aragiorgis

hotplug: Verify if a command succeeded or not

Just after issuing _CallHoplugCommands() we invoke
_VerifyHotplugCommand() which parses `info pci` result
and searches for given PCI slot and device id.

If we previously had removed a device but it is still there...

89c10241 02/06/2014 10:49 am Dimitris Aragiorgis

hotplug: Call each qemu commmand with an own socat

Previously we issued one socat command with two "\n" separated
actions (e.g. netdev_add ...\ndevice_add...)

After having observed a strange monitor behavior [1] splitting
those commands and introducing a sleep time in between, may reduce...

b26a275a 02/04/2014 10:51 am Klaus Aehlig

Fix specification of TIDiskParams

Commit 580b1fdd incorrectly assumes that disk parameters are
just the standard ones, whereas the man page explicitly states
that additional parameters can be passed as well, if they make
sense for the chosen storage type. Fix this....

bddc92ee 02/04/2014 10:48 am Klaus Aehlig

Make BlockDev subclasses adhere the interface for Create

In commit 702c3270 two new parameters were added to the
Create function of BlockDev. Make subclasses also adhere
this specification.

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

b7a990e3 02/03/2014 05:45 pm Hrvoje Ribicic

Make the LUInstanceCreate return node names, not UUIDs

The LUInstanceCreate returned names instead of UUIDs in 2.6. Along the
way, the names were internally replaced with UUIDs, and the abstraction
leaked. This patch fixes the issue.

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

c032b2ce 02/03/2014 04:16 pm Klaus Aehlig

Make BlockDev subclasses adhere to new interface

In commit 702c3270 two new parameters were added to the
constructor of BlockDev. Make the subclassess accept these
additional parameters as well.

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

702c3270 01/31/2014 06:28 pm Dimitris Aragiorgis

Make disk.name and disk.uuid available in bdev

Until now Disk name and uuid was not available on bdev level.
In case of ExtStorage, this info is useful, and may be for other
templates in the future too.

This patch treats the name and uuid object slots just like the size...

401b773e 01/31/2014 12:07 pm Klaus Aehlig

upgrade: start daemons after ensure-dirs

On upgrading a cluster, we only can rely on daemons starting
up cleanly, if all needed directories are generated first. So
ensure-dirs needs to be run first.

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

099ed3b2 01/30/2014 06:28 pm Klaus Aehlig

Gracefully handle degraded instances in verification

The current code assumes that every instance either is of type
diskless or has at least one disk. However, with the option to
remove individual disk degraded 0-disk non-diskless instances
can occur. While such instances usually are not useful, Ganeti...

7e219d1b 01/30/2014 06:28 pm Klaus Aehlig

Be aware of the degraded case when cleaning up an instance

In the case of a degraded file-based instance, the file storage directory
for that instance cannot be obtained by looking at the first disk. Use
the standard location, computed from first principles, in this case....

9e14897d 01/30/2014 02:48 pm Klaus Aehlig

Preserve disk basename on instance rename

For file-based instances, upon rename, the directory containing
the instance disks is moved. Therefore, the basename needs to
be preserved in this case. Fix this. Note that so far, this
worked by accident as before 94e252a3 file names used to be...

2ee9171a 01/29/2014 05:26 pm Hrvoje Ribicic

Add QA tests for RAPI multi-instance allocation

The instance multi-allocation had no tests to detect its breakage, and
this patch fixes that.

Signed-off-by: Hrvoje Ribicic <>
Reviewed-by: Klaus Aehlig <>

d9fdd354 01/29/2014 05:26 pm Hrvoje Ribicic

Fix multi-allocation RAPI method

The OpInstanceMultiAlloc that the instances-multi-alloc RAPI method
uses accepts a list of OpInstanceCreate opcodes rather than a list of
dictionaries as provided by the method. This patch correctly constructs
the opcodes, allowing the RAPI call to work as expected....

94e252a3 01/28/2014 06:05 pm Ilias Tsitsimpis

Assign unique filenames to filebased disks

With the new format for cmdline arguments, the user is able to add a
disk to an instance at a specific index. But filebased disks' filenames
have the form "{0}/disk{1}" where '{0}' is the file_storage_dir and
'{1}' is the index of the disk. So if an instance has 3 disks and we...

1dec44b2 01/28/2014 05:10 pm Klaus Aehlig

Add missing import

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Hrvoje Ribicic <>

baaa2ece 01/28/2014 03:17 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Enable network tags in Haskell code
    Haskell style: explicit errors, visible in the type
    Clarify spacing in record syntax
    Improve the point-free section of the style guide
    Add code style document to documentation...
410945f1 01/27/2014 05:36 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Revision bump for 2.9.3
    Schedule 2.9.3 release
    Document fix of issue 691 in NEWS
    NEWS: fix typo in 2.8.4 release
    Fix 'hvparams' of '_InstanceStartupMemory' on hypervisors
    Add missing option to gnt-instance documentation...
45f75526 01/24/2014 05:06 pm Helga Velroyen

Disabling client certificate usage

This patch temporarily disables the usage of the client
SSL certificates. The handling of RPC connections had a
conceptional flaw, because the certificates lack a proper
signature. For this, Ganeti needs to implement a CA,...

30b12688 01/24/2014 12:05 pm Jose A. Lopes

Fix 'hvparams' of '_InstanceStartupMemory' on hypervisors

Most hypervisors were calling '_InstanceStartupMemory' but not passing
the 'hvparams' keyword argument. Actually, it is not necessary to
pass this argument given that it is an attribute in the instance...

5a93930f 01/23/2014 04:32 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Version bump for 2.8.4 and NEWS update
    Update NEWS file with news about job cancellation bugfix
    Fix QA flakiness
    Linting fix: remove unused import
    Add missing parameter entry to man file
    Add QA test for job cancellation...
1a705513 01/22/2014 04:35 pm Hrvoje Ribicic

Run drbdsetup syncer only on network attach

As late as DRBD 8.3.11, the drbdsetup syncer command has a bug causing
nodes to hang from time to time, requiring manual intervention to fix.
The use of the command cannot be avoided, but the incidence of use can...

054a9d17 01/20/2014 02:11 pm Hrvoje Ribicic

Add correct locking of master node to gnt-debug delay

The gnt-debug delay command required locks for all nodes except the
master - this patch fixes the issue by adding master to the locks
whenever needed.

Signed-off-by: Hrvoje Ribicic <>
Reviewed-by: Klaus Aehlig <>

95a4e33f 01/20/2014 02:11 pm Hrvoje Ribicic

Add job id type assert to jqueue.py

While the changes introduced in previous patches should stop any job
id parameters reaching the queue as strings, add an assertion here to
catch any strings making it through.

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

7f97eb93 01/20/2014 02:11 pm Hrvoje Ribicic

Add job id transformation/check to Luxi Python client

This patch adds checks to the Luxi client, making sure that job ids
are converted from strings to ints before being passed on, or that an
error is reported.

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

1ec34e26 01/20/2014 02:08 pm Apollon Oikonomopoulos

query: fix detection of master in _GetNodeRole()

Commit 1c3231aa changed the invocation of _GetNodeRole() to pass the
master node by UUID and not by name, but didn't change the
implementation to compare the nodes by name. As a result, the master
node (which is also a master candidate) would always fall through to the...

40960882 01/20/2014 11:50 am Klaus Aehlig

Move vcluster-related constants to Constants.hs

...as, in that way, they will also be available in Haskell,
where job replication happens as well.

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

7b5f0674 01/17/2014 01:45 pm Dimitris Aragiorgis

Include target node in hooks nodes for migration

In case of DRBD, hooks run on both primary (source) and secondary
(target) nodes. To get the same behavior for DTS_EXT_MIRROR, where we
do not have secondary node, we should explicitly add target node to
hooks nodes during instance migration/failover....

178ad717 01/16/2014 05:11 pm Klaus Aehlig

Make max_running_jobs queryable

As we have introduced a new cluster parameter, it should
be also visible when querying about the cluster configuration.

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

ea22736b 01/16/2014 05:11 pm Klaus Aehlig

Add a command-line parameter for max_running_jobs

...so that this opcode parameter can become available for 'gnt-cluster modify'.

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

ad756c77 01/16/2014 05:11 pm Klaus Aehlig

Add opcode parameter for the maximal number of running jobs

This parameter of OpClusterSetParams will allow to set the
maximal number of jobs to be run simultaneously.

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

cf048aea 01/16/2014 05:11 pm Klaus Aehlig

Add parameter max_running_jobs to the cluster configuration

This cluster-wide parameter will determine how many non-finalized jobs maximally
should be in a not queued state at the same time.

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

cb8028f3 01/15/2014 05:48 pm Jose A. Lopes

Simplify 'GetMasterInfo' RPC

RPC 'GetMasterInfo' returns several fields, namely, 'master_netdev',
'master_ip', 'master_netmask', 'master_node', and 'primary_ip_family',
of which only the 'master_node' is actually used.

In this patch:
  • remove all the other fields and keep only the 'master_node' field....
c1410048 01/15/2014 11:27 am Helga Velroyen

Add certificate of auto-promoted master candidates to map

When a normal node is auto-promoted to be a master
candidate, its SSL client certificate digest needs
to be added to the map of candidate certificates
as well.

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

95d70148 01/13/2014 07:43 pm Jose A. Lopes

Hook KVM hypervisor with KVM daemon shutdown files

  • modify the KVM hypervisor to look for the shutdown files created by
    the KVM daemon, which determine whether an instance was shutdown by
    the user
  • modify the KVM hypervisor to spawn the KVM daemon if it is not...
afa0fca4 01/13/2014 07:43 pm Jose A. Lopes

User shutdown hypervisor parameter

Add user shutdown parameter for KVM. Based on this parameter, decide
what information to report for a KVM instance, for example,
distinguish between 'ADMIN_down' and 'USER_down'.

Signed-off-by: Jose A. Lopes <>...

306b855a 01/13/2014 07:43 pm Jose A. Lopes

Add helper function to tell if a daemon is alive

Add helper function 'utils.IsDaemonAlive' to tell if a daemon is alive
by name. This function will be necessary for the KVM hypervisor to
determine if the KVM daemon is running and otherwise start it.

Signed-off-by: Jose A. Lopes <>...

570008e3 01/13/2014 07:43 pm Jose A. Lopes

Fix docstring for 'AsyncStreamServer'

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

02d17fe3 01/13/2014 12:10 pm Dimitris Aragiorgis

Remove deprecated _ERROR_DATA_KEY in QMP

Commit de253f14 of QEMU repo "BREAKS QMP's compatibility for
the error response" as it removes "data" key from qmp error
response messages. To this end we only log "class" and "desc"
values of the message.

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

9b85ede9 01/13/2014 12:08 pm Klaus Aehlig

Add utility to compare versions

This will be needed, e.g., for post-upgrade task, as they
have to decide whether a feature was not yet present at
the version started from.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Hrvoje Ribicic <>

74289509 01/10/2014 02:31 pm Klaus Aehlig

Merge branch 'stable-2.10' into master

  • stable-2.10
    Run postupgrade hook after upgrade
    Provide path to post-upgrade
    Add an empty post-upgrade hook
    design: support post-upgrade hooks
    Also add the current version to the intent-to-upgrade file

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

4a67e386 01/10/2014 02:19 pm Klaus Aehlig

Run postupgrade hook after upgrade

To allow for necessary last-moment adaptions, of the new cluster,
we run the post-upgrade hook of the target version, providing
the version we originally started from.

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

1ef0324f 01/10/2014 02:19 pm Klaus Aehlig

Provide path to post-upgrade

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

3cac836b 01/10/2014 02:19 pm Klaus Aehlig

Also add the current version to the intent-to-upgrade file

Our design states, that the intent-to-upgrade file contains "the current
version of ganeti, the version to change to, and the process ID". Make the
implementation fit with that design.

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

c8fca479 01/10/2014 10:03 am Santi Raffa

admin.rst: update and reword disk template section

The disk template section was not updated for Gluster. This commit
also refactors the section slightly by unifying the different remarks
about /etc/ganeti/file-storage-paths.

sphinx_ext is also changed in order to not hardcode too much...

52261ad2 01/09/2014 04:53 pm Klaus Aehlig

Remove certification on 2.11 to 2.10 downgrade

While version 2.10 ignores any leftover client certificates, their
presence will prevent a the cluster working after an upgrade back
to version 2.11 again. So we have to remove them right at the
downgrade.

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

c09c495c 01/09/2014 04:53 pm Klaus Aehlig

Add support for version-specific downgrade tasks

Upgrading can have no specific knowledge about additional
tasks besides upgrading the configuration, as upgrades need
to be able to go to any future version (within the same major
version). Downgrading, however, is version specific and always...

02a6b50a 01/09/2014 01:22 pm Michele Tartara

Improve backwards compatibility of Issue 649 fix

Commit e6e4ff4cf8d0100f331f94f7a27aa1e03a5d0e7d fixed Issue 649 by switching the
separator for usb_devices from comma to space. That solved the problem with
the command line, but RAPI was able to work with commas too, so, for backwards...

ed748771 01/08/2014 05:07 pm Helga Velroyen

Correct exception when ssconf file does not exist

After an upgrade to 2.11, the ssconf file for the master
certificates might not exist. Based on the non-existance,
noded falls back to a compatibility mode regarding dealing
with SSL certificates. The check for the ssconf file...

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

e6e4ff4c 01/07/2014 05:52 pm Michele Tartara

Change usb_devices separator to whitespace

The usb_devices parameter was using comma as a list separator, but this cannot
work because comma is already used as the hypervisor parameter separator.

Change it to use whitespace as a separator, in accordance to what already done...

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

6ee8fdd3 12/20/2013 11:34 am Michele Tartara

Ensure that all the hypervisors exist in the config file

All the hypervisors are supposed to exist in the config file, but it might not
be so after upgrades from old versions. This patch ensures that all the missing
hypervisors are added with their default values to the config file....

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