Exemplo n.º 1
0
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")
Exemplo n.º 2
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
Exemplo n.º 3
0
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=(',', ': '))
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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=(',', ': '))
Exemplo n.º 6
0
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=(',', ': '))
Exemplo n.º 7
0
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=(',', ': '))
Exemplo n.º 8
0
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=(',', ': '))
Exemplo n.º 9
0
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=(',', ': '))
Exemplo n.º 10
0
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)
Exemplo n.º 11
0
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=(',', ': '))
Exemplo n.º 12
0
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
Exemplo n.º 13
0
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)
Exemplo n.º 14
0
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"
Exemplo n.º 15
0
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']
Exemplo n.º 16
0
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
Exemplo n.º 17
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
Exemplo n.º 18
0
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")
Exemplo n.º 19
0
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=(",", ": "))
Exemplo n.º 20
0
#!/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": "GetUcdnTraffic",
    }
    response = ApiClient.get("/", Parameters)
    print json.dumps(response,
                     sort_keys=True,
                     indent=4,
                     separators=(',', ': '))
Exemplo n.º 21
0
#!/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"
Exemplo n.º 22
0
#!/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;
Exemplo n.º 23
0
#!/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=(',', ': '))
Exemplo n.º 24
0
#-*- encoding: utf-8 -*-
from sdk import UcloudApiClient 
from config import *
import sys
import json

#实例化 API 句柄
ApiClient = UcloudApiClient(base_url, public_key, private_key)

def sendsms(phone, message):
    #调用短信API 
    phone = phone.split("|")
    response = ApiClient.post('/monitor/sendsms', phone=json.dumps(phone), content=message)
    if response['ret_code'] == 0:
        return True
    return False 

if __name__=='__main__':
    arg_length = len(sys.argv)
    if arg_length == 1 or arg_length == 2 :
        print "./sendsms.py 1377777777777|137888888888 测试短信"
        sys.exit()

    sendsms(sys.argv[1], sys.argv[2]);