def getDCStorageDomainStatus(self, dc_name, sd_name): ''' @summary: 获取数据中心指定存储域的状态 @param dc_name: 数据中心名称 @param sd_name: 存储域名称 @return: 存储域状态 ''' # 调用StorageDomainAPIs模块中的getStorageDomainIdByName()方法获得存储域id sdapi = StorageDomainAPIs() sd_id = sdapi.getStorageDomainIdByName(sd_name) dc_id = self.getDataCenterIdByName(dc_name) api_url = '%s/%s/storagedomains/%s' % (self.base_url, dc_id, sd_id) method = 'GET' r = HttpClient.sendRequest(method=method, api_url=api_url) return xmltodict.parse(r.text)['storage_domain']['status']['state']
def getDCStorageDomainInfo(self, dc_name, sd_name): ''' @summary: 获取数据中心的存储域信息 @param dc_name: 数据中心名称 @param sd_name: 存储域名称 @return: 字典,(1)status_code:请求返回状态码;(2)result:请求返回的内容。 ''' # 调用StorageDomainAPIs模块中的getStorageDomainIdByName()方法获得存储域id sdapi = StorageDomainAPIs() sd_id = sdapi.getStorageDomainIdByName(sd_name) dc_id = self.getDataCenterIdByName(dc_name) api_url = '%s/%s/storagedomains/%s' % (self.base_url, dc_id, sd_id) method = 'GET' r = HttpClient.sendRequest(method=method, api_url=api_url) return {'status_code':r.status_code, 'result':xmltodict.parse(r.text)}
def detachStorageDomainFromDC(self, dc_name, sd_name, data=None): ''' @summary: 将维护状态的存储从数据中心分离 @param dc_name: 数据中心名称 @param sd_name: 存储名称 @param data: 可选参数,如<action><async>true</async></action> @return: 字典,(1)status_code:请求返回状态码;(2)result:请求返回的内容。 ''' sdapi = StorageDomainAPIs() dc_id = self.getDataCenterIdByName(dc_name) sd_id = sdapi.getStorageDomainIdByName(sd_name) method = 'DELETE' api_url = '%s/%s/storagedomains/%s' % (self.base_url, dc_id, sd_id) # data = '''<action><async>true</async></action>''' r = HttpClient.sendRequest(method=method, api_url=api_url) return {'status_code':r.status_code, 'result':xmltodict.parse(r.text)}
def getDCStorageDomainInfo(self, dc_name, sd_name): ''' @summary: 获取数据中心的存储域信息 @param dc_name: 数据中心名称 @param sd_name: 存储域名称 @return: 字典,(1)status_code:请求返回状态码;(2)result:请求返回的内容。 ''' # 调用StorageDomainAPIs模块中的getStorageDomainIdByName()方法获得存储域id sdapi = StorageDomainAPIs() sd_id = sdapi.getStorageDomainIdByName(sd_name) dc_id = self.getDataCenterIdByName(dc_name) api_url = '%s/%s/storagedomains/%s' % (self.base_url, dc_id, sd_id) method = 'GET' r = HttpClient.sendRequest(method=method, api_url=api_url) return { 'status_code': r.status_code, 'result': xmltodict.parse(r.text) }
def detachStorageDomainFromDC(self, dc_name, sd_name, data=None): ''' @summary: 将维护状态的存储从数据中心分离 @param dc_name: 数据中心名称 @param sd_name: 存储名称 @param data: 可选参数,如<action><async>true</async></action> @return: 字典,(1)status_code:请求返回状态码;(2)result:请求返回的内容。 ''' sdapi = StorageDomainAPIs() dc_id = self.getDataCenterIdByName(dc_name) sd_id = sdapi.getStorageDomainIdByName(sd_name) method = 'DELETE' api_url = '%s/%s/storagedomains/%s' % (self.base_url, dc_id, sd_id) # data = '''<action><async>true</async></action>''' r = HttpClient.sendRequest(method=method, api_url=api_url) return { 'status_code': r.status_code, 'result': xmltodict.parse(r.text) }
def deactiveDCStorageDomain(self, dc_name, sd_name): ''' @summary: 取消激活数据中心中的存储域 @param dc_name: 数据中心名称 @param sd_name: 存储域名称 @return: 字典,(1)status_code:请求返回状态码;(2)result:请求返回的内容。 ''' dc_id = self.getDataCenterIdByName(dc_name) sd_id = StorageDomainAPIs().getStorageDomainIdByName(sd_name) api_url = '%s/%s/storagedomains/%s/deactivate' % (self.base_url, dc_id, sd_id) method = 'POST' data = '<action/>' r = HttpClient.sendRequest(method=method, api_url=api_url, data=data) return { 'status_code': r.status_code, 'result': xmltodict.parse(r.text) }