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.

Reply via email to