This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Ganeti core".
The branch, stable-2.13 has been updated
via 1e25ff0a5b5f4f710ac6df8fa39bd31156409926 (commit)
via cb5e23ec030acbfcbb4db2b8fd1de20247f70b25 (commit)
via b4f2f739457afb517400be655d507bcde9b5808f (commit)
via 88bef78240d2b181cdbb48b2ffe9d4cf8054918e (commit)
via e63f1e7430964663231ba13526551fd061fd6e9c (commit)
via 0e22b420ccf588386d9ff571621f76989ba90cbf (commit)
via bd4d9db36ae674c6b21160b96c2d099325bcfe72 (commit)
via 5c501ba18a27c5a94e4ad58e5122a10294cec045 (commit)
via 1fb45c21ba66bfd1d1ce2b654937213723f542fe (commit)
via a80a860577dd9f14115869977ffb01802e8f426b (commit)
via c776bef5ff253d84f9e2ff29e8f97f3c14ce3f97 (commit)
via 35c3b67b0b63445cc85862e18c7fec733b72bcae (commit)
via 9e26a355496e75ab657813929293669c208f9873 (commit)
via 79050c53e475cd0e7c00017fe01905630fa67e50 (commit)
via 154455532bea1353c4a0089dc3836aa602913114 (commit)
via 4c513aab72ea05ac64cc2f83311533356054b001 (commit)
via 16f4bee6b722918fdd7bf924b2a6e177137274ad (commit)
via c5297eceaa322341f41c863c0b5664da29f63fcf (commit)
via 5a79d857e3c7baa489ecf2f2b9b1c646bd9f07e3 (commit)
via d5dc810fa57cad1acd4818d1e0d2f8b487ecb45c (commit)
via 9abb1e38c9b53946a5e6555b954d9d43b29290b8 (commit)
via b8c9f8c18b954dd7fdc64b0655eda2831c27c26e (commit)
via 6a4289167c8a4882a26f690e51b523f016a4803e (commit)
via d6056fc7062984ae783891a31ef29942959ba479 (commit)
via a813462d79f36546f12e688cda306e4e1ca90da7 (commit)
via f11d939684d2153ec5031707362bc3398d8cf5f8 (commit)
from d65da96a3402db5d3e2eec9fc65cf20f58a1942f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1e25ff0a5b5f4f710ac6df8fa39bd31156409926
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:35 2014 +0200
kvm: Delegate socket handling to monitor module
Introduce @_ensure_connection decorator that properly handles
the socket connection (i.e. connect, close) and propagates
any exceptions raised in the decorated method.
In general @_ensure_connection wraps external methods.
Here we close the connection only if we initiated it before,
to protect us from using the socket after closing it
in case we invoke a decorated method internally by accident.
Rename all private methods of QmpConnection properly.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit cb5e23ec030acbfcbb4db2b8fd1de20247f70b25
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:34 2014 +0200
kvm: Use vhostfds obtained by OpenTap
During instance startup, if vhost_net is True, OpenTap() opens
/dev/vhost-net device to obtain some fds. These fds were never
used. This patch adds the vhostsfd option to the --netdev option.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit b4f2f739457afb517400be655d507bcde9b5808f
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:33 2014 +0200
hotplug: Retry VerifyHotplugCommand up to 5 times
It seems that QMP upon device_del returns without QEMU having
completely removed the device from the PCI bus. This probably has to
do PCI bus hotplug handlers (DeviceState->BusState->hotplug_handler).
So we invoke HasPCIDevice up to 5 times with 1 sec sleep in between
to get the proper response. Tests point out that usually only one
retry is needed.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 88bef78240d2b181cdbb48b2ffe9d4cf8054918e
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:32 2014 +0200
Update hotplug design doc
..to reflect the transition from HMP to QMP during hotplug
actions.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit e63f1e7430964663231ba13526551fd061fd6e9c
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:31 2014 +0200
qa: Re-enable NIC hotplug tests
This was disabled due to Issue 885. This issue states that NIC
hotplugging sometimes makes an instance unresponsive. This cannot be
the case, since NIC hotplug takes place on an extra NIC and does not
mess up with instance's primary NIC. Still this sometimes might be
related with --online fix (see commit b0a383a).
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 0e22b420ccf588386d9ff571621f76989ba90cbf
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:30 2014 +0200
qmp: Log qmp commands and responses
Add debug logging for all qmp commands and responses, except for
query-commands, and qmp_capabilities, that are executed upon
initialization of QmpConnection (and their output is not really
useful).
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit bd4d9db36ae674c6b21160b96c2d099325bcfe72
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:29 2014 +0200
hotplug: Is not supported for QEMU < 1.7
Change the bulk check of whether hotplug is supported or not.
Only versions >= 1.7 support the required qmp commands.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 5c501ba18a27c5a94e4ad58e5122a10294cec045
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:28 2014 +0200
hotplug: Remove unused code after refacoring
All HMP related code gets removed since everything is done via QMP.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 1fb45c21ba66bfd1d1ce2b654937213723f542fe
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:27 2014 +0200
hotplug: Use QMP during HotDelDevice
During device hot-del use new QMP helper methods: HotDelDisk() for
disk hotplug and HotDelNic() for NIC hotplug.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit a80a860577dd9f14115869977ffb01802e8f426b
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:26 2014 +0200
hotplug: Use QMP during HotAddDevice
During device hot-add use new QMP helper methods: GetFreePCISlot()
for allocating a free PCI slot, HotAddDisk() for disk hotplug and
HotAddNic() for NIC hotplug.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit c776bef5ff253d84f9e2ff29e8f97f3c14ce3f97
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:25 2014 +0200
kvm: Use the new interface during instance start
Use new OpenTap() and _GetNetworkDeviceFeatures() interfaces
during _ExecuteKVMRuntime().
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 35c3b67b0b63445cc85862e18c7fec733b72bcae
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:24 2014 +0200
monitor: Extend HotAddNic() for advanced features
In case vhost is enabled we have to pass the vhostfds as returned by
OpenTap() via SCM_RIGHTS prior issuing netdev_add command with vhost
and vhostfds extra arguments.
In case multiqueue is enabled we add the mq and vectors extra
arguments to netdev_add command.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 9e26a355496e75ab657813929293669c208f9873
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:23 2014 +0200
kvm: Refactor _GetNetworkDeviceFeatures() helper
Make _GetNetworkDeviceFeatures() return a tuple of (dict, str, str).
The first item should be a dictionary including the enabled
netdev/device features (vhost, vnet_hdr, mq). The other two are
strings to be appended to --netdev and --device qemu options.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 79050c53e475cd0e7c00017fe01905630fa67e50
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:22 2014 +0200
netdev: Refactor OpenTap for future use
Make OpenTap() helper method to take a dictionary with the features
that should be enabled or not. Currently these features are: vhost,
vnet_hdr, multiqueue.
In case vhost is enabled, along with the tapfds we return a list of
vhostfds after opening /dev/vhost-net. This regularly is done by the
qemu process if vhost=on is passed in --netdev option, but in case
of hotplug and if the qemu process does not run with root privileges
we must get the fds and pass them via SCM_RIGHTS prior qemu uses
them.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 154455532bea1353c4a0089dc3836aa602913114
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:21 2014 +0200
hotplug: Use QMP in VerifyHotplugCommand
This used to check whether a specific hotplug action has succeeded.
Use HasPCIDevice() qmp method to verify if the requested device
exists or not.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 4c513aab72ea05ac64cc2f83311533356054b001
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:20 2014 +0200
hotplug: Use QMP in VerifyHotplugSupport
This used to check whether a specific hotplug action is supported.
Since everything is about to be done via qmp commands delegate these
checks to QmpConnection class.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 16f4bee6b722918fdd7bf924b2a6e177137274ad
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:19 2014 +0200
monitor: Close socket fd if already connected
We close the socket fd only if we have an active connection.
We hide this logic in the public close() method, and all
the actions are moved to a private method.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit c5297eceaa322341f41c863c0b5664da29f63fcf
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:18 2014 +0200
kvm: New _with_qmp decorator
The decorator takes the hypervisor and the instance object as passed
to all hotplug related commands and ensures a valid QmpConnection()
object is found in hypervisor's qmp attribute.
This decorator is responsible for all actions related to the
QmpConnection (e.g. init, connect, close) and for proper exception
propagation. In order to be safe against nested invocations we close
the connection only if we create it.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 5a79d857e3c7baa489ecf2f2b9b1c646bd9f07e3
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:17 2014 +0200
qmp: Add Disk hotplugging related methods
HotAddDisk() uses blockdev-add and device_add after getting the
drive fd and passing it with the AddFd() helper method. Please note
that in case of userspace access mode this step will be omitted.
HotDelDisk() uses device_del. Please note that drive_del is
currently not supported in qmp and thus hmp should be used instead.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit d5dc810fa57cad1acd4818d1e0d2f8b487ecb45c
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:16 2014 +0200
qmp: Add NIC hotplugging related methods
HotAddNic() uses netdev_add and device_add after passing the tapfd
to the running process with the GetFd() helper method.
HotDelNic() uses device_del and netdev_del qmp commands.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 9abb1e38c9b53946a5e6555b954d9d43b29290b8
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:15 2014 +0200
qmp: Helper methods for parsing query-pci output
Introduce GetPCIDevices() that gets the devices of the first PCI bus
of a running instance, HasPCIDevice() that will be used to verify
if a specific device is correctly hotplugged or not, and
GetFreePCISlot() that will be used during hot-add to find the first
available PCI slot of a running instance.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit b8c9f8c18b954dd7fdc64b0655eda2831c27c26e
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:14 2014 +0200
qmp: Add helper methods to verify hotplug support
Introduce CheckDiskHotAddSupport() and CheckNicHotAddSupport()
helper methods that will be used to verify hotplug support.
Both check for fdsend python module and if the required qmp
commands are supported.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit 6a4289167c8a4882a26f690e51b523f016a4803e
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:13 2014 +0200
qmp: Add GetFd() wrapper around getfd command
getfd qmp command will be used to pass an fd using SCM_RIGHTS
and name it properly so that NIC hot-add can take place.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit d6056fc7062984ae783891a31ef29942959ba479
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:12 2014 +0200
qmp: Refactor of add-fd and remove-fd commands
Instead of sending the qmp command along with the SCM_RIGHTS control
message we send just a blank (idea taken from qemu iotests). Then we
invoke the corresponding command (add-fd, remove-fd) with the
regular way (qmp.Execute). Since the qmp connection does not close
in between the fds will be added properly.
AddFd() wrapper will be used for disk hot-add except for the case
where we have userspace access mode. Make it raise HypervisorError
if the command fails for some reason so that any hotplug action that
takes place will abort.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit a813462d79f36546f12e688cda306e4e1ca90da7
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:11 2014 +0200
utils: Introduce GetFreeSlot() function
Since this is a generic function that implements bitarray logic move
it from kvm to utils so that it can be easily used across all modules.
Make it raise errors.GenericError if it cannot find a free slot in
the given bitarray.
We add this function in a separate utils module (bitarrays) that can be
extended in the future. Currently only the network module and the
KVM hypervisor make use of bitarrays. This patch is a step forward
unifying these pieces of code and make both use the same bitarray
utility functions.
Add unittest for bitarrays utils module.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
commit f11d939684d2153ec5031707362bc3398d8cf5f8
Author: Dimitris Aragiorgis <[email protected]>
Date: Thu Nov 27 18:00:10 2014 +0200
kvm: Minor refactor of MonitorSocket
Create socket upon connect(), keep the status of connection
(self._connected = False) in close(), make existing connect()
method protected and let connect() act as a reconnect method.
Signed-off-by: Dimitris Aragiorgis <[email protected]>
Reviewed-by: Hrvoje Ribicic <[email protected]>
-----------------------------------------------------------------------
Summary of changes:
Makefile.am | 4 +-
doc/design-hotplug.rst | 29 +-
lib/hypervisor/hv_kvm/__init__.py | 318 +++++++------------
lib/hypervisor/hv_kvm/monitor.py | 333 +++++++++++++++++---
lib/hypervisor/hv_kvm/netdev.py | 35 ++-
lib/utils/__init__.py | 1 +
lib/{wconfd.py => utils/bitarrays.py} | 62 ++--
qa/qa_instance.py | 11 +-
...ttest.py => ganeti.utils.bitarrays_unittest.py} | 46 ++--
9 files changed, 508 insertions(+), 331 deletions(-)
copy lib/{wconfd.py => utils/bitarrays.py} (56%)
copy test/py/{ganeti.utils.mlock_unittest.py =>
ganeti.utils.bitarrays_unittest.py} (62%)
hooks/post-receive
--
Ganeti core
--
---
You received this message because you are subscribed to the Google Groups
"ganeti-commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.