[Libvirt-cim] [PATCH] [TEST] Updated the test to create qcow2 storage volumes

Sharad Mishra snmishra at us.ibm.com
Fri Dec 24 19:43:52 UTC 2010


# HG changeset patch
# User Sharad Mishra <snmishra at us.ibm.com>
# Date 1293219718 28800
# Node ID c08c7fb1eb78c209fd6af1fc40b9858b0027061b
# Parent  d88da81a62f6c4cd6bfc0310f360e4d77863d9f4
[TEST] Updated the test to create qcow2 storage volumes.

This test has been updated to create not just raw storage volumes, but also qcow2.

Signed-off-by: Sharad Mishra <snmishra at us.ibm.com>

diff -r d88da81a62f6 -r c08c7fb1eb78 suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/10_create_storagevolume.py
--- a/suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/10_create_storagevolume.py	Wed Dec 22 18:37:01 2010 -0800
+++ b/suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/10_create_storagevolume.py	Fri Dec 24 11:41:58 2010 -0800
@@ -42,6 +42,7 @@
 from XenKvmLib.classes import get_typed_class, inst_to_mof
 from XenKvmLib.common_util import destroy_diskpool
 from XenKvmLib.pool import create_pool, undefine_diskpool, DIR_POOL
+from pywbem.cim_types import Uint64
 
 pool_attr = { 'Path' : _image_dir }
 vol_name = "cimtest-vol.img"
@@ -62,7 +63,7 @@
 
     return PASS, rasd
 
-def get_stovol_settings(server, virt, dp_id, pool_name):
+def get_stovol_settings(server, virt, dp_id, pool_name, format):
     status, dp_rasds = get_template_rasd_from_sdc(virt, server, dp_id) 
     if status != PASS:
         logger.error("Failed to get the StorageVol RASD's")
@@ -79,7 +80,8 @@
 
     if not pool_name in dpool_rasd['PoolID']:
         return None
-
+    dpool_rasd['FormatType'] = Uint64(format)
+    
     stovol_settings = inst_to_mof(dpool_rasd)
 
     return stovol_settings
@@ -197,67 +199,71 @@
     # vol creation, we can extend dp_types to include netfs etc 
     dp_types = { "DISK_POOL_DIR" : DIR_POOL }
 
-    for pool_name, pool_type in dp_types.iteritems():    
-        status = FAIL     
-        res = [FAIL]
-        found = 0
-        clean_pool=True
-        try:
-            if pool_type == DIR_POOL:
-                pool_name = default_pool_name
-                clean_pool=False
-            else:
-                status = create_pool(server, virt, pool_name, pool_attr, 
-                                     mode_type=pool_type, pool_type="DiskPool")
+    format_types = [1, 2]
 
-                if status != PASS:
-                    logger.error("Failed to create pool '%s'", pool_name)
-                    return status
+    for fs in format_types:
+        for pool_name, pool_type in dp_types.iteritems():    
+            status = FAIL     
+            res = [FAIL]
+            found = 0
+            clean_pool=True
+            try:
+                if pool_type == DIR_POOL:
+                    pool_name = default_pool_name
+                    clean_pool=False
+                else:
+                    status = create_pool(server, virt, pool_name, pool_attr, 
+                                         mode_type=pool_type, pool_type="DiskPool")
 
-            dp_inst_id = "%s/%s" % (dp_cn, pool_name)
-            stovol_settings = get_stovol_settings(server, virt, 
-                                                  dp_inst_id, pool_name)
-            if stovol_settings == None:
-                raise Exception("Failed to get the defualt StorageVolRASD info")
+                    if status != PASS:
+                        logger.error("Failed to create pool '%s'", pool_name)
+                        return status
 
-            disk_pool_inst = get_diskpool(server, virt, dp_cn, dp_inst_id)
-            if disk_pool_inst == None:
-                raise Exception("DiskPool instance for '%s' not found!" \
-                                % pool_name)
+                dp_inst_id = "%s/%s" % (dp_cn, pool_name)
+                stovol_settings = get_stovol_settings(server, virt, 
+                                                      dp_inst_id, pool_name, fs)
+                if stovol_settings == None:
+                    raise Exception("Failed to get the defualt StorageVolRASD info")
+                
+                disk_pool_inst = get_diskpool(server, virt, dp_cn, dp_inst_id)
+                if disk_pool_inst == None:
+                    raise Exception("DiskPool instance for '%s' not found!" \
+                                    % pool_name)
   
-            rpcs = get_typed_class(virt, "ResourcePoolConfigurationService")
-            rpcs_conn = eval("rpcs_service." + rpcs)(server)
-            res = rpcs_conn.CreateResourceInPool(Settings=stovol_settings, 
-                                                 Pool=disk_pool_inst)
-            if res[0] != PASS:
-                raise Exception("Failed to create the Vol %s" % vol_name)
+                rpcs = get_typed_class(virt, "ResourcePoolConfigurationService")
+                rpcs_conn = eval("rpcs_service." + rpcs)(server)
+                res = rpcs_conn.CreateResourceInPool(Settings=stovol_settings, 
+                                                     Pool=disk_pool_inst)
+                if res[0] != PASS:
+                    raise Exception("Failed to create the Vol %s" % vol_name)
 
-            if res[1]['Resource']['InstanceID'] != exp_vol_path and \
-               cim_rev >= libvirt_stovol_instance_id:
-                raise Exception("Incorrect InstanceID")
-            else:
-                status = PASS
+                if res[1]['Resource']['InstanceID'] != exp_vol_path and \
+                   cim_rev >= libvirt_stovol_instance_id:
+                    raise Exception("Incorrect InstanceID")
+                else:
+                    status = PASS
 
-            found = verify_vol(server, virt, pool_name, exp_vol_path, found)
-            stovol_status = verify_template_rasd_exists(virt, server, 
-                                                        dp_inst_id, 
-                                                        exp_vol_path)
+                found = verify_vol(server, virt, pool_name, exp_vol_path, found)
+                stovol_status = verify_template_rasd_exists(virt, server, 
+                                                            dp_inst_id, 
+                                                            exp_vol_path)
 
-            ret = cleanup_pool_vol(server, virt, pool_name, 
-                                   clean_pool, exp_vol_path)
-            if res[0] == PASS and found == 1 and \
-               ret == PASS and stovol_status == PASS and \
-               status == PASS:
-                status = PASS
-            else:
-                return FAIL
+                ret = cleanup_pool_vol(server, virt, pool_name, 
+                                       clean_pool, exp_vol_path)
+                if res[0] == PASS and found == 1 and \
+                   ret == PASS and stovol_status == PASS and \
+                   status == PASS:
+                    status = PASS
+                else:
+                    return FAIL
         
-        except Exception, details:
-            logger.error("Exception details: %s", details)
-            cleanup_pool_vol(server, virt, pool_name, 
-                             clean_pool, exp_vol_path)
-            status = FAIL
+            except Exception, details:
+                logger.error("Exception details: %s", details)
+                cleanup_pool_vol(server, virt, pool_name, 
+                                 clean_pool, exp_vol_path)
+                status = FAIL
 
     return status
+
 if __name__ == "__main__":
     sys.exit(main())




More information about the Libvirt-cim mailing list