Revert "Include the DRBD upgrade tool in the dist archive"
This reverts commit 604 as the upgrade tool should not be in the 1.3 branch.
Reviewed-by: schreiberal
Update online help and manpage to include drbd disk type.
Reviewed-by: imsnah
Include the DRBD upgrade tool in the dist archive
This patch adds the DRBD upgrade tool in the archive and in theinstalled tools dir, and its associated README in the doc_DATA target.
Reviewed-by: ultrotter
Fix gnt-instance info i1 i2 ...
Due to an indentation error only the last instance queried got returned byLUQueryInstanceData. Moving the append() call inside the for cycle to fix thisissue.
This is a one-liner targeted at 1.2.3
Reviewed-by: iustinp
Replace version number in install.sgml during build time
Further fixes for the 'export MAC in hooks' change
QA suite which tests gnt-instance modify has uncovered another issue related tomac export.
Alter the device activation code
This tiny patch fixes the breakage that the previous patch aboutactivation did by removing the Close() call after activation.
The initial reason for that call was that if the device is alreadyactive and open, but we need it closed, we close it automatically....
Two small improvements to burnin
This tiny patch fixes the verbose option to actually work, and also whencreating instances it logs the secondary node too (even if this doesn'tapply for plain templates, it doesn't create an error).
Modify the default output of gnt-instance list
This patch adds a new field available for selection in gnt-instance listnames "status" which represents the combined value of "admin_state" and"oper_state". Since this is much easier to parse (e.g. gnt-instance list...
Code style updates for QA code.
Parse double protocol version in drbd8.2
DRBD 8.2 uses a double integer field ad protocol version, rather than a singleone. This patch fixes the ganeti parsing code, allowing both the old and thenew version type. In order to do so the internal _GetVersion function is...
Fix a wrong OP_ID added in r261
Shared Lock implementation and unit tests.
Adding a locking.py file for the ganeti locking library. Its first component isthe implementation of a non-recursive blocking shared lock complete with atesting library.
Reviewed-by: imsnah, iustinp
Document the client API protocol, first version
This patch adds some documentation about the proposed client API. It'snot yet complete, but should be a usable draft for the initialimplementation.
Add a test opcode that sleeps for a given duration
This can be used for testing purposes.
Reviewed-by: ultrotter,imsnah
Reduce the chance of DRBD errors with stale primaries
This patch is a first step in reducing the chance of causing DRBDactivation failures when the primary node has not-perfect data.
This issue is more seen with DRBD8, which has an 'outdate' state (inwhich it can get more often). But it can (and before this patch, usually...
Fix some indendation issues
Fix incomplete mac address export to hooks
This patch completes the change introduced in r566 (trunk) and r568(branch-1.2).
Give mac information to instance hooks
Currently just the bridge and ip address are passed. Add an environmentvariable for the mac address.
Make the mouse more usable in VNC for HVM.
Export bridge information too
gnt-backup export used to export the ip and mac of each nic, but not whichbridge it was connected to. Adding this information.
Fix online help for gnt-backup import
The help string missed drbd as a disk template option. Adding it.
Bump version numbers for the 1.2.2 release
tiny typo fix
Improve the documentation of query output fields
The gnt-node and gnt-instance list commands have a customizable list ofoutput fields, but the list is not up to date (in the man page) and noteasily understandable from the ‘--help’ output.
This patch updates the man pages and adds the available fields and...
Fix a typo in a devel/upload comment
Files are uploaded to $prefix/sbin, not $prefix/bin
Add QA tests for gnt-instance modify
This patch adds QA tests for most of the possible parameters in theinstance modify operation (exception being the MAC), and modifies thesample QA file to run this test.
It also tests the no-modification test, but that is a weak one: we only...
Add option for the number of VCPUs in instance listing
Allow selection of hypervisor type in QA
This patch allows the selection of the hypervisor type for the QAprocess; this is useful when testing hypervisor-independent changes thatdon't require a Xen setup.
The patch also fixes the OS name in the sample QA config file provided....
Fix "gnt-instance modify --initrd"
The new QA tests for instance modify uncovered a bug in the modifyinitrd operation when setting the initrd to none.
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'tcare about uppercase, we keep the check simple by removing the lower() call.
Add a missing parenthesis
It was wrongly deleted when converting
if a in dict.keys():toif a in dict:
Change the install directory for the tools
Currently, the tools are installed under $prefix/share/ganeti. Thisprevents installing other things in a nice way under share/ganeti (likearch-independent OS definitions), therefore we want the tools to liveunder share/ganeti/tools....
Remove qa tests for gnt-instance start/stop
Those tests were added in the wrong place. This patch removes them. One daywe'll implement proper command line regression testing and they should go inthere.
Test start/stop aliases in qa
This tests both that those two aliases have not been removed and also thataliases handling hasn't been broken.
Add a few aliases for startup/shutdown
These aliases are widely used to think of these operations and save some typingtoo. Even though there is some thought to make start/stop the default operationname I don't think this should happen for 1.2, for now adding it as an alias is...
Add the first command alias
Alias activate_block_devs to activate-disks, for ganeti 1.1 compatibility.
Add support for command aliases
Passing a new aliases dict to generic main we can easily support aliases forcompatibility reasons or simply useability.
Add tool to ease testing of unsubmitted patches
The upload tool can be used to submit the current code to an arbitrary list ofnodes. This helps developers in easily testing their changes before submittingthem.
Check that we have a valid export list
Before iterating over the list of exports present on a node, check that whatganeti returned is actually a list. This solves the case when one of the nodesis down, and an error value is returned.
This fixes issue 21...
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.
Make backend._GetVGInfo check the validity of 'vgs'
Currently, the function backend._GetVGInfo only checks for errors viathe exit code of the 'vgs' command. However, there are other ways offailure so we need to also check for valid output before parsing....
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...
Abstract node memory checking into a separate function
The checking of a node's free memory (via rpc.call_node_info) is done inboth start instance an failover. This patch abstracts this call,together with the appropriate error handling, into a separate function...
Change a hardcoded path into its proper constant
The function backend.UploadFile still uses "/etc/hosts" directly insteadof the existing constant; this patch fixes this.
Allow use of 'diskless' disk template in burnin
Even if this doesn't have any practical use for actually creatinginstances, it can be used for very fast burnin and testing just theadd/start/stop/remove functionality.
This has also revealed a bug in export/import related to diskless...
Fix run directory for the fake hypervisor
Currently the fake hypervisor has hardcoded ‘/var/run’ as a basedirectory for its store. This patch adds a constant RUN_DIR that is usedfor both the fake hypervisor and for BDEV_CACHE_DIR.
Fix the init.d script
The script (which is geared towards Debian) is actually not fullycompliant, as lintian generates a warning on it - the S runlevel is nota valid one in the "Stop" stanza. This patch removes "S" from the stoplist.
Fix the make dist rule
In revision 459 I added a bug in the make dist rule in the sense thatthe 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...
Bump version numbers for the 1.2.1 release
This a merge to trunk of revision 494.
Show the HVM boot order in instance info
This is a merge from the 1.2 branch
Two small style fixes
Make instance start/stop skippable at burnin time
Even though burnin was born just to do that test it now contains a lot morethings one might try, so it makes sense to make instance start/stop optionaltoo.
This creates a burnin that at the bare minimum tests instance create and...
Do instance export and import during burnin
Instances get exported to a remote node, then removed and imported back totheir original nodes. This should be an idempotent option from the instancepoint of view, and help making sure ImportExport is kept up to date....
Allow burnin to take "-t plain" as an option
The burnin code deals with "-t plain", but the command line parserdoesn't allow that as an option. This patch fixes this issue.
Fix some misspellings
This patch fixes two name typos and a style issue (which makes pylintcomplain).
Fix CreateInstance new optional parameters
Some new paramenters of the CreateInstance opcode are optional (namelykernel_path, initrd_path and hvm_boot_order) but their absence makes the codecrash. Fix this by initializing them to a default value if they're not present....
Add mac="auto" at import time
Mac is now a mandatory option for OpCreateInstance. Add it when we call thisopcode at import time too. This is a quick fix for the code, but probably morework needs to be done to integrate mac addresses with the import/export...
Support selecting the boot device order for HVM.
This patch adds support for specifying and changing the boot device order forHVM instances. The boot device order specification is ignored for non HVMinstances.
Complete --node description for gnt-backup(8)
The second paramenter of --node was not described in gnt-backup. Addinformation about it.
Update gnt-backup(8) -m option explanation
Copy it from gnt-instance(8) for uniformity
Add the --swap-size option gnt-backup(8)
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 theexport. No -o option is accepted. Reflect this in the manpage.
Fix gnt-backup import -s option
Update gnt-backup import to be in line with gnt-instance add about the os disksize option. Thanks to Gunnar Wagenknecht for spotting the issue.
Add boot_order entry to Instance object.
First step to support custom boot device order for HVM instances, add alocation to actually store that information for the instance.
Add the new OpCreateInstance parameters to burnin
Fix gnt-instance modify breakage introduced in r462
Update manpages with the kernel/initrd options
This patch modifes the ‘gnt-instance’ instance manpage with the new‘--kernel’ and ‘--initrd’ options.
Change the Xen PVM to use the new kernel options
This patch changes the hypervisor to use the new kernel and initrdinstance attributes. They kernel is handled as expected (use the customor the default one), but the initrd is treated a little bit special, in...
Make ‘gnt-instance info’ show kernel/initrd paths
This patch changes the info subcommand to nicely show the kernel andinitrd paths.
Allow defining the kernel/initrd at creation time
This patch adds support for defining the kernel/initrd at instancecreation time, using the same interface as in instance modify.
Add support for modifying the kernel/initrd path
This patch adds support in ‘gnt-instance modify’ to set the kernel andinitrd paths. The user can pass either 'default' or 'none' (none is notvalid for kernel).
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 bythis addition.
Fix a typo in the ‘gnt-instance’ manpage
Fix ‘make distcheck’ breakage introduced in r455
This patch fixes the ‘make distcheck’ breakage caused by missing test data inthe archive and missing handling of builddir!=srcdir case.
Improve verify-disks: broken/missing LV detection
This patch improves the ‘gnt-cluster verify-disks’ command by addingsupport for detecting broken volume groups and missing logical volumenames.
As such, we don't try anymore to activate disks for instances that are...
Activate logical volumes at Assemble() time
This patch changes the Assemble() method for logical volumes from a noopto do a `lvchange -ay` on the logical volume; this ensures that if thelogical volume is not active, we are able to activate and use it....
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.
Add unittest for DRBD8 drdbsetup show parser
This patch changes the bdev.DRBD8._GetDevInfo to take a string insteadof a minor, separates the `drbdsetup show` invocation into a newseparate method (bdev.DRBD8._GetShowData) and modifies the rest of theDRBD8 class to make the appropriate calls....
Document variable MAC support to gnt-instance.
Document the ability to set and change the MAC address for instances.
Allow instance MAC address to be set.
Allow the MAC address of an instance to be specified optionally duringinstance creation and later to be changed via instance modify.
HVM proof-of-concept documentation
Update documentation to document the HVM proof-of-concept.
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 environmentsonly.
Error handling for instance config file creation
Wrap error handling around creating the instance config file.
Use a generic Xen hypervisor interface.
Abstract the parts of the Xen hypervisor interface shared by both PVM andHVM into a generic interface, subclass the special case PVM from that.
Prepatch for adding HVM support.
Make utils.RunCmd() deal with interleaved stdout/stderr
Currently, RunCmd is written with the assumption that programs will havea small stderr output, therefore we read the child's stdout (which canbe big, so we don't want to block the child) and then the stderr (which...
Internal API change for instance console access.
Change the internal hypervisor API for GetShellCommandForConsole, wenow 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...
cleanup for hypervisor constants
Move constant definitions for hypervisor into constants.py
Specify hint as a named argument
hint is declared as a named argument for the LogWarning function. Make itscaller pass it naming it.
Add instance port support.
Extends the instance object by adding a port item, also adds changesto print this port via gnt-instance info.
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.
Handle ^C while trying to acquire the lock
When waiting for the lock and pressing ^C, the user will get a backtraceas the KeyboardInterrupt exception is not handled. The patch adds asimple method of handling it.
Note that this is not about ^C in any other place....
Update the man page for ‘gnt-cluster’
This adds some information about the new ‘verify-disks’ command.
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).
Add the ‘gnt-cluster verify-disks’ command
This patch adds the OpVerifyDisks handling in mcpu.py and theverify-disks command in the gnt-cluster script, which for every instancecomputed by LUVerifyDisks submits a new OpActivateInstanceDisks request.
Add LUVerifyDisks
This patch adds a new LUVerifyDisks that implements the OpVerifyDisks.The algorithm is that by determining not-used logical volumes forinstances that are supposed to be running, we presume from there thatthe DRBD devices are not online and therefore one should...
Add a new OpVerifyDisks opcode
This patch adds the definition of a new opcode that will be used tocompute the list of instances with not-online disks.
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 thevolume (which might trigger a ‘vgchange -a y’ on the volume group) and...
Bump version numbers for 1.2.0 release
On OS creation errors, write logfile path to ganeti-noded's logfile.