48 lines
2.2 KiB
Plaintext
48 lines
2.2 KiB
Plaintext
async def ecs_list(ns={}):
|
|
import aiohttp
|
|
NETWORK_URL = 'http://api.capitalonline.net/ecs/v1'
|
|
action = 'DescribeInstanceList'
|
|
method = "GET"
|
|
param = {
|
|
'AvailableZoneCode': ns.get('AvailableZoneCode') if ns.get('AvailableZoneCode') else '',
|
|
'VpcId': ns.get('VpcId') if ns.get('VpcId') else '',
|
|
'SearchInfo': ns.get('SearchInfo') if ns.get('SearchInfo') else '',
|
|
# 'PageNumber': int(ns.get('PageNumber')) if ns.get('PageNumber') else '',
|
|
# 'PageSize': int(ns.get('PageSize')) if ns.get('PageSize') else '',
|
|
}
|
|
url = get_signature(action, method, NETWORK_URL, param=param)
|
|
async with aiohttp.ClientSession() as session:
|
|
async with session.request(method, url) 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')
|
|
ecs_new_li = []
|
|
for ecs_detail in result['data']['EcsList']:
|
|
if ns['orgid'] == ecs_detail['EcsName'].split('0_____0')[0]:
|
|
ecs_detail['EcsName'] = ecs_detail['EcsName'].split('0_____0')[1]
|
|
ecs_detail['VpcName'] = ecs_detail['VpcName'].split('0_____0')[1]
|
|
for sgroup in ecs_detail['SecurityGroup']:
|
|
if '0_____0' in sgroup['SecurityGroupName']:
|
|
sgroup['SecurityGroupName'] = sgroup['SecurityGroupName'].split('0_____0')[1]
|
|
ecs_new_li.append(ecs_detail)
|
|
result['data']['EcsList'] = ecs_new_li
|
|
result['TotalCount'] = len(ecs_new_li)
|
|
if result.get('Message'):
|
|
result['msg'] = result.pop('Message')
|
|
else:
|
|
result['msg'] = result.pop('Msg')
|
|
else:
|
|
result['status'] = False
|
|
if result.get('Message'):
|
|
result['msg'] = result.pop('Message')
|
|
else:
|
|
result['msg'] = result.pop('Msg')
|
|
|
|
return result
|
|
|
|
ret = await ecs_list(params_kw)
|
|
return ret
|
|
|