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')
Exemple #5
0
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)