예제 #1
0
def get_aliyun_slb(region_id):
    """
    获取某个区域的负载均衡信息列表
    :param region_id:
    :return:
    """
    loadbalancers = []
    page_number = 1
    page_size = 10

    aliyun_client = get_aliyun_client(region_id=region_id)

    # 获取完整的LoadBalancer列表
    while True:
        aliyun_request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest(
        )
        aliyun_request.set_accept_format('json')
        aliyun_request.add_query_param('PageSize', page_size)
        aliyun_request.add_query_param('PageNumber', page_number)
        aliyun_request.add_query_param('RegionId', region_id)
        aliyun_response = aliyun_client.do_action_with_exception(
            aliyun_request)
        response_data = json.loads(aliyun_response)

        loadbalancers.extend(response_data['LoadBalancers']['LoadBalancer'])

        total_count = response_data['TotalCount']
        page_size = response_data['PageSize']

        if total_count < page_number * page_size:
            break

        page_number += 1

    return loadbalancers
예제 #2
0
 def selcetmasterzoneid(self,loadbalancername):
     """查询slb主可用区id"""
     request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
     values = {"RegionId":"cn-hangzhou","LoadBalancerName":str(loadbalancername)}
     info = self.request_aliyun_api(request,values)['LoadBalancers']['LoadBalancer']
     if info:
         return [masterzone_info['MasterZoneId'] for masterzone_info in info]
예제 #3
0
파일: alislb.py 프로젝트: evilsword/aliyun
def get_slb_info(instance):
    request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
    response = client.do_action_with_exception(request)
    SLBInfo = json.loads(response)
    LoadBalancerIdList = []
    for SLBInstance in SLBInfo['LoadBalancers']['LoadBalancer']:
        LoadBalancerIdList.append(SLBInstance['LoadBalancerId'])

    if instance == 'all':
        Ali_Slb_Info = {}
        for SLBInstance in SLBInfo['LoadBalancers']['LoadBalancer']:
            request = DescribeLoadBalancerAttributeRequest.DescribeLoadBalancerAttributeRequest()
            request.set_LoadBalancerId(SLBInstance['LoadBalancerId'])
            response = client.do_action_with_exception(request)
            Ali_Slb_Info[SLBInstance['LoadBalancerId']] = json.loads(response.decode('utf-8'))
        print(LoadBalancerIdList)
    elif instance in LoadBalancerIdList:
        request = DescribeLoadBalancerAttributeRequest.DescribeLoadBalancerAttributeRequest()
        request.set_LoadBalancerId(instance)
        response = client.do_action_with_exception(request)
        response = json.loads(response.decode('utf-8'))
        print(response['BackendServers'])
        return response['BackendServers']['BackendServer']

    else:
        print("输入错误,请输入 all 或 SLB实例ID !")
예제 #4
0
 def get_slb_publicIP(self, regions_id):
     page = 1
     errornum = 0
     while True:
         if errornum == 5: break
         try:
             clt = client.AcsClient(self.AccessKeyId, self.AccessKeySecret,
                                    regions_id)
             request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest(
             )
             request.set_accept_format('json')
             request.set_PageSize(100)
             request.set_PageNumber(page)  # 设置页数
             request.add_query_param('RegionId', regions_id)
             json_response = json.loads(
                 clt.do_action_with_exception(request))
             if json_response['TotalCount'] > 0 and len(
                     json_response['LoadBalancers']['LoadBalancer']) > 0:
                 for LoadBalancer in json_response['LoadBalancers'][
                         'LoadBalancer']:
                     if LoadBalancer['Address']:
                         self.ip_list.append(LoadBalancer['Address'])
             else:
                 break
             page += 1
         except:
             errornum += 1
             continue
예제 #5
0
 def get_slb_instances(self, pageSize=100):
     request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
     request.set_accept_format('json')
     for clt in self.clt_conn_list:
         pageNumber = 1
         while True:
             request.set_query_params(dict(PageNumber=pageNumber, PageSize=pageSize))
             clt_result = json.loads(clt.do_action_with_exception(request), encoding='utf-8')
             result = clt_result['LoadBalancers']['LoadBalancer']
             if len(result) == 0:
                 print(pageNumber, clt_result['TotalCount'])
                 break
             pageNumber += 1
             for Instance in result:
                 yield {
                     'address_type': Instance['AddressType'],
                     'instance_id': Instance['LoadBalancerId'],
                     'instance_name': Instance.get('LoadBalancerName', ''),
                     'address_ip_version': Instance.get('AddressIPVersion'),
                     'network_type': Instance.get('NetworkType'),
                     'address': Instance['Address'],
                     'region': Instance['RegionId'],
                     'status': Instance['LoadBalancerStatus'],
                     'create_time': Instance['CreateTime']
                 }
예제 #6
0
def get_single():
    request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
    request.set_accept_format('json')
    request.set_PageSize(100)
    request.set_PageNumber(1)
    response = json.loads(client.do_action_with_exception(request),
                          encoding='utf-8')

    for info in response.get('LoadBalancers').get('LoadBalancer'):
        slb_no = info.get('LoadBalancerId')
        print slb_no
        slb_name = info.get('LoadBalancerName')
        print slb_name
        slb_status = info.get('LoadBalancerStatus')
        print slb_status
        slb_address = info.get('Address')
        print slb_address
        address_type = info.get('AddressType')
        print address_type
        bandwidth = info.get('Bandwidth')
        print bandwidth
        create_time = info.get('CreateTime')
        print create_time
        ListenerPort = info.get('ListenerPort')
        print ListenerPort
        print "-" * 80
예제 #7
0
    def describeloadbalancer(self, loadbalancername):
        """查询slb实例id"""
        request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()

        values = {"RegionId":"cn-hangzhou","LoadBalancerName":str(loadbalancername)}
        info = self.request_aliyun_api(request,values)['LoadBalancers']['LoadBalancer']
        if info:
            return [loadbalancer_info['LoadBalancerId'] for loadbalancer_info in info]
예제 #8
0
def get_keys():
    request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
    request.set_accept_format('json')
    # request.set_PageSize(100)
    # request.set_PageNumber(1)
    response = json.loads(client.do_action_with_exception(request),
                          encoding='utf-8')
    print json.dumps(response, sort_keys=True, indent=4, separators=(',', ':'))
예제 #9
0
 def getAllSLB(self):
     request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
     request.set_accept_format('json')
     try:
         result = self.clt.do_action_with_exception(request)
         result = json.loads(result)
         return True, result['LoadBalancers']['LoadBalancer']
     except Exception, ex:
         return False, str(ex)
예제 #10
0
 def get_slb_list(self):
     """
     :return: SLB实例列表
     """
     request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
     request.set_accept_format('json')
     result = self.client.do_action(
         request)['LoadBalancers']['LoadBalancer']
     return result
예제 #11
0
    def selectloadbalancer(self):
        """查询slb列表"""
        request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
        values = {'RegionId':"cn-hangzhou"}
        info = self.request_aliyun_api(request,values)
        slb_list = []
        for i in info["LoadBalancers"]["LoadBalancer"]:

            slb_list.append({i["LoadBalancerName"]:i["Address"]})
        return slb_list
예제 #12
0
 def get_slbs(self, pageStart=0, pageSize=0):
     request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
     if pageStart:
         request.set_PageNumber(pageStart)
     if pageSize:
         request.set_PageSize(pageSize)  # 设置每页返回多少,默认为10条
     request.set_accept_format("json")
     result = json.loads(self.clt.do_action(request))
     print(result)
     return result
예제 #13
0
    def getDescribeLoadBalancers(self, addressType='internet'):
        try:
            request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest(
            )
            request.set_AddressType(addressType)

            response = self.clt.do_action_with_exception(request)
            result = json.loads(response)
            return True, result['LoadBalancers']['LoadBalancer']
        except Exception, ex:
            return False, str(ex)
예제 #14
0
def elb(ak, sk, region):
    id_list = []
    client = AcsClient(ak, sk, region)
    request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
    request.set_accept_format('json')
    response = client.do_action_with_exception(request)
    response1 = str(response)
    response1 = json.loads(response1)
    for record in response1['LoadBalancers']['LoadBalancer']:
        id_list.append({"l": record['LoadBalancerId'], "d": record['Address']})
    return id_list
예제 #15
0
파일: slb.py 프로젝트: xingyueGK/pycharm
def getserverlist():
    request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
    response = client.do_action_with_exception(request)
    test = json.loads(response)['LoadBalancers']['LoadBalancer']
    if type(test) is list:
        lens = len(test)
        name_list = {}
        for i in range(lens):
            print u'名字 : %sid : %s' % (test[i]['LoadBalancerName'].ljust(20),
                                       test[i]['LoadBalancerId'])
            name_list[test[i]['LoadBalancerName']] = test[i]['LoadBalancerId']
예제 #16
0
    def get__lbids(self):

        request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
        result = self._request(request)
        slbs = result['LoadBalancers']['LoadBalancer']

        #print json.dumps(slbs,sort_keys=True,indent=4, separators=(',', ': '))
        lbid = []
        # get www..com admin..com LoadBalancerId
        for slb in slbs:
            if slb['LoadBalancerName'] in self.lbs_config:
                lbid.append(slb['LoadBalancerId'])

        return lbid
예제 #17
0
 def get_slb_from_name(self, slb_name):
     """
     :param slb_name: str, specify slb instance name
     :return: specify slb instance id
     """
     slb_req = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
     slb_res = self.client.do_action_with_exception(slb_req)
     slbs = json.loads(slb_res.decode('utf-8'))
     logging.debug('all slbs: {}'.format(json.dumps(slbs)))
     # print(json.dumps(slbs, indent=2))
     slb_list = slbs['LoadBalancers']['LoadBalancer']
     for lb in slb_list:
         if lb['LoadBalancerName'] == slb_name:
             logging.debug('process slb: {}'.format(lb['LoadBalancerName']))
             slb_id = lb['LoadBalancerId']
             return slb_id
     return None
예제 #18
0
파일: cloud.py 프로젝트: wutom/devopsv1
def update_Slb():
    Slb_Info = {}
    client = AcsClient(Config.configs['AliAK']['AccessKey'],
                       Config.configs['AliAK']['AccessKeySecret'], RegionId)
    request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
    response = client.do_action_with_exception(request)
    SLBInfo = json.loads(response)

    for SLBInstance in SLBInfo['LoadBalancers']['LoadBalancer']:
        request = DescribeLoadBalancerAttributeRequest.DescribeLoadBalancerAttributeRequest(
        )
        request.set_LoadBalancerId(SLBInstance['LoadBalancerId'])
        response = client.do_action_with_exception(request)
        Slb_Info[SLBInstance['LoadBalancerId']] = json.loads(
            response.decode('utf-8'))

    conn.set('Slb_Info', json.dumps(Slb_Info))
예제 #19
0
 def slb_info(self) -> GaugeMetricFamily:
     req = DescribeSLB.DescribeLoadBalancersRequest()
     gauge = self.info_template(
         req,
         'aliyun_meta_slb_info',
         to_list=lambda data: data['LoadBalancers']['LoadBalancer'])
     gauge_slb_info = None
     for s in gauge.samples:
         slb_id = s.labels['LoadBalancerId']
         req_slb_attr = DescribeSLBAttr.DescribeLoadBalancerAttributeRequest(
         )
         req_slb_attr.set_LoadBalancerId(slb_id)
         slb_attrs_resp = self.client.do_action_with_exception(req_slb_attr)
         slb_attrs_info = json.loads(slb_attrs_resp)
         for protocol_info in slb_attrs_info['ListenerPortsAndProtocol'][
                 'ListenerPortAndProtocol']:
             protocol = protocol_info['ListenerProtocol']
             port = protocol_info['ListenerPort']
             req_slb_proto = None
             if protocol == 'tcp':
                 req_slb_proto = DescribeSLBTcpAttr.DescribeLoadBalancerTCPListenerAttributeRequest(
                 )
             elif protocol == 'http':
                 req_slb_proto = DescribeSLBHttpAttr.DescribeLoadBalancerHTTPListenerAttributeRequest(
                 )
             elif protocol == 'https':
                 req_slb_proto = DescribeSLBHttpsAttr.DescribeLoadBalancerHTTPSListenerAttributeRequest(
                 )
             req_slb_proto.set_LoadBalancerId(slb_id)
             req_slb_proto.set_ListenerPort(int(port))
             slb_protocol_resp = self.client.do_action_with_exception(
                 req_slb_proto)
             slb_protocol_info: dict = json.loads(slb_protocol_resp)
             if 'ForwardCode' in slb_protocol_info.keys():
                 continue
             Bandwidth = slb_protocol_info['Bandwidth']
             if gauge_slb_info is None:
                 gauge_slb_info = GaugeMetricFamily(
                     'aliyun_meta_slb_proto_bandwidth',
                     'protocolBandwidth',
                     labels=[
                         'instanceId', 'ListenerProtocol', 'ListenerPort'
                     ])
             gauge_slb_info.add_metric(
                 [slb_id, protocol, str(port)], value=float(Bandwidth))
     return gauge_slb_info
예제 #20
0
    def describe_loadbalancers(self, pagenumber=1):
        """
        查询负载均衡实例列表
        :return:
        """
        try:
            request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
            request.set_accept_format('json')
            request.add_query_param('RegionId', self.instance_regionid)
            request.add_query_param('PageSize', 20)
            request.add_query_param('PageNumber', pagenumber)

            # 发起请求
            response = self.cli.do_action_with_exception(request)
            response = response.decode('utf8')
            return response
        except Exception as ee:
            log.error('ali_slb 查询负载均衡实例列表 error: {}'.format(ee))
예제 #21
0
 def get_internet_type_slb(self, withbandwidth=False):
     pageNumber = 1
     request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
     request.set_PageSize(10)
     request.set_PageNumber(pageNumber)
     request.set_accept_format('json')
     request.set_AddressType('internet')
     request.set_NetworkType('classic')
     request.set_LoadBalancerStatus('active')
     if withbandwidth:
         request.set_InternetChargeType('paybybandwidth')
     response = self.client.do_action_with_exception(request)
     response_dict = json.loads(response)
     # 生成生成器
     while response_dict.get('LoadBalancers').get('LoadBalancer'):
         yield response_dict.get('LoadBalancers').get('LoadBalancer')
         pageNumber += 1
         request.set_PageNumber(pageNumber)
         response = self.client.do_action_with_exception(request)
         response_dict = json.loads(response)
예제 #22
0
파일: api.py 프로젝트: zeus911/POW
    def slb_status(self, slbid):
        slb = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
        slb.set_accept_format('json')
        if slbid:
            slb.set_LoadBalancerId(slbid)
        slb_r = self.clt.do_action(slb)
        slb_json = json.loads(slb_r)
        d = collections.OrderedDict()
        for obj in slb_json.get('LoadBalancers').get('LoadBalancer'):
            slb_name = obj.get('LoadBalancerName')
            slb_id = obj.get('LoadBalancerId').encode('utf-8')
            slb_type = obj.get('AddressType').encode('utf-8')
            slb_regionid = obj.get('RegionId').encode('utf-8')
            slb_status = obj.get('LoadBalancerStatus').encode('utf-8')
            slb_ip = obj.get('Address').encode('utf-8')
            attr_obj = self.get_slb_attrs(slb_id)
            slb_backends = attr_obj.get('BackendServers').get('BackendServer')
            slb_listeners = attrobj.get('ListenerPorts').get('ListenerPort')
            slb_vgroups = self.list_vgroups(slb_id)
            vss = []
            if slb_vgroups:
                for vg in slb_vgroups:
                    vgid = vg.get('VServerGroupId')
                    vgservers = self.list_vgroup_servers(vgid)
                    vgsrvinfo = {vgid: vgservers}
                    vss.append(vgsrvinfo)

            d[slb_id] = {
                'name': slb_name,
                'type': slb_type,
                'slb_ip': slb_ip,
                'listeners': slb_listeners,
                'slb_status': slb_status,
                'slb_regionid': slb_regionid,
                'backends': slb_backends,
                'vgroups': slb_vgroups,
                'vgroup_servers': vss
            }
        for k, v in d.items():
            print '%s | %s' % (k, v)
예제 #23
0
    def list_slb(self, name_only=False, **kwargs):
        """
        获取实例列表信息
        https://help.aliyun.com/document_detail/27582.html?spm=a2c4g.11186623.6.631.424952e51QEPuJ
        :param name_only:
        :param kwargs:
        :return:
        """
        result_list = []
        request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
        regions = self.get_regions(id_only=True)
        for region in regions:
            request.set_PageSize(100)
            request.set_PageNumber(1)
            for k, v in kwargs.items():
                request.add_query_param(k, v)
            request.add_query_param('RegionId', region)
            result = self.client.do_action(request)
            result_list.extend(
                result.get('LoadBalancers', {}).get('LoadBalancer', []))

            total_count = float(result.get('TotalCount', 0))
            if not total_count:
                continue
            page_count = float(result.get('PageSize', 1))
            _p = total_count / page_count
            if _p > 1:
                for _p_num in range(2, int(_p) + 2):
                    request.set_PageNumber(_p_num)
                    result = self.client.do_action(request)
                    result_list.extend(
                        result.get('LoadBalancers').get('LoadBalancer'))

        if name_only:
            result_list = [i['InstanceName'] for i in result_list]
        return result_list
예제 #24
0
def sync_all_slb(region_id):
    # 设置参数
    request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
    request.set_accept_format('json')

    request.add_query_param('RegionId', region_id)

    # 发起请求
    response = clt.do_action(request)
    LoadBalancers = json.loads(response)['LoadBalancers']
    LoadBalancer = LoadBalancers['LoadBalancer']
    slblist = []
    for slb in LoadBalancer:
        LoadBalancerId = slb['LoadBalancerId']
        try:
            LoadBalancerName = slb['LoadBalancerName']
        except:
            LoadBalancerName = ''
        try:
            NetworkType = slb['NetworkType']
        except:
            NetworkType = ''
        LoadBalancerStatus = slb['LoadBalancerStatus']
        Address = slb['Address']
        AddressType = slb['AddressType']
        CreateTime = slb['CreateTime'].replace("Z", "").replace("T", " ")
        slbdict = {}
        slbdict['LoadBalancerId'] = LoadBalancerId
        slbdict['LoadBalancerName'] = LoadBalancerName
        slbdict['LoadBalancerStatus'] = LoadBalancerStatus
        slbdict['Address'] = Address
        slbdict['AddressType'] = AddressType
        slbdict['CreateTime'] = CreateTime
        slbdict['NetworkType'] = NetworkType
        slblist.append(slbdict)
    return slblist
예제 #25
0
파일: slb.py 프로젝트: xingyueGK/pycharm
 def getSlbList(self):
     #获取SLB负载均衡实例
     request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
     response = client.do_action_with_exception(request)
     text = json.loads(response)['LoadBalancers']['LoadBalancer']
     return text
예제 #26
0
def get_slb_info(keys):
    '''
    keys字典内包含key_id key_secret region_id
    :param keys:
    :return:
    '''

    key_id = keys['key_id']
    key_secret = keys['key_secret']
    region_id = keys['region_id']

    try:
        client = AcsClient(key_id, key_secret, region_id)
        request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
        request.set_PageSize(100)
        response = client.do_action_with_exception(request)
        response_json = json.loads(response)
        Items = response_json['LoadBalancers']['LoadBalancer']


        for item in Items:
            instanceId = item.get('LoadBalancerId')
            instanceName = item.get('LoadBalancerName')
            productCode = 'slb'
            businessLine = instanceName.split('-')[0]
            env = instanceName.split('-')[0]
            regionId = item.get('RegionId')
            instanceNetworkType = item.get('NetworkType')
            internetChargeType = item.get('InternetChargeType')
            ipaddress = item.get('Address')
            keys['instanceId'] = instanceId
            ListenPorts = get_slb_item(keys).get('ListenPorts')
            creationTime = item.get('CreateTime')
            expiredTime = get_slb_item(keys).get('expiredTime')

            status = item.get('LoadBalancerStatus')
            if status == 'active':
                status = '运行中'
            elif status == 'inactive':
                status = '停止'

            BackendServer_re = get_slb_item(keys).get('BackendServers')
            BackendServers = []
            for i in BackendServer_re:
                i_re = EcsInfo.objects.filter(instanceId=i).values('instanceName').first()
                if i_re is not None:
                    BackendServers.append(i_re.get('instanceName'))
                else:
                    BackendServers.append(i)

            try:
                SlbInfo.objects.get(instanceId = instanceId)
            except SlbInfo.DoesNotExist:
                SlbInfo.objects.create(
                    instanceId = instanceId, instanceName = instanceName, productCode = productCode, env = env,
                    businessLine = businessLine, regionId = regionId, status = status, ipaddress = ipaddress,
                    instanceNetworkType = instanceNetworkType, internetChargeType = internetChargeType,
                    BackendServers = BackendServers,ListenPorts = ListenPorts,
                    creationTime = creationTime, expiredTime = expiredTime
                )
            else:
                SlbInfo.objects.filter(instanceId = instanceId).update(
                    instanceId=instanceId, instanceName=instanceName, productCode=productCode, env=env,
                    businessLine=businessLine, regionId=regionId, status=status, ipaddress=ipaddress,
                    instanceNetworkType=instanceNetworkType, internetChargeType = internetChargeType,
                    BackendServers=BackendServers,ListenPorts=ListenPorts,
                    creationTime=creationTime, expiredTime=expiredTime
                )

    except Exception as e:
        print (e)
예제 #27
0
 def slb_info(self) -> GaugeMetricFamily:
     req = DescribeSLB.DescribeLoadBalancersRequest()
     return self.info_template(
         req,
         'aliyun_meta_slb_info',
         to_list=lambda data: data['LoadBalancers']['LoadBalancer'])
예제 #28
0
def get_slb_instances(cluster_id):
    tags = [{"TagKey": "ack.aliyun.com", "TagValue": cluster_id}]
    req = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
    req.set_Tags = json.dumps(tags)
    resp = do_action(req)
    return resp.get('LoadBalancers').get('LoadBalancer')
예제 #29
0
SLB_REGION = "cn-qingdao"

# Initialize AcsClient instance
client = AcsClient(ALI_ACCESS_KEY, ALI_SECRET_KEY, SLB_REGION)

# Initialize a ecs request and set parameters
ecs_req = DescribeInstancesRequest.DescribeInstancesRequest()
ecs_req.set_PageSize(10)

# Print response, list all ecs instance:
ecs_res = client.do_action_with_exception(ecs_req)
instances = json.loads(ecs_res.decode('utf-8'))
# print(json.dumps(instances, indent=2))

# Initialize a slb request and set parameters
slb_req = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
slb_req.set_PageSize(10)

# Print response, list all slb instances:
slb_res = client.do_action_with_exception(slb_req)
slbs = json.loads(slb_res.decode('utf-8'))
# print(json.dumps(slbs, indent=2))

# init request:
# Get slb instance named: "remix.example.com_qd_slb"
slb_list = slbs['LoadBalancers']['LoadBalancer']
for lb in slb_list:
    if lb['LoadBalancerName'] == SLB_NAME:
        remix_slb_id = lb['LoadBalancerId']
        print(remix_slb_id)
        break
예제 #30
0
if __name__ == '__main__':
    conn = pymysql.connect(user=dbUser,
                           passwd=dbPass,
                           host=dbHost,
                           db=dbName,
                           use_unicode=True,
                           charset="utf8")
    cur = conn.cursor()

    regions = [
        "cn-qingdao", "cn-hangzhou", "cn-beijing", "cn-shanghai",
        "cn-shenzhen", "cn-zhangjiakou"
    ]
    for region in regions:
        clt = client.AcsClient(accessKey, accessSecret, region)
        request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()
        request.set_accept_format('json')
        request.set_PageSize(100)
        request.set_PageNumber(1)
        response = json.loads(clt.do_action_with_exception(request),
                              encoding='utf-8')
        slb_info = response.get('LoadBalancers').get('LoadBalancer')
        if slb_info:
            save_or_update_data(slb_info)
            total = response.get('TotalCount')
            num = int(round(total / 100.0))
            index = 1
            while index < num:
                index = index + 1
                request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest(
                )