Re: [libvirt] [test-API][PATCH] Add find storage pool sources cases
On 01/10/2013 05:02 PM, Wayne Sun wrote: Add cases for testing findStoragePoolSources API * add 3 cases for storage type 'netfs', 'iscsi' and 'logical' * add 2 xmls for 'netfs' and 'iscsi' find 'logical' storage pool sources did not require xml start with source tag and xml could be empty * add test conf for find storage pool sources Signed-off-by: Wayne Sun g...@redhat.com --- cases/find_storage_pool_sources.conf | 31 +++ repos/storage/find_iscsi_pool_sources.py | 72 repos/storage/find_logical_pool_sources.py | 82 repos/storage/find_netfs_pool_sources.py | 71 repos/storage/xmls/iscsi_pool_source.xml |3 + repos/storage/xmls/netfs_pool_source.xml |4 ++ 6 files changed, 263 insertions(+), 0 deletions(-) create mode 100644 cases/find_storage_pool_sources.conf create mode 100644 repos/storage/find_iscsi_pool_sources.py create mode 100644 repos/storage/find_logical_pool_sources.py create mode 100644 repos/storage/find_netfs_pool_sources.py create mode 100644 repos/storage/xmls/iscsi_pool_source.xml create mode 100644 repos/storage/xmls/netfs_pool_source.xml diff --git a/cases/find_storage_pool_sources.conf b/cases/find_storage_pool_sources.conf new file mode 100644 index 000..d2e86db --- /dev/null +++ b/cases/find_storage_pool_sources.conf @@ -0,0 +1,31 @@ +storage:find_iscsi_pool_sources +sourcehost +$iscsi_server + +storage:find_netfs_pool_sources +sourcehost +$nfs_server + +storage:define_logical_pool +poolname +$defaultpoolname +sourcename +$defaultpoolname +sourcepath +$defaultpartition + +storage:build_logical_pool +poolname +$defaultpoolname + +storage:find_logical_pool_sources +sourcepath +$defaultpartition + +storage:delete_logical_pool +poolname +$defaultpoolname + +storage:undefine_pool +poolname +$defaultpoolname diff --git a/repos/storage/find_iscsi_pool_sources.py b/repos/storage/find_iscsi_pool_sources.py new file mode 100644 index 000..4b758d2 --- /dev/null +++ b/repos/storage/find_iscsi_pool_sources.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python +# Test finding storage pool source of 'iscsi' type + +from xml.dom import minidom + +import libvirt +from libvirt import libvirtError + +from src import sharedmod +from utils import utils + +required_params = ('sourcehost',) +optional_params = {'xml' : 'xmls/iscsi_pool_source.xml', + } + +def check_pool_sources(host, xmlstr): +check the iscsi sources with command: + iscsiadm --mode discovery --type sendtargets --portal + +source_val = [] + +doc = minidom.parseString(xmlstr) +for diskTag in doc.getElementsByTagName(source): +device_element = diskTag.getElementsByTagName(device)[0] +attr = device_element.getAttributeNode('path') +path_val = attr.nodeValue + +source_val.append(path_val) + +logger.debug(pool source info list is: %s % source_val) + +cmd = iscsiadm --mode discovery --type sendtargets --portal %s:3260,1 |\ + awk -F' ' '{print $2}' % host +ret, path_list = utils.exec_cmd(cmd, shell=True) + +logger.debug(iscsiadm command output list is: %s % path_list) + +if source_val == path_list: +logger.info(source list matched with iscsiadm command output) +return 0 +else: +logger.error(source list did not match with iscsiadm command output) +return 1 + +def find_iscsi_pool_sources(params): +Find iscsi type storage pool sources from xml +global logger +logger = params['logger'] +sourcehost = params['sourcehost'] +xmlstr = params['xml'] + +conn = sharedmod.libvirtobj['conn'] +try: + +logger.debug(storage source spec xml:\n%s % xmlstr) + +logger.info(find pool sources of iscsi type) +source_xml = conn.findStoragePoolSources('iscsi', xmlstr, 0) +logger.info(pool sources xml description is:\n %s % source_xml) + +ret = check_pool_sources(sourcehost, source_xml) +if ret: +logger.error(pool sources check failed) +return 1 +else: +logger.info(pool sources check succeed) + +except libvirtError, e: +logger.error(libvirt call failed: + str(e)) +return 1 + +return 0 diff --git a/repos/storage/find_logical_pool_sources.py b/repos/storage/find_logical_pool_sources.py new file mode 100644 index 000..255d879 --- /dev/null +++ b/repos/storage/find_logical_pool_sources.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python +# Test finding storage pool source of 'logical' type + +from xml.dom import minidom + +import libvirt +from libvirt import libvirtError + +from src import sharedmod +from utils import utils + +required_params = ('sourcepath',) +optional_params = {'xml' : 'xmls/logical_pool.xml', + } + +def
[libvirt] [test-API][PATCH] Add find storage pool sources cases
Add cases for testing findStoragePoolSources API * add 3 cases for storage type 'netfs', 'iscsi' and 'logical' * add 2 xmls for 'netfs' and 'iscsi' find 'logical' storage pool sources did not require xml start with source tag and xml could be empty * add test conf for find storage pool sources Signed-off-by: Wayne Sun g...@redhat.com --- cases/find_storage_pool_sources.conf | 31 +++ repos/storage/find_iscsi_pool_sources.py | 72 repos/storage/find_logical_pool_sources.py | 82 repos/storage/find_netfs_pool_sources.py | 71 repos/storage/xmls/iscsi_pool_source.xml |3 + repos/storage/xmls/netfs_pool_source.xml |4 ++ 6 files changed, 263 insertions(+), 0 deletions(-) create mode 100644 cases/find_storage_pool_sources.conf create mode 100644 repos/storage/find_iscsi_pool_sources.py create mode 100644 repos/storage/find_logical_pool_sources.py create mode 100644 repos/storage/find_netfs_pool_sources.py create mode 100644 repos/storage/xmls/iscsi_pool_source.xml create mode 100644 repos/storage/xmls/netfs_pool_source.xml diff --git a/cases/find_storage_pool_sources.conf b/cases/find_storage_pool_sources.conf new file mode 100644 index 000..d2e86db --- /dev/null +++ b/cases/find_storage_pool_sources.conf @@ -0,0 +1,31 @@ +storage:find_iscsi_pool_sources +sourcehost +$iscsi_server + +storage:find_netfs_pool_sources +sourcehost +$nfs_server + +storage:define_logical_pool +poolname +$defaultpoolname +sourcename +$defaultpoolname +sourcepath +$defaultpartition + +storage:build_logical_pool +poolname +$defaultpoolname + +storage:find_logical_pool_sources +sourcepath +$defaultpartition + +storage:delete_logical_pool +poolname +$defaultpoolname + +storage:undefine_pool +poolname +$defaultpoolname diff --git a/repos/storage/find_iscsi_pool_sources.py b/repos/storage/find_iscsi_pool_sources.py new file mode 100644 index 000..4b758d2 --- /dev/null +++ b/repos/storage/find_iscsi_pool_sources.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python +# Test finding storage pool source of 'iscsi' type + +from xml.dom import minidom + +import libvirt +from libvirt import libvirtError + +from src import sharedmod +from utils import utils + +required_params = ('sourcehost',) +optional_params = {'xml' : 'xmls/iscsi_pool_source.xml', + } + +def check_pool_sources(host, xmlstr): +check the iscsi sources with command: + iscsiadm --mode discovery --type sendtargets --portal + +source_val = [] + +doc = minidom.parseString(xmlstr) +for diskTag in doc.getElementsByTagName(source): +device_element = diskTag.getElementsByTagName(device)[0] +attr = device_element.getAttributeNode('path') +path_val = attr.nodeValue + +source_val.append(path_val) + +logger.debug(pool source info list is: %s % source_val) + +cmd = iscsiadm --mode discovery --type sendtargets --portal %s:3260,1 |\ + awk -F' ' '{print $2}' % host +ret, path_list = utils.exec_cmd(cmd, shell=True) + +logger.debug(iscsiadm command output list is: %s % path_list) + +if source_val == path_list: +logger.info(source list matched with iscsiadm command output) +return 0 +else: +logger.error(source list did not match with iscsiadm command output) +return 1 + +def find_iscsi_pool_sources(params): +Find iscsi type storage pool sources from xml +global logger +logger = params['logger'] +sourcehost = params['sourcehost'] +xmlstr = params['xml'] + +conn = sharedmod.libvirtobj['conn'] +try: + +logger.debug(storage source spec xml:\n%s % xmlstr) + +logger.info(find pool sources of iscsi type) +source_xml = conn.findStoragePoolSources('iscsi', xmlstr, 0) +logger.info(pool sources xml description is:\n %s % source_xml) + +ret = check_pool_sources(sourcehost, source_xml) +if ret: +logger.error(pool sources check failed) +return 1 +else: +logger.info(pool sources check succeed) + +except libvirtError, e: +logger.error(libvirt call failed: + str(e)) +return 1 + +return 0 diff --git a/repos/storage/find_logical_pool_sources.py b/repos/storage/find_logical_pool_sources.py new file mode 100644 index 000..255d879 --- /dev/null +++ b/repos/storage/find_logical_pool_sources.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python +# Test finding storage pool source of 'logical' type + +from xml.dom import minidom + +import libvirt +from libvirt import libvirtError + +from src import sharedmod +from utils import utils + +required_params = ('sourcepath',) +optional_params = {'xml' : 'xmls/logical_pool.xml', + } + +def check_pool_sources(xmlstr): +check the logical sources with