From nobody Tue May 7 05:58:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 15254276071241007.4476878270867; Fri, 4 May 2018 02:53:27 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1C15D804E5; Fri, 4 May 2018 09:53:25 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 453D02016345; Fri, 4 May 2018 09:53:24 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 50DF44CAA1; Fri, 4 May 2018 09:53:22 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w449k3kV006560 for ; Fri, 4 May 2018 05:46:04 -0400 Received: by smtp.corp.redhat.com (Postfix) id CFCCC83B88; Fri, 4 May 2018 09:46:03 +0000 (UTC) Received: from katerina.brq.redhat.com (unknown [10.43.2.14]) by smtp.corp.redhat.com (Postfix) with ESMTP id 726F61DB27 for ; Fri, 4 May 2018 09:46:01 +0000 (UTC) From: Katerina Koukiou To: libvir-list@redhat.com Date: Fri, 4 May 2018 11:45:59 +0200 Message-Id: <20180504094559.13806-1-kkoukiou@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [dbus PATCH] Add detail argument to DomainEvent signal X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 04 May 2018 09:53:26 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Adjust all DomainEvent tests to do detail type checking. Signed-off-by: Katerina Koukiou Reviewed-by: Pavel Hrdina --- This commit is rebased on top of unmerged patches for removing enum<->string translation. data/org.libvirt.Connect.xml | 1 + src/events.c | 4 ++-- tests/libvirttest.py | 55 ++++++++++++++++++++++++++++++++++++++++= ++++ tests/test_connect.py | 6 +++-- tests/test_domain.py | 15 ++++++++---- 5 files changed, 72 insertions(+), 9 deletions(-) diff --git a/data/org.libvirt.Connect.xml b/data/org.libvirt.Connect.xml index 8272da6..0f1456f 100644 --- a/data/org.libvirt.Connect.xml +++ b/data/org.libvirt.Connect.xml @@ -171,6 +171,7 @@ value=3D"See https://libvirt.org/html/libvirt-libvirt-domain.html#= virConnectDomainEventCallback"/> + connectPath, VIRT_DBUS_CONNECT_INTERFACE, "DomainEvent", - g_variant_new("(ou)", path, event), + g_variant_new("(ouu)", path, event, deta= il), NULL); =20 return 0; diff --git a/tests/libvirttest.py b/tests/libvirttest.py index 06ac0e4..eee67a0 100644 --- a/tests/libvirttest.py +++ b/tests/libvirttest.py @@ -100,6 +100,61 @@ class DomainEvent(IntEnum): CRASHED =3D 8 =20 =20 +class DomainEventDefinedDetailType(IntEnum): + ADDED =3D 0 + UPDATED =3D 1 + RENAMED =3D 2 + FROM_SNAPSHOT =3D 3 + LAST =3D 4 + + +class DomainEventResumedDetailType(IntEnum): + UNPAUSED =3D 0 + MIGRATED =3D 1 + FROM_SNAPSHOT =3D 2 + POSTCOPY =3D 3 + LAST =3D 4 + + +class DomainEventStartedDetailType(IntEnum): + BOOTED =3D 0 + MIGRATED =3D 1 + RESTORED =3D 2 + FROM_SNAPSHOT =3D 3 + WAKEUP =3D 4 + LAST =3D 5 + + +class DomainEventStoppedDetailType(IntEnum): + SHUTDOWN =3D 0 + DESTROYED =3D 1 + CRASHED =3D 2 + MIGRATED =3D 3 + SAVED =3D 4 + FAILED =3D 5 + FROM_SNAPSHOT =3D 6 + LAST =3D 7 + + +class DomainEventSuspendedDetailType(IntEnum): + PAUSED =3D 0 + MIGRATED =3D 1 + IOERROR =3D 2 + WATCHDOG =3D 3 + RESTORED =3D 4 + FROM_SNAPSHOT =3D 5 + API_ERROR =3D 6 + POSTCOPY =3D 7 + POSTCOPY_FAILED =3D 8 + LAST =3D 9 + + +class DomainEventUndefinedDetailType(IntEnum): + REMOVED =3D 0 + RENAMED =3D 1 + LAST =3D 2 + + class DomainState(IntEnum): NOSTATE =3D 0 RUNNING =3D 1 diff --git a/tests/test_connect.py b/tests/test_connect.py index 7748822..a2bd17f 100755 --- a/tests/test_connect.py +++ b/tests/test_connect.py @@ -31,9 +31,10 @@ class TestConnect(libvirttest.BaseTestClass): ''' =20 def test_connect_domain_create_xml(self): - def domain_started(path, event): + def domain_started(path, event, detail): if event !=3D libvirttest.DomainEvent.STARTED: return + assert detail =3D=3D libvirttest.DomainEventStartedDetailType.= BOOTED assert isinstance(path, dbus.ObjectPath) self.loop.quit() =20 @@ -45,9 +46,10 @@ class TestConnect(libvirttest.BaseTestClass): self.main_loop() =20 def test_comnect_domain_define_xml(self): - def domain_defined(path, event): + def domain_defined(path, event, detail): if event !=3D libvirttest.DomainEvent.DEFINED: return + assert detail =3D=3D libvirttest.DomainEventDefinedDetailType.= ADDED assert isinstance(path, dbus.ObjectPath) self.loop.quit() =20 diff --git a/tests/test_domain.py b/tests/test_domain.py index c7e09cd..dfa19ed 100755 --- a/tests/test_domain.py +++ b/tests/test_domain.py @@ -47,9 +47,10 @@ class TestDomain(libvirttest.BaseTestClass): assert autostart_current =3D=3D dbus.Boolean(autostart_expected) =20 def test_domain_managed_save(self): - def domain_stopped(path, event): + def domain_stopped(path, event, detail): if event !=3D libvirttest.DomainEvent.STOPPED: return + assert detail =3D=3D libvirttest.DomainEventStoppedDetailType.= SAVED assert isinstance(path, dbus.ObjectPath) self.loop.quit() =20 @@ -74,9 +75,10 @@ class TestDomain(libvirttest.BaseTestClass): assert description_expected =3D=3D domain.GetMetadata(metadata_des= cription, "", 0) =20 def test_resume(self): - def domain_resumed(path, event): + def domain_resumed(path, event, detail): if event !=3D libvirttest.DomainEvent.RESUMED: return + assert detail =3D=3D libvirttest.DomainEventResumedDetailType.= UNPAUSED assert isinstance(path, dbus.ObjectPath) self.loop.quit() =20 @@ -92,9 +94,10 @@ class TestDomain(libvirttest.BaseTestClass): self.main_loop() =20 def test_shutdown(self): - def domain_stopped(path, event): + def domain_stopped(path, event, detail): if event !=3D libvirttest.DomainEvent.STOPPED: return + assert detail =3D=3D libvirttest.DomainEventStoppedDetailType.= SHUTDOWN assert isinstance(path, dbus.ObjectPath) self.loop.quit() =20 @@ -109,9 +112,10 @@ class TestDomain(libvirttest.BaseTestClass): self.main_loop() =20 def test_suspend(self): - def domain_suspended(path, event): + def domain_suspended(path, event, detail): if event !=3D libvirttest.DomainEvent.SUSPENDED: return + assert detail =3D=3D libvirttest.DomainEventSuspendedDetailTyp= e.PAUSED assert isinstance(path, dbus.ObjectPath) self.loop.quit() =20 @@ -126,9 +130,10 @@ class TestDomain(libvirttest.BaseTestClass): self.main_loop() =20 def test_undefine(self): - def domain_undefined(path, event): + def domain_undefined(path, event, detail): if event !=3D libvirttest.DomainEvent.UNDEFINED: return + assert detail =3D=3D libvirttest.DomainEventUndefinedDetailTyp= e.REMOVED assert isinstance(path, dbus.ObjectPath) self.loop.quit() =20 --=20 2.15.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list