Statistics
| Branch: | Tag: | Revision:

root / lib @ adfa3b26

# Date Author Comment
adfa3b26 05/20/2011 01:37 pm Adeodato Simo

Cluster verify: check for nodes/instances with no group

Previously, all nodes and instances would always be visited/verified. By
driving the verification by node group now, we will miss nodes and
instances that can't be reached from existing node groups, should that rare...

fe870648 05/20/2011 01:37 pm Adeodato Simo

Cluster verify: fix LV checks for split instances

When sharding by group, if a mirrored instance is split (primary and
secondary) between two groups, its volumes will not be properly checked:
the group of the primary will warn about a missing volume in the secondary,...

2dad1652 05/20/2011 01:37 pm Adeodato Simo

Cluster verify: make NV_NODELIST smaller

To cope with increasing cluster sizes, we now make nodes try to contact all
other nodes in their group, and one node from every other group.

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

d23a2a9d 05/20/2011 01:37 pm Adeodato Simo

Cluster verify: verify hypervisor parameters only once

The list of all hypervisor parameters has to be computed in
LUClusterVerifyGroup, since it needs to be passed to nodes as
NV_HVPARAMS. However, it is better only to verify said parameters once,
out of LUClusterVerifyConfig....

bf93ae69 05/20/2011 01:37 pm Adeodato Simo

Split LUClusterVerify into LUClusterVerify{Config,Group}

With this change, LUClusterVerifyConfig becomes a "light" LU that only
verifies the global config and other, master-only settings, and the bulk of
node/instance verification is done by LUClusterVerifyGroup, which only acts...

a5c30dc2 05/20/2011 01:37 pm Adeodato Simo

Cluster verify: factor out error codes and functions

We move all error code definitions, plus the _Error and _ErrorIf helpers,
to a private _VerifyErrors mix-in class that can be later shared by the new
two cluster verify LUs.

(_Error and _ErrorIf code was moved around verbatim, except to disable...

14970c32 05/20/2011 01:37 pm Adeodato Simo

Cluster verify: make "instance runs in wrong node" node-driven

Previously, the "instance should not be running in this node" error was
computed by verifying, for each instance, whether any node other than its
primary was running it. But this is not a well-suited approach if we were...

4e272d8c 05/20/2011 01:37 pm Guido Trotter

Verify an absent vm_capable node for files

If we're not verifying all nodes, adding a node outside the current
group for file checksums helps us making sure checksums are the same in
all of the cluster.

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

2f10179b 05/20/2011 01:37 pm Adeodato Simo

Cluster verify: master must be present for _VerifyFiles

This commit prepares the call to _VerifyFiles for the case when the master
node is not one of the nodes that's being verified (which will be the case
for all node groups but one). We fix it by always passing master info and...

cf692cd0 05/20/2011 01:37 pm Adeodato Simo

Cluster verify: don't assume we're verifying all nodes/instances

This commit fixes a few initial simple cases in which it was assumed that
we're always working over the whole cluster. With this change, we
differentiate between "nodes/instances to verify" and "checks that need...

c711d09e 05/20/2011 01:37 pm Adeodato Simo

Cluster verify: gather node/instance list in CheckPrereq

This commit introduces no behavior changes, and is only a minor refactoring
that aids with a cleaner division of future LUClusterVerify work. The
change consists in:

- substitute the {node,instance}{list,info} structures previously created...
6aac5aef 05/20/2011 11:11 am Iustin Pop

Merge remote branch 'origin/devel-2.4'

  • origin/devel-2.4:
    Fix errors in hooks documentation
    Clarify a bit the noded man page
    Note --no-remember in NEWS
    Switch QA over to using instance stop --no-remember
    Implement no_remember at RAPI level
    Implement no_remember at CLI level...
235407ba 05/19/2011 06:03 pm Michael Hanselmann

cli: Replace hardcoded disk templates with constants

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

eb279644 05/19/2011 02:01 pm Michael Hanselmann

mcpu: Add missing docstring to _ProcessResult

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

c71b049c 05/19/2011 02:01 pm Michael Hanselmann

config: Add function to get instances in node group

This will be used for evacuating instances in a node group.

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

a01225a6 05/19/2011 01:54 pm Michael Hanselmann

iallocator: Stricter check for multi-evac result

Check new secondary nodes' group like it's already done for
multi-relocation requests.

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

3d45d304 05/19/2011 01:54 pm Michael Hanselmann

cmdlib: Use ganeti.ht for checking iallocator result

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

a464ce71 05/17/2011 06:05 pm Michael Hanselmann

ht: Add strict check for dictionaries

This allows checking specific dictionary items, unlike TDict
or TDictOf.

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

4f898534 05/17/2011 06:05 pm Michael Hanselmann

cmdlib: Remove punctuation from error messages

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

42c161cf 05/16/2011 04:41 pm Michael Hanselmann

gnt-debug: New iallocator mode

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

bee581e2 05/16/2011 04:41 pm Michael Hanselmann

Add new iallocator mode to LUTestAllocator

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

55011921 05/16/2011 04:41 pm Michael Hanselmann

cmdlib.IAllocator: Add multi-relocate support

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

23cfbaab 05/16/2011 04:41 pm Michael Hanselmann

Add constants for multi-relocation iallocator mode

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

2ba39b8f 05/16/2011 04:24 pm Iustin Pop

Implement no_remember at RAPI level

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

885a0fc4 05/16/2011 04:24 pm Iustin Pop

Implement no_remember at CLI level

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

9b64e486 05/16/2011 04:24 pm Iustin Pop

Introduce instance start/stop no_remember attribute

This will allow stopping or starting an instance without changing the
remembered state. While this seems counter-intuitive at first (it will
create cluster verify errors), it can help in a few corner cases:...

73cdf9a3 05/13/2011 06:33 pm Michael Hanselmann

cmdlib.IAllocator: Fewer temporary variables

Reduce the number of temporary variables and generate dictionaries in
one go.

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

dcfb969a 05/13/2011 05:23 pm Apollon Oikonomopoulos

TLMigrateInstance: do not migrate to self

Check that the instance is not being migrated to its current primary node
during CheckPrereq. Otherwise migration is aborted because the instance is
already running and cleaned-up, which causes the running instance to be killed....

3dbe3ddf 05/13/2011 03:57 pm Michael Hanselmann

SharedLock: Implement downgrade from exclusive to shared mode

If a job needs to modify a resource and then wait for a result, it must
acquire the resource lock in exclusive mode. In some cases it would be
possible to only have a shared lock for waiting. Until now it was not...

9133387e 05/12/2011 07:38 pm Michael Hanselmann

gnt-debug: Use constants for iallocator direction

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

fdbe29ee 05/12/2011 07:38 pm Michael Hanselmann

gnt-debug, opcodes: Use constants for iallocator

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

2a9bc156 05/12/2011 07:37 pm Michael Hanselmann

cmdlib.IAllocator: Use lookup table for mode-specific data

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

f01738fc 05/12/2011 03:40 pm Iustin Pop

Preload the string-escape code in noded

This encoding, part of the standard Python installation, is used by
the pickle module (in turn used by subprocess when handling
failures in program execution). Preloading it means that Python will
cache it in memory so that even if the disk goes away or just the...

4b9e8c93 05/12/2011 03:40 pm Iustin Pop

Abstract ignore_consistency opcode parameter

Two opcodes already use it and we need it for a third, time to add a
constant for it.

Signed-off-by: Iustin Pop <>
Reviewed-by: René Nussbaumer <>

bb851c63 05/12/2011 03:40 pm Iustin Pop

Fix a bug in LUInstanceMove

The opcode parameter ignore_consistency was used in the LU, but not
actually declared in the OpCode. The patch adds it in the opcode and
the command line client.

ObQuote — Please, please, can I have static typing?

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

b92a2f3e 05/11/2011 07:14 pm Iustin Pop

Try to prevent instance memory changes N+1 failures

There are multiple bugs with the code checking for N+1 failures in the
instance memory changes which needs significant changes, in the
meantime we can at least:

- change the warning message into an error (--force will skip checks)...

d9f99d88 05/11/2011 06:41 pm Guido Trotter

Remove references to acquired_locks

These sneaked in from 2.4 during the merge, but this attribute is
actually gone in the master branch.

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

93384b8c 05/11/2011 05:14 pm Guido Trotter

Merge branch 'devel-2.4'

  • devel-2.4:
    Use floppy disk and a second CDROM on KVM
    Document the selection of instance kernels
    Make root_path an optional hypervisor parameter
    Some man page updates
    Add 2 new variables to the OS scripts environment
    Add --no-wait-for-sync when converting to drbd...
fba7f911 05/10/2011 07:40 pm Marco Casavecchia

Use floppy disk and a second CDROM on KVM

Hi all,
this patch will add 3 new KVM parameters and a new option.

New Parameters:
- floppy_image_path = "" -> Specify the floppy image to load as
floppy disk.
- cdrom2_image_path = "" -> Specify a second cdrom image to load on...

0aeeb6e3 05/10/2011 06:32 pm Michael Hanselmann

jqueue: Update worker thread name to include opcode summary

With this patch, the worker thread name is updated to include a short
summary of the opcode (basically its OP_ID). The base name of job queue
threads is shortened from “JobQueue” to “Jq”. Logs and the lock monitor...

ff8ab07e 05/10/2011 05:37 pm Iustin Pop

Use the new dry-run mode in cmdlib

This will hopefully detect potential LVM (or any other storage, when
they implement it) issues before committing changes just on some
nodes.

Unfortunately due to the dry_run opcode handling, we can't integrate
this into the usual handling (as we need to activate the disks before...

a59faf4b 05/10/2011 05:37 pm Iustin Pop

Implement grow dry-run at RPC level

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

7fe23d47 05/10/2011 05:37 pm Iustin Pop

Implement dryrun mode for BlockDev.Grow()

This is always called with False from backend for now.

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

04df3c7c 05/10/2011 05:35 pm Michael Hanselmann

cmdlib: Sort nodes for OOB commands

Also reorder the methods to match all other LUs.

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

7ee045a0 05/10/2011 05:34 pm Michael Hanselmann

cmdlib: Use helper for expanding nodes for OOB commands

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

1d789a97 05/10/2011 05:34 pm Michael Hanselmann

cmdlib: Expand instances using helper for repairing disks

Also change the way “share_locks” is filled.

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

e730f372 05/10/2011 03:20 pm Michael Hanselmann

Fix bug introduced in commit 0d5a0b96

When removing “acquired_locks” in commit 0d5a0b96, I didn't remember
that it does not contain the Big Ganeti Lock.

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

5ed4c956 05/10/2011 02:12 pm Apollon Oikonomopoulos

Fix lock release in TLMigrateInstance

Commit 52f33103 introduced lock release factorization, replacing manual
lock release using utility functions. However, it broke
TLMigrateInstance due to a typo (passing the Tasklet to ReleaseLocks
instead of the parent LU). We fix this by passing the LU to...

0d5a0b96 05/10/2011 02:03 pm Michael Hanselmann

cmdlib: Remove acquired_locks attribute from LUs

The “acquired_locks” attribute in LUs is used to keep a list of acquired
locks at each lock level. This information is already known in the lock
manager, which also happens to be the authoritative source. Removing the...

0db3d0b5 05/10/2011 02:02 pm Michael Hanselmann

cmdlib: Use local alias for lock manager

Saves some typing and we'll use it more often in the future.

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

7adf7814 05/10/2011 11:48 am René Nussbaumer

Make root_path an optional hypervisor parameter

This will allow us an easy migration to pv-grub, because a set root_path
confused pv-grub.

Signed-off-by: René Nussbaumer <>
Reviewed-by: Iustin Pop <>

3ce9a5e7 05/09/2011 06:49 pm Michael Hanselmann

opcodes: Add function for compact summary

Depending on the opcode and its parameters, the existing “Summary”
function can give a rater long summary. For displaying the summary in
logs and in the lock monitor, it should be shorter. Hence this new
function is added to just use the opcode ID with common prefixes...

c307ee34 05/09/2011 06:34 pm Michael Hanselmann

Show locksets in lock monitor

When all locks contained in a set are acquired, the lockset's internal
lock is acquired with the same mode. With this patch the internal lock
will show up on the lock monitor, named e.g. “instances/[lockset]”.

Signed-off-by: Michael Hanselmann <>...

83f2d5f6 05/09/2011 06:33 pm Michael Hanselmann

locking: Make parameter to condition's wait() positional

It is always used in the locking code. Unittests are updated.

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

113359fe 05/09/2011 06:33 pm Michael Hanselmann

SharedLock: Avoid acquires from sneaking in while notifying

In some rare cases new shared acquires could sneak in through the
condition cached in “__pending_shared” while the code was still
notifying acquires. This was only working because such a condition...

519719fd 05/09/2011 02:22 pm Marco Casavecchia

Add 2 new variables to the OS scripts environment

Add INSTANCE_PRIMARY_NODE and INSTANCE_SECONDARY_NODES. These new
values are useful for OS scripts that needs to know the nodes where
the instance lives.. or has lived.

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

456798ab 05/09/2011 02:22 pm Iustin Pop

Add --no-wait-for-sync when converting to drbd

Currently, when converting an instance from plain to DRBD, the
instance is blocked during the entire resync period. This patch adds
the --no-wait-for-sync so that the operation finishes as soon as the
DRBD sync has started, without waiting for the entire sync. This makes...

c8a96ae7 05/09/2011 12:18 pm Iustin Pop

Recreate instance disks: allow changing nodes

This patch introduces the option of changing an instance's nodes when
doing the disk recreation. The rationale is that currently if an
instance lives on a node that has gone down and is marked offline,
it's not possible to re-create the disks and reinstall the instance on...

e3303a4e 05/06/2011 06:47 pm Iustin Pop

Fix instance failover/migration w.r.t TLMigrateInstance

Commit 1c6e5787 removed the iallocator and target_node keyword
parameters from TLMigrateInstance, but I didn't update their use in
LUInstanceFailover and (not fully) in LUInstanceMigrate.

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

931413f6 05/06/2011 05:35 pm Iustin Pop

Rename instance: only show new name when different

It makes not sense to show messages like:
Fri May 6 02:04:01 2011 - INFO: Resolved given name 'instance18' to
'instance18'

So we'll skip the message if the resolved name is identical to the
requested one....

9d5b1371 05/06/2011 01:46 pm Michael Hanselmann

Fix race condition in LUGroupAssignNodes

The original code would get all node information and their groups
without before acquiring the necessary locks. With this patch the node
information is only retrieved once all locks have been acquired. Groups
are locked optimistically and verified after acquiring the node locks....

1c6e5787 05/05/2011 02:25 pm Apollon Oikonomopoulos

Fix DTS_EXT_MIRROR migration

Commit faaabe3c fixed failover behaviour for DTS_INT_MIRROR instances, however
it broke migration for DTS_EXT_MIRROR instances, by moving iallocator and node
checks from LUInstanceMigrate to TLMigrateInstance. This has the side-effect...

8b0273a5 05/05/2011 02:09 pm Michael Hanselmann

Use node group locking for replacing disks

This is one of the first opcodes to make use of node group locking. To
get an instance's node groups, the instance's nodes need to be looked
at. Due to a previous design decision nodes are locked after the group,...

2674690b 05/05/2011 02:09 pm Michael Hanselmann

config: Add function to determine instance's groups

This will be used for locking only the necessary node group(s)
for per-instance operations.

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

54bd7d76 05/05/2011 12:41 pm Apollon Oikonomopoulos

TLMigrateInstance: Fix live migration breakage

Commit 77fcff4 unintentionally incorporated code from
TLMigrateInstance.CheckPrereq into TLMigrateInstance._RunAllocator, presumably
during a rebase from earlier versions of the patch to the 2.5 codebase. As a...

46c936d6 05/04/2011 05:19 pm Michael Hanselmann

cmdlib: Update error messages, remove some punctuation

- Clarify some error messages
- Remove unnecessary punctuation
- Merge two if conditions in one place

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

958d01f8 05/03/2011 06:53 pm Michael Hanselmann

cmdlib: Fix typo, s/nick/NIC/

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

8dddc5bc 05/03/2011 12:25 pm Iustin Pop

A small optimisation in cluster verify

This removes (count of instances + count of nodes) lock
acquires/releases.

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

72740756 05/02/2011 04:08 pm Iustin Pop

A few docstring fixes

At least one generates an epydoc error :)

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

d143f2c6 05/02/2011 03:41 pm Iustin Pop

luxi: do not handle KeyboardInterrupt

With the current code, it's possible to mistake a ^C for a protocol
error:

node1# gnt-job info 221691
[press ^C]
Unhandled protocol error while talking to the master daemon:
Error while deserializing response:

(and note empty error message)....

225e2544 05/02/2011 03:41 pm Iustin Pop

Handle EPIPE errors while writing to the terminal

This handles EPIPE errors in two places: ToStream (to catch logging
done in GenericMain itself) and in GenericMain (to cover also plain
print statements).

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

20d317d4 05/02/2011 03:41 pm Iustin Pop

Cluster verify: check for missing bridges

Currently cluster verify doesn't check for bridge information; the
only checks are done at instance create and failover/migrate
time. This means a cluster that seems healthy will fail creation jobs.

This patch implements a simple verification that all nodes (in the...

cc130cc7 05/02/2011 12:16 pm Marco Casavecchia

Use floppy disk and a second CDROM on KVM

Hi all,
this patch will add 3 new KVM parameters and a new option.

New Parameters:
- floppy_image_path = "" -> Specify the floppy image to load as
floppy disk.
- cdrom2_image_path = "" -> Specify a second cdrom image to load on...

52f33103 04/29/2011 05:15 pm Michael Hanselmann

cmdlib: Factorize lock releasing

There will be more lock releasing with upcoming changes, so this will
centralize the logic behind it (what locks to keep, which variables to
update, etc.).

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

3de8301d 04/29/2011 04:01 pm Michael Hanselmann

Merge branch 'devel-2.4'

  • devel-2.4:
    TLReplaceDisks: Use implicit loop for dictionary
    Release unneeded locks while replacing disks
    locking: Export “list_owned” from lock manager
    gnt-instance: Fix typo in error message

Signed-off-by: Michael Hanselmann <>...

29b8eaee 04/29/2011 03:56 pm Michael Hanselmann

TLReplaceDisks: Use implicit loop for dictionary

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

1bee66f3 04/29/2011 03:55 pm Michael Hanselmann

Release unneeded locks while replacing disks

If an iallocator is used, “gnt-instance replace-disks” would acquire the
locks of all nodes (only the allocator will decide which node to use).
Unfortunately the unneeded locks were not released during the operation,...

07cba1bc 04/29/2011 03:41 pm Michael Hanselmann

locking: Export “list_owned” from lock manager

This is analog to “is_owned” and will be used for assertions.

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

d8d838cb 04/29/2011 03:41 pm Michael Hanselmann

gnt-instance: Fix typo in error message

The iallocator parameter is “-I”, not “-i”.

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

580c971e 04/29/2011 03:38 pm Michael Hanselmann

Merge branch 'devel-2.4'

  • devel-2.4: (24 commits)
    mlock: fail gracefully if libc.so.6 cannot be loaded
    Allow creating the DRBD metadev in a different VG
    Make _GenerateDRBD8Branch accept different VG names
    Fix WriteFile with unicode data
    Replace disks: keep the meta device in the same VG...
adc523ab 04/29/2011 03:05 pm Iustin Pop

mlock: fail gracefully if libc.so.6 cannot be loaded

This allows noded to continue instead of blowing up if the libc major
number changes.

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

661515f6 04/29/2011 02:48 pm Michael Hanselmann

cmdlib: Drop SSH runner from LU base class

It is no longer used.

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

0b606e54 04/28/2011 07:02 pm Adeodato Simo

cmdlib.py: fix indentation in _VerifyNode

Signed-off-by: Adeodato Simo <>
Reviewed-by: Michael Hanselmann <>

c6627031 04/28/2011 05:26 pm Michael Hanselmann

TLMigrateInstance: Fix confusing text

Commit d5cafd31 changed this error message, swapping the
text parts in the process.

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

a2e885ee 04/28/2011 05:25 pm Michael Hanselmann

LUInstanceRename: Amend comment about lock

Also add an assertion.

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

342f9172 04/28/2011 05:25 pm Michael Hanselmann

iallocator: Relocation nodes must be in same group

Quoting from iallocator.rst: “[…] ``relocate`` request is used when an
existing instance needs to be moved within its node group […]”.

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

55f67cc9 04/28/2011 03:24 pm Iustin Pop

Fix 'unused import' lint error

Sorry!

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

8f9a87c5 04/28/2011 01:06 pm Iustin Pop

SetEtcHostsEntry: maintain existing ordering

Currently RemoveEtcHostsEntry keeps the ordering, but SetEtcHostsEntry
not, as it will always write the new entry at the end of file. I
personally dislike this as it "uglifies" my custom host files, so this
patch makes it update the record instead in-place so to say instead of...

24c855a7 04/28/2011 01:06 pm Iustin Pop

Convert utils.nodesetup to utils.WriteFile(data=…)

It makes no sense to iteratively write the new etc/hosts file, as we
can pre-compute the desired contents (neither the old nor the new
versions are safe against concurrent changes anyway).

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

87001920 04/28/2011 01:03 pm Iustin Pop

Allow creating the DRBD metadev in a different VG

This is a simple change to allow specifying a different VG for the
meta device during the creation of instances and addition of disks via
gnt-instance modify.

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

c260fa25 04/28/2011 01:03 pm Iustin Pop

Make _GenerateDRBD8Branch accept different VG names

This is a small change to make this function take a list of VG names,
instead of a single one.

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

1d39e245 04/28/2011 01:02 pm Iustin Pop

Fix WriteFile with unicode data

Unicode is fun, indeed:

len(buffer("abc"))

3

len(buffer(u"abc"))

12

So we can't pass unicode data to buffer(), as the result will be to
write the in-memory (usually UTF-32) representation to disk.

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

88aa7f66 04/27/2011 06:26 pm Doug Dumitru

Fix for multiple VGs - PlainToDrbd and replace-disks

Converting an instance from 'plain' to 'drbd'. The old code would
create the drbd volumes in the default VG and then the renames would
fail. This fix pulls the plain VG names from the existing volumes and...

fd09d178 04/27/2011 06:26 pm Iustin Pop

Replace disks: keep the meta device in the same VG

This patch enhances the multi-VG support in replace disks, by keeping
the meta device in the same VG, as opposed to moving it to the data
device VG (note that we don't have a way to create the meta in a
different VG in the first place, but at least we correctly handle a...

cce6f357 04/27/2011 06:26 pm Iustin Pop

Fix punctuation in an error message

IIRC we don't use punctuation at the end of error messages.

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

d833acc6 04/27/2011 06:26 pm Iustin Pop

Prevent readding of the master node

This breaks Ganeti in multiple ways. If we don't make the check in
gnt-node itself, then bootstrap.SetupNodeDaemon will restart the
master daemon, making the operation fail:

node1# gnt-node add --readd node1
Cannot communicate with the master daemon....
2db04578 04/27/2011 06:26 pm Iustin Pop

Improve error messages in cluster verify/OS

A few issues in the clarity of the error messages are fixed:

- "ERROR: node node3: OS API version lenny-image": no preposition
between the parameter type and the OS name, changed to "for
lenny-image"

- "API version lenny-image differs from reference node node1: 10, 5...

437c3e77 04/27/2011 06:26 pm Iustin Pop

Fix potential data-loss in utils.WriteFile

os.write can do incomplete writes, as long as at least some bytes have
been written (like write(2)):

os.write(fd, " " * 1300)

1300

os.write(fd, " " * 1300)

1300

os.write(fd, " " * 1300)

1300

os.write(fd, " " * 1300)...

414ebaf1 04/21/2011 04:08 pm Michael Hanselmann

RAPI: Add support for tagging node groups

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

819cbfe5 04/21/2011 04:08 pm Michael Hanselmann

gnt-group: Add commands for tagging groups

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