[Libvirt-cim] [PATCH] [TEST] Updated the test to create qcow2 storage volumes
Chip Vincent
cvincent at linux.vnet.ibm.com
Thu Jan 13 19:19:46 UTC 2011
+1
pushed.
Sharad Mishra wrote:
> # 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())
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
--
Chip Vincent
Open Virtualization, Linux Technology Center
IBM Systems & Technology Group
phone: 919-254-4482, T/L 444-4482
email: cvincent at us.ibm.com
More information about the Libvirt-cim
mailing list