[libvirt] [PATCH 2/3] Add domain fsfreeze and fsthaw API testing

Jincheng Miao jmiao at redhat.com
Wed Feb 4 09:26:14 UTC 2015


Signed-off-by: Jincheng Miao <jmiao at redhat.com>
---
 repos/domain/domain_fsfreeze.py |   76 +++++++++++++++++++++++++++++++++++++++
 repos/domain/domain_fsthaw.py   |   49 +++++++++++++++++++++++++
 2 files changed, 125 insertions(+), 0 deletions(-)
 create mode 100644 repos/domain/domain_fsfreeze.py
 create mode 100644 repos/domain/domain_fsthaw.py

diff --git a/repos/domain/domain_fsfreeze.py b/repos/domain/domain_fsfreeze.py
new file mode 100644
index 0000000..f91cd46
--- /dev/null
+++ b/repos/domain/domain_fsfreeze.py
@@ -0,0 +1,76 @@
+#!/usr/bin/evn python
+# To test domain fsfreeze
+
+import time
+import libvirt
+from libvirt import libvirtError
+
+from src import sharedmod
+
+required_params = ('guestname',)
+optional_params = {'mountpoint': ''}
+
+
+def check_frozen_num(mp, num):
+    """check the number of frozen fs"""
+    if mp == None:
+        return True
+
+    if len(mp) == num:
+        return True
+    else:
+        return False
+    
+
+def parse_mountpoint(mp):
+    """parse the argument mountpoint"""
+    if mp == None:
+        return None
+
+    return [p.strip() for p in mp.split(',')]
+
+
+def check_guest_status(domobj):
+    """Check guest current status"""
+    state = domobj.info()[0]
+    if state == libvirt.VIR_DOMAIN_SHUTOFF or \
+        state == libvirt.VIR_DOMAIN_SHUTDOWN:
+        # add check function
+        return False
+    else:
+        return True
+
+
+def domain_fsfreeze(params):
+    """domain fsfreeze test function"""
+    logger = params['logger']
+    guestname = params['guestname']
+    mountpoint = parse_mountpoint(params.get('mountpoint'))
+
+    conn = sharedmod.libvirtobj['conn']
+
+    domobj = conn.lookupByName(guestname)
+
+    # Check domain block status
+    if check_guest_status(domobj):
+        pass
+    else:
+        domobj.create()
+        time.sleep(90)
+        
+    try:
+        num = domobj.fsFreeze(mountpoint, 0)
+        logger.info("freeze %s fs" % num)
+        
+        if check_frozen_num(mountpoint, num):
+            logger.info("Check frozen fs num: pass")
+        else:
+            logger.error("Check frozen fs num: failed")
+            return 1
+
+    except libvirtError, e:
+        logger.error("API error message: %s, error code is %s"
+                     % (e.message, e.get_error_code()))
+        return 1
+
+    return 0
diff --git a/repos/domain/domain_fsthaw.py b/repos/domain/domain_fsthaw.py
new file mode 100644
index 0000000..cebbe22
--- /dev/null
+++ b/repos/domain/domain_fsthaw.py
@@ -0,0 +1,49 @@
+#!/usr/bin/evn python
+# To test domain fsthaw
+
+import time
+import libvirt
+from libvirt import libvirtError
+
+from src import sharedmod
+
+required_params = ('guestname',)
+optional_params = {}
+
+
+def check_guest_status(domobj):
+    """Check guest current status"""
+    state = domobj.info()[0]
+    if state == libvirt.VIR_DOMAIN_SHUTOFF or \
+        state == libvirt.VIR_DOMAIN_SHUTDOWN:
+        # add check function
+        return False
+    else:
+        return True
+
+
+def domain_fsthaw(params):
+    """domain fsthaw test function"""
+    logger = params['logger']
+    guestname = params['guestname']
+
+    conn = sharedmod.libvirtobj['conn']
+
+    domobj = conn.lookupByName(guestname)
+
+    # Check domain block status
+    if check_guest_status(domobj):
+        pass
+    else:
+        domobj.create()
+        time.sleep(90)
+
+    try:
+        num = domobj.fsThaw()
+        logger.info("fsThaw %s fs" % num)
+    except libvirtError, e:
+        logger.error("API error message: %s, error code is %s"
+                     % (e.message, e.get_error_code()))
+        return 1
+
+    return 0
-- 
1.7.1




More information about the libvir-list mailing list