ganeti-local
16 years agoFix spelling mistake in constants.py
Guido Trotter [Thu, 10 Apr 2008 10:06:40 +0000 (10:06 +0000)]
Fix spelling mistake in constants.py

Of course instance creation don't have any modem, and the comment was just
talking about modes. Sorry to everybody expecting whistles.

Reviewed-by: imsnah

16 years agoAllocator framework, 1st part: allocator input generation
Iustin Pop [Wed, 9 Apr 2008 13:01:34 +0000 (13:01 +0000)]
Allocator framework, 1st part: allocator input generation

In preparation for the introduction of automatic instance allocator,
this patch adds an allocator simulation opcode, that based on the input
parameters, will return either the input message to the allocator
(implemented) or the result of the allocator run (not yet implemented).

This allows algorithm tests against simulated allocations and the
current cluster state.

The patch adds the following:
  - a function that generates the generic cluster information for the
    allocator
  - a function that generates the 'new instance' information
  - a function that generates the 'replace_secondary' information

These three functions will be used by the allocator framework later to
generate the actual information for the external algorithms. Currently
we just return the json-serialized text.

Reviewed-by: imsnah

16 years agoAdd a gnt-debug tool
Iustin Pop [Wed, 9 Apr 2008 13:01:14 +0000 (13:01 +0000)]
Add a gnt-debug tool

This patch adds a script which submits a job consisting of the
OpTestDelay opcode. This can be helpful for debugging and can be
extended to execute other 'debug'-like tasks.

Reviewed-by: imsnah

16 years agoImprove disk consistency error message again
Guido Trotter [Wed, 2 Apr 2008 18:31:37 +0000 (18:31 +0000)]
Improve disk consistency error message again

This new version includes all the possible failure options.

Reviewed-by: iustinp

16 years agoFix misleading error message when checking disks
Guido Trotter [Wed, 2 Apr 2008 18:01:54 +0000 (18:01 +0000)]
Fix misleading error message when checking disks

_CheckDiskConsistency outputs "Can't get any data from node NODE" when no drbd
is found on the target node. This causes a misleading error message to be
output for example on failover (when the primary node is down, or the instance
is not running), stating that no data could be got from the secondary node,
which scares the user and misleads him. Changing this to "Disk degraded or not
found on node %s" still reports that something is missing, but on the other
hand doesn't make the user think the node is down, or has no data at all...

Reviewed-by: imsnah

16 years agoHandle better failing over non-running instances
Guido Trotter [Wed, 2 Apr 2008 18:00:27 +0000 (18:00 +0000)]
Handle better failing over non-running instances

Right now if you try to failover an instance which is not marked as up the
operation will fail unless you pass the --ignore-consistency flag because the
disks won't be considered to be consistent. Allow them to be if we know the
instance shouldn't be up.

Reviewed-by: imsnah

16 years agoImprove export and fix export-on-norun bug
Guido Trotter [Wed, 2 Apr 2008 18:00:13 +0000 (18:00 +0000)]
Improve export and fix export-on-norun bug

Currently gnt-backup export chains the ShutdownInstance and StartupInstance
opcodes to itself. This works but (a) it's suboptimal, because there's no need
to deactivate the instance's disks as we are about to restart it anyway, and
(b) doesn't take care of instances which are already down (and should be). This
patch takes care of this by just calling the shutdown rpc function instead of
the whole opcode, and just starting up the instance if it's configured as up in
the first place.

Reviewed-by: imsnah

16 years agofailover: only start instance if we should
Guido Trotter [Wed, 2 Apr 2008 17:00:33 +0000 (17:00 +0000)]
failover: only start instance if we should

gnt-instance failover on an instance marked as down will mistakenly bring it
up. The watcher will then shut it down again, but it's a lot better (and safer)
not to start it at all.

Reviewed-by: imsnah

16 years agoUpdate the lock autocleanup log message
Iustin Pop [Wed, 2 Apr 2008 09:08:27 +0000 (09:08 +0000)]
Update the lock autocleanup log message

Reviewed-by: ultrotter

16 years agoAdd autocleanup of stale locks
Iustin Pop [Tue, 1 Apr 2008 16:02:22 +0000 (16:02 +0000)]
Add autocleanup of stale locks

This patch adds autocleanup of stale locks. This can be disabled by
passing --lock-noautoclean to the commands.

The autocleanup mechanism will only try to do five cleanups before
raising an exception, to protect against runaway processes or similar
conditions.

Reviewed-by: schreiberal

16 years agoFix gnt-instance failover help message
Guido Trotter [Tue, 1 Apr 2008 13:08:20 +0000 (13:08 +0000)]
Fix gnt-instance failover help message

The message used to misleadingly say that failover just works with remote_raid1
instances, while of course it works for drbd as well. Thanks to Jesus Climent
who spotted the bug.

Reviewed-by: imsnah

16 years agoChange the 'gnt-cluster command' execution order
Iustin Pop [Mon, 31 Mar 2008 14:45:54 +0000 (14:45 +0000)]
Change the 'gnt-cluster command' execution order

This patch makes the command execute last on the master (if the master
is selected). The order for the other nodes is unchanged.

The patch also updates the man page with some explanations and an
example.

Reviewed-by: imsnah

16 years agoChange the gnt-backup export help text
Iustin Pop [Mon, 31 Mar 2008 13:13:49 +0000 (13:13 +0000)]
Change the gnt-backup export help text

Reviewed-by: ultrotter

16 years agoChange the order of config updates in some LUs
Iustin Pop [Sun, 30 Mar 2008 14:55:45 +0000 (14:55 +0000)]
Change the order of config updates in some LUs

In the start and stop instance LUs, the configuration update is done
right at the end. This means that if, for example, the instance shutdown
succeeds, but the drive deactivation fails, the next run of the watcher
will start the instance again, as it's still marked in running mode.

This patch changes these two LUs so that first the update the
configuration to the desired state, and only then we proceed to update
the config. This ensures that the state saved is the desired state.

Because the config might be updated even though the LU failed, this
patch also modifies the mcpu.Processor.ExecOpCode method to run the
RunConfigUpdate hook in a finally: phase while the lu.Exec is done in
its try phase. This ensures that config update hooks (tries to) run at
all times when the config is updated.

Reviewed-by: schreiberal

16 years agoFix a bug in interactive confirmation of instances
Iustin Pop [Thu, 27 Mar 2008 15:52:58 +0000 (15:52 +0000)]
Fix a bug in interactive confirmation of instances

This oneliner fixes a bug in listing more than twenty instances for
multiple operations (shutdown, startup, etc.).

Reviewed-by: imsnah

16 years agoFix gnt-instance replace-disks online help
Iustin Pop [Wed, 19 Mar 2008 10:20:00 +0000 (10:20 +0000)]
Fix gnt-instance replace-disks online help

The "quick" online help just reported the option to change secondary node. Add
the ones to just replace the disk locally on-primary or on-secondary. It is of
course impossible to espress in one line everything needed to use this command,
but at least now the most common options are spelled out immediately.

Author: ultrotter
Reviewed-by: iustinp, imsnah

16 years agoMake ganeti-noded create BDEV_CACHE_DIR automatically
Iustin Pop [Wed, 19 Mar 2008 10:14:41 +0000 (10:14 +0000)]
Make ganeti-noded create BDEV_CACHE_DIR automatically

Currently in order to deal with tmpfs /var/run, we create the
BDEV_CACHE_DIR in the init script. However, that does not cover all the
cases, and it's not a proper place to deal with it: for example, dealing
with not initialized clusters and the master node is more complicated.

Therefore, this patch does:
  - make ganeti-noded create the directory automatically
  - make ganeti-noded error out if it can't create it or it's already
    there but not a directory
  - remove the creation from the init.d script

Reviewed-by: ultrotter

16 years agoSpecify better gnt-instance(8) replace-disks
Guido Trotter [Tue, 11 Mar 2008 10:33:48 +0000 (10:33 +0000)]
Specify better gnt-instance(8) replace-disks

The -s option when changing secondary node on a drbd template is implied, and
thus optional. Specify this in the manpage.

Reviewed-by: iustinp

16 years agoDisable cluster init with a reachable IP
Iustin Pop [Mon, 10 Mar 2008 16:29:32 +0000 (16:29 +0000)]
Disable cluster init with a reachable IP

Make the cluster init fail if the IP to which the cluster name resolved
is already reachable by the master node. This is not a foolproof
solution, but it allows a cheap method of detecting simple mistakes.

It will also disallow using the master node name as cluster name (which
is something good).

The only drawbacks that I see are:
  - you are not allowed to do this, which might come in handy in cluster
    upgrades; but since we support rename, this is mitigated
  - cluster init takes longer now (+the timeout value, set to 5
    seconds), but since this is a one-off operation, it should be ok

Reviewed-by: ultrotter

16 years agoModify utils.TcpPing to make source address optional
Iustin Pop [Mon, 10 Mar 2008 16:29:10 +0000 (16:29 +0000)]
Modify utils.TcpPing to make source address optional

This patch modifies TcpPing and its callers to make the source address
selection optional. Usually, the kernel will know better what
source address to use, just in some cases we want to enforce a given
source address so it makes sense to make this optional.

Reviewed-by: ultrotter

16 years agoFix master role stop on cluster destroy
Iustin Pop [Fri, 29 Feb 2008 16:14:43 +0000 (16:14 +0000)]
Fix master role stop on cluster destroy

Currently the cluster destroy doesn't remove the master role, which
means that the IP address of the cluster remains assigned to the master
node.

This patch fixes this and also a docstring in backend.StopMaster().

Reviewed-by: imsnah

16 years agoImplement QA tests for gnt-cluster rename
Iustin Pop [Fri, 29 Feb 2008 15:34:20 +0000 (15:34 +0000)]
Implement QA tests for gnt-cluster rename

Reviewed-by: imsnah

16 years agoFix cluster rename operation
Iustin Pop [Fri, 29 Feb 2008 12:32:23 +0000 (12:32 +0000)]
Fix cluster rename operation

This one-liner fixes the cluster rename operation. As a side note, we
should have a QA test for this too.

Reviewed-by: imsnah

16 years agoReplace version number in install.sgml during build time
Guido Trotter [Thu, 28 Feb 2008 11:36:25 +0000 (11:36 +0000)]
Replace version number in install.sgml during build time

Reviewed-by: iustinp

16 years agoSmall comment fix.
Guido Trotter [Thu, 28 Feb 2008 11:36:11 +0000 (11:36 +0000)]
Small comment fix.

16 years agoFixes small spell mistakes and comments
Guido Trotter [Thu, 28 Feb 2008 11:35:57 +0000 (11:35 +0000)]
Fixes small spell mistakes and comments

16 years agoThis patch replaces some hardcoded strings with their corresponding constant in ...
Guido Trotter [Thu, 28 Feb 2008 11:35:36 +0000 (11:35 +0000)]
This patch replaces some hardcoded strings with their corresponding constant in `_GenerateDiskTemplate()`.

Reviewed-by: iustinp

16 years agoUse constants.ETC_HOSTS instead of string for /etc/hosts
Guido Trotter [Thu, 28 Feb 2008 11:35:11 +0000 (11:35 +0000)]
Use constants.ETC_HOSTS instead of string for /etc/hosts

Reviewed-by: iustinp

16 years agoFix the gnt-cluster init man page
Guido Trotter [Thu, 28 Feb 2008 11:34:49 +0000 (11:34 +0000)]
Fix the gnt-cluster init man page

Some options were missing in the gnt-cluster init man page.  This patch adds
them, removes an empty line, and clarifies a bit more some requirements.

Reviewed-by: schreiberal

16 years agoDon't allow renaming to an existing instance
Guido Trotter [Thu, 28 Feb 2008 11:34:36 +0000 (11:34 +0000)]
Don't allow renaming to an existing instance

Even if the target instance is down or we are not checking for IP conflicts
changing an instance name to a new one which is already in the cluster is
doomed to fail, because in a lot of places (among which figures the mind of
most users/admins) instance names are assumed to be unique.

Reviewed-by: imsnah

16 years agoClarify online help for xc-instance reinstall.
Guido Trotter [Thu, 28 Feb 2008 11:34:17 +0000 (11:34 +0000)]
Clarify online help for xc-instance reinstall.

Reviewed-by: imsnah

16 years agoImprove ganeti example cron file
Guido Trotter [Sat, 23 Feb 2008 10:51:58 +0000 (10:51 +0000)]
Improve ganeti example cron file

The cron file in ganeti's example directory is now static, and executes
ganeti-watcher in /usr/local/sbin no matter where it's really installed. With
this patch we generate it at build time substituting the right value of
@SBINDIR@ from ganeti.cron.in. We also make sure ganeti-watcher exists and is
executable before running it.

This is targeted at 1.2 as well.

Reviewed-by: iustinp

16 years agoAdd another 1.1->1.2 compatibility alias
Guido Trotter [Wed, 20 Feb 2008 11:18:51 +0000 (11:18 +0000)]
Add another 1.1->1.2 compatibility alias

gnt-instance replace-disks used to be called replace_disks.

Reviewed-by: iustinp

16 years agoSome more corrections on gnt-node help output v1.2.3
Iustin Pop [Mon, 18 Feb 2008 11:29:32 +0000 (11:29 +0000)]
Some more corrections on gnt-node help output

Reviewed-by: schreiberal

16 years agoUpdate online help and manpage to include drbd disk type.
Iustin Pop [Mon, 18 Feb 2008 11:28:55 +0000 (11:28 +0000)]
Update online help and manpage to include drbd disk type.

Author: schreiberal
Reviewed-by: imsnah

16 years agoAdd docdir to the tools/Makefile.am
Iustin Pop [Mon, 18 Feb 2008 11:28:36 +0000 (11:28 +0000)]
Add docdir to the tools/Makefile.am

Note: The other alternative would be to move the readme to the 'doc'
top-level dir, however I like it better to have the readme here.

Reviewed-by: ultrotter

16 years agoFix gnt-instance info i1 i2 ...
Guido Trotter [Sat, 16 Feb 2008 13:09:24 +0000 (13:09 +0000)]
Fix gnt-instance info i1 i2 ...

Due to an indentation error only the last instance queried got returned by
LUQueryInstanceData. Moving the append() call inside the for cycle to fix this
issue.

This is a one-liner targeted at 1.2.3

Reviewed-by: iustinp

16 years agoCode style fixes for drbd8-upgrade tool
Michael Hanselmann [Fri, 15 Feb 2008 15:13:11 +0000 (15:13 +0000)]
Code style fixes for drbd8-upgrade tool

Reviewed-by: ultrotter

16 years agoInclude the DRBD upgrade tool in the dist archive
Iustin Pop [Fri, 15 Feb 2008 15:06:06 +0000 (15:06 +0000)]
Include the DRBD upgrade tool in the dist archive

This patch adds the DRBD upgrade tool in the archive and in the
installed tools dir, and its associated README in the doc_DATA target.

Reviewed-by: ultrotter

16 years agoUpdate version numbers for the 1.2.3 release
Iustin Pop [Fri, 15 Feb 2008 12:31:03 +0000 (12:31 +0000)]
Update version numbers for the 1.2.3 release

Note: we don't update for now the install.sgml file with the new version
number, as there are no other changes. We'll update the web site to
indicate that the current install.html document is valid for 1.2.3 too.

Reviewed-by: imsnah,ultrotter

16 years agoFurther fixes for the 'export MAC in hooks' change
Iustin Pop [Fri, 15 Feb 2008 09:53:41 +0000 (09:53 +0000)]
Further fixes for the 'export MAC in hooks' change

QA suite which tests gnt-instance modify has uncovered another issue related to
mac export.

Reviewed-by: imsnah

16 years agoAlter the device activation code
Iustin Pop [Thu, 14 Feb 2008 15:51:34 +0000 (15:51 +0000)]
Alter the device activation code

This tiny patch fixes the breakage that the previous patch about
activation did by removing the Close() call after activation.

The initial reason for that call was that if the device is already
active and open, but we need it closed, we close it automatically.

This however conflicts with the 2-step open in the case the instance is
already open.

It makes sense to remove the call since in the current Ganeti setup,
just doing Close() is not enough to change the device from (e.g.)
primary to secondary, as some devices (e.g. md) might need Shutdown not
Close.

It also gets rid of a Close() in the CreateBlockDevice function, due to
the same reasoning (although in Create the child should not have a
different status anyway).

Reviewed-by: imsnah

16 years agoTwo small improvements to burnin
Iustin Pop [Thu, 14 Feb 2008 15:51:16 +0000 (15:51 +0000)]
Two small improvements to burnin

This tiny patch fixes the verbose option to actually work, and also when
creating instances it logs the secondary node too (even if this doesn't
apply for plain templates, it doesn't create an error).

Reviewed-by: imsnah

16 years agoModify the default output of gnt-instance list
Iustin Pop [Thu, 14 Feb 2008 15:47:56 +0000 (15:47 +0000)]
Modify the default output of gnt-instance list

This patch adds a new field available for selection in gnt-instance list
names "status" which represents the combined value of "admin_state" and
"oper_state". Since this is much easier to parse (e.g. gnt-instance list
|grep ERROR), we also modify the default field list to use this instead
of the admin/oper state fields.

Reviewed-by: imsnah

16 years agoParse double protocol version in drbd8.2
Guido Trotter [Tue, 12 Feb 2008 17:07:17 +0000 (17:07 +0000)]
Parse double protocol version in drbd8.2

DRBD 8.2 uses a double integer field ad protocol version, rather than a single
one. This patch fixes the ganeti parsing code, allowing both the old and the
new version type. In order to do so the internal _GetVersion function is
changed to return a dict, rather than a list, and the second protocol field is
added, only if present, as proto2.

This is a fix for issue 24.

Reviewed-by: iustinp

16 years agoFix a wrong OP_ID added in r261
Iustin Pop [Sun, 10 Feb 2008 12:11:12 +0000 (12:11 +0000)]
Fix a wrong OP_ID added in r261

Reviewed-by: ultrotter

16 years agoAdd a test opcode that sleeps for a given duration
Iustin Pop [Tue, 5 Feb 2008 14:19:05 +0000 (14:19 +0000)]
Add a test opcode that sleeps for a given duration

This can be used for testing purposes.

Reviewed-by: ultrotter,imsnah

16 years agoReduce the chance of DRBD errors with stale primaries
Iustin Pop [Tue, 5 Feb 2008 13:31:58 +0000 (13:31 +0000)]
Reduce the chance of DRBD errors with stale primaries

This patch is a first step in reducing the chance of causing DRBD
activation failures when the primary node has not-perfect data.

This issue is more seen with DRBD8, which has an 'outdate' state (in
which it can get more often). But it can (and before this patch, usually
will) happen with both 7 and 8 in the case the primary has data to sync.

The error comes from the fact that, before this patch, we activate the
primary DRBD device and immediately (i.e. as soon as we can run another
shell command) we try to make it primary. This might fail - since the
primary knows it has some data to catch up to - but we ignored this
error condition. The failure was visible later, in either md failing to
activate over a read-only storage or by instance failing to start.

The patch has two parts: one affecting bdev.py, which changes failures
in BlockDev.Open() from returning False to raising
errors.BlockDeviceError; noone (except a generic method inside bdev.py)
checked this return value and we logged it but the master didn't know
about it; now all classes raise errors from Open if they have a failure.

The other part, affecting cmdlib.py, changes the activation sequence
from:
  - activate on primary node as primary and secondary as secondary, in
    whatever order a function returns the nodes
to the following:
  - activate all drives as secondaries, on both the primary and the
    secondary nodes of the instance
  - after that, on the primary node, re-activate the device stack as
    primary

This is in order to give the chance to DRBD to connect and make the
handshake. As noted in the comments, this just increases the chances of
a handshake/connect, not fixing entirely the problem. However, it is a
good first step and it passes all tests of starting with stale (either
full or partial) primaries, with both drbd 7 and 8, and also passes a
burnin.

Note that the patch might make the device activation a little bit
slower, but it is a reasonable trade-off.

Reviewed-by: imsnah

16 years agoFix some indendation issues
Iustin Pop [Mon, 4 Feb 2008 14:34:33 +0000 (14:34 +0000)]
Fix some indendation issues

Reviewed-by: imsnah

16 years agoFix incomplete mac address export to hooks
Iustin Pop [Mon, 4 Feb 2008 14:27:02 +0000 (14:27 +0000)]
Fix incomplete mac address export to hooks

This patch completes the change introduced in r566 (trunk) and r568
(branch-1.2).

Reviewed-by: imsnah

16 years agoAdd an initial version of the drbd8 upgrade tool
Iustin Pop [Mon, 4 Feb 2008 09:50:26 +0000 (09:50 +0000)]
Add an initial version of the drbd8 upgrade tool

Reviewed-by: imsnah

16 years agoGive mac information to instance hooks
Guido Trotter [Thu, 31 Jan 2008 13:28:07 +0000 (13:28 +0000)]
Give mac information to instance hooks

Currently just the bridge and ip address are passed. Add an environment
variable for the mac address.

Reviewed-by: iustinp

16 years agoMake the mouse more usable in VNC for HVM.
Guido Trotter [Thu, 31 Jan 2008 13:27:53 +0000 (13:27 +0000)]
Make the mouse more usable in VNC for HVM.

Reviewed-by: imsnah

16 years agoExport bridge information too
Guido Trotter [Wed, 30 Jan 2008 11:17:50 +0000 (11:17 +0000)]
Export bridge information too

gnt-backup export used to export the ip and mac of each nic, but not which
bridge it was connected to. Adding this information.

Reviewed-by: iustinp

16 years agoFix online help for gnt-backup import
Guido Trotter [Wed, 30 Jan 2008 11:17:38 +0000 (11:17 +0000)]
Fix online help for gnt-backup import

The help string missed drbd as a disk template option. Adding it.

Reviewed-by: iustinp

16 years agotiny typo fix
Guido Trotter [Wed, 30 Jan 2008 11:17:27 +0000 (11:17 +0000)]
tiny typo fix

Reviewed-by: iustinp

16 years agoBump version numbers for the 1.2.2 release v1.2.2
Iustin Pop [Tue, 29 Jan 2008 16:38:08 +0000 (16:38 +0000)]
Bump version numbers for the 1.2.2 release

Reviewed-by: ultrotter

16 years agoImprove the documentation of query output fields
Iustin Pop [Mon, 28 Jan 2008 14:45:23 +0000 (14:45 +0000)]
Improve the documentation of query output fields

The gnt-node and gnt-instance list commands have a customizable list of
output fields, but the list is not up to date (in the man page) and not
easily understandable from the ‘--help’ output.

This patch updates the man pages and adds the available fields and
default fields in the ‘--help’ output, as part of the description.

Example:
Usage
=====
  gnt-node list

Lists the nodes in the cluster. The available fields are (see the man page for
details): name, pinst_cnt, pinst_list, sinst_cnt, sinst_list, pip, sip,
dtotal, dfree, mtotal, mnode, mfree, bootid. The default field list is (in
order): name, dtotal, dfree, mtotal, mnode, mfree, pinst_cnt, sinst_cnt.

Reviewed-by: imsnah,ultrotter

16 years agoAdd QA tests for gnt-instance modify
Iustin Pop [Mon, 28 Jan 2008 14:45:02 +0000 (14:45 +0000)]
Add QA tests for gnt-instance modify

This patch adds QA tests for most of the possible parameters in the
instance modify operation (exception being the MAC), and modifies the
sample QA file to run this test.

It also tests the no-modification test, but that is a weak one: we only
test that the exit code is one, not that the command gave a proper
response ("... please give at least one parameter") as opposed to a
traceback.

Reviewed-by: imsnah

16 years agoAdd option for the number of VCPUs in instance listing
Iustin Pop [Mon, 28 Jan 2008 14:44:46 +0000 (14:44 +0000)]
Add option for the number of VCPUs in instance listing

Reviewed-by: ultrotter

16 years agoChange the install directory for the tools
Iustin Pop [Mon, 28 Jan 2008 14:44:31 +0000 (14:44 +0000)]
Change the install directory for the tools

Currently, the tools are installed under $prefix/share/ganeti. This
prevents installing other things in a nice way under share/ganeti (like
arch-independent OS definitions), therefore we want the tools to live
under share/ganeti/tools.

A second change is that since these are programs, they would better live
under libdir than datadir - we might have to change them later to
binaries in which case 'share' is definitely not the way to go.

This patch therefore changes the install directory for the tools to
$prefix/lib/ganeti/tools.

Reviewed-by: imsnah

16 years agoFix VG listing broken by r510
Iustin Pop [Mon, 28 Jan 2008 14:44:19 +0000 (14:44 +0000)]
Fix VG listing broken by r510

LVM code sometimes adds an extra separator at the end of the field list.
Make the code strip it if exists.

Reviewed-by: imsnah

16 years agoMake backend._GetVGInfo check the validity of 'vgs'
Iustin Pop [Mon, 28 Jan 2008 14:44:06 +0000 (14:44 +0000)]
Make backend._GetVGInfo check the validity of 'vgs'

Currently, the function backend._GetVGInfo only checks for errors via
the exit code of the 'vgs' command. However, there are other ways of
failure so we need to also check for valid output before parsing.

Furthermore, the checks on the exit code were reported via a 'raise
LVMError', however this exception is not handled anywhere and so the
remote caller will not get reasonable data.

This patch does two main things:
  - change the calling protocol for this function to not raise an error,
    and instead return the same type of argument always (dict) with the
    requested keys but values changed into None; this allows in the
    parent rpc call node_info to have valid memory information but
    "error" value for disk space, if there's an error with disks
  - check the validity of the output so that in case we fail to parse
    it, we don't abort with a backtrace in the node daemon but instead
    return the default result value (containing errors), and log these
    cases in the node daemon log file

We also bump the protocol version to 11.

Reviewed-by: ultrotter

16 years agoFix checking of node free disk in CreateInstance
Iustin Pop [Mon, 28 Jan 2008 14:42:28 +0000 (14:42 +0000)]
Fix checking of node free disk in CreateInstance

This patch does two things:
  - checks that the result values from call_node_info are valid integer
    values and aborts otherwise
  - skips disk space computation for the DT_DISKLESS case

The most important point of the patch is the verification of results
from the rpc call, as it prepares for a patch that allows failures to be
better reported from the remote node.

Reviewed-by: ultrotter

16 years agoAbstract node memory checking into a separate function
Iustin Pop [Mon, 28 Jan 2008 14:42:12 +0000 (14:42 +0000)]
Abstract node memory checking into a separate function

The checking of a node's free memory (via rpc.call_node_info) is done in
both start instance an failover. This patch abstracts this call,
together with the appropriate error handling, into a separate function
called _CheckNodeFreeMemory.

The patch also has some related changes:
  - the check is done in prereq and not in exec for start instance
  - the redundant check in exec for failover has been removed

Reviewed-by: ultrotter

16 years agoChange a hardcoded path into its proper constant
Iustin Pop [Mon, 28 Jan 2008 14:42:00 +0000 (14:42 +0000)]
Change a hardcoded path into its proper constant

The function backend.UploadFile still uses "/etc/hosts" directly instead
of the existing constant; this patch fixes this.

Reviewed-by: ultrotter

16 years agoAllow use of 'diskless' disk template in burnin
Iustin Pop [Mon, 28 Jan 2008 14:41:47 +0000 (14:41 +0000)]
Allow use of 'diskless' disk template in burnin

Even if this doesn't have any practical use for actually creating
instances, it can be used for very fast burnin and testing just the
add/start/stop/remove functionality.

This has also revealed a bug in export/import related to diskless
instances, so it's educational value is proved.

Reviewed-by: ultrotter

16 years agoFix run directory for the fake hypervisor
Iustin Pop [Mon, 28 Jan 2008 14:41:35 +0000 (14:41 +0000)]
Fix run directory for the fake hypervisor

Currently the fake hypervisor has hardcoded ‘/var/run’ as a base
directory for its store. This patch adds a constant RUN_DIR that is used
for both the fake hypervisor and for BDEV_CACHE_DIR.

Reviewed-by: ultrotter

16 years agoFix the init.d script
Iustin Pop [Mon, 28 Jan 2008 14:41:20 +0000 (14:41 +0000)]
Fix the init.d script

The script (which is geared towards Debian) is actually not fully
compliant, as lintian generates a warning on it - the S runlevel is not
a valid one in the "Stop" stanza. This patch removes "S" from the stop
list.

Reviewed-by: imsnah

16 years agoFix a typo in a devel/upload comment
Guido Trotter [Mon, 28 Jan 2008 13:41:21 +0000 (13:41 +0000)]
Fix a typo in a devel/upload comment

Files are uploaded to $prefix/sbin, not $prefix/bin

Reviewed-by: iustinp

16 years agoAdd tool to ease testing of unsubmitted patches
Guido Trotter [Mon, 28 Jan 2008 13:41:09 +0000 (13:41 +0000)]
Add tool to ease testing of unsubmitted patches

The upload tool can be used to submit the current code to an arbitrary list of
nodes. This helps developers in easily testing their changes before submitting
them.

Reviewed-by: iustinp

16 years agoAdd a missing parenthesis
Guido Trotter [Mon, 28 Jan 2008 13:40:57 +0000 (13:40 +0000)]
Add a missing parenthesis

It was wrongly deleted when converting

if a in dict.keys():
to
if a in dict:

Reviewed-by: imsnah

16 years agoAdd a few aliases for startup/shutdown
Guido Trotter [Mon, 28 Jan 2008 13:40:42 +0000 (13:40 +0000)]
Add a few aliases for startup/shutdown

These aliases are widely used to think of these operations and save some typing
too. Even though there is some thought to make start/stop the default operation
name I don't think this should happen for 1.2, for now adding it as an alias is
fine.

Reviewed-by: iustinp

16 years agoAdd the first command alias
Guido Trotter [Mon, 28 Jan 2008 13:40:25 +0000 (13:40 +0000)]
Add the first command alias

Alias activate_block_devs to activate-disks, for ganeti 1.1 compatibility.

Reviewed-by: iustinp

16 years agoAdd support for command aliases
Guido Trotter [Mon, 28 Jan 2008 13:40:12 +0000 (13:40 +0000)]
Add support for command aliases

Passing a new aliases dict to generic main we can easily support aliases for
compatibility reasons or simply useability.

Reviewed-by: iustinp

16 years agoAllow selection of hypervisor type in QA
Iustin Pop [Mon, 28 Jan 2008 10:45:01 +0000 (10:45 +0000)]
Allow selection of hypervisor type in QA

This patch allows the selection of the hypervisor type for the QA
process; this is useful when testing hypervisor-independent changes that
don't require a Xen setup.

The patch also fixes the OS name in the sample QA config file provided.

Reviewed-by: imsnah

16 years agoCheck that we have a valid export list
Guido Trotter [Mon, 28 Jan 2008 09:43:38 +0000 (09:43 +0000)]
Check that we have a valid export list

Before iterating over the list of exports present on a node, check that what
ganeti returned is actually a list. This solves the case when one of the nodes
is down, and an error value is returned.

This fixes issue 21

Reviewed-by: iustinp

16 years agoFix "gnt-instance modify --initrd"
Iustin Pop [Mon, 28 Jan 2008 09:02:02 +0000 (09:02 +0000)]
Fix "gnt-instance modify --initrd"

The new QA tests for instance modify uncovered a bug in the modify
initrd operation when setting the initrd to none.

Reviewed-by: imsnah

16 years agoFix gnt-instance modify breakage due to hvm_boot_order
Iustin Pop [Sun, 27 Jan 2008 17:10:39 +0000 (17:10 +0000)]
Fix gnt-instance modify breakage due to hvm_boot_order

As reported by hypnoce@gmail.com, this is missing a check on None. As we don't
care about uppercase, we keep the check simple by removing the lower() call.

Reviewed-by: ultrotter

16 years agoFix the make dist rule
Iustin Pop [Fri, 18 Jan 2008 16:08:26 +0000 (16:08 +0000)]
Fix the make dist rule

In revision 459 I added a bug in the make dist rule in the sense that
the archive will include *all* of test/data directory, including the
.svn directory if it exists.

This patch fixes that problem and adds a distcheck hook that tests for
such errors in the future (files/directories matching the .svn and .git
patterns).

It also fixes a typo in the NEWS file.

Reviewed-by: imsnah

16 years agoBump version numbers for the 1.2.1 release v1.2.1
Iustin Pop [Wed, 16 Jan 2008 15:11:53 +0000 (15:11 +0000)]
Bump version numbers for the 1.2.1 release

Reviewed-by: imsnah

16 years agoShow the HVM boot order in instance info
Iustin Pop [Wed, 16 Jan 2008 15:11:19 +0000 (15:11 +0000)]
Show the HVM boot order in instance info

Reviewed-by: imsnah

16 years agoTwo small style fixes
Iustin Pop [Wed, 16 Jan 2008 15:10:54 +0000 (15:10 +0000)]
Two small style fixes

Reviewed-by: imsnah

16 years agoMerge SVN commits 483..488 to the 1.2 branch
Iustin Pop [Wed, 16 Jan 2008 15:10:31 +0000 (15:10 +0000)]
Merge SVN commits 483..488 to the 1.2 branch

Reviewed-by: imsnah

16 years agoIntegrate svn revision 481 in the 1.2 branch
Guido Trotter [Fri, 11 Jan 2008 12:20:59 +0000 (12:20 +0000)]
Integrate svn revision 481 in the 1.2 branch

Reviewed-by: iustinp

16 years agoMerge svn revisions 471...475 into ganeti-1.2
Guido Trotter [Thu, 10 Jan 2008 14:36:46 +0000 (14:36 +0000)]
Merge svn revisions 471...475 into ganeti-1.2

The gnt-backup documentation fixes are relevant for version 1.2 too. Apply them
to the branch.

Reviewed-by: iustinp

16 years agoMerge revs 433..469 into the 1.2 branch
Iustin Pop [Wed, 9 Jan 2008 17:00:50 +0000 (17:00 +0000)]
Merge revs 433..469 into the 1.2 branch

Squashed commit of the following:

commit e692d5bd7d35dd049f3f01159a116b82d3e0b7b4
Author: Alexander Schreiber <schreiberal@gmail.com>
Date:   Wed Jan 9 13:02:21 2008 +0000

    Add boot_order entry to Instance object.

    First step to support custom boot device order for HVM instances, add a
    location to actually store that information for the instance.

    Reviewed-by: iustinp

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@469 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 2da627cb541371f2241cb14b06ab30c8b7c657d6
Author: Iustin Pop <iustinp@gmail.com>
Date:   Tue Jan 8 16:16:43 2008 +0000

    Add the new OpCreateInstance parameters to burnin

    Reviewed-by: schreiberal

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@468 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit a3837015a4f1b049e8faff1c953ab761e01052ba
Author: Iustin Pop <iustinp@gmail.com>
Date:   Tue Jan 8 16:16:23 2008 +0000

    Fix gnt-instance modify breakage introduced in r462

    Reviewed-by: schreiberal

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@467 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit d9057cabda8f064b1d1f0bf0eb47ccc89427995f
Author: Iustin Pop <iustinp@gmail.com>
Date:   Tue Jan 8 11:04:21 2008 +0000

    Update manpages with the kernel/initrd options

    This patch modifes the ‘gnt-instance’ instance manpage with the new
    ‘--kernel’ and ‘--initrd’ options.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@466 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 7b70b7f0b5aef04f92550fde554affe2fae8376b
Author: Iustin Pop <iustinp@gmail.com>
Date:   Tue Jan 8 11:04:06 2008 +0000

    Change the Xen PVM to use the new kernel options

    This patch changes the hypervisor to use the new kernel and initrd
    instance attributes. They kernel is handled as expected (use the custom
    or the default one), but the initrd is treated a little bit special, in
    order to keep compatibility with previous behaviour:
      - if customized and not found, raise an error
      - if default and not found, do not use one

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@465 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit bffaf136bb99e63467f419f0692b92cfa08e5714
Author: Iustin Pop <iustinp@gmail.com>
Date:   Tue Jan 8 11:03:49 2008 +0000

    Make ‘gnt-instance info’ show kernel/initrd paths

    This patch changes the info subcommand to nicely show the kernel and
    initrd paths.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@464 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 5457df981ad8283834a8935aefb24c2bc9069854
Author: Iustin Pop <iustinp@gmail.com>
Date:   Tue Jan 8 11:03:30 2008 +0000

    Allow defining the kernel/initrd at creation time

    This patch adds support for defining the kernel/initrd at instance
    creation time, using the same interface as in instance modify.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@463 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit f536e1f1bb8d7bfc94f03fcf6c8d7a1a9119d87b
Author: Iustin Pop <iustinp@gmail.com>
Date:   Tue Jan 8 11:03:11 2008 +0000

    Add support for modifying the kernel/initrd path

    This patch adds support in ‘gnt-instance modify’ to set the kernel and
    initrd paths. The user can pass either 'default' or 'none' (none is not
    valid for kernel).

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@462 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 2905c2ece9e28d78920ef9df2fd46a9e7a076e3c
Author: Iustin Pop <iustinp@gmail.com>
Date:   Tue Jan 8 11:02:30 2008 +0000

    Add kernel/initrd paths to the instance object

    This patch adds two new attributes to the instance object:
      - kernel_path
      - object_path

    The code ignores them and the configuration handling is not broken by
    this addition.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@461 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 34fecc72771ef7daa6cf7ff9363f3c3ff9638ed7
Author: Iustin Pop <iustinp@gmail.com>
Date:   Mon Jan 7 16:34:46 2008 +0000

    Fix a typo in the ‘gnt-instance’ manpage

    Reviewed-by: schreiberal

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@460 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 4215af52a35a3623b1672fbf99edcc2c72f0934f
Author: Iustin Pop <iustinp@gmail.com>
Date:   Mon Jan 7 16:34:19 2008 +0000

    Fix ‘make distcheck’ breakage introduced in r455

    This patch fixes the ‘make distcheck’ breakage caused by missing test data in
    the archive and missing handling of builddir!=srcdir case.

    Reviewed-by: schreiberal

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@459 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 4434d07a6d104dbf055e04594948fcd15a51423b
Author: Iustin Pop <iustinp@gmail.com>
Date:   Mon Jan 7 13:30:29 2008 +0000

    Improve verify-disks: broken/missing LV detection

    This patch improves the ‘gnt-cluster verify-disks’ command by adding
    support for detecting broken volume groups and missing logical volume
    names.

    As such, we don't try anymore to activate disks for instances that are
    not likely to succeed anyway, and instead report them.

    Reviewed-by: schreiberal

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@458 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit b9f29ddfc982db5bf59655397fa866035f0be325
Author: Iustin Pop <iustinp@gmail.com>
Date:   Mon Jan 7 13:29:02 2008 +0000

    Activate logical volumes at Assemble() time

    This patch changes the Assemble() method for logical volumes from a noop
    to do a `lvchange -ay` on the logical volume; this ensures that if the
    logical volume is not active, we are able to activate and use it.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@457 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit a73ea0d86ea23c2b1df0f42212a9eb2c3f18a895
Author: Iustin Pop <iustinp@gmail.com>
Date:   Mon Jan 7 13:28:13 2008 +0000

    Improve speed of activating block devs

    This patch fixes the double attach operation in bdev.AttachOrAssemble,
    which was an indentation mistake in the first place.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@456 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 5d05c83ef17ee4523e2b71fbc15696a453afd573
Author: Iustin Pop <iustinp@gmail.com>
Date:   Mon Jan 7 11:22:40 2008 +0000

    Add unittest for DRBD8 drdbsetup show parser

    This patch changes the bdev.DRBD8._GetDevInfo to take a string instead
    of a minor, separates the `drbdsetup show` invocation into a new
    separate method (bdev.DRBD8._GetShowData) and modifies the rest of the
    DRBD8 class to make the appropriate calls.

    It also adds a unittest script and data files for testing various cases
    of device output.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@455 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 1797a68e524f6ade53bac5118d9883e71fb52dfb
Author: Alexander Schreiber <schreiberal@gmail.com>
Date:   Fri Dec 28 10:05:49 2007 +0000

    Document variable MAC support to gnt-instance.

    Document the ability to set and change the MAC address for instances.

    Reviewed-by: iustinp

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@454 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit b02fb72d5ef17e5ca2a8963197a75aa71ce6d77d
Author: schreiberal <schreiberal@a6b21a0d-9e31-0410-a73f-d369b950c04d>
Date:   Thu Dec 27 15:31:11 2007 +0000

    Allow instance MAC address to be set.

    Allow the MAC address of an instance to be specified optionally during
    instance creation and later to be changed via instance modify.

    Reviewed-by: iustinp

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@453 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 9ac4534b27e31bb936aa0012ae898ca32368c41b
Author: schreiberal <schreiberal@a6b21a0d-9e31-0410-a73f-d369b950c04d>
Date:   Fri Dec 21 14:00:15 2007 +0000

    HVM proof-of-concept documentation

    Update documentation to document the HVM proof-of-concept.

    Reviewed-by: iustinp

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@452 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 4afa472fd2d2cd7e7204a323d982e9817da3f751
Author: schreiberal <schreiberal@a6b21a0d-9e31-0410-a73f-d369b950c04d>
Date:   Thu Dec 20 16:47:52 2007 +0000

    Proof-of-Concept HVM support for Ganeti.

    This patch implements a first proof-of-concept for HVM support in Ganeti.
    Due to the nature of this patch, it is intended for test environments
    only.

    Reviewed-by: iustinp

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@451 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit fc92f1eb05d43b5621275915c09c0403e381a5a5
Author: schreiberal <schreiberal@a6b21a0d-9e31-0410-a73f-d369b950c04d>
Date:   Thu Dec 20 13:59:30 2007 +0000

    Error handling for instance config file creation

    Wrap error handling around creating the instance config file.

    Reviewed-by: iustinp

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@450 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 096950534e83773e9ee149a85889fa4e84c8d5c8
Author: schreiberal <schreiberal@a6b21a0d-9e31-0410-a73f-d369b950c04d>
Date:   Thu Dec 20 09:58:35 2007 +0000

    Use a generic Xen hypervisor interface.

    Abstract the parts of the Xen hypervisor interface shared by both PVM and
    HVM into a generic interface, subclass the special case PVM from that.

    Prepatch for adding HVM support.

    Reviewed-by: iustinp

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@449 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 00a2845a00e3572f9b0fe7fb8a8eb763b7c0ee58
Author: Iustin Pop <iustinp@gmail.com>
Date:   Wed Dec 19 11:11:05 2007 +0000

    Make utils.RunCmd() deal with interleaved stdout/stderr

    Currently, RunCmd is written with the assumption that programs will have
    a small stderr output, therefore we read the child's stdout (which can
    be big, so we don't want to block the child) and then the stderr (which
    is small, so it shouldn't block).

    However, with the ‘gnt-cluster verify-disks’ command, we ourselves
    generate heavy stderr, therefore we break the ganeti-watcher which runs
    the verify-disks via utils.RunCmd.

    This patch turns the RunCmd command into an poll-based one, which means
    any kind of interleaved output by a child on stdout/stderr will be
    handled correctly. Of course, since the output is buffered in memory,
    there are other ways to break RunCmd(). But at least this should fix the
    common case.

    Reviewed-by: hansmi

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@448 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 8e6df0fe4ba1a6a8769a26a86591231f5f078109
Author: Alexander Schreiber <schreiberal@gmail.com>
Date:   Tue Dec 18 14:25:31 2007 +0000

    Internal API change for instance console access.

    Change the internal hypervisor API for GetShellCommandForConsole, we
    now call it with the instance instead of just the instance name.

    This is a prep patch for HVM, since HVM needs more than just the instance
    name to determine a way of console access.

    (this is a resend due to mail adress tyop)

    Reviewed-by: iustinp

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@447 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 53951532ba072fdcb61cb5c51538f97b544202b3
Author: Alexander Schreiber <schreiberal@gmail.com>
Date:   Tue Dec 18 14:05:11 2007 +0000

    cleanup for hypervisor constants

    Move constant definitions for hypervisor into constants.py

    Reviewed-by: ultrotter

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@446 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 1086209f9f889fcf357537bdcf74ac55b7800c08
Author: Guido Trotter <ultrotter@gmail.com>
Date:   Tue Dec 18 11:04:36 2007 +0000

    Specify hint as a named argument

    hint is declared as a named argument for the LogWarning function. Make its
    caller pass it naming it.

    Reviewed-by: iustinp

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@445 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 5db0c4f28225785b658dca02a7d28525314d2e39
Author: Alexander Schreiber <schreiberal@gmail.com>
Date:   Mon Dec 17 14:53:35 2007 +0000

    Add instance port support.

    Extends the instance object by adding a port item, also adds changes
    to print this port via gnt-instance info.

    Reviewed-by: iustinp

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@444 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 6add91021c6ddafeca3951a6784397fbf0057a4e
Author: Iustin Pop <iustinp@gmail.com>
Date:   Mon Dec 17 14:50:23 2007 +0000

    Make note about minimum version of drbd 8 required

    Since 8.0.6 and lower have issues that break Ganeti's usage of drbd,
    this patch notes the required version of DRBD.

    Reviewed-by: ultrotter

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@443 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 99b843a942f505083d3811b0ded5e06f3611e2c1
Author: Iustin Pop <iustinp@gmail.com>
Date:   Wed Dec 12 15:18:10 2007 +0000

    Handle ^C while trying to acquire the lock

    When waiting for the lock and pressing ^C, the user will get a backtrace
    as the KeyboardInterrupt exception is not handled. The patch adds a
    simple method of handling it.

    Note that this is not about ^C in any other place.

    Reviewed-by: schreiberal,imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@441 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit d69fa648261be67e82df13891c399494b0d5b29a
Author: Iustin Pop <iustinp@gmail.com>
Date:   Wed Dec 12 13:13:49 2007 +0000

    Update the man page for ‘gnt-cluster’

    This adds some information about the new ‘verify-disks’ command.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@440 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 8684fde81e03e644fd6310262700e4f20920a075
Author: Iustin Pop <iustinp@gmail.com>
Date:   Wed Dec 12 13:13:38 2007 +0000

    Modify ‘ganeti-watcher’ to run verify-disks

    This patch modifies the watcher to run the ‘gnt-cluster verify-disks’
    command and to log its output (if any).

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@439 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 3d3e0821289abb7faa40e3bbcc353383c3695b19
Author: Iustin Pop <iustinp@gmail.com>
Date:   Wed Dec 12 13:13:27 2007 +0000

    Add the ‘gnt-cluster verify-disks’ command

    This patch adds the OpVerifyDisks handling in mcpu.py and the
    verify-disks command in the gnt-cluster script, which for every instance
    computed by LUVerifyDisks submits a new OpActivateInstanceDisks request.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@438 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit 573b4a5aefd6651dbb1108a57ecb846b7fa424e8
Author: Iustin Pop <iustinp@gmail.com>
Date:   Wed Dec 12 13:13:13 2007 +0000

    Add LUVerifyDisks

    This patch adds a new LUVerifyDisks that implements the OpVerifyDisks.
    The algorithm is that by determining not-used logical volumes for
    instances that are supposed to be running, we presume from there that
    the DRBD devices are not online and therefore one should
    ‘activate-disks’ for those instances.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@437 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit accd7a00b1375f63061ca4461099fe37f8a30159
Author: Iustin Pop <iustinp@gmail.com>
Date:   Wed Dec 12 13:13:02 2007 +0000

    Add a new OpVerifyDisks opcode

    This patch adds the definition of a new opcode that will be used to
    compute the list of instances with not-online disks.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@436 a6b21a0d-9e31-0410-a73f-d369b950c04d

commit c58b3735487746702cc7e393fc5ff895f9d3f236
Author: Iustin Pop <iustinp@gmail.com>
Date:   Tue Dec 11 16:25:02 2007 +0000

    Return more data in rpc.call_volume_list

    Currently, the volume_list call returns only the volume size. However,
    it is useful to also have two other things: the 'inactive' state of the
    volume (which might trigger a ‘vgchange -a y’ on the volume group) and
    the online state (which shows if the volume is in use or not).

    Since this modifies an RPC call, we also bump the protocol version,
    although the single user of the call didn't care about the dictionary
    values, only about the keys.

    Reviewed-by: imsnah

    git-svn-id: https://ganeti.googlecode.com/svn/trunk/ganeti@435 a6b21a0d-9e31-0410-a73f-d369b950c04d

This merge:
Reviewed-by: ultrotter, imsnah

16 years agoBranch ganeti-1.2 from trunk/ganeti v1.2.0
Iustin Pop [Tue, 4 Dec 2007 15:25:42 +0000 (15:25 +0000)]
Branch ganeti-1.2 from trunk/ganeti

Reviewed-by: imsnah

16 years agoBump version numbers for 1.2.0 release
Iustin Pop [Tue, 4 Dec 2007 15:20:31 +0000 (15:20 +0000)]
Bump version numbers for 1.2.0 release

Reviewed-by: imsnah

16 years agoOn OS creation errors, write logfile path to ganeti-noded's logfile.
Michael Hanselmann [Tue, 4 Dec 2007 11:21:58 +0000 (11:21 +0000)]
On OS creation errors, write logfile path to ganeti-noded's logfile.

Reviewed-by: schreiberal

16 years agoOutput reading fix for backend.NodeVolumes()
Alexander Schreiber [Tue, 4 Dec 2007 11:18:42 +0000 (11:18 +0000)]
Output reading fix for backend.NodeVolumes()

Use result.stdout instead of result.output to avoid potential confusion
by merged in error messages from stderr.

Reviewed-by: iustinp

16 years agoLog instance startup errors correctly
Iustin Pop [Tue, 4 Dec 2007 11:04:53 +0000 (11:04 +0000)]
Log instance startup errors correctly

Currently, the Hypervisor error raised on ‘xm create’ failure doesn't
contain the actual output from the command, thus what we log to the node
daemon log is not helpful enough. This patch fixes that.

Reviewed-by: schreiberal

16 years agoModify GetVolumeList so output on stderr from lvs doesn't break it.
Alexander Schreiber [Tue, 4 Dec 2007 10:37:08 +0000 (10:37 +0000)]
Modify GetVolumeList so output on stderr from lvs doesn't break it.

Reviewed-by: imsnah

16 years agoFix the unittest for locking.
Alexander Schreiber [Mon, 3 Dec 2007 14:32:24 +0000 (14:32 +0000)]
Fix the unittest for locking.

Reviewed-by: imsnah

16 years agoVarious code style fixes for strings.
Michael Hanselmann [Mon, 3 Dec 2007 14:03:26 +0000 (14:03 +0000)]
Various code style fixes for strings.

- When line wrapping is needed, move spaces to the next line.
- Remove embedded line breaks from error messages.

Reviewed-by: schreiberal

16 years agoAdd comment about PEP 318 to qa_utils.py.
Michael Hanselmann [Mon, 3 Dec 2007 13:54:56 +0000 (13:54 +0000)]
Add comment about PEP 318 to qa_utils.py.

Reviewed-by: iustinp

16 years agoRemove DRBD version from SECURITY document.
Michael Hanselmann [Mon, 3 Dec 2007 13:54:33 +0000 (13:54 +0000)]
Remove DRBD version from SECURITY document.

Reviewed-by: schreiberal

16 years agoRemove orphaned closing tag.
Alexander Schreiber [Fri, 30 Nov 2007 13:15:47 +0000 (13:15 +0000)]
Remove orphaned closing tag.

Reviewed-by: iustinp

16 years agoFix parsing of drbdsetup show output
Iustin Pop [Fri, 30 Nov 2007 10:22:56 +0000 (10:22 +0000)]
Fix parsing of drbdsetup show output

This fixes the parsing of integers in the drbdsetup show output with
newer pyparsing versions.

Basically, the convert-to-int action that we use was taken from the
example documentation of an older pyparsing version that automatically
uses only the second element if the result is returned as a tuple, but
this was deprecated for a while and removed in 1.4.3.

Based on a nice report by Jorge Cabello <jorge@aspl.es>, and
confirmation about pyparsing behaviour from its author. Thanks!

Reviewed-by: imsnah

16 years agoReplace hardcoded lock dir
Iustin Pop [Thu, 29 Nov 2007 16:52:22 +0000 (16:52 +0000)]
Replace hardcoded lock dir

This patch replaces the hardcoded ‘/var/lock/’ directory with one based on
LOCALSTATEDIR.

Reviewed-by: imsnah