Alexander Schreiber [Mon, 18 Feb 2008 10:44:37 +0000 (10:44 +0000)]
Update online help and manpage to include drbd disk type.
Reviewed-by: imsnah
Iustin Pop [Mon, 18 Feb 2008 10:42:50 +0000 (10:42 +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
Guido Trotter [Sat, 16 Feb 2008 13:06:37 +0000 (13:06 +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
Michael Hanselmann [Fri, 15 Feb 2008 12:41:03 +0000 (12:41 +0000)]
Replace version number in install.sgml during build time
Reviewed-by: iustinp
Iustin Pop [Fri, 15 Feb 2008 09:53:11 +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
Iustin Pop [Thu, 14 Feb 2008 15:54:05 +0000 (15:54 +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
Iustin Pop [Thu, 14 Feb 2008 15:53:54 +0000 (15:53 +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
Iustin Pop [Thu, 14 Feb 2008 15:53:36 +0000 (15:53 +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
Michael Hanselmann [Thu, 14 Feb 2008 15:39:33 +0000 (15:39 +0000)]
Code style updates for QA code.
Reviewed-by: iustinp
Guido Trotter [Tue, 12 Feb 2008 17:06:11 +0000 (17:06 +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
Iustin Pop [Sun, 10 Feb 2008 12:10:26 +0000 (12:10 +0000)]
Fix a wrong OP_ID added in r261
Reviewed-by: ultrotter
Guido Trotter [Fri, 8 Feb 2008 11:23:40 +0000 (11:23 +0000)]
Shared Lock implementation and unit tests.
Adding a locking.py file for the ganeti locking library. Its first component is
the implementation of a non-recursive blocking shared lock complete with a
testing library.
Reviewed-by: imsnah, iustinp
Iustin Pop [Wed, 6 Feb 2008 11:29:07 +0000 (11:29 +0000)]
Document the client API protocol, first version
This patch adds some documentation about the proposed client API. It's
not yet complete, but should be a usable draft for the initial
implementation.
Reviewed-by: ultrotter
Iustin Pop [Tue, 5 Feb 2008 14:12:09 +0000 (14:12 +0000)]
Add a test opcode that sleeps for a given duration
This can be used for testing purposes.
Reviewed-by: ultrotter,imsnah
Iustin Pop [Tue, 5 Feb 2008 13:33:00 +0000 (13:33 +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
Iustin Pop [Mon, 4 Feb 2008 14:33:15 +0000 (14:33 +0000)]
Fix some indendation issues
Reviewed-by: imsnah
Iustin Pop [Mon, 4 Feb 2008 14:28:15 +0000 (14:28 +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
Guido Trotter [Thu, 31 Jan 2008 13:22:56 +0000 (13:22 +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
Alexander Schreiber [Thu, 31 Jan 2008 12:38:17 +0000 (12:38 +0000)]
Make the mouse more usable in VNC for HVM.
Reviewed-by: imsnah
Guido Trotter [Wed, 30 Jan 2008 11:14:36 +0000 (11:14 +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
Guido Trotter [Wed, 30 Jan 2008 11:14:04 +0000 (11:14 +0000)]
Fix online help for gnt-backup import
The help string missed drbd as a disk template option. Adding it.
Reviewed-by: iustinp
Iustin Pop [Wed, 30 Jan 2008 10:54:22 +0000 (10:54 +0000)]
Bump version numbers for the 1.2.2 release
Reviewed-by: ultrotter
Alexander Schreiber [Mon, 28 Jan 2008 16:22:50 +0000 (16:22 +0000)]
tiny typo fix
Reviewed-by: iustinp
Iustin Pop [Mon, 28 Jan 2008 14:32:47 +0000 (14:32 +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
Guido Trotter [Mon, 28 Jan 2008 13:35:23 +0000 (13:35 +0000)]
Fix a typo in a devel/upload comment
Files are uploaded to $prefix/sbin, not $prefix/bin
Reviewed-by: iustinp
Iustin Pop [Mon, 28 Jan 2008 13:33:19 +0000 (13:33 +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
Iustin Pop [Mon, 28 Jan 2008 11:51:47 +0000 (11:51 +0000)]
Add option for the number of VCPUs in instance listing
Reviewed-by: ultrotter
Iustin Pop [Mon, 28 Jan 2008 10:43:38 +0000 (10:43 +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
Iustin Pop [Mon, 28 Jan 2008 09:03:03 +0000 (09:03 +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
Iustin Pop [Sun, 27 Jan 2008 17:08:53 +0000 (17:08 +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
Guido Trotter [Fri, 25 Jan 2008 15:36:37 +0000 (15:36 +0000)]
Add a missing parenthesis
It was wrongly deleted when converting
if a in dict.keys():
to
if a in dict:
Reviewed-by: imsnah
Iustin Pop [Tue, 22 Jan 2008 07:12:04 +0000 (07:12 +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
Guido Trotter [Mon, 21 Jan 2008 16:57:28 +0000 (16:57 +0000)]
Remove qa tests for gnt-instance start/stop
Those tests were added in the wrong place. This patch removes them. One day
we'll implement proper command line regression testing and they should go in
there.
Reviewed-by: iustinp
Guido Trotter [Mon, 21 Jan 2008 16:29:26 +0000 (16:29 +0000)]
Test start/stop aliases in qa
This tests both that those two aliases have not been removed and also that
aliases handling hasn't been broken.
Reviewed-by: iustinp
Guido Trotter [Mon, 21 Jan 2008 16:29:08 +0000 (16:29 +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
Guido Trotter [Mon, 21 Jan 2008 16:28:48 +0000 (16:28 +0000)]
Add the first command alias
Alias activate_block_devs to activate-disks, for ganeti 1.1 compatibility.
Reviewed-by: iustinp
Guido Trotter [Mon, 21 Jan 2008 16:28:30 +0000 (16:28 +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
Guido Trotter [Mon, 21 Jan 2008 16:18:53 +0000 (16:18 +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
Guido Trotter [Mon, 21 Jan 2008 16:17:12 +0000 (16:17 +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: imsnah
Iustin Pop [Mon, 21 Jan 2008 14:33:04 +0000 (14:33 +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
Iustin Pop [Sun, 20 Jan 2008 22:13:16 +0000 (22:13 +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
Iustin Pop [Sun, 20 Jan 2008 22:12:55 +0000 (22:12 +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
Iustin Pop [Sun, 20 Jan 2008 22:12:27 +0000 (22:12 +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
Iustin Pop [Sun, 20 Jan 2008 22:09:31 +0000 (22:09 +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
Iustin Pop [Sun, 20 Jan 2008 22:07:35 +0000 (22:07 +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
Iustin Pop [Sun, 20 Jan 2008 22:02:52 +0000 (22:02 +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
Iustin Pop [Sun, 20 Jan 2008 13:55:17 +0000 (13:55 +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
Iustin Pop [Fri, 18 Jan 2008 16:07:26 +0000 (16:07 +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
Iustin Pop [Fri, 18 Jan 2008 15:19:07 +0000 (15:19 +0000)]
Bump version numbers for the 1.2.1 release
This a merge to trunk of revision 494.
Reviewed-by: imsnah
Iustin Pop [Wed, 16 Jan 2008 16:01:33 +0000 (16:01 +0000)]
Show the HVM boot order in instance info
This is a merge from the 1.2 branch
Reviewed-by: imsnah
Iustin Pop [Wed, 16 Jan 2008 16:01:14 +0000 (16:01 +0000)]
Two small style fixes
This is a merge from the 1.2 branch
Reviewed-by: imsnah
Guido Trotter [Mon, 14 Jan 2008 16:03:39 +0000 (16:03 +0000)]
Make instance start/stop skippable at burnin time
Even though burnin was born just to do that test it now contains a lot more
things one might try, so it makes sense to make instance start/stop optional
too.
This creates a burnin that at the bare minimum tests instance create and
remove, if all the --no options are specified, but usually does a lot more.
Reviewed-by: iustinp
Guido Trotter [Mon, 14 Jan 2008 16:01:51 +0000 (16:01 +0000)]
Do instance export and import during burnin
Instances get exported to a remote node, then removed and imported back to
their original nodes. This should be an idempotent option from the instance
point of view, and help making sure ImportExport is kept up to date.
It will also help making burnin take a lot longer, which is nice to take a nap.
"...but I'm doing a cluster burnin...". Unfortunately this subfeature is a bit
jeopardized by the fact that the new code can be skipped with the
--no-importexport option, but nobody needs to know that, do they?
Reviewed-by: iustinp
Iustin Pop [Mon, 14 Jan 2008 15:11:08 +0000 (15:11 +0000)]
Allow burnin to take "-t plain" as an option
The burnin code deals with "-t plain", but the command line parser
doesn't allow that as an option. This patch fixes this issue.
Reviewed-by: ultrotter
Iustin Pop [Mon, 14 Jan 2008 15:10:18 +0000 (15:10 +0000)]
Fix some misspellings
This patch fixes two name typos and a style issue (which makes pylint
complain).
Reviewed-by: ultrotter
Guido Trotter [Mon, 14 Jan 2008 14:19:11 +0000 (14:19 +0000)]
Fix CreateInstance new optional parameters
Some new paramenters of the CreateInstance opcode are optional (namely
kernel_path, initrd_path and hvm_boot_order) but their absence makes the code
crash. Fix this by initializing them to a default value if they're not present.
Reviewed-by: iustinp
Guido Trotter [Mon, 14 Jan 2008 12:22:39 +0000 (12:22 +0000)]
Add mac="auto" at import time
Mac is now a mandatory option for OpCreateInstance. Add it when we call this
opcode at import time too. This is a quick fix for the code, but probably more
work needs to be done to integrate mac addresses with the import/export
functionality in a nice way.
Reviewed-by: iustinp
Alexander Schreiber [Fri, 11 Jan 2008 12:13:22 +0000 (12:13 +0000)]
Support selecting the boot device order for HVM.
This patch adds support for specifying and changing the boot device order for
HVM instances. The boot device order specification is ignored for non HVM
instances.
Reviewed-by: iustinp
Guido Trotter [Thu, 10 Jan 2008 11:42:29 +0000 (11:42 +0000)]
Complete --node description for gnt-backup(8)
The second paramenter of --node was not described in gnt-backup. Add
information about it.
Reviewed-by: imsnah
Guido Trotter [Thu, 10 Jan 2008 11:42:12 +0000 (11:42 +0000)]
Update gnt-backup(8) -m option explanation
Copy it from gnt-instance(8) for uniformity
Reviewed-by: imsnah
Guido Trotter [Thu, 10 Jan 2008 11:41:56 +0000 (11:41 +0000)]
Add the --swap-size option gnt-backup(8)
Reviewed-by: imsnah
Guido Trotter [Thu, 10 Jan 2008 11:41:40 +0000 (11:41 +0000)]
gnt-backup import doesn't allow to chose the os
Since it's an import the os is implied to be the one which performed the
export. No -o option is accepted. Reflect this in the manpage.
Reviewed-by: imsnah
Guido Trotter [Thu, 10 Jan 2008 11:41:22 +0000 (11:41 +0000)]
Fix gnt-backup import -s option
Update gnt-backup import to be in line with gnt-instance add about the os disk
size option. Thanks to Gunnar Wagenknecht for spotting the issue.
Reviewed-by: imsnah
Alexander Schreiber [Wed, 9 Jan 2008 13:02:21 +0000 (13:02 +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
Iustin Pop [Tue, 8 Jan 2008 16:16:43 +0000 (16:16 +0000)]
Add the new OpCreateInstance parameters to burnin
Reviewed-by: schreiberal
Iustin Pop [Tue, 8 Jan 2008 16:16:23 +0000 (16:16 +0000)]
Fix gnt-instance modify breakage introduced in r462
Reviewed-by: schreiberal
Iustin Pop [Tue, 8 Jan 2008 11:04:21 +0000 (11:04 +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
Iustin Pop [Tue, 8 Jan 2008 11:04:06 +0000 (11:04 +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
Iustin Pop [Tue, 8 Jan 2008 11:03:49 +0000 (11:03 +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
Iustin Pop [Tue, 8 Jan 2008 11:03:30 +0000 (11:03 +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
Iustin Pop [Tue, 8 Jan 2008 11:03:11 +0000 (11:03 +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
Iustin Pop [Tue, 8 Jan 2008 11:02:30 +0000 (11:02 +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
Iustin Pop [Mon, 7 Jan 2008 16:34:46 +0000 (16:34 +0000)]
Fix a typo in the ‘gnt-instance’ manpage
Reviewed-by: schreiberal
Iustin Pop [Mon, 7 Jan 2008 16:34:19 +0000 (16:34 +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
Iustin Pop [Mon, 7 Jan 2008 13:30:29 +0000 (13:30 +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
Iustin Pop [Mon, 7 Jan 2008 13:29:02 +0000 (13:29 +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
Iustin Pop [Mon, 7 Jan 2008 13:28:13 +0000 (13:28 +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
Iustin Pop [Mon, 7 Jan 2008 11:22:40 +0000 (11:22 +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
Alexander Schreiber [Fri, 28 Dec 2007 10:05:49 +0000 (10:05 +0000)]
Document variable MAC support to gnt-instance.
Document the ability to set and change the MAC address for instances.
Reviewed-by: iustinp
Alexander Schreiber [Thu, 27 Dec 2007 15:31:11 +0000 (15:31 +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
Alexander Schreiber [Fri, 21 Dec 2007 14:00:15 +0000 (14:00 +0000)]
HVM proof-of-concept documentation
Update documentation to document the HVM proof-of-concept.
Reviewed-by: iustinp
Alexander Schreiber [Thu, 20 Dec 2007 16:47:52 +0000 (16:47 +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
Alexander Schreiber [Thu, 20 Dec 2007 13:59:30 +0000 (13:59 +0000)]
Error handling for instance config file creation
Wrap error handling around creating the instance config file.
Reviewed-by: iustinp
Alexander Schreiber [Thu, 20 Dec 2007 09:58:35 +0000 (09:58 +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
Iustin Pop [Wed, 19 Dec 2007 11:11:05 +0000 (11:11 +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
Alexander Schreiber [Tue, 18 Dec 2007 14:25:31 +0000 (14:25 +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
Alexander Schreiber [Tue, 18 Dec 2007 14:05:11 +0000 (14:05 +0000)]
cleanup for hypervisor constants
Move constant definitions for hypervisor into constants.py
Reviewed-by: ultrotter
Guido Trotter [Tue, 18 Dec 2007 11:04:36 +0000 (11:04 +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
Alexander Schreiber [Mon, 17 Dec 2007 14:53:35 +0000 (14:53 +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
Iustin Pop [Mon, 17 Dec 2007 14:50:23 +0000 (14:50 +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
Iustin Pop [Wed, 12 Dec 2007 15:18:10 +0000 (15:18 +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
Iustin Pop [Wed, 12 Dec 2007 13:13:49 +0000 (13:13 +0000)]
Update the man page for ‘gnt-cluster’
This adds some information about the new ‘verify-disks’ command.
Reviewed-by: imsnah
Iustin Pop [Wed, 12 Dec 2007 13:13:38 +0000 (13:13 +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
Iustin Pop [Wed, 12 Dec 2007 13:13:27 +0000 (13:13 +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
Iustin Pop [Wed, 12 Dec 2007 13:13:13 +0000 (13:13 +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
Iustin Pop [Wed, 12 Dec 2007 13:13:02 +0000 (13:13 +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
Iustin Pop [Tue, 11 Dec 2007 16:25:02 +0000 (16:25 +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
Iustin Pop [Tue, 4 Dec 2007 15:20:31 +0000 (15:20 +0000)]
Bump version numbers for 1.2.0 release
Reviewed-by: imsnah
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
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