39 lines
1.5 KiB
Plaintext
39 lines
1.5 KiB
Plaintext
async def describe_subnet(ns={}):
|
|
import aiohttp
|
|
NETWORK_URL = 'http://cdsapi.capitalonline.net/vpc'
|
|
action = 'DescribeSubnet'
|
|
method = "POST"
|
|
param = {}
|
|
url = get_signature(action, method, NETWORK_URL, param=param)
|
|
body = {
|
|
"RegionCode": ns.get('RegionCode'),
|
|
"Keyword": ns.get('Keyword'),
|
|
"PageNumber": int(ns.get('PageNumber')) if ns.get('PageNumber') else 1,
|
|
"VPCId": ns.get('VPCId'),
|
|
"AvailableZoneCode": ns.get('AvailableZoneCode')
|
|
}
|
|
async with aiohttp.ClientSession() as session:
|
|
async with session.request(method, url, json=body) as response:
|
|
resp = await response.text()
|
|
result = json.loads(resp)
|
|
if result['Code'] == 'Success':
|
|
result['status'] = True
|
|
result.pop('Code')
|
|
result['data'] = result.pop('Data')
|
|
if result['data']['Total'] > 0:
|
|
new_sub_li = []
|
|
for sub in result['data']['SubnetList']:
|
|
if ns['orgid'] in sub['VPCName']:
|
|
sub['VPCName'] = sub['VPCName'][-7:]
|
|
new_sub_li.append(sub)
|
|
result['data']['SubnetList'] = new_sub_li
|
|
result['data']['Total'] = len(new_sub_li)
|
|
result['msg'] = result.pop('Message')
|
|
else:
|
|
result['status'] = False
|
|
result['msg'] = result.pop('Message')
|
|
return result
|
|
|
|
ret = await describe_subnet(params_kw)
|
|
return ret
|