1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
import json import sys from config import access_id,access_key_secret,ecs_regionid,ecs_chargetype from aliyunsdkcore import client from aliyunsdkecs.request.v20140526 import AllocateEipAddressRequest,ReleaseEipAddressRequest,AssociateEipAddressRequest,UnassociateEipAddressRequest,DescribeEipAddressesRequest
clt = client.AcsClient(access_id,access_key_secret,ecs_regionid)
def create_eip_address(regionid=ecs_regionid,chargetype=ecs_chargetype,bandwidth=200,fmt='json'): request=AllocateEipAddressRequest.AllocateEipAddressRequest() request.set_accept_format(fmt) request.set_Bandwidth(bandwidth) request.add_query_param('RegionId',regionid) request.add_query_param('InternetChargeType',chargetype) try: result=clt.do_action(request) r_dict=json.loads(result) except: print("Create EIP Address Failed.") sys.exit() if r_dict.has_key('EipAddress'): res={} res['ip']=r_dict['EipAddress'] res['id']=r_dict['AllocationId'] return res else: print(r_dict['Message']) sys.exit()
def delete_eip_address(eipid,fmt='json'): request=ReleaseEipAddressRequest.ReleaseEipAddressRequest() request.set_accept_format(fmt) request.set_AllocationId(eipid) try: result=clt.do_action(request) r_dict=json.loads(result) except: print("Delete EIP Address Failed.") sys.exit() if r_dict.has_key('Code'): print(r_dict['Message']) sys.exit() else: return r_dict def associate_eip_address(allocationid,instanceid,instancetype='EcsInstance',fmt='json'): request=AssociateEipAddressRequest.AssociateEipAddressRequest() request.set_accept_format(fmt) request.set_AllocationId(allocationid) request.add_query_param('InstanceType',instancetype) request.set_InstanceId(instanceid) try: result=clt.do_action(request) r_dict=json.loads(result) except: print("Associate EIP Address Failed.") sys.exit() if r_dict.has_key('Code'): print(r_dict['Message']) sys.exit() else: return r_dict def unassociate_eip_address(allocationid,instanceid,instancetype='EcsInstance',fmt='json'): request=UnassociateEipAddressRequest.UnassociateEipAddressRequest() request.set_accept_format(fmt) request.set_AllocationId(allocationid) request.add_query_param('InstanceType',instancetype) request.set_InstanceId(instanceid) try: result=clt.do_action(request) r_dict=json.loads(result) except: print("Unassociate EIP Address Failed.") sys.exit() if r_dict.has_key('Code'): print(r_dict['Message']) sys.exit() else: return r_dict def delete_unassociate_eip_address(): request=DescribeEipAddressesRequest.DescribeEipAddressesRequest() request.set_accept_format('json') request.set_Status('Available') request.set_PageSize(50) try: result =json.loads(clt.do_action(request)) except: print("Get Eip address list error.") sys.exit() eip_list=[] if result: eip_list=result['EipAddresses']['EipAddress'] for eip in eip_list: result=delete_eip_address(eip['AllocationId']) if result: print("EIP %s is deleted.") % eip['IpAddress']
if __name__ == "__main__": delete_unassociate_eip_address()
|