From e7a5b922fee6daa4a88441917e82a877982dae17 Mon Sep 17 00:00:00 2001 From: starsliao Date: Tue, 25 Jul 2023 01:19:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=98=BF=E9=87=8C=E5=8D=8E?= =?UTF-8?q?=E4=B8=BA=E8=85=BE=E8=AE=AF=E4=BA=91=E9=87=87=E9=9B=86ECS?= =?UTF-8?q?=E5=A4=96=E7=BD=91IP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- flask-consul/units/cloud/huaweicloud.py | 11 +++++++++++ flask-consul/units/cloud/tencent_cloud.py | 12 ++++++++++++ vue-consul/src/views/node-exporter/jobs.vue | 8 ++++---- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/flask-consul/units/cloud/huaweicloud.py b/flask-consul/units/cloud/huaweicloud.py index cf0f622..7236927 100644 --- a/flask-consul/units/cloud/huaweicloud.py +++ b/flask-consul/units/cloud/huaweicloud.py @@ -155,6 +155,17 @@ def ecs(account,region,isextip=False): 'mem':f"{str(round(int(i['flavor']['ram'])/1024,1)).rstrip('.0')}GB", 'exp': '-' } for i in info} + + if isextip: + for i in info: + try: + pubip_list = [x.addr for x in i['addresses'][i['metadata']['vpc_id']] if 'floating' in str(x)] + if pubip_list: + ecs_dict[i['id']]['ip'] = pubip_list[0] + else: + pass + except: + pass count = len(ecs_dict) off,on = sync_ecs.w2consul('huaweicloud',account,region,ecs_dict) data = {'count':count,'update':now,'status':20000,'on':on,'off':off,'msg':f'ECS同步成功!总数:{count},开机:{on},关机:{off}'} diff --git a/flask-consul/units/cloud/tencent_cloud.py b/flask-consul/units/cloud/tencent_cloud.py index db89f50..3d5b2ac 100644 --- a/flask-consul/units/cloud/tencent_cloud.py +++ b/flask-consul/units/cloud/tencent_cloud.py @@ -131,11 +131,13 @@ def ecs(account,region,isextip=False): offset = 0 total = 0 ecs_dict = {} + ecs_list_temp = [] while offset <= total: params = {"Offset": offset, "Limit": 100} req.from_json_string(json.dumps(params)) resp = client.DescribeInstances(req) ecs_list = resp.InstanceSet + ecs_list_temp.extend(ecs_list) total = resp.TotalCount ecs_dict_temp = {i.InstanceId:{'name':i.InstanceName,'group':group_dict.get(str(i.Placement.ProjectId),'无'), 'ostype': 'windows' if 'win' in i.OsName.lower() else 'linux', @@ -146,6 +148,16 @@ def ecs(account,region,isextip=False): offset = offset + 100 ecs_dict.update(ecs_dict_temp) + if isextip: + for i in ecs_list_temp: + try: + if i.PublicIpAddresses: + ecs_dict[i.InstanceId]['ip'] = i.PublicIpAddresses[0] + else: + pass + except: + pass + count = len(ecs_dict) off,on = sync_ecs.w2consul('tencent_cloud',account,region,ecs_dict) data = {'count':count,'update':now,'status':20000,'on':on,'off':off,'msg':f'ECS同步成功!总数:{count},开机:{on},关机:{off}'} diff --git a/vue-consul/src/views/node-exporter/jobs.vue b/vue-consul/src/views/node-exporter/jobs.vue index 8643b8b..37387b0 100644 --- a/vue-consul/src/views/node-exporter/jobs.vue +++ b/vue-consul/src/views/node-exporter/jobs.vue @@ -127,8 +127,8 @@ REDIS - - (仅支持阿里云ECS) + + (仅支持ECS) @@ -202,8 +202,8 @@ REDIS - - (仅支持阿里云ECS) + + (仅支持ECS)