Example #1
0
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"
        })
Example #2
0
File: udb.py Project: fengjp/cmdb
    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
Example #3
0
    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
Example #4
0
def setRegion(region):
    global client
    client = Client({
        "region": region,
        "public_key": param1,
        "private_key": param2,
    })
    client.logger = Logger()
Example #5
0
 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
     })
Example #6
0
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)
Example #7
0
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
Example #8
0
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])
Example #9
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
Example #10
0
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,
    })
Example #13
0
 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
Example #14
0
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()
Example #15
0
 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
Example #16
0
File: udb.py Project: fengjp/cmdb
    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
Example #17
0
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])
Example #18
0
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)
Example #19
0
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/
Example #20
0
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})
Example #21
0
                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,
Example #22
0
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()
Example #23
0
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

Example #24
0
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})