Statistics
| Branch: | Tag: | Revision:

root / lib @ c6997f21

# Date Author Comment
c6997f21 09/30/2009 06:35 pm Michael Hanselmann

Change SharedLock to new pipe(2)-based condition

Signed-off-by: Michael Hanselmann <>
Reviewed-by: Guido Trotter <>

48dabc6a 09/30/2009 06:34 pm Michael Hanselmann

Add _PipeCondition class

_PipeCondition is a condition implemented using pipe(2) and poll(2).
It allows the implementation of timeouts without using a busy-wait loop
with time.sleep.

Unlike Python's built-in threading.Condition class and to save file
descriptors and an internal queue, it can only be used to notify...

d76167a5 09/30/2009 06:34 pm Michael Hanselmann

Add _SingleActionPipeCondition class

This class will be used as a basic block for pipe(2)-based
conditions. Upon initialization it creates a pipe and can be
notified once (hence the “single action” in the name). A
callable helper class is used to wait for notifications....

84e344d4 09/30/2009 06:33 pm Michael Hanselmann

SharedLock: implement timeouts

This patch greatly simplifies the SharedLock code and implements
timeouts for the acquire() and delete() functions. A wrapper around
Python's threading.Condition class must be used to ensure thread
safety when check whether there are any waiters left....

23824641 09/30/2009 05:49 pm Luca Bigliardi

Extend confd instances ips query

The query now accepts a link parameter.

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Guido Trotter <>

c8872a0b 09/30/2009 03:59 pm Iustin Pop

Merge remote branch 'origin/master' into mogu

  • origin/master:
    Fix burnin's verbose mode
    Final NEWS update and version increase for 2.0.4
    Encode the actual exception raised by LU execution
    Move the luxi error handling into errors.py
    Fix the confusing ssh/hostname message in node add...
a5229439 09/29/2009 01:06 pm Guido Trotter

confd/client: make it possible to update peer list

Until now the peers have to be the same all the time. Adding a new
function to update the list, and call it from the constructor to avoid
duplicating code.

Signed-off-by: Guido Trotter <>...

5f6f260a 09/28/2009 06:58 pm Guido Trotter

confd/client: pass self to upcalls

It may be handy for upcalls to know which client called them, and call
it back. So we create a new "client" field in the upcall target,
containing the current client instance

Signed-off-by: Guido Trotter <>...

a9613def 09/28/2009 12:37 pm Guido Trotter

ConfdFilterCallback: fix a bug in expire

The HandleExpire function takes the whole "up" structure, and not just
the salt.

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

e6345c35 09/25/2009 06:56 pm Iustin Pop

Encode the actual exception raised by LU execution

Currently, the actual exception raised during an LU execution (one of
OpPrereqError, OpExecError, HooksError, etc.) is lost because the
jqueue.py code simply sets that to a str(err), and the code in cli.py...

a6607331 09/25/2009 06:56 pm Iustin Pop

Move the luxi error handling into errors.py

Currently the luxi error handling is hardcoded as special encoding on
the masterd-side and special decoding on the client side. This patch
moves it to errors.py such that other parts of the code can reuse the
same encoding....

31821208 09/25/2009 06:54 pm Iustin Pop

Fix the confusing ssh/hostname message in node add

Before, it used to say:

ssh/hostname verification failed node1.example.com -> hostname mismatch, got
node2

Now it says for wrong hostnames (maybe too verbose):

ssh/hostname verification failed (checking from node1.example.com): hostname...
392ca296 09/25/2009 05:37 pm Guido Trotter

Implement ConfdFilterCallback

This callback can be stacked with another one, and will filter duplicate
or old results, making handling of results easier.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

ed008420 09/25/2009 05:37 pm Guido Trotter

Remove secrets and kill confd on cluster leave

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

cf7b0cc4 09/25/2009 05:37 pm Guido Trotter

Confd client: add module level documentation

Populate the docstring with documentation on the client library's usage.

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

430b923c 09/25/2009 05:14 pm Iustin Pop

Add uuid on node/instance add and cluster init

This patch does a little bit of cleanup first, since we want to call
GenerateUniqueID without reacquiring the lock.

Note that we don't necessarily need to do this for the cluster, since at
first startup ConfigWriter will do it anyway. But it's better to...

8db31d6b 09/25/2009 04:27 pm Iustin Pop

Automatically cleanup _temporary_ids at save

Signed-off-by: Iustin Pop <>
Reviewed-by: Michael Hanselmann <>
(cherry picked from commit 34d657bae4361b9d6fd8c6314dc7cca57b51c773)

26b316d0 09/25/2009 04:27 pm Iustin Pop

Separate the computation of all config IDs

We will need this in another place, so we abstract the 'compute all
current IDs' functionality into a separate function. We also change the
name of the _ComputeAllLVs to _AllLVs to match the other _All*s
functions....

2d90608c 09/25/2009 04:01 pm Iustin Pop

Change config upgrade to be explicit

Currently the config upgrade is done at each object instantiation, that
means that ganeti-noded will run UpgradeConfig on all objects received
remotely (instances, disks, nics). This is not so good, so this patch
changes it so that only the ConfigWriter runs this method at...

59b76636 09/25/2009 03:22 pm Iustin Pop

Merge commit 'origin/next'

  • commit 'origin/next': (74 commits)
    Fix gnt-node modify online help
    Fix gnt-job info entry in gnt-job(8)
    locking: Don't swallow exceptions
    Add check for duplicate MACs in instance add
    scripts/gnt-node: fix a help string...
c124045f 09/24/2009 06:12 pm Iustin Pop

Add missing import sys to lib/daemon.py

It does “print >> sys.stderr, …” but there is no import sys.

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

d63218ce 09/24/2009 04:06 pm Guido Trotter

KVMHypervisor: wrap long line

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

7118a0df 09/24/2009 02:38 pm Iustin Pop

Export the uuid in RAPI

This also simplifies a little the field declaration in RAPI.

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

259578eb 09/24/2009 02:38 pm Iustin Pop

Export and show the cluster uuid in cluster info

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

033d58b0 09/24/2009 02:37 pm Iustin Pop

Implement uuid in gnt-node/instance list and info

The patch modifies LUQueryInstanceData to return the uuid too and also
adds support for it in the gnt-* scripts.

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

19bed813 09/24/2009 02:37 pm Iustin Pop

Simplify handling of regular fields in LUQuery*

For fields that correspond directly to an object's field, we can
simplify the handling. The patch also adds the new 'uuid' fields to
objects so that it can be queried.

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

76d5d3a3 09/24/2009 02:37 pm Iustin Pop

Automatically fill in missing UUIDs

The patch also starts using the current UUIDs (in the new attributes)
while computing the _AllIDs list.

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

e1dcc53a 09/24/2009 02:37 pm Iustin Pop

Add uuid attributes to configuration entities

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

34d657ba 09/24/2009 02:37 pm Iustin Pop

Automatically cleanup _temporary_ids at save

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

34e54ebc 09/24/2009 02:36 pm Iustin Pop

Separate the computation of all config IDs

We will need this in another place, so we abstract the 'compute all
current IDs' functionality into a separate function. We also change the
name of the _ComputeAllLVs to _AllLVs to match the other _All*s
functions....

77b076ca 09/24/2009 01:04 pm Guido Trotter

Node init: copy hmac key as well

Without this confd will not start when a node is added to the cluster.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

c103d7ae 09/24/2009 01:04 pm Guido Trotter

Unpack the confd reply as an object, from the dict

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

0a3c881e 09/24/2009 01:04 pm Guido Trotter

KVM nic script: enable interface forwarding

If forwarding is enabled globally this is a no-op. If instead it's
enabled only for some special interfaces where instance traffic has to
go to/comes from (for example a gre tunnel) then it's useful to
explicitely enable it for the instances interfaces as well....

7c60f7a2 09/24/2009 12:53 pm Guido Trotter

KVM nic script: use routed link as table

In order to be able to maintain the node network standard routing
untouched while routing instance traffic through a different dedicated
interface (eg: a gre tunnel) we need to specify the instance routing
path inside a separate table, which will also contain different default...

90469357 09/23/2009 06:07 pm Guido Trotter

Confd client: make SendRequest args optional

By default "None" will be used as an args value

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

96e03b0b 09/23/2009 06:07 pm Guido Trotter

Confd client: Change callback model

We move to one callback in total, rather than one per call, and call it
both for server replies and request expiring.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

7d20c647 09/23/2009 06:07 pm Guido Trotter

Confd client: make confd port configurable

The port can be now chosen at library init time, with a default of
calling GetDaemonPort.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

a3db74e4 09/23/2009 06:07 pm Guido Trotter

Confd client library: enable optional logging

If a logger is passed in, we log some debugging messages that might help
someone who's debugging a confd client to understand what's going on.

Signed-off-by: Guido Trotter <>
Reviewed-by: Michael Hanselmann <>

90d726a8 09/22/2009 05:37 pm Iustin Pop

Change config upgrade to be explicit

Currently the config upgrade is done at each object instantiation, that
means that ganeti-noded will run UpgradeConfig on all objects received
remotely (instances, disks, nics). This is not so good, so this patch
changes it so that only the ConfigWriter runs this method at...

d01ae714 09/22/2009 05:35 pm Luca Bigliardi

Confd: add instances IPs query

Extend confd to answer queries about instances IPs.

Signed-off-by: Luca Bigliardi <>
Reviewed-by: Iustin Pop <>

3a541d90 09/22/2009 05:01 pm Iustin Pop

Fix utils.MatchNameComponent for full matches

While ‘test1’ matches both ‘test1’ and ‘test1.example’, it has a full,
exact match and we should return it if that is the case.

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

dfc2a24c 09/21/2009 05:31 pm Guido Trotter

Fix _RemoveDisk for file based instances

During 621b7678 two typos were introduced which prevent file based
instances removal to work correctly. Fixing both of them to what they
were meant to be.

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

9b4127eb 09/21/2009 01:28 pm Guido Trotter

cmdlib._CreateDisks fix a broken result.Raise

The format string has the ": %s" at the end, but no argument is passed,
which of course raises a TypeError. Removing ": %s" as it's added by
the RpcResult Raise() method anyway.

Signed-off-by: Guido Trotter <>...

d77490c5 09/18/2009 05:00 pm Iustin Pop

Unify the instance creation code

Currently the AddInstance in gnt-instance and ImportInstance in
gnt-backup duplicate all of their code except the actual opcode creation
(the parameters to it). By moving this to cli.py (not optimal location,
but we don't have another one), we can use a single copy of the code,...

29392516 09/18/2009 01:53 pm Iustin Pop

Move more cluster init opts to cli.py

Some of these should be added to cluster modify too.

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

14e9e7f3 09/18/2009 01:53 pm Iustin Pop

Move cluster verify options to cli.py

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

12054861 09/18/2009 01:53 pm Iustin Pop

Move the “--reboot-type” option to cli.py

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

ee3f9578 09/18/2009 01:53 pm Iustin Pop

Move the “--ignore-secondaries” option to cli.py

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

44c44832 09/18/2009 01:53 pm Iustin Pop

Move the “--no-shutdown” option to cli.py

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

064c21f8 09/18/2009 01:53 pm Iustin Pop

Remove explicit DEBUG_OPT and add it by default

Since >90% of the commands take the “--debug” option, and all should
actually take it (the gnt-job command is currently missing it), it makes
sense to simply remove this and add it by default in cli.py.

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

a72d0a79 09/18/2009 01:53 pm Iustin Pop

Move the “--on-primary” option to cli.py

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

feb09e6a 09/18/2009 01:53 pm Iustin Pop

Move the “--on-secondary” option to cli.py

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

e00f7a05 09/18/2009 01:53 pm Iustin Pop

Move the “--auto” option to cli.py

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

05586c90 09/18/2009 01:53 pm Iustin Pop

Move the “--ignore-size” option to cli.py

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

df62e5db 09/18/2009 01:53 pm Iustin Pop

Move the “--src-…” options to cli.py

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

8d823629 09/18/2009 01:53 pm Iustin Pop

Unify the “--secondary-ip” option

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

b8d0f938 09/18/2009 01:53 pm Iustin Pop

Move the “--readd” option to cli.py

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

fcdde7f2 09/18/2009 01:53 pm Iustin Pop

Move the “--no-ssh-key-check” option to cli.py

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

771734c9 09/18/2009 01:53 pm Iustin Pop

Move the node flags options to cli.py

This also unifies a little the parameters to the respective options.

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

e7e09483 09/18/2009 01:53 pm Iustin Pop

Move the “--allocatable” option to cli.py

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

831040bf 09/18/2009 01:53 pm Iustin Pop

Unify the “--no-lvm-storage” option

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

383a3591 09/18/2009 01:53 pm Iustin Pop

Unify the “--enabled-hypervisors” option

This also required a change, as one of the cases used a different
default.

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

4fbc93dd 09/18/2009 01:53 pm Iustin Pop

Unify the “--nic-parameters” option

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

e32df528 09/18/2009 01:53 pm Iustin Pop

Unify the “--candidate-pool-size” option

This required a slight tweak since in init we want a different default.

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

b58726e8 09/18/2009 01:53 pm Iustin Pop

Unify the “--vg-name” option

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

1f587d3d 09/18/2009 01:53 pm Iustin Pop

Move the “--yes-do-it” option to cli.py

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

58371861 09/18/2009 01:53 pm Iustin Pop

Move the “--no-voting” option to cli.py

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

e3646f22 09/18/2009 01:53 pm Iustin Pop

Move the “--mac-prefix” option to cli.py

The default has also been changed to None as this will be useful once
cluster modify will be able to change this setting too.

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

073271f6 09/18/2009 01:53 pm Iustin Pop

Unify the last “--hypervisor” (as list) option

This third form takes a list of name+options, and is used only in
gnt-cluster. Who knew that we have three forms of ‘-H’?

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

91e0748c 09/18/2009 01:53 pm Iustin Pop

Unify the “--no-ip-check” option

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

7d3a9fab 09/18/2009 01:53 pm Iustin Pop

Unify the “--net” option

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

e3876ccb 09/18/2009 01:53 pm Iustin Pop

Unify the “--disk” (identkeyval) option

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

4b038a1e 09/18/2009 01:53 pm Iustin Pop

Unify the “--disks” (disk indices) option

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

ff00c1a7 09/18/2009 01:53 pm Iustin Pop

Unify the “--os-size” option

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

82a786d5 09/18/2009 01:53 pm Iustin Pop

Unify the “--ignore-consistency” option

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

f2a0828c 09/18/2009 01:53 pm Iustin Pop

Unify the “--non-live” option

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

990b7886 09/18/2009 01:53 pm Iustin Pop

Unify the “--node” (as instance placement) option

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

7edc4637 09/18/2009 01:53 pm Iustin Pop

Unify the “--node” (as list of nodes) option

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

f36d7d81 09/18/2009 01:53 pm Iustin Pop

Unify the last “--node” (single node) option

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

edeb878a 09/18/2009 01:53 pm Iustin Pop

Move the “--no-start” option to cli.py

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

fdcf4d84 09/18/2009 01:53 pm Iustin Pop

Move the “--show-cmd” option to cli.py

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

baef337d 09/18/2009 01:53 pm Iustin Pop

Move the “--cleanup” option to cli.py

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

99a8c799 09/18/2009 01:53 pm Iustin Pop

Move the “--static” option to cli.py

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

2d5e7ae1 09/18/2009 01:53 pm Iustin Pop

Move the “--all” option to cli.py

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

67840b40 09/18/2009 01:53 pm Iustin Pop

Move the “--select-os” option to cli.py

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

b6e841a8 09/18/2009 01:53 pm Iustin Pop

Move the “--ignore-failures” option to cli.py

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

a14db5ff 09/18/2009 01:53 pm Iustin Pop

Unify the “--new-secondary” option

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

4f365444 09/18/2009 01:53 pm Iustin Pop

Unify the “--disk-template” option

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

26023ecd 09/18/2009 01:53 pm Iustin Pop

Unify the “--no-nics” option

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

4a25828c 09/18/2009 01:53 pm Iustin Pop

Unify the “--file-storage-dir” option

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

0f87c43e 09/18/2009 01:53 pm Iustin Pop

Unify the “--file-driver” option

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

4eb62659 09/18/2009 01:53 pm Iustin Pop

Unify the “--iallocator” option

This patch also changes the gnt-debug's “--algorithm” into
IALLOCATOR_OPT, since it was the only non-standard use of this (due to
historical reasons). Since it's just a debug option,
backwards-compatibility is not critical here....

d3ed23ff 09/18/2009 01:53 pm Iustin Pop

Unify the “--os-type” option

This was already unified inside gnt-instance, I just moved that
definition (and upper-cased it) into cli.py.

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

087ed2ed 09/18/2009 01:53 pm Iustin Pop

Unify the “--backend-parameters” option

This is not straight-forward. First, gnt-cluster had
“--backend-parameters” wheres the rest of the script had just
“--backend”. I settled on the full form, since one can always abbreviate
options, but not vice-versa....

48f212d7 09/18/2009 01:53 pm Iustin Pop

Unify the “--hypervisor” (params only) option

This unifies the two uses of --hypervisor-parameters with only options
(a=b,…) form. The patch changes a little SetInstanceParms since that
expected opts.hypervisor instead of opts.hvparams.

Note that there is another form of --hypervisor-parameters which also...

236fd9c4 09/18/2009 01:53 pm Iustin Pop

Unify the “--hypervisor” (with name) option

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

3f75b4f3 09/18/2009 01:53 pm Iustin Pop

Unify the “--no-wait-for-sync” option

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

3cebe102 09/17/2009 06:53 pm Michael Hanselmann

Remove RpcResult.RemoteFailMsg completely

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

a0c9776a 09/17/2009 05:37 pm Iustin Pop

Add an error-simulation mode to cluster verify

One of the issues we have in ganeti is that it's very hard to test the
error-handling paths; QA and burnin only test the OK code-path, since
it's hard to simulate errors.

LUVerifyCluster is special amongst the LUs in the fact that a) it has a...

7c874ee1 09/17/2009 05:12 pm Iustin Pop

Introduce parseable error codes in LUVerifyCluster

Currently the output of cluster verify can be parsed for 'ERROR'
messages, but that is the only indication we get (error or no error). In
order to allow monitoring tools to separate different error conditions,...