* new APIs get_parent(self, domname, snapname, flag = 0) children_num(self, domname, snapname, flag) children_names_list(self, domname, snapname, flag) the flag in children_num and children_names_list could be in 0-7, which is the OR operation result of (VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS | VIR_DOMAIN_SNAPSHOT_LIST_METADATA | VIR_DOMAIN_SNAPSHOT_LIST_LEAVES) * deleted redundancy spaces and fixed a typo in function domain() * getConnect(), getDomain() and getName() API are not added in, current snapshotAPI requires user to offer connection obj, domain name and snapshot name. --- lib/snapshotAPI.py | 59 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 46 insertions(+), 13 deletions(-) diff --git a/lib/snapshotAPI.py b/lib/snapshotAPI.py index 43ccb89..d866b60 100644 --- a/lib/snapshotAPI.py +++ b/lib/snapshotAPI.py @@ -24,14 +24,14 @@ import libvirt import re import os -def append_path(path): +def append_path(path): """Append root path of package""" if path in sys.path: pass else: sys.path.append(path) - -pwd = os.getcwd() + +pwd = os.getcwd() result = re.search('(.*)libvirt-test-API', pwd) append_path(result.group(0)) @@ -39,7 +39,7 @@ import exception class SnapshotAPI(object): def __init__(self, connection): - self.conn = connection + self.conn = connection def create(self, domname, xml_desc, flag = 0): try: @@ -57,7 +57,7 @@ class SnapshotAPI(object): except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() - raise exception.LibvirtAPI(message, code) + raise exception.LibvirtAPI(message, code) def snapshot_name_list(self, domname, flag = 0): try: @@ -66,7 +66,7 @@ class SnapshotAPI(object): except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() - raise exception.LibvirtAPI(message, code) + raise exception.LibvirtAPI(message, code) def snapshot_nums(self, domname, flag = 0): try: @@ -95,31 +95,64 @@ class SnapshotAPI(object): message = e.get_error_message() code = e.get_error_code() raise exception.LibvirtAPI(message, code) - + def delete(self, domname, snapname, flag = 0): try: - snap = self.snapshot_lookup_by_name(domname, snapname, flag = 0) + snap = self.snapshot_lookup_by_name(domname, snapname) return snap.delete(flag) except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() - raise exception.LibvirtAPI(message, code) + raise exception.LibvirtAPI(message, code) def get_xml_desc(self, domname, snapname, flag = 0): try: - snap = self.snapshot_lookup_by_name(domname, snapname, flag = 0) + snap = self.snapshot_lookup_by_name(domname, snapname) return snap.getXMLDesc(flag) except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() raise exception.LibvirtAPI(message, code) - def domain(self, domname): + def domain(self, domname, snapname): try: - snap = self.snapshot_lookup_by_name(domname, snapname, flag = 0) + snap = self.snapshot_lookup_by_name(domname, snapname) return snap.domain() except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() raise exception.LibvirtAPI(message, code) - + + def get_parent(self, domname, snapname, flag = 0): + try: + snap = self.snapshot_lookup_by_name(domname, snapname) + return snap.getParent(flag) + except libvirt.libvirtError, e: + message = e.get_error_message() + code = e.get_error_code() + raise exception.LibvirtAPI(message, code) + + def children_num(self, domname, snapname, flag): + try: + snap = self.snapshot_lookup_by_name(domname, snapname) + return snap.numChildren(flag) + except libvirt.libvirtError, e: + message = e.get_error_message() + code = e.get_error_code() + raise exception.LibvirtAPI(message, code) + + def children_names_list(self, domname, snapname, flag): + try: + snap = self.snapshot_lookup_by_name(domname, snapname) + return snap.listChildrenNames(flag) + except libvirt.libvirtError, e: + message = e.get_error_message() + code = e.get_error_code() + raise exception.LibvirtAPI(message, code) + +# virDomainSnapshotListFlags +VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS = 1 +VIR_DOMAIN_SNAPSHOT_LIST_ROOTS = 1 +VIR_DOMAIN_SNAPSHOT_LIST_METADATA = 2 +VIR_DOMAIN_SNAPSHOT_LIST_LEAVES = 4 + -- 1.7.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list