in solution/finance/idle_resource.py [0:0]
def query_idle_nat_gateway(account_id,
access_key_id,
access_key_secret,
role_name):
client = IdleResourceSample.create_vpc_client(account_id,
access_key_id,
access_key_secret,
role_name)
idle_resource_list = []
print('[Idle NAT Gateway] AccountId: ' + account_id)
for region_id in region_id_list:
output_str = 'Region:' + region_id + ' '
result_list = IdleResourceSample.query_nat_gateway(client, region_id)
# print(eip_list)
for nat_gateway in result_list:
if nat_gateway['NetworkType'] == 'internet' and len(nat_gateway['IpLists']['IpList']) == 0:
# 公网NAT网关未绑定EIP,闲置
output_str += f'<ID:{nat_gateway["NatGatewayId"]} Name:{nat_gateway["Name"]}' \
f' Reason:公网NAT网关未绑定EIP> '
idle_resource_list.append(nat_gateway)
continue
snat_entries = IdleResourceSample.query_nat_gateway_snat_entry(client, region_id,
nat_gateway['NatGatewayId'])
if len(snat_entries) != 0:
continue
else:
dnat_entries = IdleResourceSample.query_nat_gateway_dnat_entry(client, region_id,
nat_gateway['NatGatewayId'])
if len(dnat_entries) == 0:
# 无SNAT及DNAT条目,闲置
output_str += f'<ID:{nat_gateway["NatGatewayId"]} Name:{nat_gateway["Name"]}' \
f' Reason:无SNAT及DNAT条目> '
idle_resource_list.append(nat_gateway)
print(output_str)
print()
return idle_resource_list