Snapshot support for ExtStorage
Extend existing RPC params with the snapshot name andadd allow snapshot not only for LVM but also for EXT.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
SimpleRetry on blockdev.Remove()
Do not remove disks if --keep-disks and DT_EXT
drive_del after device_del in disk hot-remove
This is needed so that qemu process really releases thecorresponding file descriptor and thus we can dmsetup/lvremovethe device without errors.
Allow instances to obtain externally reserved IPs
The administrator should be able to assign an externally reserved IPto a Ganeti instance manually, if desired. Currently this is notsupported. External reservations should act as holes in the pool andnot just as IPs already used by someone outside of Ganeti....
Mark cluster's IPs as externally reserved
Currently, upon network creation, nodes' and master's IPsare reserved in the pool.
This leads to pool reservations ('X' in map) that cannot be changedafterwards, although they may need to (e.g. in case of node...
Use base64 encoding in networks' bitarrays
This is needed for GRNET'S production environment.
Some fixes in _GenerateKVMBlockDevicesOptions()
Fix in RPC
Use _SingleDiskDictDP() instead of _ObjectDict() for serializinga disk.
Use blockdev_assemble rpc directly before hotplug
AssebleInstanceDisks() if invoked with primary=True and disk=[disk]creates wrong symbolic links!
Before blockdev_assemble we call SetDiskID() in order to fill upphysical_id of disk needed by bdev.Assemble and eventually by...
Add finally: mosock.close() in _PassFds
Add hotplug option in OpInstanceSetParams opcode
Hotplug: cfgupgrade for deprecated fields
Add cfgupgrade so that we remove any deprecated fields hotplugimplementation used in the past.
Hotplug: Update manpages and NEWS
Add --hotplug entry in gnt-instance manpage.Add NEWS entry for hotplug support.In both cases mention that hotplug is only supported only thethe KVM Hypervisror and for versions >= 1.0.
Hotplug: client support
Add --hotplug option. Only used in OpInstanceSetParams.If this is omitted, modifications become effective after reboot.
Ask user confirmation in case NIC modify + hotplug because it willbe done via removing old NIC (and the corresponding tap) and adding...
Hotplug: cmdlib support
Hotpluging is done by functions invoked by ApplyContainerMods(). Inorder hotpluging to take place the --hotplug option must be passedotherwise the modifications will take place after reboot.
NIC hotplug supports add, remove and modify. The modify is done by removing...
Hotplug: rpc support
Introduce new RPC that eventually invoke hypervisor specifichotplug functions. In order to be generic it has the followingarguments: device type, action, device, extra info, seq.Device type can be NIC or DISK, action can be ADD, REMOVE,...
Introduce hotplug methods (hypervisor inteface)
4 new methods: HotAddDevice, HotDelDevice, HotModDevice, HotplugSupportedAll these are the hypervisor interface with the backend.In general they read current runtime info, do the actual hotplugand update the runtime file....
Extract socket related code from QmpMonitor class
Separate unix socket related code from QmpMonitor class andmake the latter extend the newly introduced one: MonitorSocket
Helper methods that check for hotplug support
Hotplug is currently not supported for:
- KVM < 1.0 - existing devices in the cluster - python-fdsend module is not installed (NIC hotplug) - chroot (Disk hotplug) - security mode other than None (Disk hotplug)...
Use -device with pci info if possible
Extend kvm_cmd with -device option for the case of paravirualDisks and NICs.
Hepler methods for PCI slots and device ids
Device naming:QEMU monitor expects devices to be uniquely named. Device ids derivefrom the following function:kvm_devid = <device_type>-<part of uuid>-pci-<pci_slot>Device ids must be reproduce-able when we want to remove them....
Prepare block_devices runtime entry
With this patch we add another entry in runtime files along withkvm_cmd, kvm_nics, and hvparams. block_devices that used to beencapsulated inside kvm_cmd, live now separately just like nics dobut in tupples of (L{objects.Disk}, dev_path)....
Prepare kvm options to support -device for disks
Newer kvm version support -device driver,... option where availabledrivers can be found by running kvm -device ? command. Currentlyganeti uses `if` property of driver to define the disk type to usewhich is also passed as hvparam. This patch prepares the use of...
Introduce _GenerateKVMBlockDevicesOptions()
Simply move logic that generates block device relatedoptions out of _GenerateKVMRuntime().
Add hotplug related constants
Hotplug: objects and constants additions
Add pci slot in NIC/Disk objects. This slot will be used onlyby hypervisor code. Currently only KVM will use it and store ittemporarily in runtime files.Add HOTPLUG_* constants to define device types an hotplug actions....
Version bump for 2.8.2
Signed-off-by: Michele Tartara <mtartara@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
Update NEWS file for 2.8.2 release
Add a section in the file for the new upcoming release.
DRBD: ensure peers are UpToDate for dual-primary
DrbdAttachNet supports both, normal primary/secondary node operation, and(during live migration) dual-primary operation. When resources are newlyattached, we poll until we find all of them in connected or syncing operation....
Improve error message for replace-disks
In some conditions, replace-disks will fail if the disks are not properlyactivated. Improve the error message suggesting to run activate-disks beforeexecuting replace-disks.
Fixes Issue 606.
Signed-off-by: Michele Tartara <mtartara@google.com>...
Add all dependencies for confd as test dependencies
Since our tests pull in confd as a dependency, all build dependenciesfor confd are also necessary to run the tests.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Michele Tartara <mtartara@google.com>
Add snap-server to the test-relevenat packages
While snap-server is only needed for the optional monitoring daemon,some tests, notably those testing these optional features, still dependon it. So, if snap-server is missing, the Haskell tests should not be...
Placate warnings on ganeti.outils_unittest.py
Change ovf.py from using 'if foo:' to 'if foo is not None:' checks assuggested by the FutureWarnings the OVF library raises otherwise.This fixes issue 557.
Signed-off-by: Santi Raffa <rsanti@google.com>Reviewed-by: Jose Lopes <jabolopes@google.com>
Version bump for 2.8.1
Also, update the NEWS file accordingly.
Signed-off-by: Michele Tartara <mtartara@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Verify that ConfD is running after master-failover
This patch adds additional 'gnt-node list' commands tothe testing of 'gnt-cluster master-failover' in order totest if ConfD (or LuxiD) is still running after amaster-failover.
Signed-off-by: Helga Velroyen <helgav@google.com>...
daemon-util: handle luxid in {start,stop}_master()
Luxid was not handled in start_master() and stop_master() at all. As a result,during a master-failover, luxid would be left running on the old master andwould not start on the new master, leaving the cluster without management until...
Fix typo in storage.FileStorage docstring
Fix path for serial file
It is actually located inside the queue directory.
Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Improve harep documentation
Add a more complete description of how the tool works.
Fix typo in walkthrough documentation
Fix typo in walkthrough documentation, where 'instance3' should read'instance1' in order to be consistent with the output below in theexample.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
Don't attemp ipv6 ssh in case of ipv4 cluster
In case of a cluster with primary-ip-version=4, there is no needfor cluster to try ipv6 ssh connections which may timeout.So append '-4' on ssh if cluster is ipv4-only
Signed-off-by: Costas Drogos <costas.drogos@gmail.com>...
Fix outdated documentation for users-setup
The --yes-do-it parameter was not properly documented yet. Add it to theadministration guide.
Fix wrong release date in the NEWS file
Version bump for 2.8.0
Add daemon split design doc
This describes the future planned structure of Ganeti daemons.
Signed-off-by: Michele Tartara <mtartara@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>
Merge branch 'stable-2.7' into stable-2.8
Conflicts are trivially solved.
Conflicts: NEWS...
Version bump for 2.7.2
Change the version number and the NEWS file for the 2.7.2 bugfix release.
Add additional tests for utils.Retry
Also have some tests where the time the various components(inspecting the time function, calling the function, etc) havea non-trivial time. Also, have two tests demonstrating thatthe number of retries actually depends on the amount of time...
Make retry tests independent of actual time
Even in the tests, real time is used. While, generally, the assumptionsabout execution time are pretty safe, in some rare circumstances, e.g.,on machines with extremely heavy load they do not hold true, thus rendering...
Fix corner-case in handling of remaining retry time
Consider a remaining time of 0 as already timed out. Otherwise,there is no guarantee that calling utils.Retry with timeout 0will call the function precisely once; it might run in timeshorter than the resolution of timer....
Perform proper cleanup on termination of Haskell daemons
Haskell deamons did not perform proper cleanup at termination. There was no codefor removing the pid file, and the code in LuxiD for removing the unix socketfile was not working, because it is implemented with a "finally" statement,...
Version bump for 2.8 rc3
Also, add to the NEWS file a couple of items that were still missing.
Fix incorrect manpage reference to htools
the manpages for hcheck, hinfo and hroller have an incorrect referenceto htools(7) which does not exist. This patch links them to htools(1).
This bug also fixes Debian BTS#721824 (http://bugs.debian.org/721824)...
Add a default to file-driver when unspecified over RAPI
The file-driver value, used by file-based instances, had a default value whenan instance was being created over the CLI, but not when the instance wascreated through the RAPI.
This patch introduces a default value for the remote API and, while doing so,...
Remove typo from RAPI documentation
"be used instead." was repeated twice.
Describe the files in doc/users in NEWS
While only a small feature, the files in doc/users can influencethe way ganeti is packaged. Hence it should be mentioned in thenews file.
Update the upgrade procedure
Now that users-setup asks for confirmation, explain in theprocedure how asking for this confirmation can be skipped.This skipping is particularly important for users followingthe recommendation of using the distributed shell (dsh)....
Make tools/users-setup explain its actions first
Before doing any changes, make tools/users-setup explain itsactions first, and ask the user for confirmation. If the firstargument is --yes-do-it, this step will be skipped.
Signed-off-by: Klaus Aehlig <aehlig@google.com>...
Generate tools/users-setup from descriptions
Now that we have a machine readable description of the usersto be added to the system, use it to generate the tools/users-setupscript, so that we again have only one authoritative source ofthe user and group requirements. This also has the advantage of...
Provide ganeti user and group data in easy-to-parse form
Upon build time, also generate, in the directory doc/users, filescontaining the groups, the users with their primary group, and theadditional groupmemberships to be added. In this way, packages can use...
Remove dsahostkeypub during config downgrade
Remove the newly-added DSA host public key field from the configuration filewhen downgrading to 2.7, if present. Otherwise masterd will refuse to start.
Signed-off-by: Apollon Oikonomopoulos <apoikos@gmail.com>...
Mark the DSA host pubkey as optional
Commit a9542a4 introduced support for DSA SSH keys. However, the dsahostkeypubfield added to the config is not marked as optional in the Haskell components.As a result, luxid thinks the config file is corrupt and refuses to start. We...
Fix documentation for gnt-node evacuate -p option
Update the documentation to remove the claim that the --primary-onlyoption results in data copies while in fact it only fails over/migratesthe all primary instances.
Signed-off-by: Leon Handreke <lhandreke@google.com>...
NEWS update and version bump for 2.8 rc2
Latest modifications and fixes added to the NEWS file.
Add unit test for GetLinuxNodeInfo
The function was not unit tested previously.
Signed-off-by: Michele Tartara <mtartara@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Prepare GetLinuxNodeInfo for testing
The names of the input files are not hardcoded anymore, but they are now defaultparameters.
No changes for the callers, but it's now possible to test the function moreeasily.
Make the DRBD collector more failure-resilient
If information about instances is not available, just log the error andcontinue without it.
Add function to unwrap Results logging failures
Add logWarningIfBad, a utility function similar to exitIfBad, that logs awarning and returns a default value instead of just crashing the program ifthe unpacked value is Bad.
Allow instance mods if only osparams are given
osparams are now recognized as changes, so changing only those withoutother changes works too now.
(cherry picked from commit 5eae613c2e1e65101c5d5f7d2e8ffd7cc6edc7d5)
Signed-off-by: Thomas Thrainer <thomasth@google.com>...
Fix harep manpage title
The harep manpage title underline was one character short, leading inpandoc producing an invalid manpage header.
Signed-off-by: Apollon Oikonomopoulos <apoikos@gmail.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
Use FQDN to check master node status
The master node name in SS conf is stored as FQDN, so also use the FQDNon each node to check if it is the master node.
This fixes issue 551.
Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>
Fix batch creation of instances
During batch creation of instances the 'reason' field in opcodes is setto None (but the field is present). This caused problems when adding areasons to the reason trail.
Setting the default value for the 'reason' field to the empty list fixes...
Fix documentation of gnt-instance batch-create
The documentation of gnt-instance batch-create was outdated andcontained invalid examples. This patch corrects the man page andincludes working example inputs.
Support multi instance allocs without iallocator
If all instances in the multi allocation request have already theirprimary and secondary node set, there is no need for an iallocator. Thusdon't require it in this case and omit the call to it all together....
Support DSA SSH keys in bootstrap
As outlined in issue 338, Ganeti failed to initialize a cluster if noRSA SSH key is present on the master node. This patch extends Ganetissupport to DSA keys, so clusters with only DSA keys are possible now.
This fixes issue 338....
Include VCS version in `gnt-cluster version`
Also print the VCS version in the output of `gnt-cluster version`. Thismakes the VCS version also available over RAPI, etc.
Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Document 'viridian' hypervisor parameter
List the 'viridian' hypervisor parameter (valid for Xen HVM) in thegnt-instance manpage.
Support 'viridian' parameter in Xen HVM
This parameter is required to prevent bluescreens in Windows instances.
This fixes issue 233.
Signed-off-by: Heiko Baumann <heibau@googlemail.com>Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Helga Velroyen <helgav@google.com>
Document --no-conflicts-check for gnt-network
gnt-network add and connect do support the --no-conflicts-check option.This is now also documented in the man pages.
This fixes issue 526.
Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Michele Tartara <mtartara@google.com>
Version bump for 2.8.0 rc1
Update NEWS file and version number.
Add Make to the list of dependencies
Make is a required dependency, but it was not specified in the install guide.This commit adds it.
Check for luxid permission during verify config
confd no longer needs access to the noded certificate file, but luxiddoes. Change the check to use the right user.
Add monitoring-query-format.rst to $(docinput)
Commit 431ff2c10 split the monitoring system documentation in two parts but didnot include the new monitoring-query-format.rst to $(docinput). As a result,current tarballs of 2.8 do not ship doc/monitoring-query-format.rst....
Fix documentation building rules
Implement the correct behavior to be kept when sphinx-build is not installed.It was already correctly checked, but instead of just disabling thedocumentation generation, an error message was printed, having "make" fail....
Check disk template in right dict when copying
Due to the structure of the code this condition can't possibly be true.We have to look in the new_diskparams dict instead, otherwise it'd bepossible to try to update a non-existing entry.
(The same patch is in stable-2.7 as 106441d already)....
ganeti.backend_unittest: chmod restricted cmd dir
TestVerifyRestrictedCmdDirectory.testNormal implicitly relies on the currentumask to check the behaviour of backend._VerifyRestrictedCmdDirectory. However,when run under a more relaxed umask (as in the case of the Debian buildd's...
Fix formatting of tuple in error message
The missing str() call caused to raise another exception than the wantedone. Transforming the tuple to string fixes this problem.
Mark the UUID design doc as implemented
The code implementing the UUID design document is included in Ganeti 2.8.
Clarify that cmdlib/ must be removed downgrading
Downgrading from 2.8 to a previous version will fail if the new cmdlib/directory is not removed.
Fix formatting error in the UPGRADE document
An item of the enumerated list was not rendered correctly.
Make build_chroot compatible with Squeeze
Modify build_chroot to make it compatible with debian Squeeze. Thisis done by using a function instead of a alias for the command thatwas failing.
Fixes Issue 507.
Update security doc and NEWS for luxid
Document the split of luxid from confd in security.rst and in the NEWSfile.
Add --cleanup to instance failover manpage
Describe the new parameter in the manpage of gnt-instance.
Update NEWS with failover cleanup
Describe the new feature in the NEWS file.
Add cleanup parameter to instance failover
Most of the code is shared with instance migrate, so we actually only needto add the parameter and pass its value along the the common code.
Also, tests and harep are updated to support the right set of options to...
Fix 'prcre' typo in INSTALL
Thanks to "Izhar ul Hassan" for reporting the issue.
Signed-off-by: Guido Trotter <ultrotter@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>