[libvirt] [PATCH 00/34] network events feature v2
Michal Privoznik
mprivozn at redhat.com
Wed Dec 11 13:18:54 UTC 2013
On 29.11.2013 16:18, Cédric Bosdonnat wrote:
> This patch serie is replacing the previous one I sent. The improvements that
> were made in between are:
> * splitting the 2 huge commits into smaller reviewable ones.
> * Get rid of the huge union in virDomainEvent and use virObjects instead.
> * No domain events-related code in object_event.c. I left the network events
> related code there as it would be pretty small in a separate set of files.
> * Rebased on the python split repository
>
> I saw something weird in the domain events code when working on this:
> VIR_DOMAIN_EVENT_LAST is defined if VIR_ENUM_SENTINELS is defined, but is
> generally used independently of it. I did the same for the VIR_NETWORK_EVENT_LAST
> thought I'm not sure that's the correct thing to do.
>
> These changes are all about bringing events for network object like the
> ones existing for domains. This feature is needed for virt-manager to
> refresh its UI when networks are started/destroyed/defined/undefined.
>
> The network events are implemented in the test, bridge network and remote
> drivers ATM.
>
> Cédric Bosdonnat (34):
> Added domain start/stop/define/undefine event unit tests
> Rename virDomainEventCallback to virObjectEventCallback
> Renamed virDomainMeta to virObjectMeta
> Renamed virDomainEventQueue to virObjectEventQueue
> Renamed virDomainEventState to virObjectEventState
> Renamed virDomainEventCallbackList* to virObjectEventCallbackList*
> Created virObjectEventStateRegisterID
> virObject-ified virDomainEvent
> Create virDomainEventLifecycle to start removing the huge union
> Renamed virDomainEventNew* to virDomainEventLifecycleNew*
> Renamed virDomainEventNewInternal to virDomainEventNew
> Create virDomainEventRTCChange to get rid of the huge union
> Created virDomainEventWatchdog to get rid of the huge union
> Created virDomainEventIOError
> Created virDomainEventGraphics
> Created virDomainEventBlockJob
> Create virDomainEventDiskChange
> Created virDomainEventTrayChange
> Created virDomainEventBalloonChange
> Created virDomainEventDeviceRemoved and removed the huge union
> Changed the remaining domain event creation methods results to void*
> Removed virDomainEventPtr in favor of virObjectEventPtr
> Add object event namespaces for the event IDs
> Renamed virDomainEventTimer to virObjectEventTimer
> Split the virObjectEvent and virDomainEvent* to separate them after
> Extracted common parts of domain_event.[ch] to object_event.[ch]
> Added virNetworkEventLifecycle object
> Added API for network events similar to the one from Domain events
> test driver: renamed testDomainEventQueue into testObjectEventQueue
> test driver: implemented network events
> Add network events unit tests
> daemon/remote.c: renamed remoteDispatchDomainEventSend
> Add network events to the remote driver
> Added network events to the bridged network driver
>
> .gitignore | 1 +
> cfg.mk | 6 +-
> daemon/libvirtd.h | 1 +
> daemon/remote.c | 175 ++-
> include/libvirt/libvirt.h.in | 86 ++
> src/Makefile.am | 6 +
> src/conf/domain_event.c | 1954 ++++++++++++++--------------------
> src/conf/domain_event.h | 219 ++--
> src/conf/object_event.c | 903 ++++++++++++++++
> src/conf/object_event.h | 113 ++
> src/conf/object_event_private.h | 113 ++
> src/driver.h | 14 +
> src/libvirt.c | 133 +++
> src/libvirt_private.syms | 25 +-
> src/libvirt_public.syms | 7 +
> src/libxl/libxl_conf.h | 2 +-
> src/libxl/libxl_driver.c | 46 +-
> src/lxc/lxc_conf.h | 2 +-
> src/lxc/lxc_driver.c | 54 +-
> src/lxc/lxc_process.c | 20 +-
> src/network/bridge_driver.c | 89 ++
> src/network/bridge_driver_platform.h | 3 +
> src/parallels/parallels_utils.h | 2 +-
> src/qemu/qemu_conf.h | 2 +-
> src/qemu/qemu_domain.c | 6 +-
> src/qemu/qemu_domain.h | 2 +-
> src/qemu/qemu_driver.c | 116 +-
> src/qemu/qemu_hotplug.c | 10 +-
> src/qemu/qemu_migration.c | 38 +-
> src/qemu/qemu_process.c | 70 +-
> src/remote/remote_driver.c | 178 +++-
> src/remote/remote_protocol.x | 46 +-
> src/test/test_driver.c | 197 ++--
> src/uml/uml_conf.h | 2 +-
> src/uml/uml_driver.c | 44 +-
> src/vbox/vbox_tmpl.c | 22 +-
> src/xen/xen_driver.c | 10 +-
> src/xen/xen_driver.h | 4 +-
> src/xen/xen_inotify.c | 10 +-
> src/xen/xs_internal.c | 20 +-
> tests/Makefile.am | 7 +
> tests/objecteventtest.c | 407 +++++++
> tests/qemuhotplugtest.c | 2 +-
> 43 files changed, 3525 insertions(+), 1642 deletions(-)
> create mode 100644 src/conf/object_event.c
> create mode 100644 src/conf/object_event.h
> create mode 100644 src/conf/object_event_private.h
> create mode 100644 tests/objecteventtest.c
>
I'm getting some compile errors on ARM:
CC conf/libvirt_conf_la-domain_event.lo
conf/domain_event.c: In function 'virDomainEventDispatchDefaultFunc':
conf/domain_event.c:1148:30: error: cast increases required alignment of
target type [-Werror=cast-align]
rtcChangeEvent = (virDomainEventRTCChangePtr)event;
^
conf/domain_event.c:1264:34: error: cast increases required alignment of
target type [-Werror=cast-align]
balloonChangeEvent = (virDomainEventBalloonChangePtr)event;
^
Michal
More information about the libvir-list
mailing list