class Udb: def __init__(self, region, project_id, public_key, private_key): self.region = region self.project_id = project_id self.client = Client({ "region": self.region, "project_id": self.project_id, "public_key": public_key, "private_key": private_key }) def get_id(self, offset=0, limit=1, dbid="udbha-eb3sqldt"): return self.client.udb().describe_udb_backup({ "ProjectId": self.project_id, "Offset": offset, "Limit": limit, "DBId": dbid }) def down_url(self, id, dbid="udbha-eb3sqldt", zone="cn-bj2-03"): return self.client.udb().describe_udb_instance_backup_url({ "ProjectId": self.project_id, "Region": self.region, "BackupId": id, "DBId": dbid, "Zone": "cn-bj2-03" })
def permission_auth(access_id, access_key, region, project_id, offset=1, limit=1): """ 请求一台机器做权限测试 :param access_id: :param access_key: :param region: :param project_id: :param offset: :param limit: :return: """ client = Client({ "region": region, "project_id": project_id, "public_key": access_id, "private_key": access_key }) response = client.udb().describe_udb_instance({ "ClassType": "SQL", "Offset": offset, "Limit": limit }) return response
def permission_auth(access_id, access_key, region, project_id, offset=1, limit=1): """ 请求一台机器做权限测试 :param access_id: :param access_key: :param region: :param project_id: :param offset: :param limit: :return: """ client = Client({ "region": region, "project_id": project_id, "public_key": access_id, "private_key": access_key }) response = client.umem().describe_uredis_group({ "Offset": offset, "Limit": limit }) return response
def setRegion(region): global client client = Client({ "region": region, "public_key": param1, "private_key": param2, }) client.logger = Logger()
def __init__(self, region, project_id, public_key, private_key): self.region = region self.project_id = project_id self.client = Client({ "region": self.region, "project_id": self.project_id, "public_key": public_key, "private_key": private_key })
def update_firewall(FWId, Rule, region='cn-sh2', project_id='org-lnrov4'): client = Client({ "region": region, "project_id": project_id, "public_key": ucloud_public_key, "private_key": ucloud_private_key, "base_url": "https://api.ucloud.cn", }) try: resp = client.unet().update_firewall({"FWId": FWId, "Rule": Rule}) except exc.UCloudException as e: print(e)
def initial_bill_request(): client = Client({ "region": 'cn-bj2', "project_id": project_id, "public_key": public_key, "private_key": private_key }) d = {"BillPeriod": timestamp, "BillType": "1", "PaidType": "1"} try: resp = client.invoke("GetBillDataFileUrl", d) except exc.RetCodeException as e: resp = e return resp
def main(): client = Client({ "region": "cn-bj2", "project_id": "org-5wakzh", "public_key": "", "private_key": "", "base_url": "https://api.ucloud.cn", }) try: resp = client.uhost().create_uhost_instance({ "MachineType": "O", "ChargeType": "Dynamic", "SecurityGroupId": "firewall-4fntbzvk", "Zone": "cn-bj2-03", "ImageId": "uimage-i2pcb2i3", "Password": "", "LoginMode": "Password", "Name": "test-", "CPU": 8, "Memory": 8192, "MaxCount": 1, "NetworkInterface": [{ "EIP": { "Bandwidth": 300, "PayMode": "Traffic", "OperatorName": "Bgp" } }], "Disks": [{ "Type": "CLOUD_RSSD", "IsBoot": "True", "Size": 20 }] }) except exc.UCloudException as e: print(e) else: print(resp['IPs'][0])
def get_uhost_count(self): try: client = Client({ "region": self.region, "project_id": self.project_id, "public_key": self.access_id, "private_key": self.access_key }) response = client.uhost().describe_uhost_instance({}) return response['TotalCount'] except exc.UCloudException as uerr: ins_log.read_log('error', '请求Ucloud接口出错:{0}'.format(uerr)) return False except Exception as err: ins_log.read_log('error', err) return False
def client(): return Client({ "region": "cn-bj2", "public_key": "foo", "private_key": "foo", "timeout": 10, "max_retries": 3, })
def client() -> Client: return Client({ "region": "cn-bj2", "project_id": os.getenv("UCLOUD_PROJECT_ID"), "public_key": os.getenv("UCLOUD_PUBLIC_KEY"), "private_key": os.getenv("UCLOUD_PRIVATE_KEY"), "max_retries": 10, "timeout": 60, })
def ustack_client() -> Client: return Client({ "base_url": "http://console.pre.ucloudstack.com/api", "region": "cn", "public_key": os.getenv("UCLOUDSTACK_PUBLIC_KEY"), "private_key": os.getenv("UCLOUDSTACK_PRIVATE_KEY"), "max_retries": 10, "timeout": 60, })
def get_region_uhosts(self, offset=0, limit=50): try: client = Client({ "region": self.region, "project_id": self.project_id, "public_key": self.access_id, "private_key": self.access_key }) response = client.uhost().describe_uhost_instance({ "Offset": offset, "Limit": limit }) return response except exc.UCloudException as uerr: ins_log.read_log('error', '请求Ucloud接口出错:{0}'.format(uerr)) return False except Exception as err: ins_log.read_log('error', err) return False
def find_eip_uhost_id(eip, rzone): #获得该项目的所有EIP,遍历找到输入的eip client = Client({ "region": rzone, "project_id": project_id, "public_key": public_key, "private_key": private_key }) try: resp = client.invoke("DescribeEIP") except exc.RetCodeException as e: resp = e eipSets = resp.get('EIPSet') for eipSet in eipSets: ip = eipSet.get('EIPAddr')[0].get('IP') if ip == eip: #如果找到输入的IP,则记下eipid和uhostid eip_id = eipSet.get('EIPId') uhost_id = eipSet.get('Resource').get('ResourceID') id_array.append(eip) id_array.append(eip_id) id_array.append(uhost_id) #return uhost_id d = {"UHostIds": [uhost_id]} # 构造请求字典 try: resp = client.uhost().describe_uhost_instance(d) except exc.UCloudException as e: print(e) else: for i in range(len(resp['UHostSet'][0]['DiskSet'])): if i < 1: # print('just only system disk') pass else: disk_id = resp['UHostSet'][0]['DiskSet'][i]['DiskId'] id_array.append(disk_id) switch_arry = id_array.copy() # bind_all.extend(id_array) # switch_serial = bind_all.copy() # serialization.append(switch_serial) total_renew.append(switch_arry) #print(total_renew) id_array.clear()
def get_region_uredis(self, offset=0, limit=50): try: client = Client({ "region": self.region, "project_id": self.project_id, "public_key": self.access_id, "private_key": self.access_key }) response = client.umem().describe_uredis_group({ "Offset": offset, "Limit": limit }) return response except exc.UCloudException as uerr: ins_log.read_log('error', 'request ucloud api error:{0}'.format(uerr)) return False except Exception as err: ins_log.read_log('error', err) return False
def get_udb_count(self, offset=0, limit=1): try: client = Client({ "region": self.region, "project_id": self.project_id, "public_key": self.access_id, "private_key": self.access_key }) response = client.udb().describe_udb_instance({ "ClassType": "SQL", "Offset": offset, "Limit": limit }) return response['TotalCount'] except exc.UCloudException as uerr: ins_log.read_log('error', '请求Ucloud接口出错:{0}'.format(uerr)) return False except Exception as err: ins_log.read_log('error', err) return False
def ip_related_region(): for region in regions: region_attemp = region #构造client字典 client = Client({ "region": region_attemp, "project_id": project_id, "public_key": public_key, "private_key": private_key }) try: resp = client.invoke("DescribeEIP") except exc.RetCodeException as e: resp = e eipset1 = resp.get('EIPSet') if eipset1: eipset2 = eipset1[0].get('EIPAddr') for i in range(len(eipset1)): for j in range(len(eipset2)): eip_get = eipset1[i].get('EIPAddr')[j].get("IP") if eip_get in eip_array: #print([eip_get,region_attemp]) eip_region_array.append([eip_get, region_attemp])
import os import logging import random from ucloud.client import Client from ucloud.helpers import wait, utils logger = logging.getLogger('ucloud') client = Client({ "region": "cn-bj2", "project_id": os.getenv("UCLOUD_PROJECT_ID"), "public_key": os.getenv("UCLOUD_PUBLIC_KEY"), "private_key": os.getenv("UCLOUD_PRIVATE_KEY"), }) def main(): image_id = describe_image() uhost_ids = create_uhost_batch(image_id, 2) ulb_id = create_ulb() vserver_id = create_vserver(ulb_id) backend_ids = allocate_backend_batch(ulb_id, vserver_id, uhost_ids) backend_ids and release_backend_batch(ulb_id, vserver_id, backend_ids) vserver_id and delete_vserver(ulb_id, vserver_id)
from ucloud.core import auth from ucloud.core import exc from ucloud.client import Client import time client = Client({ "region": "", # 相关REGION信息。https://docs.ucloud.cn/api/summary/regionlist "project_id": "", # https://console.ucloud.cn/dashboard 页面左上角获取 "public_key": "", "private_key": "", # 公私钥 https://console.ucloud.cn/uapi/apikey "base_url": "https://api.ucloud.cn", }) data = { "Zone": "", # 相关Zone信息。可用区ABCD在region后添加01、02、03、04 # "ResourceId": '', #控制台获取资源id # "BeginTime": int(time.time()-60), # "EndTime": int(time.time()), # 开始结束时间控制在一分钟 # "MetricName.0": "NetworkOutUsage", # "MetricName.1": "NetworkIn", # "MetricName.2": "NetworkOut", # "MetricName.3": "NetworkInUsage", # 查询监控的指标项。目前仅允许以下四项:NetworkOut:出向带宽,NetworkIn:入向带宽,NetworkOutUsage:出向带宽使用率,NetworkInUsage:入向带宽使用率 "ResourceType": 'uhost' # 资源类型 } # 具体产品参数在https://docs.ucloud.cn/api/
def main(): client = Client({ "region": "cn-bj2", "project_id": os.getenv("UCLOUD_PROJECT_ID"), "public_key": os.getenv("UCLOUD_PUBLIC_KEY"), "private_key": os.getenv("UCLOUD_PRIVATE_KEY"), }) logger.info("finding image, random choice one") images = (client.uhost().describe_image({ "ImageType": "Base", "OsType": "Linux" }).get("ImageSet", [])) assert len(images) > 0 logger.info("creating uhost instance ...") image = random.choice(images) resp = client.uhost().create_uhost_instance({ "Name": "sdk-python-example", "Zone": image["Zone"], "ImageId": image["ImageId"], "LoginMode": "Password", "Password": utils.gen_password(20), "CPU": 1, "Memory": 1024, "Disks": [{ "Size": image["ImageSize"], "Type": "LOCAL_NORMAL", "IsBoot": "True", }], }) uhost_id = utils.first(resp["UHostIds"]) logger.info("uhost instance is created") def refresh_state(): uhost = utils.first(client.uhost().describe_uhost_instance({ "UHostIds": [uhost_id] }).get("UHostSet", [])) if uhost.get("State") in ["Running", "Stopped"]: return uhost["State"].lower() return "pending" logger.info("wait uhost state is running ...") try: wait.wait_for_state( pending=["pending"], target=["running"], timeout=300, refresh=refresh_state, ) except wait.WaitTimeoutException as e: logger.error(e) logger.info("uhost instance is running") logger.info("stopping uhost for clean up resources ...") client.uhost().stop_uhost_instance({"UHostId": uhost_id}) try: wait.wait_for_state( pending=["pending"], target=["stopped"], timeout=180, refresh=refresh_state, ) except wait.WaitTimeoutException as e: logger.error(e) else: logger.info("uhost instance is stopped") logger.info("remove uhost instance from cloud") client.uhost().terminate_uhost_instance({"UHostId": uhost_id})
port=PORT, user=USER, password=PASSWORD, remote_file=api_filename, local_file=local_filename) except Exception as e: logger.error(e) else: logger.info("api csv文件已保存") # 获取slowlog try: logger.info("开始执行slowlog日志打包下载") client = Client({ "region": REGION, "project_id": PROJECT_ID, "public_key": PUBLIC_KEY, "private_key": PRIVATE_KEY, }) START_TIME, END_TIME = gettimestamp(1) LOG_NAME = "slowlog-{}.log".format(date) createslowlog(client, db_id=DBID, start_time=START_TIME, finish_time=END_TIME, log_name=LOG_NAME) resp = getslowloglist(client, zone=ZONE, offset=0, limit=50, log_type=None) package_id = getslowlogid(resp, backup_name=LOG_NAME, db_id=DBID) url = getlogdownloadurl(client, zone=ZONE,
import json, time, socket class Logger: def __init__(self): pass def info(self, *args): pass param1, param2 = "", "" client = Client({ "region": "cn-bj2", "public_key": param1, "private_key": param2, }) client.logger = Logger() def setRegion(region): global client client = Client({ "region": region, "public_key": param1, "private_key": param2, }) client.logger = Logger()
config.read('config.ini', encoding='"utf-8-sig') public_key = config.get("key", "public_key") private_key = config.get("key", "private_key") project_id = config.get("key", "project_id") region = config.get("key", "region") year = int(config.get("check_account", "year")) month = int(config.get("check_account", "month")) #读取日期,并转换成时间戳 make_date = datetime.datetime(year, month, 10) timestamp = time.mktime(make_date.timetuple()) #构造请求 client = Client({ "region": region, "project_id": project_id, "public_key": public_key, "private_key": private_key }) def initial_request(): d = {"BillPeriod": timestamp, "BillType": "1", "PaidType": "1"} try: resp = client.invoke("GetBillDataFileUrl", d) except exc.RetCodeException as e: resp = e #print(json.dumps(resp, sort_keys=True, indent=4, separators=(',', ': '))) #print(resp.get('FileUrl')) return resp
def main(): client = Client({ "region": "cn-bj2", "project_id": os.getenv("UCLOUD_PROJECT_ID"), "public_key": os.getenv("UCLOUD_PUBLIC_KEY"), "private_key": os.getenv("UCLOUD_PRIVATE_KEY"), }) logger.info("finding image, random choice one") images = client.uhost().describe_image({ 'ImageType': 'Base', 'OsType': 'Linux' }).get('ImageSet', []) assert len(images) > 0 logger.info("creating uhost instance ...") image = random.choice(images) resp = client.uhost().create_uhost_instance({ 'Name': 'sdk-python-example', 'Zone': image["Zone"], 'ImageId': image["ImageId"], 'LoginMode': "Password", 'Password': utils.gen_password(20), 'CPU': 1, 'Memory': 1024, 'Disks': [{ 'Size': image["ImageSize"], 'Type': 'CLOUD_NORMAL', 'IsBoot': 'True', }], }) uhost_id = utils.first(resp["UHostIds"]) logger.info("uhost instance is created") def refresh_state(): uhost = utils.first(client.uhost().describe_uhost_instance({ 'UHostIds': [uhost_id] }).get('UHostSet', [])) if uhost.get('State') in ['Running', 'Stopped']: return uhost['State'].lower() return 'pending' logger.info("wait uhost state is running ...") try: wait.wait_for_state(pending=['pending'], target=['running'], timeout=300, refresh=refresh_state) except wait.WaitTimeoutException as e: logger.error(e) logger.info("uhost instance is running") logger.info("stopping uhost for clean up resources ...") client.uhost().stop_uhost_instance({'UHostId': uhost_id}) try: wait.wait_for_state(pending=['pending'], target=['stopped'], timeout=180, refresh=refresh_state) except wait.WaitTimeoutException as e: logger.error(e) else: logger.info("uhost instance is stopped") logger.info("remove uhost instance from cloud") client.uhost().terminate_uhost_instance({'UHostId': uhost_id})