m1/qcloud_api_v2.py
2020-04-17 11:37:13 +08:00

105 lines
3.4 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import absolute_import
import os
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.cvm.v20170312 import cvm_client, models
from ops.mmysql import MysqlBase
class Qclound():
def __init__(self, area="ap-beijing"):
secretid = os.getenv("miles_id")
secretkey = os.getenv("miles_key")
cred = credential.Credential(secretid, secretkey)
httpProfile = HttpProfile()
httpProfile.endpoint = "cvm.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
self.client = cvm_client.CvmClient(cred, area, clientProfile)
def start_instance(self, instanceid):
try:
req = models.StartInstancesRequest()
params = '{"InstanceIds":["%s"]}' % instanceid
req.from_json_string(params)
resp = self.client.StartInstances(req)
print(resp.to_json_string())
data = resp.to_json_string()
return True, data
except TencentCloudSDKException as err:
print(err)
return False, err
def stop_instance(self, instanceid):
try:
req = models.StopInstancesRequest()
params = '{"InstanceIds":["%s"],"StoppedMode":"STOP_CHARGING"}' % instanceid
req.from_json_string(params)
resp = self.client.StopInstances(req)
print(resp.to_json_string())
data = resp.to_json_string()
return True, data
except TencentCloudSDKException as err:
print(err)
return True, err
def desc_instance(self, instanceid):
try:
req = models.DescribeInstancesStatusRequest()
params = '{"InstanceIds":["%s"]}' % instanceid
req.from_json_string(params)
resp = self.client.DescribeInstancesStatus(req)
print(resp.to_json_string())
data = resp.InstanceStatusSet[0].InstanceState
return True, data
except TencentCloudSDKException as err:
print(err)
return True, err
def get_all_instance(self):
all = {}
try:
req = models.DescribeInstancesRequest()
for i in range(10):
params = '{"Offset":%s,"Limit":20}' % str(i)
req.from_json_string(params)
resp = self.client.DescribeInstances(req)
if resp:
for item in resp.InstanceSet:
if item:
all[item.PrivateIpAddresses[0]] = item.InstanceId
else:
break
except TencentCloudSDKException as err:
print(err)
return all
def get_instanceid(self, ip):
all = self.get_all_instance()
if ip in all.keys():
return all[ip]
else:
return None
if __name__ == "__main__":
qc = Qclound('ap-beijing')
# aa = qc.get_all_instance()
#print(aa)
id = qc.get_instanceid('10.10.7.17')
print("2 {}".format(id))
if id:
qc.desc_instance(id)
qc.stop_instance(id)
#qc.start_instance(id)