def test_GetDiskInfoFromDataStorage(self): """ @summary: 测试步骤 @note: (1)查询指定存储域中磁盘信息; @note: (2)操作成功,验证接口返回的状态码、磁盘信息是否正确。 """ ds_api = DataStorageAPIs() LogPrint().info( "Test: Get disk '%s' info from the data storage '%s'." % (self.dm.disk_name, self.dm.data1_name) ) r = ds_api.getDiskInfoFromDataStorage(self.dm.data1_name, self.disk_id) if r["status_code"] == self.dm.expected_status_code_get_disk_info: d1 = xmltodict.parse(self.dm.xml_disk_info) if DictCompare().isSubsetDict(d1, r["result"]): LogPrint().info( "PASS: Get disk '%s' info from the data storage '%s' SUCCESS." % (self.dm.disk_name, self.dm.data1_name) ) self.flag = True else: LogPrint().error("FAIL: Get disk info INCORRECT.") self.flag = False else: LogPrint().error( "FAIL: Returned status code '%s' INCORRECT while get disk info from data storage." % r["status_code"] ) self.flag = False self.assertTrue(self.flag)
def test_DelDiskFromDataStorage_OK(self): ''' @summary: 测试步骤 @note: (1)调用相应接口,删除创建的磁盘; @note: (2)操作成功,验证接口返回的状态码、相关信息是否正确。 ''' ds_api = DataStorageAPIs() disk_api = DiskAPIs() LogPrint().info("Test: Delete the disk '%s' in 'OK' state." % self.dm.disk_name) r = ds_api.delDiskFromDataStorage(self.dm.data1_name, disk_id=self.disk_id) if r['status_code'] == self.dm.expected_status_code_del_disk: try: disk_api.getDiskInfo(self.disk_id) LogPrint().error("FAIL: Delete disk FAILED, still exist.") self.flag = False except: LogPrint().info( "PASS: Delete disk '%s' from Data Storage '%s' SUCCESS." % (self.dm.disk_name, self.dm.data1_name)) self.flag = True else: LogPrint().error( "FAIL: Returned status code '%s' is WRONG while deleting disk." % r['status_code']) self.flag = False self.assertTrue(self.flag)
def test_GetDiskInfoFromDataStorage(self): ''' @summary: 测试步骤 @note: (1)查询指定存储域中磁盘信息; @note: (2)操作成功,验证接口返回的状态码、磁盘信息是否正确。 ''' ds_api = DataStorageAPIs() LogPrint().info( "Test: Get disk '%s' info from the data storage '%s'." % (self.dm.disk_name, self.dm.data1_name)) r = ds_api.getDiskInfoFromDataStorage(self.dm.data1_name, self.disk_id) if r['status_code'] == self.dm.expected_status_code_get_disk_info: d1 = xmltodict.parse(self.dm.xml_disk_info) if DictCompare().isSubsetDict(d1, r['result']): LogPrint().info( "PASS: Get disk '%s' info from the data storage '%s' SUCCESS." % (self.dm.disk_name, self.dm.data1_name)) self.flag = True else: LogPrint().error("FAIL: Get disk info INCORRECT.") self.flag = False else: LogPrint().error( "FAIL: Returned status code '%s' INCORRECT while get disk info from data storage." % r['status_code']) self.flag = False self.assertTrue(self.flag)
def smart_detach_storage_domain(dc_name, sd_name, data='<action><async>false</async></action>'): ''' @summary: 从数据中心分离存储域(分离,并判断存储域状态是否最终变为unattached) @param dc_name: 数据中心名称 @param sd_name: 要分离的存储域名称 @param data: 调用接口传递的数据,缺省为“分离操作同步” @return: True or False ''' dc_api = DataCenterAPIs() ds_api = DataStorageAPIs() r = dc_api.detachStorageDomainFromDC(dc_name, sd_name, data) return (r['status_code'] == 200 and ds_api.getStorageDomainStatus(sd_name)=='unattached')
def smart_detach_storage_domain(dc_name, sd_name, data='<action><async>false</async></action>'): ''' @summary: 从数据中心分离存储域(分离,并判断存储域状态是否最终变为unattached) @param dc_name: 数据中心名称 @param sd_name: 要分离的存储域名称 @param data: 调用接口传递的数据,缺省为“分离操作同步” @return: True or False ''' dc_api = DataCenterAPIs() ds_api = DataStorageAPIs() r = dc_api.detachStorageDomainFromDC(dc_name, sd_name, data) return (r['status_code'] == 200 and ds_api.getStorageDomainStatus(sd_name) == 'unattached')
def test_GetDisksFromDataStorage(self): """ @summary: 测试步骤 @note: (1)调用相应接口,获取Data存储域中的disk列表; @note: (2)操作成功,验证接口返回的状态码、disk列表是否正确。 """ data_storage_api = DataStorageAPIs() LogPrint().info("Test: Get disks list of Data Storage '%s'." % self.dm.data1_name) r = data_storage_api.getDisksListFromDataStorage(self.dm.data1_name) if r["status_code"] == self.dm.expected_status_code_get_disk_list_in_data_storage: LogPrint().info("PASS: Get the disks list from Data Storage '%s' SUCCESS." % self.dm.data1_name) self.flag = True else: LogPrint().error("FAIL: Returned status code '%s' INCORRECT." % r["status_code"]) self.flag = False self.assertTrue(self.flag)
def test_GetDisksFromDataStorage(self): ''' @summary: 测试步骤 @note: (1)调用相应接口,获取Data存储域中的disk列表; @note: (2)操作成功,验证接口返回的状态码、disk列表是否正确。 ''' data_storage_api = DataStorageAPIs() LogPrint().info("Test: Get disks list of Data Storage '%s'." % self.dm.data1_name) r = data_storage_api.getDisksListFromDataStorage(self.dm.data1_name) if r['status_code'] == self.dm.expected_status_code_get_disk_list_in_data_storage: LogPrint().info( "PASS: Get the disks list from Data Storage '%s' SUCCESS." % self.dm.data1_name) self.flag = True else: LogPrint().error("FAIL: Returned status code '%s' INCORRECT." % r['status_code']) self.flag = False self.assertTrue(self.flag)
def test_DelDiskFromDataStorage_OK(self): ''' @summary: 测试步骤 @note: (1)调用相应接口,删除创建的磁盘; @note: (2)操作成功,验证接口返回的状态码、相关信息是否正确。 ''' ds_api = DataStorageAPIs() disk_api = DiskAPIs() LogPrint().info("Test: Delete the disk '%s' in 'OK' state." % self.dm.disk_name) r = ds_api.delDiskFromDataStorage(self.dm.data1_name, disk_id=self.disk_id) if r['status_code']==self.dm.expected_status_code_del_disk: try: disk_api.getDiskInfo(self.disk_id) LogPrint().error("FAIL: Delete disk FAILED, still exist.") self.flag = False except: LogPrint().info("PASS: Delete disk '%s' from Data Storage '%s' SUCCESS." %(self.dm.disk_name, self.dm.data1_name)) self.flag = True else: LogPrint().error("FAIL: Returned status code '%s' is WRONG while deleting disk." % r['status_code']) self.flag = False self.assertTrue(self.flag)