/
c3mc-query-qcloud-cdb-price
executable file
·64 lines (51 loc) · 1.95 KB
/
c3mc-query-qcloud-cdb-price
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env /data/Software/mydan/python3/bin/python3
# -*- coding: utf-8 -*-
import json
import sys
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.cdb.v20170320 import cdb_client, models
def get_cdb_price(access_id, access_key, region, zone, cpu, memory, disk_size):
cred = credential.Credential(access_id, access_key)
httpProfile = HttpProfile()
httpProfile.endpoint = "cdb.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = cdb_client.CdbClient(cred, region, clientProfile)
req = models.DescribeDBPriceRequest()
params = {
"Zone": zone,
"Cpu": int(cpu),
# 单位 MB
"Memory": int(memory),
"GoodsNum": 1,
# 单位 GB
"Volume": int(disk_size),
"PayType": "PRE_PAID",
"Period": 1,
"InstanceNodes": 1,
}
req.from_json_string(json.dumps(params))
try:
resp = client.DescribeDBPrice(req)
except Exception as e:
if "ResourceUnavailable" in str(e):
return ""
else:
raise e
# 单位: 分
return "{} {}".format(resp.Price/100.0, resp.Currency)
def get_price_info(access_id, access_key, region, zone, cpu, memory, disk_size):
price = get_cdb_price(access_id, access_key, region, zone, cpu, memory, disk_size)
if price == "":
return
return "qcloud-cdb@{}@{}@{}@{}@{};{}".format(region, zone, cpu, memory, disk_size, price)
def main(access_id, access_key, region, zone, cpu, memory, disk_size):
data = get_price_info(access_id, access_key, region,
zone, cpu, memory, disk_size)
if data is not None:
print(data)
if __name__ == '__main__':
main(sys.argv[1], sys.argv[2], sys.argv[3],
sys.argv[4], sys.argv[5], sys.argv[6], sys.argv[7])