Statistics
| Branch: | Tag: | Revision:

root / lib @ bfca72bc

# Date Author Comment
bfca72bc 03/20/2014 12:50 pm Dimitris Aragiorgis

(2.10) Workaround for monitor bug related to greeting msg

QMP may return multiple greeting messages upon connection.
This is reported on qemu-devel. The fix is one-liner but
until it get's released this is a quick and dirty workaround
that flushes the client's buffer after getting the first...

1a4648d6 03/20/2014 12:50 pm Dimitris Aragiorgis

(2.10) hotplug: Verify if a command succeeded or not

Just after issuing _CallHoplugCommands() we invoke
_VerifyHotplugCommand() which parses `info pci` result
and searches for given PCI slot and device id.

If we previously had removed a device but it is still there...

65d9b8cf 03/20/2014 12:50 pm Dimitris Aragiorgis

(2.10) hotplug: Each hotplug qemu commmand with a separate socat

Previously we issued one socat command with two "\n" separated
actions (e.g. netdev_add ...\ndevice_add...)

After having observed a strange monitor behavior [1] splitting
those commands and introducing a sleep time in between, may reduce...

e1d83b06 03/20/2014 12:50 pm Klaus Aehlig

(2.9) Gracefully handle degraded instances in verification

The current code assumes that every instance either is of type
diskless or has at least one disk. However, with the option to
remove individual disk degraded 0-disk non-diskless instances
can occur. While such instances usually are not useful, Ganeti...

e73b8a1a 03/20/2014 12:50 pm Klaus Aehlig

(2.9) Be aware of the degraded case when cleaning up an instance

In the case of a degraded file-based instance, the file storage directory
for that instance cannot be obtained by looking at the first disk. Use
the standard location, computed from first principles, in this case....

3844af35 03/20/2014 12:50 pm Klaus Aehlig

(2.9) Preserve disk basename on instance rename

For file-based instances, upon rename, the directory containing
the instance disks is moved. Therefore, the basename needs to
be preserved in this case. Fix this. Note that so far, this
worked by accident as before 94e252a3 file names used to be...

e9bf90bd 03/20/2014 12:50 pm Ilias Tsitsimpis

(2.9) Assign unique filenames to filebased disks

With the new format for cmdline arguments, the user is able to add a
disk to an instance at a specific index. But filebased disks' filenames
have the form "{0}/disk{1}" where '{0}' is the file_storage_dir and...

5f70f1e3 03/20/2014 12:50 pm Dimitris Aragiorgis

(2.9) Remove deprecated _ERROR_DATA_KEY in QMP

Commit de253f14 of QEMU repo "BREAKS QMP's compatibility for
the error response" as it removes "data" key from qmp error
response messages. To this end we only log "class" and "desc"
values of the message.
...

77e96fb8 03/20/2014 12:50 pm Dimitris Aragiorgis

(2.10) Include target node in hooks nodes for migration

In case of DRBD, hooks run on both primary (source) and secondary
(target) nodes. To get the same behavior for DTS_EXT_MIRROR, where we
do not have secondary node, we should explicitly add target node to...

b7923b51 03/20/2014 12:50 pm Dimitris Aragiorgis

(ipfix) Allow NICs with mode=routed and ip=none

This allows us to define an IPv6 only network (currently with a
dummy IPv4 network) with connectivity mode 'routed' and let
the NICs inside this network have only IPv6 address (auto-generated
from their MAC and the network's prefix)....

3068a714 03/20/2014 12:50 pm Dimitris Aragiorgis

(ext) Do not remove disks if --keep-disks and DT_EXT

Signed-off-by: Dimitris Aragiorgis <>

55a105e8 03/20/2014 12:50 pm Dimitris Aragiorgis

(ext) Override disk_cache hvp with disk param in ext

This is a hack that brings disk_cache hypervisor param
at disk level. This is supported only for disks of ext
template that allow arbitrary params. The corresponding
param that should be used is 'cache'....

298cfd62 03/20/2014 12:50 pm Dimitris Aragiorgis

(ext) Pass disk geometry in kvm command

Currently we allow this feature only for ext templates that
allow arbitrary params per disk. If both 'heads' and 'secs'
params are given then 'cyls' is calculated from the disk size.

TODO: export these params in IDISK_PARAMS since the can be...

8f65655b 03/20/2014 12:50 pm Dimitris Aragiorgis

(ext) Export logical_id info to hooks env

DISK_ID as the second part of logical_id

Signed-off-by: Dimitris Aragiorgis <>

c838303f 03/20/2014 12:50 pm Dimitris Aragiorgis

(b64) Use base64 encoding in networks' bitarrays

This is needed for GRNET'S production environment.

Signed-off-by: Dimitris Aragiorgis <>

18065956 03/20/2014 12:50 pm Dimitris Aragiorgis

(snap) Snapshot support for ExtStorage

Extend existing RPC params with the snapshot name and
add allow snapshot not only for LVM but also for EXT.

Signed-off-by: Dimitris Aragiorgis <>

c943ae17 03/20/2014 12:50 pm Dimitris Aragiorgis

(grnet) Remove deprecated idx slot from NIC/Disk objects

This code will run when reading old kvm runtime files created
by hot-plugging related code back in Ganeti 2.6.2

Signed-off-by: Dimitris Aragiorgis <>

955b3b9e 03/20/2014 12:49 pm Dimitris Aragiorgis

(grnet) Enable -device option for old disks upon migration

Change _GenerateDeviceKVMId() to take device index as an
extra argument. In case device has uuid and pci info
we return proper device id. In case idx is given we return
a dummy id (e.g. hotdisk-0). Otherwise we raise an Exception....

21b6252d 03/20/2014 12:49 pm Dimitris Aragiorgis

(grnet) Move disk options before nic ones in kvm command

Older versions of Ganeti did ensure that during startup
disk devices will be inserted before nic devices in PCI
configuration space. KVM inserts devices to PCI slots
depending on the order of command line options....

86a61eac 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Introduce _UpgradeSerializedRuntime() method

This method is invoked during _AnalizeSerializedRuntime() and is
meant to modify runtime files in the way cfgupgrade does for
config.data. This could remove deprecated fields, change the
format of the file, add/remove sections, etc....

9e26eb92 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Export NIC's UUID and name to network scripts

In case of kvm None values are not allowed in env dict
so we have to add name only if not None.

In case of Xen since we are writing on a file that
is going to be sourced we should not add INTERFACE_NAME=None....

efefc35e 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Use HooksDict() to export network options in Xen

Remove duplicate code that exports network options to environment
variables.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>...

91d99e52 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Export tags via GetTags() to network scripts

Use GetTags() instance method in order to export instance tags
to NIC configuration scripts and files of kvm and xen hypervisors.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Thomas Thrainer <>...

78315736 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Introduce --hotplug-if-possible option

This will be useful for an external entity using RAPI that
wants to modify devices of instances.

The common use case for that is:
"I want to add a NIC/disk to an instance. If it is running
then try to hotplug the device. If not, then just add it to config."...

d6393d68 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) RAPI: Make use of request_body in Reboot/Remove

Until now, the shutdown_timeout parameter could only be passed to
ShutdownInstance() inside kwargs, causing it to be included in the
request body. Based on that, extend RebootInstance() and
RemoveInstance() so that they can take extra arguments (e.g....

49387595 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) RAPI: Pass depends body arg (if any) to opcode

Most rlib2 classes override the default _GetDefaultData() method with
custom methods that parse a request's body and query args and return a
(body, specific_static) tuple eventually passed to FillOpCode()....

6332b7f2 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Allow instances to obtain externally reserved IPs

The administrator should be able to assign an externally reserved IP
to a Ganeti instance manually, if desired. Currently this is not
supported. External reservations should act as holes in the pool and...

96ba3764 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Check if hotplug is supported in CheckPrereq

Introduce new RPC hotplug_supported that invokes the corresponding
hypervisor's method which checks if hotplug is generally
supported. Call this RPC early in CheckPrereq() and abort if
hotplug is not supported. Currently only KVM hypervisor with...

d1098c71 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Mark cluster's IPs as externally reserved

Currently, upon network creation, nodes' and master's IPs
are reserved in the pool.

This leads to pool reservations ('X' in map) that cannot be changed
afterwards, although they may need to (e.g. in case of node...

89b471a2 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) SimpleRetry on BlockDev.Remove()

Sometimes, upon disk removal, corresponding file descriptors
are kept briefly open by various processes (hypervisor, blkid, etc.).
With this patch, we retry several times before raising the appropriate
error, thus making disk removal more robust against those corner cases....

01b354aa 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) drive_del after device_del in disk hot-remove

This is needed so that qemu process really releases the
corresponding file descriptor and thus we can dmsetup/lvremove
the device without errors.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Thomas Thrainer <>...

e57b3be8 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Minor changes regarding hotplug support

  • Mention restrictions in NEWS
    - RBD userspace access mode
    - In case of a downgrade instances should suffer a reboot to be migrateable
  • Bypass interactive verification in NIC modifications via --force option...
e8f8d0f7 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Fix in RPC

Use _SingleDiskDictDP() instead of _ObjectDict() for serializing
a disk.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>

In stable-2.10 rpc methods take node as first argument....

58016a64 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) block_devices -> kvm_disks renaming

and a couple more styple fixes.
block_devices are misleading so rename them to kvm_disk (just like kvm_nics)

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Thomas Thrainer <>...

3b4a9bba 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Make hotplug related method raise HotplugError

Hotplug is not supported by default and thus we raise
HotplugError() for hotplug related methods.
If a hypervisor wants to support it, we must override VerifyHotplugSupport()
and implement the Hot* method....

2400eba6 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Some fixes in _GenerateKVMBlockDevicesOptions()

  • Add docstring.
  • fix missed usecase of boot_disk=False if kernel_path is given.
  • Use devlist arg in GenerateKVMBlockDeviceOptions()
    This is previously calculated in _ExecuteKVMRuntime()
    so there is no need to rerun the same command....
489a70b8 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) 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 will
be done via removing old NIC (and the corresponding tap) and adding...

22299c5d 03/20/2014 12:49 pm Dimitris Aragiorgis

(fix) SetDiskID() before blockdev_assemble()

Before blockdev_assemble we call SetDiskID() in order to fill up
physical_id of disk needed by bdev.Assemble and eventually by
constructor of each BlockDev.

This is not needed in 2.10 since physical_id has become deprecated....

44e08911 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Hotplug: cmdlib support

Hotplugging is done by functions invoked by ApplyContainerMods(). In
order hotplugging to take place the --hotplug option must be passed
otherwise the modifications will take place after reboot.

NIC hotplug supports add, remove and modify. The modify is done by removing...

c1398e4a 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Hotplug: rpc support

Introduce new RPC that eventually invoke hypervisor specific
hotplug functions. In order to be generic it has the following
arguments: device type, action, device, extra info, seq.
Device type can be NIC or DISK, action can be ADD, REMOVE,...

fe1ae444 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Return link_name in blockdev_assemble rpc

Until now this RPC returned only dev_path. Since we use it in
hotplug we have to know the simlink of the device so that we
pass it to the corresponding hypervisor command and include it
in block_devices entry in runtime files....

51abe597 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Extract socket related code from QmpMonitor class

Separate unix socket related code from QmpMonitor class and
make the latter extend the newly introduced one: MonitorSocket

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Thomas Thrainer <>...

08ef9efe 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Introduce hotplug methods (hypervisor inteface)

4 new methods: HotAddDevice, HotDelDevice, HotModDevice, HotplugSupported
All these are the hypervisor interface with the backend.
In general they read current runtime info, do the actual hotplug
and update the runtime file....

232f860d 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) 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)...
7f4a1195 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Use -device with pci info if possible

Extend kvm_cmd with -device option for the case of paravirual
Disks and NICs.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>...

44ca8b7a 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Helper methods for PCI slots and device ids

Device naming:
QEMU monitor expects devices to be uniquely named. Device ids derive
from 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....

96d7613b 03/20/2014 12:49 pm Dimitris Aragiorgis

(fix) Remove uri slot from block_devices

In stable-2.10 we have userspace access mode for rbd. Backend
calculates uri along with link and dev_path. Thus we have
three items in block_devices and kvm_disks tuples.

We this patch we remove the third value.
...

a9e4a18b 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Prepare block_devices runtime entry

With this patch we add another entry in runtime files along with
kvm_cmd, kvm_nics, and hvparams. block_devices that used to be
encapsulated inside kvm_cmd, live now separately just like nics do
but in tupples of (L{objects.Disk}, dev_path)....

bad6ba87 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Introduce _GenerateKVMBlockDevicesOptions()

Simply move logic that generates block device related
options out of _GenerateKVMRuntime().

NOTE: Back-port corresponding commit from stable-2.10

- 2.8 does not have user-space access support for rbd

Signed-off-by: Dimitris Aragiorgis <>

9439542d 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Prepare kvm options to support -device for disks

Newer kvm version support -device driver,... option where available
drivers can be found by running kvm -device ? command. Currently
ganeti uses `if` property of driver to define the disk type to use...

3a603c38 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.10) Hotplug: objects and constants additions

Add pci slot in NIC/Disk objects. This slot will be used only
by hypervisor code. Currently only KVM will use it and store it
temporarily in runtime files.
Add HOTPLUG_* constants to define device types an hotplug actions....

cb0abdbc 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.9) Make NIC setup more flexible in case of Xen

For every NIC write down a file that contains NIC's
info (MAC, mode, link, network details), that can
be sourced by any vif script. The file location is:
/var/run/ganeti/xen-hypervisor/nic/<domname>/<nicidx>....

c255b994 03/20/2014 12:49 pm Dimitris Aragiorgis

(2.8r) Workaround for Issue 621

Upon LUNetworkDisconnect() and LUNetworkConnect() try to acquire
all cluster's instances.

By that _LS_ACQUIRE_ALL acquire mode is set and not
_LS_ACQUIRE_EXACT and thus the deleted lock does cause any problem.

NOTE: This workaround is not merged upstream. They prefer to have...

6177890b 03/07/2014 05:15 pm Michele Tartara

Improve RAPI detection of the watcher

If the watcher is not allowed to access RAPI, it doesn't mean that it is dead
and needs to be restarted.

Fixes Issue 752.

Signed-off-by: Michele Tartara <>
Reviewed-by: Hrvoje Ribicic <>

874f6148 03/07/2014 12:08 pm Michele Tartara

Enable a timeout for instance shutdown

Add the timeout parameter to the StopInstance function of the hypervisor base
class and to all its implementations.

Also, change the tests as required by this change.

Signed-off-by: Michele Tartara <>...

2a2d087a 03/07/2014 12:08 pm Michele Tartara

Allow KVM commands to have a timeout

Modify the function that sends commands to the KVM monitor so that it is
possible to specify an optional timeout after which the command is killed.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

7066724d 03/07/2014 12:07 pm Michele Tartara

Allow xen commands to have a timeout

Modify the function that runs Xen commands so that it is possible to specify an
optional timeout after which the command is killed.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

76e2e6f6 03/07/2014 12:07 pm Michele Tartara

Fix wrong docstring

Fields must be the final elements in an epytext string.

Signed-off-by: Michele Tartara <>
Reviewed-by: Klaus Aehlig <>

ad55b2d4 02/24/2014 03:33 pm Klaus Aehlig

Fix expression describing optional parameters

The NIC's network and vlan are also newly added, hence need to be
considered optional to remain backwards compatible.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Michele Tartara <>

e6e17529 02/20/2014 05:23 pm Hrvoje Ribicic

Improve job status assert affected by race condition

In the sliver of time between choosing a waiting job to be executed and
trying to acquire locks for its execution, the status of the job can be
changed to canceling. An assert checking the job status neglected to...

0f68f7fa 02/20/2014 04:45 pm Dimitris Aragiorgis

Export and import Disk/NIC name

Name of Disk/NIC were not exported during backup until now.
Use the exported info during gnt-backup import.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Michele Tartara <>
Reviewed-by: Michele Tartara <>

0973f9ed 02/20/2014 04:45 pm Dimitris Aragiorgis

Fix backup import in case NIC is inside a network

Network UUID is written in .ini file during backup export
but is not used by _ReadExportParams(). This patch fixes it.

Please note that in case a network is given, link and mode should
not be included in NIC options....

523170de 02/20/2014 04:45 pm Dimitris Aragiorgis

Override get() method of ConfigParser

During backup import/export SafeConfigParser() is used to
save/restore instance's configuration. There is a possibility if an
export is done with a different Ganeti version, a specific value not
to be saved during export (e.g. the NIC/Disk name) but still...

054a9d17 01/20/2014 02:11 pm Hrvoje Ribicic

Add correct locking of master node to gnt-debug delay

The gnt-debug delay command required locks for all nodes except the
master - this patch fixes the issue by adding master to the locks
whenever needed.

Signed-off-by: Hrvoje Ribicic <>
Reviewed-by: Klaus Aehlig <>

95a4e33f 01/20/2014 02:11 pm Hrvoje Ribicic

Add job id type assert to jqueue.py

While the changes introduced in previous patches should stop any job
id parameters reaching the queue as strings, add an assertion here to
catch any strings making it through.

Signed-off-by: Hrvoje Ribicic <>...

7f97eb93 01/20/2014 02:11 pm Hrvoje Ribicic

Add job id transformation/check to Luxi Python client

This patch adds checks to the Luxi client, making sure that job ids
are converted from strings to ints before being passed on, or that an
error is reported.

Signed-off-by: Hrvoje Ribicic <>...

02a6b50a 01/09/2014 01:22 pm Michele Tartara

Improve backwards compatibility of Issue 649 fix

Commit e6e4ff4cf8d0100f331f94f7a27aa1e03a5d0e7d fixed Issue 649 by switching the
separator for usb_devices from comma to space. That solved the problem with
the command line, but RAPI was able to work with commas too, so, for backwards...

e6e4ff4c 01/07/2014 05:52 pm Michele Tartara

Change usb_devices separator to whitespace

The usb_devices parameter was using comma as a list separator, but this cannot
work because comma is already used as the hypervisor parameter separator.

Change it to use whitespace as a separator, in accordance to what already done...

7bc2c097 12/16/2013 05:53 pm Michele Tartara

Add support for blktap2 file-driver

Newer Xen versions use blktap2 instead of blktap. This patch adds support
for it in Ganeti.

Fixes Issue 638.

Signed-off-by: Michele Tartara <>
Reviewed-by: Thomas Thrainer <>

92ea7d79 12/16/2013 05:31 pm Hrvoje Ribicic

Fix RAPI network tag handling

The network tags were absent from an if check used to actually list
tags. The patch fixes the oversight, and adds a proper error message in
case the issue occurs again for a new tag type.

Signed-off-by: Hrvoje Ribicic <>...

36ccc662 12/16/2013 05:31 pm Hrvoje Ribicic

Make network tags searchable

This patch adds the network tags to the tags searched by gnt-cluster
search-tags, and in the process cleans up the code slightly.

Signed-off-by: Hrvoje Ribicic <>
Reviewed-by: Michele Tartara <>

e228ab9c 12/11/2013 01:27 pm Dimitris Aragiorgis

Support reseting arbitrary params of ext disks

If param=default and the param already exists then we remove
it from params dict. This is stolen by GetUpdatedParams() which
is used for hvparams modification/inheritance.

This means that 'default' value is not accepted for an arbitrary...

c5c72215 12/11/2013 01:27 pm Dimitris Aragiorgis

Allow modification of arbitrary params for ext

Disks of ext template are allowed to have arbitrary parameters
stored in the Disk object's params slot. Those parameters can be
passed during creation of a new disk, either in LUInstanceCreate()
or in LUInsanceSetParams(). Still those parameters can not be...

54666867 12/11/2013 01:26 pm Dimitris Aragiorgis

Do not clear disk.params in UpgradeConfig()

Commits 5dbee5e and cce4616 fix disk upgrades concerning params
slot. Since 2.7 params slot should be empty and gets filled
any time needed.

Still ext template allows passing arbitrary params per disk.
These params should be saved in config file for future use....

a63985f3 12/09/2013 02:51 pm Dimitris Aragiorgis

SetDiskID() before accepting an instance

SetDiskID() fills physical_id slot of a Disk object.

LUInstanceSetParams() does not invoke SetDiskID() upon creation of a
new disk. As a result the physical_id slot of the Disk object in
config data is missing.

In case of ext disk template, in AcceptInstance() we invoke...

8b9887c5 12/09/2013 01:59 pm Petr Pudlak

Lock group(s) when creating instances

This is required to prevent race conditions such as removing a network
from a group and adding an instance at the same time. (See issue 621#2.)

Signed-off-by: Petr Pudlak <>
Reviewed-by: Thomas Thrainer <>...

9cbcb1be 12/05/2013 03:10 pm Hrvoje Ribicic

Fix job error message after unclean master shutdown

According to commit 599ee321eb, any job-related error messages should
be encoded within a Ganeti-specific error and not passed on as a
string, to allow for easier parsing.

For jobs suffering from an undesirable status after an unclean master...

77b0d264 12/05/2013 11:39 am Michele Tartara

Add default file_driver if missing

If the file driver of an instance with file based storage is not specified, the
default one is automatically added by the UpgradeConfig function.

Fixes Issue 571.

Signed-off-by: Michele Tartara <>
Reviewed-by: Helga Velroyen <>

364c350f 12/05/2013 11:03 am Jose A. Lopes

Xen handle domain shutdown

Update Xen backend to properly recognize when a domain has been
shutdown by the user and to properly cleanup a shutdown domain when
Ganeti requests Xen to stop this domain.

Partial cherry-pick from 9d22cc90609e3ee8f0f2b34b793a3daced3c0e61...

67ec18c0 12/04/2013 04:51 pm Jose A. Lopes

Fix evacuation out of drained node

  • fix node daemon not to skip data, such as, memory and disk size,
    when building the node list to send to HBal, given that these data
    are important for HBal to determine whether an evacuation is
    possible
  • fix iallocator to properly load drained nodes from the list passed...
4eef428e 12/02/2013 12:03 pm Dimitris Aragiorgis

Fix a bug in InstanceSetParams concerning names

In case no name is passed in disk modifications we should
keep the old one. If name=none then set disk name to None.

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Jose A. Lopes <>

3ddc7650 11/27/2013 04:52 pm Jose A. Lopes

Fix error printing

Fixes issue 616.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Michele Tartara <>

62810f07 11/27/2013 03:04 pm Thomas Thrainer

Allow link local IPv6 gateways

Each host using IPv6 always has a link local address in fe80::/10. It is
common to use fe80::1 as default gateway to ease client configuration.
Ganeti prevented this usage, because it made sure that the IPv6 gateway
is in the IPv6 network the instance is connected to....

4289f617 11/27/2013 02:44 pm Thomas Thrainer

Fix NODE/NODE_RES locking in LUInstanceCreate

Both NODE and NODE_RES locks were acquired opportunistically if so
requested by the user. LUInstanceCreate requires, however, that the
actually locked elements on NODE and NODE_RES level are the same.

This patch changes the locking of NODE_RES such that those locks are not...

5f5aa745 11/18/2013 10:59 am Hrvoje Ribicic

Fix socket permissions after master-failover

When using gnt-cluster master-failover, on the soon-to-be-master the
luxi daemon is started by the node daemon. This makes the luxi
daemon inherit the node daemon's umask 077, making the communication
socket unreadable to group members. When using Ganeti with non-root...

73e15b5e 11/06/2013 12:25 pm Apollon Oikonomopoulos

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 newly
attached, we poll until we find all of them in connected or syncing operation....

34ea8da3 11/04/2013 05:30 pm Michele Tartara

Improve error message for replace-disks

In some conditions, replace-disks will fail if the disks are not properly
activated. Improve the error message suggesting to run activate-disks before
executing replace-disks.

Fixes Issue 606.

Signed-off-by: Michele Tartara <>...

c1c235ea 10/24/2013 11:25 am Santi Raffa

Placate warnings on ganeti.outils_unittest.py

Change ovf.py from using 'if foo:' to 'if foo is not None:' checks as
suggested by the FutureWarnings the OVF library raises otherwise.
This fixes issue 557.

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose Lopes <>

b05b5ec8 10/16/2013 11:08 am Santi Raffa

Fix typo in storage.FileStorage docstring

Signed-off-by: Santi Raffa <>
Reviewed-by: Jose Lopes <>

b6368001 10/07/2013 07:25 pm Costas Drogos

Don't attemp ipv6 ssh in case of ipv4 cluster

In case of a cluster with primary-ip-version=4, there is no need
for cluster to try ipv6 ssh connections which may timeout.
So append '-4' on ssh if cluster is ipv4-only

Signed-off-by: Costas Drogos <>...

34098a73 09/20/2013 03:21 pm Klaus Aehlig

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 0
will call the function precisely once; it might run in time
shorter than the resolution of timer....

ff34fb97 09/16/2013 02:25 pm Michele Tartara

Add a default to file-driver when unspecified over RAPI

The file-driver value, used by file-based instances, had a default value when
an instance was being created over the CLI, but not when the instance was
created through the RAPI.

This patch introduces a default value for the remote API and, while doing so,...

23cb5697 08/22/2013 06:17 pm Michele Tartara

Prepare GetLinuxNodeInfo for testing

The names of the input files are not hardcoded anymore, but they are now default
parameters.

No changes for the callers, but it's now possible to test the function more
easily.

Signed-off-by: Michele Tartara <>...

125e1230 08/20/2013 03:18 pm Thomas Thrainer

Allow instance mods if only osparams are given

osparams are now recognized as changes, so changing only those without
other changes works too now.

(cherry picked from commit 5eae613c2e1e65101c5d5f7d2e8ffd7cc6edc7d5)

Signed-off-by: Thomas Thrainer <>...

0c072225 08/07/2013 02:29 pm Thomas Thrainer

Merge branch 'stable-2.7' into stable-2.8

  • stable-2.7
    Fix documentation of gnt-instance batch-create
    Support multi instance allocs without iallocator
    Document --no-conflicts-check for gnt-network
    Check disk template in right dict when copying
    ganeti.backend_unittest: chmod restricted cmd dir...
33b52bdc 08/07/2013 12:09 pm Thomas Thrainer

Fix batch creation of instances

During batch creation of instances the 'reason' field in opcodes is set
to None (but the field is present). This caused problems when adding a
reasons to the reason trail.

Setting the default value for the 'reason' field to the empty list fixes...

eba4d783 08/07/2013 11:43 am Thomas Thrainer

Support multi instance allocs without iallocator

If all instances in the multi allocation request have already their
primary and secondary node set, there is no need for an iallocator. Thus
don't require it in this case and omit the call to it all together....

a9542a4f 08/07/2013 10:38 am Thomas Thrainer

Support DSA SSH keys in bootstrap

As outlined in issue 338, Ganeti failed to initialize a cluster if no
RSA SSH key is present on the master node. This patch extends Ganetis
support to DSA keys, so clusters with only DSA keys are possible now.

This fixes issue 338....

026f444f 08/06/2013 04:32 pm Thomas Thrainer

Include VCS version in `gnt-cluster version`

Also print the VCS version in the output of `gnt-cluster version`. This
makes the VCS version also available over RAPI, etc.

Signed-off-by: Thomas Thrainer <>
Reviewed-by: Helga Velroyen <>

ffc27116 08/06/2013 11:36 am Thomas Thrainer

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 <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Helga Velroyen <>