class MyUcloud(): def __init__(self): self.ApiClient = UcloudApiClient(base_url, public_key, private_key) def get_eip_info(self): data = list() for i in range(0, 10): Parameters = { "Action": "DescribeEIP", "Region": "cn-bj2", "Limit": 100, "Offset": i } # data = list() response = self.ApiClient.get("/", Parameters) if not response['EIPSet']: for one_item in response['EIPSet']: if one_item['Resource']['ResourceType'] != 'uhost': temp = (one_item['Bandwidth'], one_item['EIPAddr'][0]['IP'], one_item['EIPId'], one_item['Resource']['ResourceName'], one_item['Weight'], one_item['Resource']['ResourceType']) data.append(temp) del temp # <type 'tuple'>: (2, u'123.59.42.216', u'eip-0v0by0', u'Platform-middleware-URDTServer03', 50) # print json.dumps(data, indent=1) return data def get_eip_bandwidth(self, eipid_list): return_data = dict() Parameters = {"Action": "DescribeBandwidthUsage", "Region": "cn-bj2"} response = self.ApiClient.get("/", Parameters) alL_data = response['EIPSet'] for one_data in alL_data: eipid = one_data["EIPId"] bandwidth = one_data['CurBandwidth'] if eipid in eipid_list: return_data[eipid] = bandwidth return return_data def get_single_bandwidth(self, eipid): Parameters = { "Action": "DescribeBandwidthUsage", "Region": "cn-bj2", "EIPIds.1": eipid } response = self.ApiClient.get("/", Parameters) alL_data = response['EIPSet'] return alL_data[0]['CurBandwidth']
def create(tag=None, name=None, password='******', cpu='1', memory=2, diskSpace=50, imageId="uimage-j4fbrn", uhostType='Normal',StorageType='LocalDisk'): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "CreateUHostInstance", "Region": region, "Zone":zone, "ImageId": imageId, "LoginMode": "Password", "Password": base64.b64encode(password), "Tag": tag, "CPU": cpu, "Memory": int(memory) * 1024, "DiskSpace": int(diskSpace), "Name": name, "StorageType":StorageType, "UHostType": uhostType # SATA_SSD ,BigData } response = ApiClient.get("/", Parameters) if 0 != response['RetCode']: print response exit(1) for i in range(120): time.sleep(1) host = get(name) if host and 'IPSet' in host and 'IP' in host['IPSet'][0]: # and 'Running' in host['State'] print host['IPSet'][0]['IP'] return host raise TypeError("can not get host info")
def uhost_describe(UHOSTID): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "DescribeUHostInstance", "ProjectId": "org-tgfjdn", "Region": "cn-bj2", "Zone": "cn-bj2-04", "UHostIds.1": UHOSTID } try: response = ApiClient.get("/", Parameters) except: log_write('', '\n', '', str(UHOSTID), '获取主机IP信息失败') sys.exit(0) response_data = json.loads(json.dumps(response)) #print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': ')) if response_data["RetCode"] == 0: IPLIST = response_data["UHostSet"][0]["IPSet"] log_write('', '\n', '', str(UHOSTID), '获取主机IP信息成功') return IPLIST else: log_write('', '\n', '', str(UHOSTID), '获取主机IP信息失败') sys.exit(0)
def eip_describe(IPUID): """EIP 查看函数""" ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "DescribeEIP", "ProjectId": "org-tgfjdn", "Region": "cn-bj2", "EIPIds.1": IPUID, } try: response = ApiClient.get("/", Parameters) except: log_write('', '\n', '', str(IPUID), 'EIP查询权重失败') sys.exit(0) response_data = json.loads(json.dumps(response)) #print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': ')) time.sleep(1) if response_data["RetCode"] == 0: #log_write('', '\n', '', str(response_data)) WG = response_data["EIPSet"][0]["Weight"] log_write('', '\n', '', str(IPUID), 'EIP查询权重为[' + str(WG) + ']') return WG else: log_write('', '\n', '', str(IPUID), 'EIP查询权重失败') sys.exit(0)
class MyUcloud(): def __init__(self): self.ApiClient = UcloudApiClient(base_url, public_key, private_key) def create_firewall(self, fire_name, rules): """ http(s)://api.ucloud.cn/?Action=CreateSecurityGroup &Region=cn-bj2 &GroupName=NewSecurityGroup &Rule.1=UDP|53|0.0.0.0/0|ACCEPT|50 &Rule.0=TCP|3306|0.0.0.0/0|DROP|50 :param rule: rule :return: True/False """ Parameters = {"Action": "CreateSecurityGroup", "GroupName": fire_name, "Region": "cn-bj2", "Description": fire_name} for i in range(len(rules)): key = "Rule.%s" % str(i) Parameters[key] = rules[i] # data = list() response = self.ApiClient.get("/", Parameters) if response['RetCode'] == 0: print "防火墙规则添加操作成功, 防火墙ID {0}".format(response['FWId']) else: print "防火墙规则添加操作失败,返回值{0} ,信息 {1}".format(response['RetCode'], response['Message']) return True
def eip_Weight_modify(IPUID, WG): """修改EIP权重""" ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "ModifyEIPWeight", "ProjectId": "org-tgfjdn", "Region": "cn-bj2", "EIPId": IPUID, "Weight": WG } try: response = ApiClient.get("/", Parameters) except: log_write('', '\n', '', str(IPUID), 'EIP修改权重失败') sys.exit(0) response_data = json.loads(json.dumps(response)) #print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': ')) if response_data["RetCode"] == 0: log_write('', '\n', '', str(IPUID), 'EIP修改权重为[' + str(WG) + ']') else: log_write('', '\n', '', str(IPUID), 'EIP修改权重失败') sys.exit(0)
def flush_cdn(DomainId,UrlList,Type='dir'): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "RefreshUcdnDomainCache", "Region": region, "Zone":zone, "ProjectId":project_id, "DomainId": DomainId, "Type": Type, "UrlList.0": UrlList } response = ApiClient.get("/", Parameters) if 0 != response['RetCode']: print response exit(1) print response taskId=response['TaskId'] for i in range(1200): status=flush_task_status_cdn(DomainId,taskId) print status if status=="success": return True elif status=="failure": return False time.sleep(1) return False
def eip_apply(): """EIP申请函数""" ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "AllocateEIP", "ProjectId": "org-tgfjdn", "Region": "cn-bj2", "OperatorName": "Bgp", "Bandwidth": "1", "ChargeType": "Month", "Count": "1", "Name": "EIP", "Remark": "XX项目", "Tag": "XX项目" } try: response = ApiClient.get("/", Parameters) except: log_write('', '\n', ' EIP申请失败') sys.exit(0) response_data = json.loads(json.dumps(response)) #print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': ')) IPADDR = response_data["EIPSet"][0]["EIPAddr"][0]["IP"] IPUID = str(response_data["EIPSet"][0]["EIPId"]) log_write('', '\n', '', str(IPUID), str(IPADDR), 'EIP申请成功') eip_data = {} eip_data['IP'] = IPADDR eip_data['EIPId'] = IPUID return eip_data
class UCloudAPI(object): def __init__(self): self.api_client = UcloudApiClient(base_url, public_key, private_key, project_id) def request(self, **kwargs): return self.api_client.get(kwargs)
def get(ip=None, tag=None): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = {"Action": "DescribeEIP", "Region": region, "Limit": '100000'} ips = ApiClient.get("/", Parameters) #print ips for ip_tmp in ips['EIPSet']: if ip and ip == ip_tmp['EIPAddr'][0]['IP']: return ip_tmp if tag and tag == ip_tmp['Tag']: return ip_tmp
def get_all(): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "DescribeUHostInstance", "Region": region, "Limit": '100000' } response = ApiClient.get("/", Parameters); print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
def delete(ip): ip = get(ip) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "ReleaseEIP", "Region": region, "EIPId": ip['EIPId'] } response = ApiClient.get("/", Parameters); print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
def get_ulb_list(region): """get one user's ulb list""" api_client = UcloudApiClient(config.base_url, config.public_key, config.private_key) params = {} params['Action'] = "DescribeULB" params['Region'] = region response = api_client.get("/", params) pprint(response)
def get_ulb_list(region): """get one user's ulb list""" api_client = UcloudApiClient(config.base_url, config.public_key, config.private_key) params = {}; params['Action'] = "DescribeULB" params['Region'] = "cn-bj1" response = api_client.get("/", params) pprint(response)
def delete(ip): host = get(ip=ip) stop(ip, check=True) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "TerminateUHostInstance", "Region": region, "UHostId": host['UHostId'] } response = ApiClient.get("/", Parameters); print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
def get_all(resourceType=None): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = {"Action": "DescribeEIP", "Region": region, "Limit": '100000'} ips = ApiClient.get("/", Parameters) #print ips result_ips = [] for ip_tmp in ips['EIPSet']: if resourceType and resourceType == ip_tmp['Resource']['ResourceType']: result_ips.append(ip_tmp['EIPAddr'][0]['IP']) elif resourceType is None: result_ips.append(ip_tmp['EIPAddr'][0]['IP']) return result_ips
def unbing(ip,hostId): ip = get(ip) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "UnBindEIP", "Region": region, 'ResourceType':'uhost', 'ResourceId':hostId, #TODO "EIPId": ip['EIPId'] } response = ApiClient.get("/", Parameters); print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
def modify_eip_weight(ip,weight=50): ip = get(ip) print 'start modify_eip_weight {} to weight{} '.format(ip,weight) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "ModifyEIPWeight", "Region": region, 'Weight':weight, "EIPId": ip['EIPId'] } response = ApiClient.get("/", Parameters); print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
def stop(ip, check=False): host = get(ip=ip) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "StopUHostInstance", "Region": region, "UHostId": host['UHostId'] } response = ApiClient.get("/", Parameters); if check: checkStatus(ip, 'Stopped') print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
def get_metric(region, resource_type, resource_id, metric_name, timerange=1 * 60 * 60): """Get UCloud monitor data Region: "cn-east-01"|"cn-north-01"|"cn-south-01"|"hk-01"|"cn-north-02" 华东 北京bgpa 华南 香港 北京bgpb ResourceType: 'uhost'|'udb'|'umem'|'ulb' MetricName: uhost: 'NetworkIn' 'NetworkOut' 'CPUUtilization' 'IORead' 'IOWrite' 'DiskReadOps' 'DiskWriteOps' 'NICIn' 'NICOut' 'MemUsage' 'DataSpaceUsage' 'RootSpaceUsage' 'ReadonlyDiskCount' 'RunnableProcessCount' 'BlockProcessCount' udb: 'CPUUtilization' 'MemUsage' 'QPS' 'ExpensiveQuery' ulb: 'NetworkOut' 'CurrentConnections' umem: 'Usage' 'QPS' 'InstanceCount' """ api_client = UcloudApiClient(config.base_url, config.public_key, config.private_key) params = {}; params['Region'] = region params['Action'] = 'GetMetric' params['ResourceType'] = resource_type params['ResourceID'] = resource_id params['MetricName'] = metric_name params['TimeRange'] = timerange response = api_client.get("/", params) pprint(response)
def ReinstallUHostInstance(ip, password='******', imageId='uimage-j4fbrn'): host = get(ip=ip) poweroff(ip, check=True) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "ReinstallUHostInstance", "Region": region, "UHostId": host['UHostId'], "Password": base64.b64encode(password), "ImageId": imageId } response = ApiClient.get("/", Parameters); print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
def delete(ip): ip = get(ip) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "ReleaseEIP", "Region": region, "EIPId": ip['EIPId'] } response = ApiClient.get("/", Parameters) print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
def get(ip=None,tag=None): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "DescribeEIP", "Region": region, "Limit": '100000' } ips = ApiClient.get("/", Parameters) #print ips for ip_tmp in ips['EIPSet']: if ip and ip == ip_tmp['EIPAddr'][0]['IP'] : return ip_tmp if tag and tag == ip_tmp['Tag'] : return ip_tmp
def get_metric(region, resource_type, resource_id, metric_name, timerange=1 * 60 * 60): """Get UCloud monitor data Region: "cn-east-01"|"cn-north-01"|"cn-south-01"|"hk-01"|"cn-north-02" East China Bejing bgpa South China Hong Kong Beijing bgpb ResourceType: 'uhost'|'udb'|'umem'|'ulb' MetricName: uhost: 'NetworkIn' 'NetworkOut' 'CPUUtilization' 'IORead' 'IOWrite' 'DiskReadOps' 'DiskWriteOps' 'NICIn' 'NICOut' 'MemUsage' 'DataSpaceUsage' 'RootSpaceUsage' 'ReadonlyDiskCount' 'RunnableProcessCount' 'BlockProcessCount' udb: 'CPUUtilization' 'MemUsage' 'QPS' 'ExpensiveQuery' ulb: 'NetworkOut' 'CurrentConnections' umem: 'Usage' 'QPS' 'InstanceCount' """ api_client = UcloudApiClient(config.base_url, config.public_key, config.private_key) response = api_client.get("/", Action="GetMetric", Region=region, ResourceType=resource_type, ResourceID=resource_id, MetricName=metric_name, TimeRange=timerange) pprint(response)
def flush_task_status_cdn(DomainId,TaskId): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "DescribeRefreshCacheTask", "Region": region, "Zone":zone, "ProjectId":project_id, "DomainId": DomainId, "TaskId": TaskId } response = ApiClient.get("/", Parameters) if 0 != response['RetCode']: print response exit(1) return response['TaskSet'][0]['Status']
def get(host_name='', ip=''): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "DescribeUHostInstance", "Region": region, "Limit": '100000' } hosts = ApiClient.get("/", Parameters) for host in hosts['UHostSet'] : if 'Name' in host and 'IPSet' in host and len(host['IPSet'])>0 and 'IP' in host['IPSet'][0]: if host_name == host['Name'] or ip == host['IPSet'][0]['IP']: return host else: print "get host Describe err"
def modify_eip_weight(ip, weight=50): ip = get(ip) print 'start modify_eip_weight {} to weight{} '.format(ip, weight) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "ModifyEIPWeight", "Region": region, 'Weight': weight, "EIPId": ip['EIPId'] } response = ApiClient.get("/", Parameters) print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
def get_all(resourceType=None): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "DescribeEIP", "Region": region, "Limit": '100000' } ips = ApiClient.get("/", Parameters) #print ips result_ips=[] for ip_tmp in ips['EIPSet']: if resourceType and resourceType == ip_tmp['Resource']['ResourceType']: result_ips.append( ip_tmp['EIPAddr'][0]['IP']) elif resourceType is None: result_ips.append( ip_tmp['EIPAddr'][0]['IP']) return result_ips
def unbing(ip, hostId): ip = get(ip) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "UnBindEIP", "Region": region, 'ResourceType': 'uhost', 'ResourceId': hostId, #TODO "EIPId": ip['EIPId'] } response = ApiClient.get("/", Parameters) print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
def eip_delete(IPUID): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = {"Action": "ReleaseEIP", "EIPId": IPUID, "Region": "cn-bj2"} try: response = ApiClient.get("/", Parameters) except: log_write('', '\n', '', str(IPUID), 'EIP释放失败') sys.exit(0) response_data = json.loads(json.dumps(response)) if response_data["RetCode"] == 0: log_write('', '\n', '', str(IPUID), 'EIP释放成功') else: log_write('', '\n', '', str(IPUID), 'EIP释放失败') sys.exit(0)
def getImage(ImageType="Base"): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "DescribeImage", "Region": region, "Zone":zone, "ImageType": ImageType, "OsType": 'Linux', "Offset": 0, "Limit": 1000, "ProjectId":project_id } response = ApiClient.get("/", Parameters) if 0 != response['RetCode']: print response exit(1) print response
def eip_list_relese(name): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "DescribeEIP", "ProjectId": "org-tgfjdn", "Region": "cn-bj2", "Limit": 300 } trynum = 0 success = False while trynum < 3 and not success: try: response = ApiClient.get("/", Parameters) success = True except: trynum += 1 if trynum != 3: time.sleep(5) else: log_write('\n', '\n', 'EIP获取列表失败时间:') sys.exit(0) response_data = json.loads(json.dumps(response)) for eip_data in response_data["EIPSet"]: if eip_data["Status"] == "free": a = name.decode('utf-8').encode('unicode_escape') b = eip_data["Name"].encode('unicode_escape') c = eip_data["Bandwidth"] d = eip_data["EIPId"] e = eip_data["EIPAddr"][0]["IP"] f = eip_data["CreateTime"] g = int(time.time() - 3600) if a == b and c == 1 and f < g: log_write('', ' ', str(e), str(d), '准备释放时间:') eip_delete(d) else: continue
def create(tag='', Bandwidth=2, ChargeType='Dynamic', PayMode='Traffic'): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "AllocateEIP", "Region": region, "OperatorName": 'Bgp', "Bandwidth": Bandwidth, "ChargeType": ChargeType, "PayMode": PayMode, "Tag": tag, "Remark": 'ip_Remark' } response = ApiClient.get("/", Parameters) #print response if 0 != response['RetCode']: print response exec(1) #print response if 'EIPSet' in response: return response['EIPSet'][0]['EIPAddr'][0]['IP'] raise TypeError("can not get host info")
def create(tag='',Bandwidth=2,ChargeType='Dynamic',PayMode='Traffic'): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "AllocateEIP", "Region": region, "OperatorName": 'Bgp', "Bandwidth": Bandwidth, "ChargeType": ChargeType, "PayMode": PayMode, "Tag": tag, "Remark": 'ip_Remark' } response = ApiClient.get("/", Parameters) #print response if 0 != response['RetCode']: print response exec (1) #print response if 'EIPSet' in response : return response['EIPSet'][0]['EIPAddr'][0]['IP'] raise TypeError("can not get host info")
def eip_unbind(IPUID, UHOSTID): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "UnBindEIP", "EIPId": IPUID, "ResourceId": UHOSTID, "ResourceType": "uhost", "Region": "cn-bj2", "ProjectId": "org-tgfjdn" } try: response = ApiClient.get("/", Parameters) except: log_write('', '\n', '', str(IPUID), str(UHOSTID), 'EIP解绑失败') sys.exit(0) response_data = json.loads(json.dumps(response)) if response_data["RetCode"] == 0: log_write('', '\n', '', str(IPUID), str(UHOSTID), 'EIP解绑成功') else: log_write('', '\n', '', str(IPUID), str(UHOSTID), 'EIP解绑失败') sys.exit(0)
def eip_delete(IPUID): ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = {"Action": "ReleaseEIP", "EIPId": IPUID, "Region": "cn-bj2"} trynum = 0 success = False while trynum < 3 and not success: try: response = ApiClient.get("/", Parameters) success = True except: trynum += 1 if trynum != 3: time.sleep(5) else: log_write('\n', '\n', str(IPUID), '释放失败时间:') sys.exit(0) response_data = json.loads(json.dumps(response)) if response_data["RetCode"] == 0: log_write('', '\n', '释放成功时间:') else: log_write('', '\n', '释放失败时间:')
def Request(Parameters): ApiClient = UcloudApiClient(base_url, public_key, private_key) response = ApiClient.get("/", Parameters) return json.dumps(response, sort_keys=True, indent=4, separators=(",", ": "))
#!/usr/bin/python #-*- encoding: utf-8 -*- from sdk import UcloudApiClient from config import * import sys import json ApiClient = UcloudApiClient(base_url, public_key, private_key, 1, 1) #获取当前用户主机列表 response = ApiClient.get('/instances', offset = 0, max_count = 100 ) if response['ret_code'] == 0: print response #获取EIP列表 response = ApiClient.get('/uip/list') if response['ret_code'] == 0: print response #绑定EIP到主机 response = ApiClient.post('/uip/associate', vm_id = "$VM_INSTANCE_UUID", eip_id = "$EIP_UUID"
#!/usr/bin/env python # -*- coding: utf-8 -*- from sdk import UcloudApiClient from config import * import sys import json #API handles instantiation if __name__=='__main__': arg_length = len(sys.argv) ApiClient = UcloudApiClient(base_url, public_key, private_key) response = ApiClient.get("/", Action="GetBalance"); print response;
#!/usr/bin/env python # -*- coding: utf-8 -*- from sdk import UcloudApiClient from config import * import sys import json #实例化 API 句柄 if __name__=='__main__': arg_length = len(sys.argv) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters={ "Action":"ReleaseBackend", "Region":"cn-north-03", "ULBId":"ulb-a3qq0o", "BackendId":"6a049334-77dc-49b9-a55d-fce8d3d0d9e8" } response = ApiClient.get("/", Parameters); print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
#!/usr/bin/env python # -*- coding: utf-8 -*- from sdk import UcloudApiClient from config import * import sys import json #实例化 API 句柄 if __name__ == '__main__': arg_length = len(sys.argv) ApiClient = UcloudApiClient(base_url, public_key, private_key) Parameters = { "Action": "CreateUHostInstance", "Region": "cn-north-03", "ImageId": "uimage-qiut5g", "LoginMode": "Password", "Password": "******" } response = ApiClient.get("/", Parameters) print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': '))
#!/usr/bin/python #-*- encoding: utf-8 -*- from sdk import UcloudApiClient from config import * import sys import json ApiClient = UcloudApiClient(base_url, public_key, private_key, 1, 1) #获取当前用户主机列表 response = ApiClient.get('/instances', offset=0, max_count=100) if response['ret_code'] == 0: print response #获取EIP列表 response = ApiClient.get('/uip/list') if response['ret_code'] == 0: print response #绑定EIP到主机 response = ApiClient.post('/uip/associate', vm_id="$VM_INSTANCE_UUID", eip_id="$EIP_UUID") if response['ret_code'] == 0: print response #从主机解绑EIP response = ApiClient.post('/uip/disassociate', vm_id="$VM_INSTANCE_UUID", eip_id="$EIP_UUID")