Statistics
| Branch: | Tag: | Revision:

root / lib / hypervisor @ 58e4df3c

# Date Author Comment
a2686d96 04/28/2014 12:10 pm Apollon Oikonomopoulos

KVM: start kvmd via daemon-util

Signed-off-by: Apollon Oikonomopoulos <>
Reviewed-by: Jose A. Lopes <>

d6f38e24 04/25/2014 06:38 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    Make GlusterFS tests dual-stack-aware
    Moving release date of 2.11.0 to 25th of April
    Revision bump for 2.11.0
    Prepare NEWS file for release of 2.11.0
    Fix Xen instance state
  • stable-2.10
    Fix failed DRBD disk creation cleanup...
5423b15f 04/24/2014 04:43 pm Marco Casavecchia (aka MCM)

Added support for disk native AIO mode for KVM

This patch adds support for the native aio on KVM
hypervisor.

Basically, It adds a new HV-KVM optional parameter
"disk_aio" that can be set with the followings values:
threads (the default for KVM) or native. If not set, it...

30350df5 04/16/2014 01:53 pm Jose A. Lopes

Add Xen nothing state '------'

... which means that a domain is in the queue behind other domains
waiting to be scheduled. The domain is runnable but it is not
currently running.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

749a2b90 04/15/2014 06:34 pm Jose A. Lopes

Add instance communication for Xen

  • add path to the 'xen-ifup-os' script that configures interfaces
  • fix if-elif construct
  • generate names of the form 'gnt.com.%d' for instance communication TAP interfaces
  • add 'vifname' property to the 'vif' field of the configuration of a domain...
9e42978e 04/15/2014 06:34 pm Jose A. Lopes

Move 'ConfigureNIC' to 'hv_base'

... so it can be reused by the Xen hypervisor.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

e32cc48c 04/15/2014 06:34 pm Jose A. Lopes

Refactor NIC configuration for Xen

Extract common code between the PVM and HVM Xen hypervisors regarding
NIC configuration.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

bc81cd54 04/15/2014 06:34 pm Jose A. Lopes

Extract 'GenerateTapName' to hypervisor base module

As mentioned, most of the body of the function 'GenerateKvmTapName' is
being extracted to a separate function in the hypervisor base module
so it can be reused by the Xen hypervisor.

Signed-off-by: Jose A. Lopes <>...

50dc67ab 04/15/2014 06:34 pm Jose A. Lopes

Rename 'GenerateTapName' to 'GenerateKvmTapName'

This is an intermediary step before extracting most of the body of
'GenerateTapName' to a separate function that can be reused by the Xen
hypervisor as well.

Signed-off-by: Jose A. Lopes <>...

79cb7ece 04/10/2014 07:44 pm Jose A. Lopes

Fix Xen instance state

For some strange reason, Xen once printed 'rb----' which does not make
any sense because an instance cannot be both running and blocked.
Fortunately, for Ganeti 'running' or 'blocked' is the same as
'running'.

Signed-off-by: Jose A. Lopes <>...

55e711aa 04/09/2014 10:05 am Apollon Oikonomopoulos

QMP: make QmpConnection act as a context manager

This will allow automatic connection and socket cleanup on command
completion.

We also repeat the Qmp tests using the context manager. For this to be
feasible, we move the test scenario to class variables and modify...

24d3d8da 04/08/2014 12:15 pm Apollon Oikonomopoulos

QMP: always return the command result

According to the QEMU Machine Protocol Specification, the messages sent
by QMP as a response to a command can be of two types: either an error
message (identified by the "error" key), or a success message
(identified by the "return" key)....

c309d05f 04/08/2014 12:15 pm Apollon Oikonomopoulos

QMP: keep greeting message version info

QMP will always report the QEMU version and package-specific string in
the greeting message, as per the QEMU Machine Protocol Specification. We
store this information and make it available to users of the monitor.
...

8926b648 04/08/2014 12:14 pm Apollon Oikonomopoulos

QMP: raise exception on unsupported QMP command

Raise a special exception, qmp.QmpCommandNotSupported, whenever an
unsupported QMP command is about to be executed. This is intended to
assist in falling back to the human monitor for hotplug operations. As...

bb439d22 04/08/2014 12:14 pm Apollon Oikonomopoulos

QMP: fetch supported commands on connect

Store the set of supported QMP commands in
QmpConnection.supported_commands. This allows selective error handling
to give the caller a chance to downgrade to HMP when unsupported
commands are encountered.

The `query-commands` QMP command used to implement this, appeared in...

246fa7d4 04/07/2014 02:37 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    (no changes)
  • stable-2.10
    KVM: use running HVPs to calc blockdev options
    KVM: reserve a PCI slot for the SCSI controller
    Check for LVM-based verification results only when enabled
    Fix "existing" typos...
5f2d6a8f 04/07/2014 12:48 pm Apollon Oikonomopoulos

KVM: move tap control functions to a submodule

Move all tap-related functionality to the hv_kvm.netdev submodule. We
rename _OpenTap to OpenTap, since it will now be used as a public
function.

Also, change the hv_kvm tests to import the new code.

Signed-off-by: Apollon Oikonomopoulos <>...

67308d3b 04/07/2014 12:47 pm Apollon Oikonomopoulos

Convert QmpMessage to a new-style class

Signed-off-by: Apollon Oikonomopoulos <>
Reviewed-by: Hrvoje Ribicic <>

c637cc47 04/07/2014 12:47 pm Apollon Oikonomopoulos

KVM: move monitor & QMP classes to a submodule

We move the HMP and QMP classes to the hv_kvm.monitor module.

Signed-off-by: Apollon Oikonomopoulos <>
Reviewed-by: Hrvoje Ribicic <>

349215e3 04/07/2014 12:47 pm Apollon Oikonomopoulos

Convert hv_kvm to a package

Weighing in at 3k LOC, it is probably time to split hv_kvm into a number
of modules before adding new code.

Signed-off-by: Apollon Oikonomopoulos <>
Reviewed-by: Hrvoje Ribicic <>

c1cbe302 04/07/2014 12:34 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    KVM: use running HVPs to calc blockdev options
    KVM: reserve a PCI slot for the SCSI controller
    Check for LVM-based verification results only when enabled
    Fix "existing" typos
    Fix output of gnt-instance info after migration...
918baead 04/01/2014 01:56 pm Apollon Oikonomopoulos

KVM: use running HVPs to calc blockdev options

Commit 0fe22ad2 moved the call to _GenerateKVMBlockDevicesOptions() from
_GenerateKVMRuntime() to _ExecuteKvmRuntime. However, while in
_GenerateKVMRuntime() there is only one set of HVPs, those of the
instance's configuration, in _ExecuteKVMRuntime there are two sets of...

5e6d16ab 04/01/2014 01:43 pm Apollon Oikonomopoulos

KVM: reserve a PCI slot for the SCSI controller

Currently instances with disk_type=scsi are broken, because the SCSI
controller uses a PCI slot not accounted for in the PCI assignment
logic. We reserve a throw-away slot just for that.

This is a temporary workaround and will be reverted during the upcoming...

747ee762 03/26/2014 02:56 pm Dimitris Aragiorgis

Export VLAN nicparam to NIC configuration scripts

The vlan nicparam is used in openvswitch mode. This patch
exports it as VLAN environment variable so that NIC
configuration scripts can later use it.

Signed-off-by: Dimitris Aragiorgis <>
Signed-off-by: Klaus Aehlig <>...

ece21e0b 03/24/2014 08:34 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    Rearranging entries in NEWS file
    Prepare NEWS file for 2.11.0 rc1
    Bump version to 2.11~rc1 in configure.ac
  • stable-2.10
    Bump version to 2.10.2
    Prepare NEWS file for 2.10.2
    Allow releases scheduled 5 days in advance...
df376ffa 03/24/2014 07:32 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Bump version to 2.10.2
    Prepare NEWS file for 2.10.2
    Allow releases scheduled 5 days in advance
    Fix conflict between virtio + spice or soundhw
    Fix bitarray ops wrt PCI slots
  • stable-2.9...
937ff984 03/24/2014 03:38 pm Dimitris Aragiorgis

kvm: Add migration capabilities as an hvparam

Latest QEMU versions support various migration capabilities. Each
can be enabled/disabled with 'migrate_set_capability' monitor
command.

Version 1.7.0 defines x-rdma-pin-all, auto-converge, zero-blocks,
and xbzrle migration capabilities....

3a72e34a 03/17/2014 06:30 pm Dimitris Aragiorgis

Fix conflict between virtio + spice or soundhw

With regard to PCI slot occupied by a KVM instance we have
observed the following:

1) Slot 0 will always be Host bridge.
2) Slot 1 will always be ISA bridge.
3) Slot 2 will always be VGA controller (even with -display none)....

d13fb3f1 03/17/2014 06:30 pm Dimitris Aragiorgis

Fix bitarray ops wrt PCI slots

Introduce new method `_GetFreeSlot()` responsible only for bitarray
operations. It fixes search in case of bitarray is either '0000..'
or '1111..'.

Use it instead of `_UpdatePCISlots()` and in `_GetFreePCISlot()`.

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

8436d0da 03/07/2014 08:54 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    (no changes)
  • stable-2.10
    Revision bump for the 2.10.1 release
    Update NEWS file for 2.10.1
    Use node UUIDs for executing LU hook
    Add PreparePostHookNodes to LUs
    Fix error propagation in post-commit hooks...
205d3309 03/07/2014 08:33 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Revision bump for the 2.10.1 release
    Update NEWS file for 2.10.1
    Use node UUIDs for executing LU hook
    Add PreparePostHookNodes to LUs
    Fix error propagation in post-commit hooks
  • stable-2.9...
4cbe5138 03/07/2014 07:53 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Fix error introduced during merge
    gnt-cluster copyfile: accept relative paths
  • stable-2.8
    Improve RAPI detection of the watcher
    Add patching QA configuration files on buildbots
    Enable a timeout for instance shutdown...
ddc64582 03/07/2014 07:32 pm Michele Tartara

Fix error introduced during merge

A parameter was lost while resolving a conflict in the signature of a function.

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

85530402 03/07/2014 07:07 pm Michele Tartara

Merge branch 'origin/stable-2.8' into stable-2.9

  • stable-2.8
    Improve RAPI detection of the watcher
    Add patching QA configuration files on buildbots
    Enable a timeout for instance shutdown
    Allow KVM commands to have a timeout
    Allow xen commands to have a timeout...
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 <>

d759a02b 02/10/2014 06:38 pm Klaus Aehlig

Merge branch 'stable-2.11' into master

  • stable-2.11
    (no changes)
  • stable-2.10
    Fix 'JobIdListOnly' type from 'List' to 'Map'
    Remove NEWS entry for 2.9.4
    Workaround for monitor bug related to greeting msg
    hotplug: Verify if a command succeeded or not...
adcccd43 02/10/2014 06:24 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Fix 'JobIdListOnly' type from 'List' to 'Map'
    Remove NEWS entry for 2.9.4
    Workaround for monitor bug related to greeting msg
    hotplug: Verify if a command succeeded or not
    hotplug: Call each qemu commmand with an own socat...
81c717cd 02/06/2014 03:34 pm Jose A. Lopes

Generate TAP names ('gnt.com.%d') for instance comm NICs

  • Add helper function that generates names of the form 'gnt.com.%d'
    which are the names for the TAP interfaces meant to be used by
    instance communication. These names are unique within the node....
89473be8 02/06/2014 03:34 pm Jose A. Lopes

Add TAP interface name as argument in '_OpenTap'

This is necessary in order to create TAP interfaces for the
communication mechanism, which are named 'gnt.com.%d', where '%d' is a
unique number within a given node.

Signed-off-by: Jose A. Lopes <>...

7231ca26 02/06/2014 10:49 am Dimitris Aragiorgis

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...

066f16b0 02/06/2014 10:49 am Dimitris Aragiorgis

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...

89c10241 02/06/2014 10:49 am Dimitris Aragiorgis

hotplug: Call each qemu commmand with an own 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...

472cc1e9 02/04/2014 04:09 pm Jose A. Lopes

Rename 'CdromOption' to '_CdromOption'

... because it is a protected definition.

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

8d61946f 01/30/2014 11:03 am Petr Pudlak

Merge branch 'stable-2.11' into master

  • stable-2.11
    Make safeRenameFile create dirs with defined permissions
    Add constant for subdir permissions within the job queue
    Add utility to fix permissions
    Add data type describing permissions and possibly owners...
baaa2ece 01/28/2014 03:17 pm Klaus Aehlig

Merge branch 'stable-2.10' into stable-2.11

  • stable-2.10
    Enable network tags in Haskell code
    Haskell style: explicit errors, visible in the type
    Clarify spacing in record syntax
    Improve the point-free section of the style guide
    Add code style document to documentation...
410945f1 01/27/2014 05:36 pm Klaus Aehlig

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Revision bump for 2.9.3
    Schedule 2.9.3 release
    Document fix of issue 691 in NEWS
    NEWS: fix typo in 2.8.4 release
    Fix 'hvparams' of '_InstanceStartupMemory' on hypervisors
    Add missing option to gnt-instance documentation...
30b12688 01/24/2014 12:05 pm Jose A. Lopes

Fix 'hvparams' of '_InstanceStartupMemory' on hypervisors

Most hypervisors were calling '_InstanceStartupMemory' but not passing
the 'hvparams' keyword argument. Actually, it is not necessary to
pass this argument given that it is an attribute in the instance...

364e1664 01/17/2014 02:29 pm Jose A. Lopes

Fix KVM cdrom image URL in the second cdrom drive

  • The previous patch introduced cdrom image URLs for KVM cdrom drives.
    However, it worked only for the first drive and not the second.
    This patch generalizes the KVM cdrom command line option to allow...
27b6654e 01/17/2014 02:29 pm Jose A. Lopes

kvm: check that the ISO image is there if it's a URL

Perform a simple urllib2 check on ISO images specified as URL before
instance start, so as to work around qemu bug #597575 [1].

[1] https://bugs.launchpad.net/qemu/+bug/597575

Signed-off-by: Apollon Oikonomopoulos <>...

f15a6b03 01/17/2014 02:28 pm Jose A. Lopes

Allow KVM to boot from HTTP

New versions of KVM support booting from HTTP-hosted ISO images, via
libcurl. This patch adds a proper check to allow defining either a sane,
absolute path or an HTTP URL as an iso image path.

Remove "format=raw" from the cdrom device options when iso_image starts...

95d70148 01/13/2014 07:43 pm Jose A. Lopes

Hook KVM hypervisor with KVM daemon shutdown files

  • modify the KVM hypervisor to look for the shutdown files created by
    the KVM daemon, which determine whether an instance was shutdown by
    the user
  • modify the KVM hypervisor to spawn the KVM daemon if it is not...
afa0fca4 01/13/2014 07:43 pm Jose A. Lopes

User shutdown hypervisor parameter

Add user shutdown parameter for KVM. Based on this parameter, decide
what information to report for a KVM instance, for example,
distinguish between 'ADMIN_down' and 'USER_down'.

Signed-off-by: Jose A. Lopes <>...

02d17fe3 01/13/2014 12:10 pm Dimitris Aragiorgis

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.

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

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...

f3ac6f36 12/19/2013 01:59 pm Klaus Aehlig

Merge branch 'stable-2.10' into master

  • stable-2.10
    Version bump for 2.10.0~rc1
    Update NEWS for 2.10.0 rc1 release
    Fix pylint 0.26.0/Python 2.7 warning
    Update INSTALL and devnotes for 2.10 release
  • stable-2.9
    Bump revision for 2.9.2
    Update NEWS for 2.9.2 release...
3eaa6e1d 12/16/2013 06:55 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Add support for blktap2 file-driver
    Update opcodes test to include network tags
    Make network tags searchable
    Add network tag tests to QA
    Fix RAPI network tag handling
    Fix gnt-network list-tags...
4a65d4fd 12/16/2013 05:53 pm Thomas Thrainer

Fix pylint 0.26.0/Python 2.7 warning

pylint 0.26.0 on Python 2.7 generates a warning on the string '\ ',
recommending to use the r prefix. This patch adds the missing prefix.

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

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 <>

c486fb6c 12/16/2013 12:37 pm Thomas Thrainer

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Bump revision for 2.9.2
    Update NEWS for 2.9.2 release
    Pass hvparams to GetInstanceInfo
    Adapt parameters that moved to instance variables
    Avoid lines longer than 80 chars
    SingleNotifyPipeCondition: don't share pollers...
3d680d45 12/12/2013 04:22 pm Klaus Aehlig

Pass hvparams to GetInstanceInfo

...so that the xen command to be called can be determined. This
fixes another semantical conflict of the last merge.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Jose Lopes <>

affe1792 12/11/2013 07:43 pm Klaus Aehlig

Merge branch 'stable-2.8' into stable-2.9

  • stable-2.8
    Version bump for 2.8.3
    Update NEWS for 2.8.3 release
    Support reseting arbitrary params of ext disks
    Allow modification of arbitrary params for ext
    Do not clear disk.params in UpgradeConfig()...
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...

e8cbe174 12/02/2013 12:39 pm Dimitris Aragiorgis

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....

70d8491f 11/28/2013 06:01 pm Jose A. Lopes

Destroy Xen domain only if necessary

Check if a given Xen domain still exists after a 'xm shutdown' before
destroying it. This check is necessary in order to cope with Xen
domains created with other version of Ganeti, given that an instance
created in or prior to Ganeti 2.10 will be cleaned up automatically...

059ed766 11/28/2013 06:01 pm Jose A. Lopes

Fix missing '@raise' in docstring of 'StopInstance'

Fix missing '@raise' in docstring of 'StopInstance'.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

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 <>

25bce647 11/26/2013 06:18 pm Santi Raffa

KVM: use custom KVM path if set for version checking

This commit fixes two TODOs from 2008 about using the hardcoded
"default" path for KVM where a custom one could've been set through
`gnt-cluster modify`.

As a result, `gnt-cluster verify` will no longer fail if a custom...

fd201010 11/26/2013 11:03 am Jose A. Lopes

Add Xen paused state as a Ganeti running state

The QA test 'TestClusterBurnin' pauses instances and the Xen state
domain 'paused' was not being handled properly by Ganeti because it
was not being classified as either a running or shutdown state. This
patch adds the 'paused' state to the set of running states by...

cc6fd3da 11/25/2013 02:41 pm Dimitris Aragiorgis

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....

884ec6d4 11/25/2013 02:41 pm Dimitris Aragiorgis

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 <>

2a3bbbaa 11/25/2013 02:41 pm Dimitris Aragiorgis

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 <>...

96ed3a3e 11/21/2013 04:06 pm Dimitris Aragiorgis

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."...

a4417db4 11/15/2013 04:49 pm Thomas Thrainer

Merge branch 'stable-2.10' into master

Merge branch 'stable-2.10' into master

  • stable-2.10
    Don't allow optional node parameters
    Move OVS node parameters to the right place
    Make NIC VLAN queryable
    Pass VLAN parameter correctly in moves
    Use constant instead of raw string...
adef95a2 11/15/2013 03:12 pm Thomas Thrainer

Merge branch 'stable-2.9' into stable-2.10

Merge branch 'stable-2.9' into stable-2.10

  • stable-2.9
    Bump revision for 2.9.1
    Update NEWS and schedule release for 2.9.1
    Fix retrieval of xen command in class method
    Fix docstring for ganeti.storage.filestorage_unittest.py...
c42be2c0 11/14/2013 05:40 pm Petr Pudlak

Use configured SSH ports when connecting to a console

This is accomplished by passing the corresponding node group to
hv_*.py. Tests for hv_*.py that call GetInstanceConsole updated.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Hrvoje Ribicic <>

70f25a49 11/14/2013 03:10 pm Jose A. Lopes

Fix class methods in KVM hypervisor

Several methods in KVM hypervisor behave like 'classmethods', however,
they did not have the '@classmethod' annotation. This patch adds
'@classmethod' annotations to several of these methods with the goal
of making '_StopInstance' available to the QA. This step is necessary...

9d22cc90 11/14/2013 03:09 pm 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.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

931419e5 11/14/2013 03:09 pm Jose A. Lopes

Preserve Xen domain after shutdown

Change Xen domain configuration to preserve the domain state after
shutdown, as opposed to automatic reboot, which is the default
behaviour.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

a3f0f306 11/14/2013 03:08 pm Jose A. Lopes

Add Python hypervisor instance state

Add 'HvInstanceState' which represents the state of an instance
(either 'running' or 'shutdown') and fix the remaining hypervisor
backends to return a value of this type. Before this patch, each
backend was returning their own value, some were returning strings,...

f92d9674 11/12/2013 04:37 pm Helga Velroyen

Fix retrieval of xen command in class method

This patch fixes issue 608. When introducing the
configurability of the xen toolstack in commit
8ef418bb92, the hypervisor api was accidentally changed
in a way that let to this error in KVM.

Signed-off-by: Helga Velroyen <>...

a09639d1 11/11/2013 10:29 pm Santi Raffa

Remove hardcoded references to File, SharedFile templates

DTS_FILEBASED is a constant that exists and this commit makes sure
that it is used whenever sensible, rather than resorting to hardcoding
the pair of templates in very many files.

Signed-off-by: Santi Raffa <>...

cba1fce1 11/05/2013 03:31 pm Klaus Aehlig

Merge branch 'stable-2.10' into master

  • stable-2.10
    Fix documentation
    Replace all constant definitions with re-exports
    Prepare constants for automatic reexport
    Hs2Py constants: 'hvsParameterTypes' and 'hvsParameters'
    Fix indentation that triggers PEP8 error...
bb133242 10/31/2013 12:46 pm Klaus Aehlig

Merge branch 'stable-2.10' into master

  • stable-2.10
    Remove FIXME + update man pages wrt iallocator
    Don't check for master netdev when using OVS
    Fix TypeError in backend/ConfigureOVS
    Create Open vSwitch on Master during Cluster init
    SimpleRetry on BlockDev.Remove()...
24711492 10/31/2013 11:28 am Dimitris Aragiorgis

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...

4f2f98f1 10/24/2013 12:27 pm Dimitris Aragiorgis

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 <>...

41a878b5 10/24/2013 12:27 pm Dimitris Aragiorgis

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 <>
Reviewed-by: Thomas Thrainer <>

50e0f1d9 10/24/2013 12:27 pm Dimitris Aragiorgis

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.

Backend invokes VerifyHotplugSupport() and raises RPCFail if an...

43c6e76f 10/24/2013 12:27 pm Dimitris Aragiorgis

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....
c5708931 10/24/2013 12:27 pm Dimitris Aragiorgis

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,...

4b82125b 10/24/2013 12:27 pm Dimitris Aragiorgis

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....

cad837b9 10/24/2013 12:27 pm Dimitris Aragiorgis

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 <>...

97cd9092 10/24/2013 12:27 pm Dimitris Aragiorgis

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)...
a7ccf635 10/24/2013 12:27 pm Dimitris Aragiorgis

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 <>

2615646c 10/24/2013 12:27 pm Dimitris Aragiorgis

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....

0fe22ad2 10/24/2013 12:27 pm Dimitris Aragiorgis

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)....

a16f0d77 10/24/2013 12:27 pm Dimitris Aragiorgis

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
which is also passed as hvparam. This patch prepares the use of...