[libvirt] [dbus PATCH v2 5/9] Change NetworkEvent argument from string to unsigned int

Katerina Koukiou kkoukiou at redhat.com
Fri May 4 08:38:31 UTC 2018


Modify the relevant tests to comply with the new signal.

Note: argument matching in connect_to_signal method is
only usable with string and thus had to be refactored.

Signed-off-by: Katerina Koukiou <kkoukiou at redhat.com>
---
 data/org.libvirt.Connect.xml |  2 +-
 src/events.c                 | 14 +-------------
 tests/libvirttest.py         |  7 +++++++
 tests/test_connect.py        | 12 ++++++++----
 tests/test_network.py        | 18 ++++++++++++------
 5 files changed, 29 insertions(+), 24 deletions(-)

diff --git a/data/org.libvirt.Connect.xml b/data/org.libvirt.Connect.xml
index 386a7bb..8272da6 100644
--- a/data/org.libvirt.Connect.xml
+++ b/data/org.libvirt.Connect.xml
@@ -176,7 +176,7 @@
       <annotation name="org.gtk.GDBus.DocString"
         value="See https://libvirt.org/html/libvirt-libvirt-network.html#virConnectNetworkEventLifecycleCallback"/>
       <arg name="network" type="o"/>
-      <arg name="event" type="s"/>
+      <arg name="event" type="u"/>
     </signal>
   </interface>
 </node>
diff --git a/src/events.c b/src/events.c
index 601d898..1b584f7 100644
--- a/src/events.c
+++ b/src/events.c
@@ -146,14 +146,6 @@ virtDBusEventsDomainDiskChange(virConnectPtr connection G_GNUC_UNUSED,
     return 0;
 }
 
-VIRT_DBUS_ENUM_DECL(virtDBusEventsNetworkEvent)
-VIRT_DBUS_ENUM_IMPL(virtDBusEventsNetworkEvent,
-                    VIR_NETWORK_EVENT_LAST,
-                    "Defined",
-                    "Undefined",
-                    "Started",
-                    "Stopped")
-
 static gint
 virtDBusEventsNetworkLifecycle(virConnectPtr connection G_GNUC_UNUSED,
                                virNetworkPtr network,
@@ -163,10 +155,6 @@ virtDBusEventsNetworkLifecycle(virConnectPtr connection G_GNUC_UNUSED,
 {
     virtDBusConnect *connect = opaque;
     g_autofree gchar *path = NULL;
-    const gchar *eventStr = virtDBusEventsNetworkEventTypeToString(event);
-
-    if (!eventStr)
-        return 0;
 
     path = virtDBusUtilBusPathForVirNetwork(network, connect->networkPath);
 
@@ -175,7 +163,7 @@ virtDBusEventsNetworkLifecycle(virConnectPtr connection G_GNUC_UNUSED,
                                   connect->connectPath,
                                   VIRT_DBUS_CONNECT_INTERFACE,
                                   "NetworkEvent",
-                                  g_variant_new("(os)", path, eventStr),
+                                  g_variant_new("(ou)", path, event),
                                   NULL);
 
     return 0;
diff --git a/tests/libvirttest.py b/tests/libvirttest.py
index f7f48ed..0e84a94 100644
--- a/tests/libvirttest.py
+++ b/tests/libvirttest.py
@@ -98,3 +98,10 @@ class DomainEvent(IntEnum):
     SHUTDOWN = 6
     PMSUSPENDED = 7
     CRASHED = 8
+
+
+class NetworkEvent(IntEnum):
+    DEFINED = 0
+    UNDEFINED = 1
+    STARTED = 2
+    STOPPED = 3
diff --git a/tests/test_connect.py b/tests/test_connect.py
index 41cc134..7748822 100755
--- a/tests/test_connect.py
+++ b/tests/test_connect.py
@@ -125,11 +125,13 @@ class TestConnect(libvirttest.BaseTestClass):
         assert isinstance(self.connect.GetCPUModelNames(arch, 0), dbus.Array)
 
     def test_connect_network_create_xml(self):
-        def network_started(path, _event):
+        def network_started(path, event):
+            if event != libvirttest.NetworkEvent.STARTED:
+                return
             assert isinstance(path, dbus.ObjectPath)
             self.loop.quit()
 
-        self.connect.connect_to_signal('NetworkEvent', network_started, arg1='Started')
+        self.connect.connect_to_signal('NetworkEvent', network_started)
 
         path = self.connect.NetworkCreateXML(self.minimal_network_xml)
         assert isinstance(path, dbus.ObjectPath)
@@ -137,11 +139,13 @@ class TestConnect(libvirttest.BaseTestClass):
         self.main_loop()
 
     def test_connect_network_define_xml(self):
-        def network_defined(path, _event):
+        def network_defined(path, event):
+            if event != libvirttest.NetworkEvent.DEFINED:
+                return
             assert isinstance(path, dbus.ObjectPath)
             self.loop.quit()
 
-        self.connect.connect_to_signal('NetworkEvent', network_defined, arg1='Defined')
+        self.connect.connect_to_signal('NetworkEvent', network_defined)
 
         path = self.connect.NetworkDefineXML(self.minimal_network_xml)
         assert isinstance(path, dbus.ObjectPath)
diff --git a/tests/test_network.py b/tests/test_network.py
index 1340d95..f34c081 100755
--- a/tests/test_network.py
+++ b/tests/test_network.py
@@ -34,11 +34,13 @@ class TestNetwork(libvirttest.BaseTestClass):
         assert autostart_current == dbus.Boolean(autostart_expected)
 
     def test_network_create(self):
-        def domain_started(path, _event):
+        def domain_started(path, event):
+            if event != libvirttest.NetworkEvent.STARTED:
+                return
             assert isinstance(path, dbus.ObjectPath)
             self.loop.quit()
 
-        self.connect.connect_to_signal('NetworkEvent', domain_started, arg1='Started')
+        self.connect.connect_to_signal('NetworkEvent', domain_started)
 
         _,test_network = self.test_network()
         interface_obj = dbus.Interface(test_network, 'org.libvirt.Network')
@@ -48,11 +50,13 @@ class TestNetwork(libvirttest.BaseTestClass):
         self.main_loop()
 
     def test_network_destroy(self):
-        def network_stopped(path, _event):
+        def network_stopped(path, event):
+            if event != libvirttest.NetworkEvent.STOPPED:
+                return
             assert isinstance(path, dbus.ObjectPath)
             self.loop.quit()
 
-        self.connect.connect_to_signal('NetworkEvent', network_stopped, arg1='Stopped')
+        self.connect.connect_to_signal('NetworkEvent', network_stopped)
 
         _, test_network = self.test_network()
         interface_obj = dbus.Interface(test_network, 'org.libvirt.Network')
@@ -66,11 +70,13 @@ class TestNetwork(libvirttest.BaseTestClass):
         assert isinstance(interface_obj.GetXMLDesc(0), dbus.String)
 
     def test_network_undefine(self):
-        def domain_undefined(path, _event):
+        def domain_undefined(path, event):
+            if event != libvirttest.NetworkEvent.UNDEFINED:
+                return
             assert isinstance(path, dbus.ObjectPath)
             self.loop.quit()
 
-        self.connect.connect_to_signal('NetworkEvent', domain_undefined, arg1='Undefined')
+        self.connect.connect_to_signal('NetworkEvent', domain_undefined)
 
         _,test_network = self.test_network()
         interface_obj = dbus.Interface(test_network, 'org.libvirt.Network')
-- 
2.15.0




More information about the libvir-list mailing list