Exemple #1
0
def get_ali_ecs_info():
    Page_Number = get_page_numbers()
    start_step = 1
    end_step = Page_Number + 1

    for number in range(start_step, end_step):
        client = AcsClient(accessKeyId, accessSecret, regionId)
        request = DescribeInstancesRequest()
        request.set_accept_format('json')
        PageSize = Page_Size
        request.set_PageNumber(number)
        request.set_PageSize(PageSize)
        response = client.do_action_with_exception(request)
        res = json.loads(str(response, encoding='utf-8'))
        # print(res["Instances"]["Instance"][0].keys())
        instance_id = res["Instances"]["Instance"][0]["InstanceId"]
        # print(instance_id)
        disks_info = get_instance_disk_info(instance_id)
        for instance in res["Instances"]["Instance"]:
            instance['disk_infos'] = disks_info
            data.append(instance)
    # print(len(data))
    # instance_number = len(data)
    # return instance_number
    return data
Exemple #2
0
 def get_all_vm_list(self):
     request = DescribeInstancesRequest()
     request.set_PageSize(100)
     request.set_PageNumber(1)
     try:
         response = self.client.do_action_with_exception(request)
         print(str(response, encoding='utf-8'))
         response = json.loads(self.client.do_action_with_exception(request), encoding='utf-8')
         # print(response)
         print(response['PageNumber'])
         print(response['TotalCount'])
         print(response['PageSize'])
         page_num=int(response['PageNumber'])
         total_count=int(response['TotalCount'])
         page_size=int(response['PageSize'])
         if total_count <= page_size:
             self.get_vm_list(response['Instances']['Instance'])
         else:
             import math
             for page in range(1,math.floor(total_count/page_size)+1):
                 request.set_PageSize(page_size)
                 request.set_PageNumber(page+1)
                 response = self.client.do_action_with_exception(request)
                 print(str(response, encoding='utf-8'))
                 response = json.loads(self.client.do_action_with_exception(request), encoding='utf-8')
                 self.get_vm_list(response['Instances']['Instance'])
         return response
     except ServerException as e:
         print(e)
     except ClientException as e:
         print(e)
Exemple #3
0
    def describe_instances(self, instance_ids=None):
        """
        描述实例
        :param instance_ids: 实例ID列表
        :return: 实例信息列表
        """
        instances = []
        page_size = 10
        page_number = 1
        total_count = None

        request = DescribeInstancesRequest()
        request.set_InstanceIds(json.dumps(instance_ids or self.instance_ids))
        request.set_PageNumber(page_number)
        request.set_PageSize(page_size)

        while total_count is None or page_number * page_size < total_count:
            body = self.client.do_action_with_exception(request)
            data = json.loads(body)
            instances.extend(data['Instances']['Instance'])
            total_count = data['TotalCount']
            page_number += 1
            request.set_PageNumber(page_number)

        return instances
Exemple #4
0
 def _get_instance_info(self, region):
     c = client.AcsClient(self._AK, self._AKS, region)
     req = DescribeInstancesRequest()
     req.set_PageSize(100)
     req.set_accept_format('json')
     page_number = 0
     try:
         response = c.do_action(req)
         instances = json.loads(response)
         total = instances['TotalCount']
         page_size = instances['PageSize']
         if total / page_size > total // page_size:
             page_number = total // page_size + 1
         else:
             page_number = total // page_size
     except Exception as e:
         print e
     for p_n in range(1, page_number + 1):
         req.set_PageNumber(p_n)
         response = c.do_action(req)
         instances = json.loads(response)
         for host_info in instances['Instances']['Instance']:
             region_id = host_info['RegionId']
             eip = host_info['EipAddress']['IpAddress']
             pip = host_info['PublicIpAddress']['IpAddress']
             instance_name = host_info['InstanceName']
             instance_id = host_info['InstanceId']
             host_name = host_info['HostName']
             if eip != "":
                 self._instances.append(
                     [region_id, instance_name, eip, instance_id])
             elif len(pip) >= 1:
                 self._instances.append(
                     [region_id, instance_name, pip[0], instance_id])
Exemple #5
0
def get_ecs_instances():
    client = AcsClient(
       ECS_ACCESS_KEY_ID,
       ECS_ACCESS_SECRET,
       ECS_REGION_ID
    );

    #ecs实例空字典
    instances = {}
    page_size = 10
    page_number = 1
    total_count = None

    request = DescribeInstancesRequest()
    request.set_PageNumber(page_number)
    request.set_PageSize(page_size)

    #以{privateIP:InstanceName}的形式将实例的名字和私网ip添加到ecs实例字典里
    while total_count is None or page_number * page_size < (total_count + page_size)  :
        body = client.do_action_with_exception(request)
        data = json.loads(body)
        for instance in data['Instances']['Instance']:
            instances.update( {  instance['VpcAttributes']['PrivateIpAddress']['IpAddress'][0] : instance['InstanceName'] })
        total_count = data['TotalCount']
        page_number += 1
        request.set_PageNumber(page_number)
    print("获取阿里云ecs数据....共获取 %s 条数据。" %(len(instances)) )
    return instances
def list_instance():
    request = DescribeInstancesRequest()
    request.set_PageSize(100)
    request.set_PageNumber(1)
    response = _send_request(request)
    if response is not None:
        instance_list = response.get('Instances').get('Instance')
        result = map(_print_instance_info, instance_list)
        return result
Exemple #7
0
def InstanceSync(regionId, pageSize, pageNum):
    client = AcsClient(accesskeyId, accessSecret, regionId)
    request = DescribeInstancesRequest()
    request.set_accept_format('json')
    request.set_PageSize(int(pageSize))
    request.set_PageNumber(int(pageNum))
    response = client.do_action_with_exception(request)
    data = json.loads(str(response, encoding='utf-8'))
    return data
Exemple #8
0
 def get_total_page_num(self, PageNum=1, PageSize=50):
     request = DescribeInstancesRequest()
     request.set_PageNumber(PageNum)
     request.set_PageSize(PageSize)
     response = self.get_action(request)
     if response['TotalCount'] % PageSize != 0:
         TotalPageNum = (response['TotalCount'] % PageSize) + 1
     else:
         TotalPageNum = response['TotalCount'] % PageSize
     return TotalPageNum
Exemple #9
0
def get_region_ecs_list(region, pageSize=50):
    request = DescribeInstancesRequest()
    for num in range(1, get_total_page_num(region) + 1):
        request.set_PageSize(pageSize)
        request.set_PageNumber(num)
        request.set_accept_format('json')
        response = get_client(region).do_action_with_exception(request)
        data = json.loads(str(response, encoding='utf-8'))
        for instance in data['Instances']['Instance']:
            save_Instance(instance)
Exemple #10
0
def get_total_page_num(region, pageSize=50):
    request = DescribeInstancesRequest()
    request.set_PageNumber(1)
    request.set_PageSize(1)
    request.set_accept_format('json')
    response = get_client(region).do_action_with_exception(request)
    data = json.loads(str(response, encoding='utf-8'))
    pageNum = data['TotalCount'] // pageSize
    if data['TotalCount'] % pageSize != 0:
        pageNum += 1
    return pageNum
Exemple #11
0
    def get_ecs_info(self):
        page_num = self.get_total_page_num()

        for i in range(1, page_num + 1):
            request = DescribeInstancesRequest()
            request.set_PageNumber(i)
            request.set_PageSize(50)
            response = self.get_action(request)
            ins_obj = response['Instances']['Instance']
            self.instance_list_total.extend(
                self.formart_ins_info(x) for x in ins_obj)
Exemple #12
0
    def get_aliyun_hosts(self,
                         register_prefix='',
                         default_re='',
                         extend_re='dev',
                         project=''):
        client = AcsClient(self.accessKeyID, self.accessKeySecret, self.region)
        request = DescribeInstancesRequest()
        request.set_accept_format('json')
        request.set_PageNumber(1)
        request.set_PageSize(50)
        response = client.do_action_with_exception(request)
        data = json.loads(response)
        PageNumber = int(data['TotalCount'] / 50 + 2)
        list = []
        search_shard = extend_mesage(project)
        for Number in range(1, PageNumber):
            request.set_PageNumber(Number)
            request.set_PageSize(50)
            response = client.do_action_with_exception(request)
            data = json.loads(response)

            for host in data['Instances']['Instance']:
                dict = {}
                id = re.split(r'-', host['SerialNumber'])
                id = ''.join(str(i) for i in id)
                dict['id'] = id
                dict['ip'] = host['NetworkInterfaces']['NetworkInterface'][0][
                    'PrimaryIpAddress']
                if register_prefix:
                    dict['hostname'] = str(
                        register_prefix) + host['InstanceName']
                else:
                    dict['hostname'] = host['InstanceName']
                dict['is_active'] = 'true'
                dict['platform'] = "Linux"
                try:
                    dict['comment'] = search_shard[dict['ip']]
                except KeyError:
                    if 'Tags' in host:
                        comment = host['Tags']['Tag'][0]['TagValue']
                        dict['comment'] = "[%s]" % comment
                    else:
                        dict['comment'] = "[123]"
                # if host['InstanceName'].startswith('G') or host['InstanceName'].startswith('c'):
                final_re = '|'.join(
                    default_re.split('|') + extend_re.split('|')).strip('|')
                if re.search(final_re, host['InstanceName']):
                    dict['group'] = ['dev']
                else:
                    dict['group'] = ['base']
                list.append(dict)
        Log.debug(list)
        return list
Exemple #13
0
    def get_ecsinstances_info(self, format, page, limit):
        from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest
        request = DescribeInstancesRequest()

        request.set_accept_format(format)
        request.set_PageNumber(page)
        request.set_PageSize(limit)
        try:
            response = self.client.do_action_with_exception(request)
        except:
            return False
        return response
Exemple #14
0
 def ecs_detail(page_number=1):
     """
     ecs实例详细信息
     :param page_number: ecs页面页数
     :return:
     """
     request = DescribeInstancesRequest()
     request.set_accept_format('json')
     request.set_PageSize(100)
     request.set_PageNumber(page_number)
     response = client().do_action_with_exception(request)
     response = json.loads(response)
     return response
Exemple #15
0
    def get_ecses(self, instance_ids=[], page_num=1, page_size=20):
        request = DescribeInstancesRequest()
        request.set_accept_format('json')
        if instance_ids:
            request.set_InstanceIds(instance_ids)
        request.set_PageNumber(page_num)
        request.set_PageSize(page_size)

        data = self._request(request)
        total = data.get('TotalCount')
        data = data.get('Instances')
        data_list = data.get('Instance')
        data = {
            'total': total,
            'data_list': data_list,
        }
        return data
Exemple #16
0
 def getAliCloundEcsList(self,RegionId='cn-shenzhen',PageSize=15,Page=1,Tags=[]):
     client=AcsClient(self.secreyKey,self.accesssecret,RegionId)
     req=DescribeInstancesRequest()
     req.set_PageSize(PageSize)
     req.set_PageNumber(Page)
     if len(Tags)>0:
         req.set_Tags(Tags)
     req.set_accept_format('json')
     try:
         data=client.do_action_with_exception(req)
         if data:
             return data
         else:
             return False
     except Exception as e:
         logger.error(e)
         return False
Exemple #17
0
def list_instances(TotalCount):
    ecs_list = []
    for i in range(0, TotalCount / 100 + 1):
        request = DescribeInstancesRequest()
        request.set_accept_format('json')
        request.set_PageSize(100)
        request.set_PageNumber(i + 1)
        response_str = clt.do_action(request)
        response = json.loads(response_str)
        with open("c://Users/bobo/Desktop/aaa.json", "ab+") as f:
            f.write(response_str)
        # print response
        # sys.exit(1)
        if response is not None:
            ecs_list.extend(response.get('Instances').get('Instance'))
    with open("c://Users/bobo/Desktop/ass.json", "ab+") as f1:
        f1.write(repr(ecs_list))
    return ecs_list
    def __get_total_page_num(self, PageNum=1, PageSize=1):
        '''
        获取ECS总数,及当前页ECS列表
        :param PageNum: 页ID
        :param PageSize: 页大小
        :return:
        '''
        request = DescribeInstancesRequest()
        request.set_PageNumber(PageNum)
        request.set_PageSize(PageSize)
        response = self.__do_action(request)
        if self.TotalPageNum != 0:
            ins_obj = response['Instances']['Instance']
            self.instance_list_total.extend(ins_obj)
            return

        else:
            if int(response['TotalCount']) % self.PageSize != 0:
                self.TotalPageNum = int(response['TotalCount'] / self.PageSize) + 1
            else:
                self.TotalPageNum = int(response['TotalCount'] / self.PageSize)
            return self.TotalPageNum
Exemple #19
0
    def remote_describeInstances(self, client, instanceIds=[]):
        """
        阿里云获取主机列表函数
        :param client:  aliclient obj
        :param instanceIds: default = []
        :return: json
        """

        retInstanceIds = []
        for page in range(1, 999):  # 超过9990机器神人耶
            request = DescribeInstancesRequest()
            request.set_accept_format('json')
            request.set_PageNumber(page)
            request.set_PageSize(10)
            if instanceIds:
                request.set_InstanceIds(str(instanceIds))
            response = client.do_action_with_exception(request)
            # python2:  print(response)
            resp = json.loads(response)
            if not resp["Instances"]["Instance"]:
                break
            retInstanceIds.extend(resp["Instances"]["Instance"])
        return retInstanceIds
Exemple #20
0
    def get_renew_instance_ids(self):
        """
        获取需要续费的实例ID
        :param instance_id: 实例ID列表
        :return:
        """
        start_time_utc = '2018-10-21T16:00Z'
        end_time_utc = '2018-12-01T16:00Z'
        page_num = 1
        total_count = 1
        instance_ids = []
        while len(instance_ids) < total_count:
            request = DescribeInstancesRequest()
            request.set_Filter3Key(self.expired_start_time)
            request.set_Filter3Value(start_time_utc)
            request.set_Filter4Key(self.expired_end_time)
            request.set_Filter4Value(end_time_utc)
            request.set_InstanceChargeType(self.instance_charge_type)
            request.set_PageSize(self.page_size)
            request.set_PageNumber(page_num)
            body = self.client.do_action_with_exception(request)
            data = json.loads(body)

            if not data['TotalCount']:
                return instance_ids

            ids = [
                str(instance['InstanceId'])
                for instance in data['Instances']['Instance']
            ]
            instance_ids.extend(ids)
            total_count = data['TotalCount']
            page_num += 1
        print('Success. Instances which should be renewed include: {}'.format(
            ', '.join(instance_ids)))
        return instance_ids
Exemple #21
0
class EcsInfo():
    def __init__(self,access_key,access_secret,region_id):
        """
        1.传入账户信息
        2.创建客户端连接
        3.阿里云所有ecs服务器的详细信息列表
        4.服务器同步
        """
        self.access_key = access_key
        self.access_secret = access_secret
        self.region_id=region_id
        self._request = DescribeInstancesRequest()
        self._request.set_accept_format('json')
        self._request.set_PageNumber(1)
        self._request.set_PageSize(100)
        self._connection = AcsClient(self.access_key, self.access_secret, region_id=self.region_id)
        self.aliyun_log = _LogFactory.get_logger('LOGGER')

    def get_instance_info(self):
        """

        :return: ecs list
        """

        self._server_list = []
        val = 1
        page_number = 1
        while val==1:
            self._request.set_PageNumber(page_number)
            try:
                response = self._connection.do_action_with_exception(self._request)
                # self.aliyun_log.info(msg="aliyun连接成功")
            except Exception as e:
                self.aliyun_log.error(msg=e)
                return "阿里云连接失败,请查看日志"

            response_data = json.loads(str(response, encoding='utf-8'))

            ret = response_data['Instances']['Instance']

            for i in ret:
                asset_data = {}
                asset_data['hostname'] = i.get('InstanceId')
                asset_data['remarks'] = i.get('InstanceName')
                # asset_data['region'] = i.get('ZoneId')
                # asset_data['instance_id'] = i.get('InstanceId')
                # asset_data['instance_type'] = i.get('InstanceType')
                asset_data['status'] = i.get('Status')
                asset_data['cpu'] = i.get('Cpu')
                asset_data['memory'] = i.get('Memory')
                # 单位换算G
                # asset_data['memory'] = str(int(i.get('Memory'))/1024) + 'G'
                # 内网IP
                try:
                    # VPC里面内网IP
                    asset_data['private_ip'] = i['VpcAttributes']['PrivateIpAddress']['IpAddress'][0]
                except (KeyError, IndexError):
                    # 非VPC里面获取内网IP
                    asset_data['private_ip'] = i['InnerIpAddress']['IpAddress'][0]

                # 公网IP/弹性IP
                try:
                    asset_data['public_ip'] = i['PublicIpAddress']['IpAddress'][0]
                except(KeyError, IndexError):
                    asset_data['public_ip'] = i['EipAddress']['IpAddress']
                except Exception:
                    asset_data['public_ip'] = asset_data['private_ip']
                asset_data['os_name'] = i.get('OSName')
                self._server_list.append(asset_data)


            if response_data['Instances']['Instance']:
                val = 2
            else:
                page_number += 1

        return  json.dumps(self._server_list,ensure_ascii=False)
class ECSInfo():
    def __init__(self):
        """初始化构造函数"""
        self.client = AcsClient('<your_access_key>', '<your_access_secret>',
                                'cn-beijing')
        self.req = DescribeInstancesRequest()
        self.PageSize = 100
        # 指定要写入的配置文件名称
        self.file = "/usr/local/prometheus/targets/nodes/ecs_node.yaml"
        # 指定要备份的目录位置
        self.bak = "/usr/local/prometheus/targets/nodes/"

    def info_template(self, page_num=1):

        to_list = lambda data: data["Instances"]["Instance"]
        # 初始化一个信息结果的列表
        self.info_result = []
        for instance in self.pager_generator(page_num, to_list):
            ecs_meta_info = ECSMeta(instance)
            target_info = {
                "targets": [
                    "{0}:{1}".format(ecs_meta_info.ip, ecs_meta_info.port),
                ],
                "labels": {
                    "osname": ecs_meta_info.os_name,
                    "instancename": ecs_meta_info.instance_name,
                    "instanceid": ecs_meta_info.instance_id,
                    "env": ecs_meta_info.env
                }
            }
            self.info_result.append(target_info)

    def write_info(self, backup=True):
        if backup:
            try:
                shutil.copyfile(self.file, self.bak + "ecs_node.yaml.bak")
            except Exception:
                pass
        with open(self.file, 'w', encoding="utf-8") as file_handler:
            yaml.dump(self.info_result,
                      file_handler,
                      default_flow_style=False,
                      allow_unicode=True)

    # 获取所有ECS元数据列表
    def pager_generator(self, page_num, to_list):
        # 构建一个分页用的生成器,因为所有的ecs可能一次请求是拿不完的,因此需要做分页的请求,默认的页码数是100
        self.req.set_PageSize(self.PageSize)
        # 循环取数据
        while True:
            # 首次默认的页码号为1
            self.req.set_PageNumber(page_num)
            resp = self.client.do_action_with_exception(self.req)
            # 通过接口拿到的数据是bytes类型,所以要转换一下
            data = json.loads(resp)
            # 使用to_list拿到对应的实例列表
            instances = to_list(data)
            for instance in instances:
                yield instance
            # 仅当本次请求返回的页码数小于分页大小的时候,那么说明这是最后一页了,跳出循环
            if len(instances) < self.PageSize:
                break
            # 如果不是最后一页的话,那么继续页码数+1,继续循环请求
            page_num += 1
def DescribeInstances(ui, AccessKeyID, AccessKeySecret):
    ui.pushButton.setEnabled(False)
    ui.pushButton.setText('正在查询')
    RegionIds = {
        "cn-hangzhou": "华东1(杭州)",
        "cn-chengdu": "成都",
        "cn-qingdao": "华北1(青岛)",
        "cn-beijing": "华北2(北京)",
        "cn-huhehaote": "华北5(呼和浩特)",
        "cn-shanghai": "华东2(上海)",
        "cn-shenzhen": "华南1(深圳)",
        "cn-zhangjiakou": "华北3(张家口)",
        "cn-hongkong": "香港",
        "ap-southeast-1": "新加坡",
        "ap-southeast-2": "澳大利亚(悉尼)",
        "ap-southeast-3": "马来西亚(吉隆坡)",
        "ap-southeast-5": "印度尼西亚(雅加达)",
        "ap-northeast-1": "日本(东京)",
        "us-west-1": "美国(硅谷)",
        "us-east-1": "美国(弗吉尼亚)",
        "eu-central-1": "德国(法兰克福)",
        "me-east-1": "阿联酋(迪拜)",
        "ap-south-1": "印度(孟买)",
        "eu-west-1": "英国(伦敦)",
        "cn-shenzhen-finance-1": "深圳金融云",
        "cn-shanghai-finance-1": "上海金融云",
        "cn-north-2-gov-1": "华北 2 阿里政务云1",
        "cn-heyuan": "华南2(河源)"
    }
    for RegionId in RegionIds:
        client = AcsClient(AccessKeyID, AccessKeySecret, RegionId)
        # print(RegionId)

        try:
            request = DescribeInstancesRequest()
            request.set_accept_format('json')
            request.set_PageNumber(1)
            request.set_PageSize(100)

            response = client.do_action_with_exception(request)
            #print(json.loads(response))
        except:
            #print('请检查输入Key与Secret值,或重新执行')
            ui.pushButton.setText('查询')
            ui.pushButton.setEnabled(True)
            return ui, '请检查输入Key与Secret值,或重新执行'
        if json.loads(response)['TotalCount'] == 0:
            #print(RegionId)
            if RegionId == 'cn-heyuan':
                ui.pushButton.setText('查询')
                ui.pushButton.setEnabled(True)
                return ui, '查询完成'
            else:

                continue
        # python2:  print(response)
        # print(str(response, encoding='utf-8'))
        # item1 = json.loads(response)['Instances']['Instance'][0]['OSName']
        PrivateIps = ''
        PublicIps = ''

        TotalCount = json.loads(response)['TotalCount']
        pages = math.ceil(float(TotalCount / 100))
        for page in range(pages):
            print(page)
            if page == pages - 1:
                num = TotalCount % 100
            else:
                num = 100
            for i in range(num):

                row_cnt = ui.tableWidget.rowCount()  # 读取行
                ui.tableWidget.insertRow(row_cnt)  # 创建行
                #print(json.loads(response)['Instances']['Instance'][i]['VpcAttributes']['PrivateIpAddress']['IpAddress'])
                for PrivateIp in json.loads(response)['Instances']['Instance'][
                        i]['VpcAttributes']['PrivateIpAddress']['IpAddress']:
                    PrivateIps = str(PrivateIp) + ';'
                    # print(PrivateIps)
                for PublicIp in json.loads(response)['Instances']['Instance'][
                        i]['PublicIpAddress']['IpAddress']:
                    PublicIps = str(PublicIp) + ';'
                    # print(PrivateIps)
                for SecurityGroup in json.loads(response)['Instances'][
                        'Instance'][i]['SecurityGroupIds']['SecurityGroupId']:
                    SecurityGroups = str(SecurityGroup) + ';'
                    # print(PrivateIps)

                InstanceId = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]
                    ['InstanceId'])
                RegionId = QTableWidgetItem(RegionIds[json.loads(
                    response)['Instances']['Instance'][i]['RegionId']])
                HostName = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]
                    ['HostName'])
                OSName = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]['OSName'])
                InstanceNetworkType = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]['Status'])
                PrivateIpAddress = QTableWidgetItem(PrivateIps)
                PublicIpAddress = QTableWidgetItem(PublicIps)
                SecurityGroupIds = QTableWidgetItem(SecurityGroup)
                yunzhushou = QTableWidgetItem('待检测')
                performance = QTableWidgetItem(
                    str(
                        json.loads(response)['Instances']['Instance'][i]
                        ['Cpu']) + '核处理器\n' + str(
                            json.loads(response)['Instances']['Instance'][0]
                            ['Memory']) + 'MB内存')
                CreationTime = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]
                    ['CreationTime'])
                ExpiredTime = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]
                    ['ExpiredTime'])

                ui.tableWidget.setItem(row_cnt, 0, InstanceId)
                ui.tableWidget.setItem(row_cnt, 1, RegionId)
                ui.tableWidget.setItem(row_cnt, 2, HostName)
                ui.tableWidget.setItem(row_cnt, 3, OSName)
                ui.tableWidget.setItem(row_cnt, 4, InstanceNetworkType)
                ui.tableWidget.setItem(row_cnt, 5, PrivateIpAddress)
                ui.tableWidget.setItem(row_cnt, 6, PublicIpAddress)
                ui.tableWidget.setItem(row_cnt, 7, SecurityGroupIds)
                ui.tableWidget.setItem(row_cnt, 8, yunzhushou)
                ui.tableWidget.setItem(row_cnt, 9, performance)
                ui.tableWidget.setItem(row_cnt, 10, CreationTime)
                ui.tableWidget.setItem(row_cnt, 11, ExpiredTime)