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!获取云主机状态失败!')
예제 #2
0
    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']))
예제 #3
0
    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']))
예제 #4
0
    def testDescribeInstances(self):
        param = DescribeInstancesParameters('cn-north-1')
        request = DescribeInstancesRequest(param)

        resp = self.client.send(request)
        self.assertTrue(resp.error is None)