예제 #1
0
 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']
예제 #2
0
 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)}
예제 #3
0
 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']
예제 #4
0
    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)}
예제 #5
0
 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)
     }
예제 #6
0
 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)
     }
예제 #7
0
 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)
     }