[libvirt] [libvirt-dbus] [PATCH 2/2] Implement snapshots APIs
Ján Tomko
jtomko at redhat.com
Tue Oct 8 13:24:50 UTC 2019
On Mon, Oct 07, 2019 at 05:22:34PM +0200, Simon Kobyda wrote:
>Signed-off-by: Simon Kobyda <skobyda at redhat.com>
>---
> data/org.libvirt.Domain.xml | 26 ++++
> data/org.libvirt.DomainSnapshot.xml | 34 +++++
> src/domain.c | 158 +++++++++++++++++++++
> src/domainsnapshot.c | 204 +++++++++++++++++++++++++++-
> tests/Makefile.am | 1 +
> tests/libvirttest.py | 14 ++
> tests/test_domain.py | 8 ++
> tests/test_snapshot.py | 43 ++++++
> tests/xmldata.py | 6 +
> 9 files changed, 493 insertions(+), 1 deletion(-)
> create mode 100755 tests/test_snapshot.py
>
>diff --git a/src/domainsnapshot.c b/src/domainsnapshot.c
>index 590cbef..4bffe5d 100644
>--- a/src/domainsnapshot.c
>+++ b/src/domainsnapshot.c
>@@ -1,14 +1,216 @@
> static virtDBusGDBusMethodTable virtDBusDomainSnapshotMethodTable[] = {
>- { 0 }
>+ { "Delete", virtDBusDomainSnapshotDelete },
>+ { "GetParent", virtDBusDomainSnapshotGetParent },
>+ { "GetXMLDesc", virtDBusDomainSnapshotGetXMLDesc },
>+ { "IsCurrent", virtDBusDomainSnapshotIsCurrent }, // Needs to be method since it takes 'flags' parameter
/* ... */ is the prevailing comment style, however there are no rules
for that.
>+ { "ListChildren", virtDBusDomainSnapshotListAllChildren },
>+ { "Revert", virtDBusDomainSnapshotRevert },
> };
>
> static gchar **
>diff --git a/tests/Makefile.am b/tests/Makefile.am
>index cd1fbd7..7757429 100644
>--- a/tests/Makefile.am
>+++ b/tests/Makefile.am
>@@ -14,6 +14,7 @@ test_programs = \
> test_interface.py \
> test_network.py \
> test_nodedev.py \
>+ test_snapshot.py \
> test_storage.py \
> $(NULL)
>
>diff --git a/tests/libvirttest.py b/tests/libvirttest.py
>index a442196..8462fc3 100644
>--- a/tests/libvirttest.py
>+++ b/tests/libvirttest.py
>@@ -112,6 +112,20 @@ class BaseTestClass():
> """
> return self.node_device_create()
>
>+ @pytest.fixture
>+ def snapshot_create(self):
>+ """ Fixture to create simple snapshot the test driver
>+
>+ This fixture should be used in the setup of every test manipulating
>+ with snaphots.
>+ """
>+ _, test_domain = self.get_test_domain()
>+ interface_obj = dbus.Interface(test_domain, 'org.libvirt.Domain')
>+ path = interface_obj.SnapshotCreateXML(xmldata.minimal_snapshot_xml, 0)
>+ obj = self.bus.get_object('org.libvirt', path)
>+ interface_obj = dbus.Interface(obj, 'org.libvirt.DomainSnapshot')
>+ return interface_obj
>+
> @pytest.fixture
> def storage_volume_create(self):
> """ Fixture to create dummy storage volume on the test driver
>diff --git a/tests/test_domain.py b/tests/test_domain.py
>index b5879b4..fdb5aa4 100755
>--- a/tests/test_domain.py
>+++ b/tests/test_domain.py
>@@ -2,6 +2,7 @@
>
> import dbus
> import libvirttest
>+import xmldata
>
> DBUS_EXCEPTION_MISSING_FUNCTION = 'this function is not supported by the connection driver'
>
>@@ -160,6 +161,13 @@ class TestDomain(libvirttest.BaseTestClass):
> pinInfo = domain.GetVcpuPinInfo(0)
> assert pinInfo == pinInfo_expected
>
>+ def test_snapshot(self):
>+ obj, domain = self.get_test_domain()
>+ domain.SnapshotCreateXML(xmldata.minimal_snapshot_xml, 0)
>+ assert isinstance(domain.SnapshotCurrent(0), dbus.ObjectPath)
>+ assert isinstance(domain.SnapshotLookupByName("my_snapshot", 0), dbus.ObjectPath)
>+ assert isinstance(domain.ListDomainSnapshots(0), dbus.Array)
>
> if __name__ == '__main__':
> libvirttest.run()
>+
syntax-check fails with 'flake8' installed:
$ make syntax-check
/usr/bin/flake8 --show-source --ignore=E501 .
./tests/test_domain.py:171:1: E305 expected 2 blank lines after class or function definition, found 1
if __name__ == '__main__':
^
./tests/test_domain.py:173:1: W391 blank line at end of file
^
./tests/test_snapshot.py:9:1: E302 expected 2 blank lines, found 1
@pytest.mark.usefixtures("snapshot_create")
^
./tests/test_snapshot.py:42:1: E305 expected 2 blank lines after class or function definition, found 1
if __name__ == '__main__':
^
make: *** [Makefile:906: flake8] Error 1
Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20191008/a9e2ae5e/attachment-0001.sig>
More information about the libvir-list
mailing list