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