def check_instance_status(self, regionId, instanceIds): ''' 获取云主机状态信息 :param regionId: 区域 :param instanceIds: 云主机列表 :return: 云主机状态dict ''' # 云主机ID作为过滤条件 myFilter = [ Filter(name='instanceId', operator='eq', values=instanceIds) ] try: myParam = DescribeInstancesParameters(regionId) myParam.setFilters(myFilter) myRequest = DescribeInstancesRequest(myParam) myClient = VmClient(self.credential) # 发送请求 resp = myClient.send(myRequest) if resp.error is not None: logger.error(resp.error.message) # 从返回结果获取云主机状态信息 instanceStatus = {} for ins in resp.result['instances']: instanceStatus[ins['instanceId']] = ins['status'] except Exception, e: logger.exception(e) sys.exit('error!获取云主机状态失败!')
def testDescribeInstancesPaging(self): param = DescribeInstancesParameters('cn-north-1') param.setPageNumber(2) param.setPageSize(10) request = DescribeInstancesRequest(param) resp = self.client.send(request) self.assertEqual(10, len(resp.result['instances']))
def testDescribeInstancesFilter(self): f = Filter('instanceId', ['i-d4c1a56z3p'], 'eq') param = DescribeInstancesParameters('cn-north-1') param.setFilters([f]) request = DescribeInstancesRequest(param) resp = self.client.send(request) self.assertEqual(1, len(resp.result['instances']))
def testDescribeInstances(self): param = DescribeInstancesParameters('cn-north-1') request = DescribeInstancesRequest(param) resp = self.client.send(request) self.assertTrue(resp.error is None)