diff --git a/tccli/__init__.py b/tccli/__init__.py
index 2f97edafb4..2b38a8bd3a 100644
--- a/tccli/__init__.py
+++ b/tccli/__init__.py
@@ -1 +1 @@
-__version__ = '3.0.12.1'
+__version__ = '3.0.13.1'
diff --git a/tccli/services/aai/aai_client.py b/tccli/services/aai/aai_client.py
index 9556da16fd..997710ddcd 100644
--- a/tccli/services/aai/aai_client.py
+++ b/tccli/services/aai/aai_client.py
@@ -29,9 +29,9 @@ def doSentenceRecognition(argv, arglist):
"SubServiceType": Utils.try_to_json(argv, "--SubServiceType"),
"EngSerViceType": Utils.try_to_json(argv, "--EngSerViceType"),
"SourceType": Utils.try_to_json(argv, "--SourceType"),
- "Url": Utils.try_to_json(argv, "--Url"),
"VoiceFormat": Utils.try_to_json(argv, "--VoiceFormat"),
"UsrAudioKey": Utils.try_to_json(argv, "--UsrAudioKey"),
+ "Url": Utils.try_to_json(argv, "--Url"),
"Data": Utils.try_to_json(argv, "--Data"),
"DataLen": Utils.try_to_json(argv, "--DataLen"),
@@ -59,6 +59,47 @@ def doSentenceRecognition(argv, arglist):
FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+def doTextToVoice(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("TextToVoice", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "Text": Utils.try_to_json(argv, "--Text"),
+ "SessionId": Utils.try_to_json(argv, "--SessionId"),
+ "ProjectId": Utils.try_to_json(argv, "--ProjectId"),
+ "ModelType": Utils.try_to_json(argv, "--ModelType"),
+ "Volume": Utils.try_to_json(argv, "--Volume"),
+ "Speed": Utils.try_to_json(argv, "--Speed"),
+ "VoiceType": Utils.try_to_json(argv, "--VoiceType"),
+ "PrimaryLanguage": Utils.try_to_json(argv, "--PrimaryLanguage"),
+ "SampleRate": Utils.try_to_json(argv, "--SampleRate"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.AaiClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.TextToVoiceRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.TextToVoice(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
CLIENT_MAP = {
"v20180522": aai_client_v20180522,
@@ -71,6 +112,7 @@ def doSentenceRecognition(argv, arglist):
ACTION_MAP = {
"SentenceRecognition": doSentenceRecognition,
+ "TextToVoice": doTextToVoice,
}
diff --git a/tccli/services/aai/v20180522/help.py b/tccli/services/aai/v20180522/help.py
index c8ef935fe6..e53cfc8d4e 100644
--- a/tccli/services/aai/v20180522/help.py
+++ b/tccli/services/aai/v20180522/help.py
@@ -19,10 +19,6 @@
"name": "SourceType",
"desc": "语音数据来源。0:语音 URL;1:语音数据(post body)。"
},
- {
- "name": "Url",
- "desc": "语音 URL,公网可下载。当 SourceType 值为 0 时须填写该字段,为 1 时不填;URL 的长度大于 0,小于 2048,需进行urlencode编码。"
- },
{
"name": "VoiceFormat",
"desc": "识别音频的音频格式(支持mp3,wav)。"
@@ -31,15 +27,60 @@
"name": "UsrAudioKey",
"desc": "用户端对此任务的唯一标识,用户自助生成,用于用户查找识别结果。"
},
+ {
+ "name": "Url",
+ "desc": "语音 URL,公网可下载。当 SourceType 值为 0 时须填写该字段,为 1 时不填;URL 的长度大于 0,小于 2048,需进行urlencode编码。音频时间长度要小于60s。"
+ },
{
"name": "Data",
- "desc": "语音数据,当SourceType 值为1时必须填写,为0可不写。要base64编码"
+ "desc": "语音数据,当SourceType 值为1时必须填写,为0可不写。要base64编码。音频数据要小于900k。"
},
{
"name": "DataLen",
"desc": "数据长度,当 SourceType 值为1时必须填写,为0可不写。"
}
],
- "desc": "识别60s内的短语音。"
+ "desc": "识别60s内的短语音,当音频放在请求body中传输时整个请求大小不能超过1M,当音频以url方式传输时,音频时长不可超过60s。"
+ },
+ "TextToVoice": {
+ "params": [
+ {
+ "name": "Text",
+ "desc": "合成语音的源文本"
+ },
+ {
+ "name": "SessionId",
+ "desc": "一次请求对应一个SessionId,会原样返回"
+ },
+ {
+ "name": "ProjectId",
+ "desc": "项目id"
+ },
+ {
+ "name": "ModelType",
+ "desc": "模型类型,1-默认模型"
+ },
+ {
+ "name": "Volume",
+ "desc": "音量大小,暂仅支持默认值1.0"
+ },
+ {
+ "name": "Speed",
+ "desc": "语速,暂仅支持默认值1.0"
+ },
+ {
+ "name": "VoiceType",
+ "desc": "音色,1-默认音色"
+ },
+ {
+ "name": "PrimaryLanguage",
+ "desc": "主语言类型
1-中文(包括粤语),最大300字符2-英文,最大支持600字符"
+ },
+ {
+ "name": "SampleRate",
+ "desc": "音频采样率:暂仅支持16k"
+ }
+ ],
+ "desc": "腾讯云语音合成技术(TTS)可以将任意文本转化为语音,实现让机器和应用张口说话。\n腾讯TTS技术可以应用到很多场景,比如,移动APP语音播报新闻;智能设备语音提醒;依靠网上现有节目或少量录音,快速合成明星语音,降低邀约成本;支持车载导航语音合成的个性化语音播报。\n内测期间免费使用。"
}
}
\ No newline at end of file
diff --git a/tccli/services/cbs/cbs_client.py b/tccli/services/cbs/cbs_client.py
index c64de258e0..0df0074055 100644
--- a/tccli/services/cbs/cbs_client.py
+++ b/tccli/services/cbs/cbs_client.py
@@ -26,11 +26,11 @@ def doCreateDisks(argv, arglist):
param = {
"DiskType": Utils.try_to_json(argv, "--DiskType"),
+ "DiskChargeType": Utils.try_to_json(argv, "--DiskChargeType"),
+ "Placement": Utils.try_to_json(argv, "--Placement"),
"DiskName": Utils.try_to_json(argv, "--DiskName"),
"DiskCount": Utils.try_to_json(argv, "--DiskCount"),
- "DiskChargeType": Utils.try_to_json(argv, "--DiskChargeType"),
"DiskChargePrepaid": Utils.try_to_json(argv, "--DiskChargePrepaid"),
- "Placement": Utils.try_to_json(argv, "--Placement"),
"DiskSize": Utils.try_to_json(argv, "--DiskSize"),
"SnapshotId": Utils.try_to_json(argv, "--SnapshotId"),
"ClientToken": Utils.try_to_json(argv, "--ClientToken"),
@@ -565,6 +565,7 @@ def doAttachDisks(argv, arglist):
param = {
"DiskIds": Utils.try_to_json(argv, "--DiskIds"),
"InstanceId": Utils.try_to_json(argv, "--InstanceId"),
+ "DeleteWithInstance": Utils.try_to_json(argv, "--DeleteWithInstance"),
}
cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
diff --git a/tccli/services/cbs/v20170312/help.py b/tccli/services/cbs/v20170312/help.py
index f11bd8160f..7142f1cd52 100644
--- a/tccli/services/cbs/v20170312/help.py
+++ b/tccli/services/cbs/v20170312/help.py
@@ -7,6 +7,14 @@
"name": "DiskType",
"desc": "硬盘介质类型。取值范围:
CLOUD_BASIC:表示普通云硬盘
CLOUD_PREMIUM:表示高性能云硬盘
CLOUD_SSD:表示SSD云硬盘。"
},
+ {
+ "name": "DiskChargeType",
+ "desc": "云硬盘计费类型。
PREPAID:预付费,即包年包月
POSTPAID_BY_HOUR:按小时后付费
各类型价格请参考云硬盘[价格总览](/document/product/362/2413)。"
+ },
+ {
+ "name": "Placement",
+ "desc": "实例所在的位置。通过该参数可以指定实例所属可用区,所属项目。若不指定项目,将在默认项目下进行创建。"
+ },
{
"name": "DiskName",
"desc": "云盘显示名称。不传则默认为“未命名”。最大长度不能超60个字节。"
@@ -15,17 +23,9 @@
"name": "DiskCount",
"desc": "创建云硬盘数量,不传则默认为1。单次请求最多可创建的云盘数有限制,具体参见[云硬盘使用限制](https://cloud.tencent.com/doc/product/362/5145)。"
},
- {
- "name": "DiskChargeType",
- "desc": "付费模式,目前只有预付费,即只能取值为PREPAID。"
- },
{
"name": "DiskChargePrepaid",
- "desc": "预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云盘的购买时长、是否设置自动续费等属性,创建预付费云盘该参数必传。"
- },
- {
- "name": "Placement",
- "desc": "实例所在的位置。通过该参数可以指定实例所属可用区,所属项目。若不指定项目,将在默认项目下进行创建。"
+ "desc": "预付费模式,即包年包月相关参数设置。通过该参数指定包年包月云盘的购买时长、是否设置自动续费等属性。
创建预付费云盘该参数必传,创建按小时后付费云盘无需传该参数。"
},
{
"name": "DiskSize",
@@ -92,7 +92,7 @@
"params": [
{
"name": "DiskChargePrepaid",
- "desc": "预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云盘的续费时长。在云盘与挂载的实例一起续费的场景下,可以指定参数CurInstanceDeadline,此时云盘会按对齐到实例续费后的到期时间来续费。"
+ "desc": "预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云盘的续费时长。
在云盘与挂载的实例一起续费的场景下,可以指定参数CurInstanceDeadline,此时云盘会按对齐到实例续费后的到期时间来续费。"
},
{
"name": "DiskId",
@@ -148,15 +148,15 @@
},
{
"name": "DiskSize",
- "desc": "云盘大小,取值范围: 普通云硬盘:10GB ~ 4000G;高性能云硬盘:50GB ~ 4000GB;SSD云硬盘:100GB ~ 4000GB,步长均为10GB。"
+ "desc": "云硬盘大小,单位为GB。云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。"
},
{
"name": "DiskChargeType",
- "desc": "付费模式,目前只有预付费,即只能取值为PREPAID。"
+ "desc": "云硬盘计费类型。
PREPAID:预付费,即包年包月
POSTPAID_BY_HOUR:按小时后付费"
},
{
"name": "DiskChargePrepaid",
- "desc": "预付费相关参数设置,通过该参数可以指定包年包月云盘的购买时长,预付费云盘该参数必传。"
+ "desc": "预付费模式,即包年包月相关参数设置。通过该参数指定包年包月云盘的购买时长、是否设置自动续费等属性。
创建预付费云盘该参数必传,创建按小时后付费云盘无需传该参数。"
},
{
"name": "DiskCount",
@@ -219,7 +219,7 @@
"desc": "需退还的云盘ID列表。"
}
],
- "desc": "本接口(TerminateDisks)用于退还云硬盘。\n\n* 当前仅支持退还包年包月云盘。\n* 支持批量操作,每次请求批量云硬盘的上限为50。如果批量云盘存在不允许操作的,请求会以特定错误码返回。"
+ "desc": "本接口(TerminateDisks)用于退还云硬盘。\n\n* 不再使用的云盘,可通过本接口主动退还。\n* 本接口支持退还预付费云盘和按小时后付费云盘。按小时后付费云盘可直接退还,预付费云盘需符合退还规则。\n* 支持批量操作,每次请求批量云硬盘的上限为50。如果批量云盘存在不允许操作的,请求会以特定错误码返回。"
},
"DescribeDisks": {
"params": [
@@ -229,7 +229,7 @@
},
{
"name": "Filters",
- "desc": "过滤条件。参数不支持同时指定`DiskIds`和`Filters`。
disk-usage - Array of String - 是否必填:否 -(过滤条件)按云盘类型过滤。 (SYSTEM_DISK:表示系统盘 | DATA_DISK:表示数据盘)
disk-charge-type - Array of String - 是否必填:否 -(过滤条件)按照云硬盘计费模式过滤。 (PREPAID:表示预付费,即包年包月 | POSTPAID_BY_HOUR:表示后付费,即按量计费。)
portable - Array of String - 是否必填:否 -(过滤条件)按是否为弹性云盘过滤。 (TRUE:表示弹性云盘 | FALSE:表示非弹性云盘。)
project-id - Array of Integer - 是否必填:否 -(过滤条件)按云硬盘所属项目ID过滤。
disk-id - Array of String - 是否必填:否 -(过滤条件)按照云硬盘ID过滤。云盘ID形如:`disk-11112222`。
disk-name - Array of String - 是否必填:否 -(过滤条件)按照云盘名称过滤。
disk-type - Array of String - 是否必填:否 -(过滤条件)按照云盘介质类型过滤。(CLOUD_BASIC:表示普通云硬盘 | CLOUD_PREMIUM:表示高性能云硬盘。| CLOUD_SSD:SSD表示SSD云硬盘。)
disk-state - Array of String - 是否必填:否 -(过滤条件)按照云盘状态过滤。(UNATTACHED:未挂载 | ATTACHING:挂载中 | ATTACHED:已挂载 | DETACHING:解挂中 | EXPANDING:扩容中 | ROLLBACKING:回滚中 | TORECYCLE:待回收。)
instance-id - Array of String - 是否必填:否 -(过滤条件)按照云盘挂载的云主机实例ID过滤。可根据此参数查询挂载在指定云主机下的云硬盘。
zone - Array of String - 是否必填:否 -(过滤条件)按照[可用区](/document/api/213/9452#zone)过滤。
instance-ip-address - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载云主机的内网或外网IP过滤。
instance-name - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载的实例名称过滤。"
+ "desc": "过滤条件。参数不支持同时指定`DiskIds`和`Filters`。
disk-usage - Array of String - 是否必填:否 -(过滤条件)按云盘类型过滤。 (SYSTEM_DISK:表示系统盘 | DATA_DISK:表示数据盘)
disk-charge-type - Array of String - 是否必填:否 -(过滤条件)按照云硬盘计费模式过滤。 (PREPAID:表示预付费,即包年包月 | POSTPAID_BY_HOUR:表示后付费,即按量计费。)
portable - Array of String - 是否必填:否 -(过滤条件)按是否为弹性云盘过滤。 (TRUE:表示弹性云盘 | FALSE:表示非弹性云盘。)
project-id - Array of Integer - 是否必填:否 -(过滤条件)按云硬盘所属项目ID过滤。
disk-id - Array of String - 是否必填:否 -(过滤条件)按照云硬盘ID过滤。云盘ID形如:`disk-11112222`。
disk-name - Array of String - 是否必填:否 -(过滤条件)按照云盘名称过滤。
disk-type - Array of String - 是否必填:否 -(过滤条件)按照云盘介质类型过滤。(CLOUD_BASIC:表示普通云硬盘 | CLOUD_PREMIUM:表示高性能云硬盘。| CLOUD_SSD:SSD表示SSD云硬盘。)
disk-state - Array of String - 是否必填:否 -(过滤条件)按照云盘状态过滤。(UNATTACHED:未挂载 | ATTACHING:挂载中 | ATTACHED:已挂载 | DETACHING:解挂中 | EXPANDING:扩容中 | ROLLBACKING:回滚中 | TORECYCLE:待回收。)
instance-id - Array of String - 是否必填:否 -(过滤条件)按照云盘挂载的云主机实例ID过滤。可根据此参数查询挂载在指定云主机下的云硬盘。
zone - Array of String - 是否必填:否 -(过滤条件)按照[可用区](/document/api/213/9452#zone)过滤。
instance-ip-address - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载云主机的内网或外网IP过滤。
instance-name - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载的实例名称过滤。
tag - Array of [Tag](/document/product/362/15669) - 是否必填:否 -(过滤条件)按云盘绑定的标签过滤。"
},
{
"name": "Offset",
@@ -305,6 +305,10 @@
{
"name": "InstanceId",
"desc": "云服务器实例ID。云盘将被挂载到此云服务器上,通过[DescribeInstances](/document/product/213/15728)接口查询。"
+ },
+ {
+ "name": "DeleteWithInstance",
+ "desc": "可选参数,不传该参数则仅执行挂载操作。传入`True`时,会在挂载成功后将云硬盘设置为随云主机销毁模式,仅对按量计费云硬盘有效。"
}
],
"desc": "本接口(AttachDisks)用于挂载云硬盘。\n\n* 支持批量操作,将多块云盘挂载到同一云主机。如果多个云盘存在不允许挂载的云盘,则操作不执行,以返回特定的错误码返回。\n* 本接口为异步接口,当挂载云盘的请求成功返回时,表示后台已发起挂载云盘的操作,可通过接口[DescribeDisks](/document/product/362/16315)来查询对应云盘的状态,如果云盘的状态由“ATTACHING”变为“ATTACHED”,则为挂载成功。"
diff --git a/tccli/services/cws/cws_client.py b/tccli/services/cws/cws_client.py
index 5a7fbfd55a..7a672739c0 100644
--- a/tccli/services/cws/cws_client.py
+++ b/tccli/services/cws/cws_client.py
@@ -18,6 +18,40 @@
from tccli.services.cws.v20180312 import help as v20180312_help
+def doCreateVulsReport(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("CreateVulsReport", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "SiteId": Utils.try_to_json(argv, "--SiteId"),
+ "MonitorId": Utils.try_to_json(argv, "--MonitorId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.CwsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.CreateVulsReportRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.CreateVulsReport(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
def doDescribeVuls(argv, arglist):
g_param = parse_global_arg(argv)
if "help" in argv:
@@ -370,6 +404,38 @@ def doModifyConfigAttribute(argv, arglist):
FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+def doDescribeVulsNumberTimeline(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeVulsNumberTimeline", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.CwsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeVulsNumberTimelineRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeVulsNumberTimeline(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
def doVerifySites(argv, arglist):
g_param = parse_global_arg(argv)
if "help" in argv:
@@ -507,6 +573,38 @@ def doDeleteSites(argv, arglist):
FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+def doDescribeVulsNumber(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeVulsNumber", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.CwsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeVulsNumberRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeVulsNumber(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
def doDescribeMonitors(argv, arglist):
g_param = parse_global_arg(argv)
if "help" in argv:
@@ -586,6 +684,7 @@ def doDescribeSiteQuota(argv, arglist):
}
ACTION_MAP = {
+ "CreateVulsReport": doCreateVulsReport,
"DescribeVuls": doDescribeVuls,
"ModifyMonitorAttribute": doModifyMonitorAttribute,
"CreateSitesScans": doCreateSitesScans,
@@ -596,10 +695,12 @@ def doDescribeSiteQuota(argv, arglist):
"DescribeSitesVerification": doDescribeSitesVerification,
"ModifySiteAttribute": doModifySiteAttribute,
"ModifyConfigAttribute": doModifyConfigAttribute,
+ "DescribeVulsNumberTimeline": doDescribeVulsNumberTimeline,
"VerifySites": doVerifySites,
"DeleteMonitors": doDeleteMonitors,
"CreateMonitors": doCreateMonitors,
"DeleteSites": doDeleteSites,
+ "DescribeVulsNumber": doDescribeVulsNumber,
"DescribeMonitors": doDescribeMonitors,
"DescribeSiteQuota": doDescribeSiteQuota,
diff --git a/tccli/services/cws/v20180312/help.py b/tccli/services/cws/v20180312/help.py
index d37f84313c..0f41a5cdc1 100644
--- a/tccli/services/cws/v20180312/help.py
+++ b/tccli/services/cws/v20180312/help.py
@@ -1,6 +1,19 @@
# -*- coding: utf-8 -*-
DESC = "cws-2018-03-12"
INFO = {
+ "CreateVulsReport": {
+ "params": [
+ {
+ "name": "SiteId",
+ "desc": "站点ID"
+ },
+ {
+ "name": "MonitorId",
+ "desc": "监控任务ID"
+ }
+ ],
+ "desc": "本接口 (CreateVulsReport) 用于生成漏洞报告并返回下载链接。"
+ },
"DescribeVuls": {
"params": [
{
@@ -80,19 +93,6 @@
],
"desc": "本接口(CreateSitesScans)用于新增一个或多个站点的单次扫描任务。"
},
- "DescribeConfig": {
- "params": [],
- "desc": "本接口 (DescribeConfig) 用于查询用户配置的详细信息。"
- },
- "CreateVulsMisinformation": {
- "params": [
- {
- "name": "VulIds",
- "desc": "漏洞ID列表"
- }
- ],
- "desc": "本接口(CreateVulsMisinformation)用于新增一个或多个漏洞误报信息。"
- },
"CreateSites": {
"params": [
{
@@ -106,6 +106,19 @@
],
"desc": "本接口(CreateSites)用于新增一个或多个站点。"
},
+ "CreateVulsMisinformation": {
+ "params": [
+ {
+ "name": "VulIds",
+ "desc": "漏洞ID列表"
+ }
+ ],
+ "desc": "本接口(CreateVulsMisinformation)用于新增一个或多个漏洞误报信息。"
+ },
+ "DescribeConfig": {
+ "params": [],
+ "desc": "本接口 (DescribeConfig) 用于查询用户配置的详细信息。"
+ },
"DescribeSites": {
"params": [
{
@@ -178,6 +191,10 @@
],
"desc": "本接口 (ModifyConfigAttribute) 用于修改用户配置的属性。"
},
+ "DescribeVulsNumberTimeline": {
+ "params": [],
+ "desc": "本接口 (DescribeVulsNumberTimeline) 用于查询漏洞数随时间变化统计信息。"
+ },
"DescribeMonitors": {
"params": [
{
@@ -246,6 +263,10 @@
],
"desc": "本接口 (DeleteSites) 用于删除站点。"
},
+ "DescribeVulsNumber": {
+ "params": [],
+ "desc": "本接口 (DescribeVulsNumber) 用于查询用户网站的漏洞总计数量。"
+ },
"VerifySites": {
"params": [
{
diff --git a/tccli/services/dts/__init__.py b/tccli/services/dts/__init__.py
new file mode 100644
index 0000000000..eb7ff5cb88
--- /dev/null
+++ b/tccli/services/dts/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+from tccli.services.dts.dts_client import register_arg
+from tccli.services.dts.dts_client import get_actions_info
+from tccli.services.dts.dts_client import AVAILABLE_VERSION_LIST
diff --git a/tccli/services/dts/dts_client.py b/tccli/services/dts/dts_client.py
new file mode 100644
index 0000000000..fe237728ea
--- /dev/null
+++ b/tccli/services/dts/dts_client.py
@@ -0,0 +1,504 @@
+# -*- coding: utf-8 -*-
+import os
+import json
+import tccli.options_define as OptionsDefine
+import tccli.format_output as FormatOutput
+from tccli.nice_command import NiceCommand
+import tccli.error_msg as ErrorMsg
+import tccli.help_template as HelpTemplate
+from tccli import __version__
+from tccli.utils import Utils
+from tccli.configure import Configure
+from tencentcloud.common import credential
+from tencentcloud.common.profile.http_profile import HttpProfile
+from tencentcloud.common.profile.client_profile import ClientProfile
+from tencentcloud.dts.v20180330 import dts_client as dts_client_v20180330
+from tencentcloud.dts.v20180330 import models as models_v20180330
+from tccli.services.dts import v20180330
+from tccli.services.dts.v20180330 import help as v20180330_help
+
+
+def doStartMigrateJob(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("StartMigrateJob", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "JobId": Utils.try_to_json(argv, "--JobId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.StartMigrateJobRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.StartMigrateJob(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doDescribeMigrateCheckJob(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeMigrateCheckJob", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "JobId": Utils.try_to_json(argv, "--JobId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeMigrateCheckJobRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeMigrateCheckJob(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doModifyMigrateJob(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("ModifyMigrateJob", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "JobId": Utils.try_to_json(argv, "--JobId"),
+ "JobName": Utils.try_to_json(argv, "--JobName"),
+ "MigrateOption": Utils.try_to_json(argv, "--MigrateOption"),
+ "SrcAccessType": Utils.try_to_json(argv, "--SrcAccessType"),
+ "SrcInfo": Utils.try_to_json(argv, "--SrcInfo"),
+ "DstAccessType": Utils.try_to_json(argv, "--DstAccessType"),
+ "DstInfo": Utils.try_to_json(argv, "--DstInfo"),
+ "DatabaseInfo": Utils.try_to_json(argv, "--DatabaseInfo"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.ModifyMigrateJobRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.ModifyMigrateJob(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doCreateMigrateJob(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("CreateMigrateJob", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "JobName": Utils.try_to_json(argv, "--JobName"),
+ "MigrateOption": Utils.try_to_json(argv, "--MigrateOption"),
+ "SrcDatabaseType": Utils.try_to_json(argv, "--SrcDatabaseType"),
+ "SrcAccessType": Utils.try_to_json(argv, "--SrcAccessType"),
+ "SrcInfo": Utils.try_to_json(argv, "--SrcInfo"),
+ "DstDatabaseType": Utils.try_to_json(argv, "--DstDatabaseType"),
+ "DstAccessType": Utils.try_to_json(argv, "--DstAccessType"),
+ "DstInfo": Utils.try_to_json(argv, "--DstInfo"),
+ "DatabaseInfo": Utils.try_to_json(argv, "--DatabaseInfo"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.CreateMigrateJobRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.CreateMigrateJob(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doDeleteMigrateJob(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DeleteMigrateJob", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "JobId": Utils.try_to_json(argv, "--JobId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DeleteMigrateJobRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DeleteMigrateJob(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doCreateMigrateCheckJob(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("CreateMigrateCheckJob", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "JobId": Utils.try_to_json(argv, "--JobId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.CreateMigrateCheckJobRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.CreateMigrateCheckJob(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doStopMigrateJob(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("StopMigrateJob", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "JobId": Utils.try_to_json(argv, "--JobId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.StopMigrateJobRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.StopMigrateJob(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doDescribeMigrateJobs(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeMigrateJobs", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "JobId": Utils.try_to_json(argv, "--JobId"),
+ "JobName": Utils.try_to_json(argv, "--JobName"),
+ "Order": Utils.try_to_json(argv, "--Order"),
+ "OrderSeq": Utils.try_to_json(argv, "--OrderSeq"),
+ "Offset": Utils.try_to_json(argv, "--Offset"),
+ "Limit": Utils.try_to_json(argv, "--Limit"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeMigrateJobsRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeMigrateJobs(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doCompleteMigrateJob(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("CompleteMigrateJob", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "JobId": Utils.try_to_json(argv, "--JobId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.DtsClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.CompleteMigrateJobRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.CompleteMigrateJob(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+CLIENT_MAP = {
+ "v20180330": dts_client_v20180330,
+
+}
+
+MODELS_MAP = {
+ "v20180330": models_v20180330,
+
+}
+
+ACTION_MAP = {
+ "StartMigrateJob": doStartMigrateJob,
+ "DescribeMigrateCheckJob": doDescribeMigrateCheckJob,
+ "ModifyMigrateJob": doModifyMigrateJob,
+ "CreateMigrateJob": doCreateMigrateJob,
+ "DeleteMigrateJob": doDeleteMigrateJob,
+ "CreateMigrateCheckJob": doCreateMigrateCheckJob,
+ "StopMigrateJob": doStopMigrateJob,
+ "DescribeMigrateJobs": doDescribeMigrateJobs,
+ "CompleteMigrateJob": doCompleteMigrateJob,
+
+}
+
+AVAILABLE_VERSION_LIST = [
+ v20180330.version,
+
+]
+AVAILABLE_VERSIONS = {
+ 'v' + v20180330.version.replace('-', ''): {"help": v20180330_help.INFO,"desc": v20180330_help.DESC},
+
+}
+
+
+def dts_action(argv, arglist):
+ if "help" in argv:
+ versions = sorted(AVAILABLE_VERSIONS.keys())
+ opt_v = "--" + OptionsDefine.Version
+ version = versions[-1]
+ if opt_v in argv:
+ version = 'v' + argv[opt_v].replace('-', '')
+ if version not in versions:
+ print("available versions: %s" % " ".join(AVAILABLE_VERSION_LIST))
+ return
+ action_str = ""
+ docs = AVAILABLE_VERSIONS[version]["help"]
+ desc = AVAILABLE_VERSIONS[version]["desc"]
+ for action, info in docs.items():
+ action_str += " %s\n" % action
+ action_str += Utils.split_str(" ", info["desc"], 120)
+ helpstr = HelpTemplate.SERVICE % {"name": "dts", "desc": desc, "actions": action_str}
+ print(helpstr)
+ else:
+ print(ErrorMsg.FEW_ARG)
+
+
+def version_merge():
+ help_merge = {}
+ for v in AVAILABLE_VERSIONS:
+ for action in AVAILABLE_VERSIONS[v]["help"]:
+ if action not in help_merge:
+ help_merge[action] = {}
+ help_merge[action]["cb"] = ACTION_MAP[action]
+ help_merge[action]["params"] = []
+ for param in AVAILABLE_VERSIONS[v]["help"][action]["params"]:
+ if param["name"] not in help_merge[action]["params"]:
+ help_merge[action]["params"].append(param["name"])
+ return help_merge
+
+
+def register_arg(command):
+ cmd = NiceCommand("dts", dts_action)
+ command.reg_cmd(cmd)
+ cmd.reg_opt("help", "bool")
+ cmd.reg_opt(OptionsDefine.Version, "string")
+ help_merge = version_merge()
+
+ for actionName, action in help_merge.items():
+ c = NiceCommand(actionName, action["cb"])
+ cmd.reg_cmd(c)
+ c.reg_opt("help", "bool")
+ for param in action["params"]:
+ c.reg_opt("--" + param, "string")
+
+ for opt in OptionsDefine.ACTION_GLOBAL_OPT:
+ stropt = "--" + opt
+ c.reg_opt(stropt, "string")
+
+
+def parse_global_arg(argv):
+ params = {}
+ for opt in OptionsDefine.ACTION_GLOBAL_OPT:
+ stropt = "--" + opt
+ if stropt in argv:
+ params[opt] = argv[stropt]
+ else:
+ params[opt] = None
+ if params[OptionsDefine.Version]:
+ params[OptionsDefine.Version] = "v" + params[OptionsDefine.Version].replace('-', '')
+
+ config_handle = Configure()
+ profile = config_handle.profile
+ if ("--" + OptionsDefine.Profile) in argv:
+ profile = argv[("--" + OptionsDefine.Profile)]
+
+ is_conexist, conf_path = config_handle._profile_existed(profile + "." + config_handle.configure)
+ is_creexist, cred_path = config_handle._profile_existed(profile + "." + config_handle.credential)
+ config = {}
+ cred = {}
+ if is_conexist:
+ config = config_handle._load_json_msg(conf_path)
+ if is_creexist:
+ cred = config_handle._load_json_msg(cred_path)
+
+ for param in params.keys():
+ if param == OptionsDefine.Version:
+ continue
+ if params[param] is None:
+ if param in [OptionsDefine.SecretKey, OptionsDefine.SecretId]:
+ if param in cred:
+ params[param] = cred[param]
+ else:
+ raise Exception("%s is invalid" % param)
+ else:
+ if param in config:
+ params[param] = config[param]
+ elif param == OptionsDefine.Region:
+ raise Exception("%s is invalid" % OptionsDefine.Region)
+ try:
+ if params[OptionsDefine.Version] is None:
+ version = config["dts"][OptionsDefine.Version]
+ params[OptionsDefine.Version] = "v" + version.replace('-', '')
+
+ if params[OptionsDefine.Endpoint] is None:
+ params[OptionsDefine.Endpoint] = config["dts"][OptionsDefine.Endpoint]
+ except Exception as err:
+ raise Exception("config file:%s error, %s" % (conf_path, str(err)))
+ versions = sorted(AVAILABLE_VERSIONS.keys())
+ if params[OptionsDefine.Version] not in versions:
+ raise Exception("available versions: %s" % " ".join(AVAILABLE_VERSION_LIST))
+ return params
+
+
+def show_help(action, version):
+ docs = AVAILABLE_VERSIONS[version]["help"][action]
+ desc = AVAILABLE_VERSIONS[version]["desc"]
+ docstr = ""
+ for param in docs["params"]:
+ docstr += " %s\n" % ("--" + param["name"])
+ docstr += Utils.split_str(" ", param["desc"], 120)
+
+ helpmsg = HelpTemplate.ACTION % {"name": action, "service": "dts", "desc": desc, "params": docstr}
+ print(helpmsg)
+
+
+def get_actions_info():
+ config = Configure()
+ new_version = max(AVAILABLE_VERSIONS.keys())
+ version = new_version
+ try:
+ profile = config._load_json_msg(os.path.join(config.cli_path, "default.configure"))
+ version = profile["dts"]["version"]
+ version = "v" + version.replace('-', '')
+ except Exception:
+ pass
+ if version not in AVAILABLE_VERSIONS.keys():
+ version = new_version
+ return AVAILABLE_VERSIONS[version]["help"]
diff --git a/tccli/services/dts/v20180330/__init__.py b/tccli/services/dts/v20180330/__init__.py
new file mode 100644
index 0000000000..16846fac1f
--- /dev/null
+++ b/tccli/services/dts/v20180330/__init__.py
@@ -0,0 +1 @@
+version = "2018-03-30"
\ No newline at end of file
diff --git a/tccli/services/dts/v20180330/help.py b/tccli/services/dts/v20180330/help.py
new file mode 100644
index 0000000000..7a743cca6f
--- /dev/null
+++ b/tccli/services/dts/v20180330/help.py
@@ -0,0 +1,165 @@
+# -*- coding: utf-8 -*-
+DESC = "dts-2018-03-30"
+INFO = {
+ "StartMigrateJob": {
+ "params": [
+ {
+ "name": "JobId",
+ "desc": "数据迁移任务ID"
+ }
+ ],
+ "desc": "非定时任务会在调用后立即开始迁移,定时任务则会开始倒计时。\n调用此接口前,请务必先校验数据迁移任务通过。"
+ },
+ "DescribeMigrateCheckJob": {
+ "params": [
+ {
+ "name": "JobId",
+ "desc": "数据迁移任务ID"
+ }
+ ],
+ "desc": "本接口用于创建校验后,获取校验的结果. 能查询到当前校验的状态和进度. \n若通过校验, 则可调用'StartMigrateJob' 开始迁移.\n若未通过校验, 则能查询到校验失败的原因. 请按照报错, 通过'ModifyMigrateJob'修改迁移配置或是调整源/目标实例的相关参数."
+ },
+ "ModifyMigrateJob": {
+ "params": [
+ {
+ "name": "JobId",
+ "desc": "待修改的数据迁移任务ID"
+ },
+ {
+ "name": "JobName",
+ "desc": "数据迁移任务名称"
+ },
+ {
+ "name": "MigrateOption",
+ "desc": "迁移任务配置选项"
+ },
+ {
+ "name": "SrcAccessType",
+ "desc": "源实例接入类型,值包括:extranet(外网),cvm(cvm自建实例),dcg(专线接入的实例),vpncloud(云vpn接入的实例),vpnselfbuild(自建vpn接入的实例),cdb(云上cdb实例)"
+ },
+ {
+ "name": "SrcInfo",
+ "desc": "源实例信息,具体内容跟迁移任务类型相关"
+ },
+ {
+ "name": "DstAccessType",
+ "desc": "目标实例接入类型,值包括:extranet(外网),cvm(cvm自建实例),dcg(专线接入的实例),vpncloud(云vpn接入的实例),vpnselfbuild(自建vpn接入的实例),cdb(云上cdb实例). 目前只支持cdb."
+ },
+ {
+ "name": "DstInfo",
+ "desc": "目标实例信息, 其中目标实例地域不允许修改."
+ },
+ {
+ "name": "DatabaseInfo",
+ "desc": "当选择'指定库表'迁移的时候, 需要设置待迁移的源数据库表信息,用符合json数组格式的字符串描述, 如下所例。\n\n对于database-table两级结构的数据库:\n[{\"Database\":\"db1\",\"Table\":[\"table1\",\"table2\"]},{\"Database\":\"db2\"}]\n对于database-schema-table三级结构:\n[{\"Database\":\"db1\",\"Schema\":\"s1\",\"Table\":[\"table1\",\"table2\"]},{\"Database\":\"db1\",\"Schema\":\"s2\",\"Table\":[\"table1\",\"table2\"]},{\"Database\":\"db2\",\"Schema\":\"s1\",\"Table\":[\"table1\",\"table2\"]},{\"Database\":\"db3\"},{\"Database\":\"db4\",\"Schema\":\"s1\"}]\n\n如果是'整个实例'的迁移模式,不需设置该字段"
+ }
+ ],
+ "desc": "修改数据迁移任务. \n当迁移任务处于下述状态时, 允许调用本接口: 迁移创建中, 创建完成, 校验成功, 校验失败, 迁移失败. \n源实例和目标实例类型不允许修改, 目标实例地域不允许修改。\n\n如果是金融区链路, 请使用域名: dts.ap-shenzhen-fsi.tencentcloudapi.com"
+ },
+ "CreateMigrateJob": {
+ "params": [
+ {
+ "name": "JobName",
+ "desc": "数据迁移任务名称"
+ },
+ {
+ "name": "MigrateOption",
+ "desc": "迁移任务配置选项"
+ },
+ {
+ "name": "SrcDatabaseType",
+ "desc": "源实例数据库类型:mysql,redis,mongodb"
+ },
+ {
+ "name": "SrcAccessType",
+ "desc": "源实例接入类型,值包括:extranet(外网),cvm(cvm自建实例),dcg(专线接入的实例),vpncloud(云vpn接入的实例),vpnselfbuild(自建vpn接入的实例),cdb(云上cdb实例)"
+ },
+ {
+ "name": "SrcInfo",
+ "desc": "源实例信息,具体内容跟迁移任务类型相关"
+ },
+ {
+ "name": "DstDatabaseType",
+ "desc": "目标实例数据库类型,mysql,redis,mongodb"
+ },
+ {
+ "name": "DstAccessType",
+ "desc": "目标实例接入类型,值包括:extranet(外网),cvm(cvm自建实例),dcg(专线接入的实例),vpncloud(云vpn接入的实例),vpnselfbuild(自建vpn接入的实例),cdb(云上cdb实例). 目前只支持cdb."
+ },
+ {
+ "name": "DstInfo",
+ "desc": "目标实例信息"
+ },
+ {
+ "name": "DatabaseInfo",
+ "desc": "需要迁移的源数据库表信息,用json格式的字符串描述。\n对于database-table两级结构的数据库:\n[{Database:db1,Table:[table1,table2]},{Database:db2}]\n对于database-schema-table三级结构:\n[{Database:db1,Schema:s1\nTable:[table1,table2]},{Database:db1,Schema:s2\nTable:[table1,table2]},{Database:db2,Schema:s1\nTable:[table1,table2]},{Database:db3},{Database:db4\nSchema:s1}]"
+ }
+ ],
+ "desc": "本接口用于创建数据迁移任务。\n\n如果是金融区链路, 请使用域名: dts.ap-shenzhen-fsi.tencentcloudapi.com"
+ },
+ "DeleteMigrateJob": {
+ "params": [
+ {
+ "name": "JobId",
+ "desc": "数据迁移任务ID"
+ }
+ ],
+ "desc": "删除数据迁移任务. 正在校验和正在迁移的任务不允许删除"
+ },
+ "CreateMigrateCheckJob": {
+ "params": [
+ {
+ "name": "JobId",
+ "desc": "数据迁移任务ID"
+ }
+ ],
+ "desc": "创建校验迁移任务\n在开始迁移前, 必须调用本接口创建校验, 且校验成功后才能开始迁移. 校验的结果可以通过DescribeMigrateCheckJob查看.\n校验成功后,迁移任务若有修改, 则必须重新创建校验并通过后, 才能开始迁移."
+ },
+ "StopMigrateJob": {
+ "params": [
+ {
+ "name": "JobId",
+ "desc": "数据迁移任务ID"
+ }
+ ],
+ "desc": "撤销数据迁移任务.\n在迁移过程中允许调用该接口撤销迁移, 撤销迁移的任务会失败."
+ },
+ "DescribeMigrateJobs": {
+ "params": [
+ {
+ "name": "JobId",
+ "desc": "数据迁移任务ID"
+ },
+ {
+ "name": "JobName",
+ "desc": "数据迁移任务名称"
+ },
+ {
+ "name": "Order",
+ "desc": "排序字段,可以取值为JobId、Status、JobName、MigrateType、RunMode、CreateTime"
+ },
+ {
+ "name": "OrderSeq",
+ "desc": "排序方式,升序为ASC,降序为DESC"
+ },
+ {
+ "name": "Offset",
+ "desc": "偏移量,默认为0"
+ },
+ {
+ "name": "Limit",
+ "desc": "返回实例数量,默认20,有效区间[1,100]"
+ }
+ ],
+ "desc": "查询数据迁移任务.\n如果是金融区链路, 请使用域名: https://dts.ap-shenzhen-fsi.tencentcloudapi.com"
+ },
+ "CompleteMigrateJob": {
+ "params": [
+ {
+ "name": "JobId",
+ "desc": "数据迁移任务ID"
+ }
+ ],
+ "desc": "完成数据迁移任务.\n选择采用增量迁移方式的任务, 需要在迁移进度进入准备完成阶段后, 调用本接口, 停止迁移增量数据.\n只有当正在迁移的任务, 进入了准备完成阶段, 才能调用本接口完成迁移."
+ }
+}
\ No newline at end of file
diff --git a/tccli/services/postgres/postgres_client.py b/tccli/services/postgres/postgres_client.py
index cdf90b84a2..7d229cdb37 100644
--- a/tccli/services/postgres/postgres_client.py
+++ b/tccli/services/postgres/postgres_client.py
@@ -18,20 +18,482 @@
from tccli.services.postgres.v20170312 import help as v20170312_help
+def doDescribeOrders(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeOrders", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DealNames": Utils.try_to_json(argv, "--DealNames"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeOrdersRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeOrders(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doDescribeDBBackups(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeDBBackups", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "Type": Utils.try_to_json(argv, "--Type"),
+ "StartTime": Utils.try_to_json(argv, "--StartTime"),
+ "EndTime": Utils.try_to_json(argv, "--EndTime"),
+ "Limit": Utils.try_to_json(argv, "--Limit"),
+ "Offset": Utils.try_to_json(argv, "--Offset"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeDBBackupsRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeDBBackups(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doResetAccountPassword(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("ResetAccountPassword", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "UserName": Utils.try_to_json(argv, "--UserName"),
+ "Password": Utils.try_to_json(argv, "--Password"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.ResetAccountPasswordRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.ResetAccountPassword(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doDescribeDBErrlogs(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeDBErrlogs", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "StartTime": Utils.try_to_json(argv, "--StartTime"),
+ "EndTime": Utils.try_to_json(argv, "--EndTime"),
+ "DatabaseName": Utils.try_to_json(argv, "--DatabaseName"),
+ "SearchKeys": Utils.try_to_json(argv, "--SearchKeys"),
+ "Limit": Utils.try_to_json(argv, "--Limit"),
+ "Offset": Utils.try_to_json(argv, "--Offset"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeDBErrlogsRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeDBErrlogs(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doRestartDBInstance(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("RestartDBInstance", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.RestartDBInstanceRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.RestartDBInstance(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
def doInquiryPriceCreateDBInstances(argv, arglist):
g_param = parse_global_arg(argv)
if "help" in argv:
- show_help("InquiryPriceCreateDBInstances", g_param[OptionsDefine.Version])
+ show_help("InquiryPriceCreateDBInstances", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "Zone": Utils.try_to_json(argv, "--Zone"),
+ "SpecCode": Utils.try_to_json(argv, "--SpecCode"),
+ "Storage": Utils.try_to_json(argv, "--Storage"),
+ "InstanceCount": Utils.try_to_json(argv, "--InstanceCount"),
+ "Period": Utils.try_to_json(argv, "--Period"),
+ "Pid": Utils.try_to_json(argv, "--Pid"),
+ "InstanceChargeType": Utils.try_to_json(argv, "--InstanceChargeType"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.InquiryPriceCreateDBInstancesRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.InquiryPriceCreateDBInstances(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doOpenDBExtranetAccess(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("OpenDBExtranetAccess", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.OpenDBExtranetAccessRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.OpenDBExtranetAccess(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doModifyDBInstancesProject(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("ModifyDBInstancesProject", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceIdSet": Utils.try_to_json(argv, "--DBInstanceIdSet"),
+ "ProjectId": Utils.try_to_json(argv, "--ProjectId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.ModifyDBInstancesProjectRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.ModifyDBInstancesProject(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doModifyAccountRemark(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("ModifyAccountRemark", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "UserName": Utils.try_to_json(argv, "--UserName"),
+ "Remark": Utils.try_to_json(argv, "--Remark"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.ModifyAccountRemarkRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.ModifyAccountRemark(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doDescribeDBXlogs(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeDBXlogs", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "StartTime": Utils.try_to_json(argv, "--StartTime"),
+ "EndTime": Utils.try_to_json(argv, "--EndTime"),
+ "Offset": Utils.try_to_json(argv, "--Offset"),
+ "Limit": Utils.try_to_json(argv, "--Limit"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeDBXlogsRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeDBXlogs(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doSetAutoRenewFlag(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("SetAutoRenewFlag", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceIdSet": Utils.try_to_json(argv, "--DBInstanceIdSet"),
+ "AutoRenewFlag": Utils.try_to_json(argv, "--AutoRenewFlag"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.SetAutoRenewFlagRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.SetAutoRenewFlag(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doDescribeDBInstanceAttribute(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeDBInstanceAttribute", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeDBInstanceAttributeRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeDBInstanceAttribute(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doModifyDBInstanceName(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("ModifyDBInstanceName", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "InstanceName": Utils.try_to_json(argv, "--InstanceName"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.ModifyDBInstanceNameRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.ModifyDBInstanceName(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doCreateDBInstances(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("CreateDBInstances", g_param[OptionsDefine.Version])
return
param = {
- "Zone": Utils.try_to_json(argv, "--Zone"),
"SpecCode": Utils.try_to_json(argv, "--SpecCode"),
+ "DBVersion": Utils.try_to_json(argv, "--DBVersion"),
"Storage": Utils.try_to_json(argv, "--Storage"),
"InstanceCount": Utils.try_to_json(argv, "--InstanceCount"),
"Period": Utils.try_to_json(argv, "--Period"),
- "Pid": Utils.try_to_json(argv, "--Pid"),
+ "Zone": Utils.try_to_json(argv, "--Zone"),
+ "ProjectId": Utils.try_to_json(argv, "--ProjectId"),
"InstanceChargeType": Utils.try_to_json(argv, "--InstanceChargeType"),
+ "AutoVoucher": Utils.try_to_json(argv, "--AutoVoucher"),
+ "VoucherIds": Utils.try_to_json(argv, "--VoucherIds"),
+ "VpcId": Utils.try_to_json(argv, "--VpcId"),
+ "SubnetId": Utils.try_to_json(argv, "--SubnetId"),
}
cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
@@ -45,9 +507,112 @@ def doInquiryPriceCreateDBInstances(argv, arglist):
client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
client._sdkVersion += ("_CLI_" + __version__)
models = MODELS_MAP[g_param[OptionsDefine.Version]]
- model = models.InquiryPriceCreateDBInstancesRequest()
+ model = models.CreateDBInstancesRequest()
model.from_json_string(json.dumps(param))
- rsp = client.InquiryPriceCreateDBInstances(model)
+ rsp = client.CreateDBInstances(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doRenewInstance(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("RenewInstance", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "Period": Utils.try_to_json(argv, "--Period"),
+ "AutoVoucher": Utils.try_to_json(argv, "--AutoVoucher"),
+ "VoucherIds": Utils.try_to_json(argv, "--VoucherIds"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.RenewInstanceRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.RenewInstance(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doDescribeDBInstances(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeDBInstances", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "Filters": Utils.try_to_json(argv, "--Filters"),
+ "Limit": Utils.try_to_json(argv, "--Limit"),
+ "Offset": Utils.try_to_json(argv, "--Offset"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeDBInstancesRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeDBInstances(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doDescribeZones(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeZones", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeZonesRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeZones(model)
result = rsp.to_json_string()
jsonobj = None
try:
@@ -93,6 +658,42 @@ def doInitDBInstances(argv, arglist):
FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+def doInquiryPriceUpgradeDBInstance(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("InquiryPriceUpgradeDBInstance", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "Storage": Utils.try_to_json(argv, "--Storage"),
+ "Memory": Utils.try_to_json(argv, "--Memory"),
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "InstanceChargeType": Utils.try_to_json(argv, "--InstanceChargeType"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.InquiryPriceUpgradeDBInstanceRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.InquiryPriceUpgradeDBInstance(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
def doDescribeRegions(argv, arglist):
g_param = parse_global_arg(argv)
if "help" in argv:
@@ -125,14 +726,15 @@ def doDescribeRegions(argv, arglist):
FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
-def doDescribeDBInstanceAttribute(argv, arglist):
+def doInquiryPriceRenewDBInstance(argv, arglist):
g_param = parse_global_arg(argv)
if "help" in argv:
- show_help("DescribeDBInstanceAttribute", g_param[OptionsDefine.Version])
+ show_help("InquiryPriceRenewDBInstance", g_param[OptionsDefine.Version])
return
param = {
"DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "Period": Utils.try_to_json(argv, "--Period"),
}
cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
@@ -146,9 +748,9 @@ def doDescribeDBInstanceAttribute(argv, arglist):
client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
client._sdkVersion += ("_CLI_" + __version__)
models = MODELS_MAP[g_param[OptionsDefine.Version]]
- model = models.DescribeDBInstanceAttributeRequest()
+ model = models.InquiryPriceRenewDBInstanceRequest()
model.from_json_string(json.dumps(param))
- rsp = client.DescribeDBInstanceAttribute(model)
+ rsp = client.InquiryPriceRenewDBInstance(model)
result = rsp.to_json_string()
jsonobj = None
try:
@@ -158,25 +760,14 @@ def doDescribeDBInstanceAttribute(argv, arglist):
FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
-def doCreateDBInstances(argv, arglist):
+def doCloseDBExtranetAccess(argv, arglist):
g_param = parse_global_arg(argv)
if "help" in argv:
- show_help("CreateDBInstances", g_param[OptionsDefine.Version])
+ show_help("CloseDBExtranetAccess", g_param[OptionsDefine.Version])
return
param = {
- "ProjectId": Utils.try_to_json(argv, "--ProjectId"),
- "SpecCode": Utils.try_to_json(argv, "--SpecCode"),
- "DBVersion": Utils.try_to_json(argv, "--DBVersion"),
- "Storage": Utils.try_to_json(argv, "--Storage"),
- "InstanceCount": Utils.try_to_json(argv, "--InstanceCount"),
- "Period": Utils.try_to_json(argv, "--Period"),
- "InstanceChargeType": Utils.try_to_json(argv, "--InstanceChargeType"),
- "AutoVoucher": Utils.try_to_json(argv, "--AutoVoucher"),
- "VoucherIds": Utils.try_to_json(argv, "--VoucherIds"),
- "VpcId": Utils.try_to_json(argv, "--VpcId"),
- "SubnetId": Utils.try_to_json(argv, "--SubnetId"),
- "Zone": Utils.try_to_json(argv, "--Zone"),
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
}
cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
@@ -190,9 +781,9 @@ def doCreateDBInstances(argv, arglist):
client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
client._sdkVersion += ("_CLI_" + __version__)
models = MODELS_MAP[g_param[OptionsDefine.Version]]
- model = models.CreateDBInstancesRequest()
+ model = models.CloseDBExtranetAccessRequest()
model.from_json_string(json.dumps(param))
- rsp = client.CreateDBInstances(model)
+ rsp = client.CloseDBExtranetAccess(model)
result = rsp.to_json_string()
jsonobj = None
try:
@@ -202,14 +793,18 @@ def doCreateDBInstances(argv, arglist):
FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
-def doDescribeProductConfig(argv, arglist):
+def doDescribeAccounts(argv, arglist):
g_param = parse_global_arg(argv)
if "help" in argv:
- show_help("DescribeProductConfig", g_param[OptionsDefine.Version])
+ show_help("DescribeAccounts", g_param[OptionsDefine.Version])
return
param = {
- "Zone": Utils.try_to_json(argv, "--Zone"),
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "Limit": Utils.try_to_json(argv, "--Limit"),
+ "Offset": Utils.try_to_json(argv, "--Offset"),
+ "OrderBy": Utils.try_to_json(argv, "--OrderBy"),
+ "OrderByType": Utils.try_to_json(argv, "--OrderByType"),
}
cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
@@ -223,9 +818,9 @@ def doDescribeProductConfig(argv, arglist):
client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
client._sdkVersion += ("_CLI_" + __version__)
models = MODELS_MAP[g_param[OptionsDefine.Version]]
- model = models.DescribeProductConfigRequest()
+ model = models.DescribeAccountsRequest()
model.from_json_string(json.dumps(param))
- rsp = client.DescribeProductConfig(model)
+ rsp = client.DescribeAccounts(model)
result = rsp.to_json_string()
jsonobj = None
try:
@@ -235,16 +830,18 @@ def doDescribeProductConfig(argv, arglist):
FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
-def doDescribeDBInstances(argv, arglist):
+def doUpgradeDBInstance(argv, arglist):
g_param = parse_global_arg(argv)
if "help" in argv:
- show_help("DescribeDBInstances", g_param[OptionsDefine.Version])
+ show_help("UpgradeDBInstance", g_param[OptionsDefine.Version])
return
param = {
- "PageSize": Utils.try_to_json(argv, "--PageSize"),
- "PageNumber": Utils.try_to_json(argv, "--PageNumber"),
- "Filters": Utils.try_to_json(argv, "--Filters"),
+ "Memory": Utils.try_to_json(argv, "--Memory"),
+ "Storage": Utils.try_to_json(argv, "--Storage"),
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "AutoVoucher": Utils.try_to_json(argv, "--AutoVoucher"),
+ "VoucherIds": Utils.try_to_json(argv, "--VoucherIds"),
}
cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
@@ -258,9 +855,9 @@ def doDescribeDBInstances(argv, arglist):
client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
client._sdkVersion += ("_CLI_" + __version__)
models = MODELS_MAP[g_param[OptionsDefine.Version]]
- model = models.DescribeDBInstancesRequest()
+ model = models.UpgradeDBInstanceRequest()
model.from_json_string(json.dumps(param))
- rsp = client.DescribeDBInstances(model)
+ rsp = client.UpgradeDBInstance(model)
result = rsp.to_json_string()
jsonobj = None
try:
@@ -270,13 +867,14 @@ def doDescribeDBInstances(argv, arglist):
FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
-def doDescribeZones(argv, arglist):
+def doDescribeProductConfig(argv, arglist):
g_param = parse_global_arg(argv)
if "help" in argv:
- show_help("DescribeZones", g_param[OptionsDefine.Version])
+ show_help("DescribeProductConfig", g_param[OptionsDefine.Version])
return
param = {
+ "Zone": Utils.try_to_json(argv, "--Zone"),
}
cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
@@ -290,9 +888,49 @@ def doDescribeZones(argv, arglist):
client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
client._sdkVersion += ("_CLI_" + __version__)
models = MODELS_MAP[g_param[OptionsDefine.Version]]
- model = models.DescribeZonesRequest()
+ model = models.DescribeProductConfigRequest()
model.from_json_string(json.dumps(param))
- rsp = client.DescribeZones(model)
+ rsp = client.DescribeProductConfig(model)
+ result = rsp.to_json_string()
+ jsonobj = None
+ try:
+ jsonobj = json.loads(result)
+ except TypeError as e:
+ jsonobj = json.loads(result.decode('utf-8')) # python3.3
+ FormatOutput.output("action", jsonobj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
+
+
+def doDescribeDBSlowlogs(argv, arglist):
+ g_param = parse_global_arg(argv)
+ if "help" in argv:
+ show_help("DescribeDBSlowlogs", g_param[OptionsDefine.Version])
+ return
+
+ param = {
+ "DBInstanceId": Utils.try_to_json(argv, "--DBInstanceId"),
+ "StartTime": Utils.try_to_json(argv, "--StartTime"),
+ "EndTime": Utils.try_to_json(argv, "--EndTime"),
+ "DatabaseName": Utils.try_to_json(argv, "--DatabaseName"),
+ "OrderBy": Utils.try_to_json(argv, "--OrderBy"),
+ "OrderByType": Utils.try_to_json(argv, "--OrderByType"),
+ "Limit": Utils.try_to_json(argv, "--Limit"),
+ "Offset": Utils.try_to_json(argv, "--Offset"),
+
+ }
+ cred = credential.Credential(g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey])
+ http_profile = HttpProfile(
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
+ reqMethod="POST",
+ endpoint=g_param[OptionsDefine.Endpoint]
+ )
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
+ client = mod.PostgresClient(cred, g_param[OptionsDefine.Region], profile)
+ client._sdkVersion += ("_CLI_" + __version__)
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
+ model = models.DescribeDBSlowlogsRequest()
+ model.from_json_string(json.dumps(param))
+ rsp = client.DescribeDBSlowlogs(model)
result = rsp.to_json_string()
jsonobj = None
try:
@@ -313,14 +951,32 @@ def doDescribeZones(argv, arglist):
}
ACTION_MAP = {
+ "DescribeOrders": doDescribeOrders,
+ "DescribeDBBackups": doDescribeDBBackups,
+ "ResetAccountPassword": doResetAccountPassword,
+ "DescribeDBErrlogs": doDescribeDBErrlogs,
+ "RestartDBInstance": doRestartDBInstance,
"InquiryPriceCreateDBInstances": doInquiryPriceCreateDBInstances,
- "InitDBInstances": doInitDBInstances,
- "DescribeRegions": doDescribeRegions,
+ "OpenDBExtranetAccess": doOpenDBExtranetAccess,
+ "ModifyDBInstancesProject": doModifyDBInstancesProject,
+ "ModifyAccountRemark": doModifyAccountRemark,
+ "DescribeDBXlogs": doDescribeDBXlogs,
+ "SetAutoRenewFlag": doSetAutoRenewFlag,
"DescribeDBInstanceAttribute": doDescribeDBInstanceAttribute,
+ "ModifyDBInstanceName": doModifyDBInstanceName,
"CreateDBInstances": doCreateDBInstances,
- "DescribeProductConfig": doDescribeProductConfig,
+ "RenewInstance": doRenewInstance,
"DescribeDBInstances": doDescribeDBInstances,
"DescribeZones": doDescribeZones,
+ "InitDBInstances": doInitDBInstances,
+ "InquiryPriceUpgradeDBInstance": doInquiryPriceUpgradeDBInstance,
+ "DescribeRegions": doDescribeRegions,
+ "InquiryPriceRenewDBInstance": doInquiryPriceRenewDBInstance,
+ "CloseDBExtranetAccess": doCloseDBExtranetAccess,
+ "DescribeAccounts": doDescribeAccounts,
+ "UpgradeDBInstance": doUpgradeDBInstance,
+ "DescribeProductConfig": doDescribeProductConfig,
+ "DescribeDBSlowlogs": doDescribeDBSlowlogs,
}
diff --git a/tccli/services/postgres/v20170312/help.py b/tccli/services/postgres/v20170312/help.py
index 59a94b198d..f16b25c777 100644
--- a/tccli/services/postgres/v20170312/help.py
+++ b/tccli/services/postgres/v20170312/help.py
@@ -1,50 +1,237 @@
# -*- coding: utf-8 -*-
DESC = "postgres-2017-03-12"
INFO = {
- "InitDBInstances": {
+ "DescribeOrders": {
"params": [
{
- "name": "DBInstanceIdSet",
- "desc": "实例ID集合。"
+ "name": "DealNames",
+ "desc": "订单名集合"
+ }
+ ],
+ "desc": "本接口(DescribeOrders)用于获取订单信息。"
+ },
+ "DescribeDBBackups": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-4wdeb0zv。"
},
{
- "name": "AdminName",
- "desc": "实例根账号用户名。"
+ "name": "Type",
+ "desc": "备份方式(1-全量)。目前只支持全量,取值为1。"
},
{
- "name": "AdminPassword",
- "desc": "实例根账号用户名对应的密码。"
+ "name": "StartTime",
+ "desc": "查询开始时间,形如2018-06-10 17:06:38,起始时间不得小于7天以前"
},
{
- "name": "Charset",
- "desc": "实例字符集,目前只支持:UTF8、LATIN1。"
+ "name": "EndTime",
+ "desc": "查询结束时间,形如2018-06-10 17:06:38"
+ },
+ {
+ "name": "Limit",
+ "desc": "备份列表分页返回,每页返回数量,默认为 20,最小为1,最大值为 100。"
+ },
+ {
+ "name": "Offset",
+ "desc": "返回结果中的第几页,从第0页开始。默认为0。"
}
],
- "desc": "本接口 (InitDBInstances) 用于初始化云数据库PostgreSQL实例。"
+ "desc": "本接口(DescribeDBBackups)用于查询实例备份列表。"
},
- "DescribeZones": {
- "params": [],
- "desc": "本接口 (DescribeZones) 用于查询支持的可用区信息。"
+ "ResetAccountPassword": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-4wdeb0zv"
+ },
+ {
+ "name": "UserName",
+ "desc": "实例账户名"
+ },
+ {
+ "name": "Password",
+ "desc": "UserName账户对应的新密码"
+ }
+ ],
+ "desc": "本接口(ResetAccountPassword)用于重置实例的账户密码。"
},
- "DescribeRegions": {
- "params": [],
- "desc": "本接口 (DescribeRegions) 用于查询售卖地域信息。"
+ "DescribeDBErrlogs": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-5bq3wfjd"
+ },
+ {
+ "name": "StartTime",
+ "desc": "查询起始时间,形如2018-01-01 00:00:00,起始时间不得小于7天以前"
+ },
+ {
+ "name": "EndTime",
+ "desc": "查询结束时间,形如2018-01-01 00:00:00"
+ },
+ {
+ "name": "DatabaseName",
+ "desc": "数据库名字"
+ },
+ {
+ "name": "SearchKeys",
+ "desc": "搜索关键字"
+ },
+ {
+ "name": "Limit",
+ "desc": "分页返回,每页返回的最大数量。取值为1-100"
+ },
+ {
+ "name": "Offset",
+ "desc": "分页返回,返回第几页的数据,从第0页开始计数"
+ }
+ ],
+ "desc": "本接口(DescribeDBErrlogs)用于获取错误日志。"
},
"DescribeDBInstanceAttribute": {
"params": [
{
"name": "DBInstanceId",
- "desc": "实例ID。"
+ "desc": "实例ID"
}
],
"desc": "本接口 (DescribeDBInstanceAttribute) 用于查询某个实例的详情信息。"
},
- "CreateDBInstances": {
+ "InquiryPriceCreateDBInstances": {
+ "params": [
+ {
+ "name": "Zone",
+ "desc": "可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。"
+ },
+ {
+ "name": "SpecCode",
+ "desc": "规格ID。该参数可以通过调用DescribeProductConfig接口的返回值中的SpecCode字段来获取。"
+ },
+ {
+ "name": "Storage",
+ "desc": "存储容量大小,单位:GB。"
+ },
+ {
+ "name": "InstanceCount",
+ "desc": "实例数量。目前最大数量不超过100,如需一次性创建更多实例,请联系客服支持。"
+ },
+ {
+ "name": "Period",
+ "desc": "购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值。"
+ },
+ {
+ "name": "Pid",
+ "desc": "计费ID。该参数可以通过调用DescribeProductConfig接口的返回值中的Pid字段来获取。"
+ },
+ {
+ "name": "InstanceChargeType",
+ "desc": "实例计费类型。目前只支持:PREPAID(预付费,即包年包月)。"
+ }
+ ],
+ "desc": "本接口 (InquiryPriceCreateDBInstances) 用于查询购买一个或多个实例的价格信息。"
+ },
+ "OpenDBExtranetAccess": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-hez4fh0v"
+ }
+ ],
+ "desc": "本接口(OpenDBExtranetAccess)用于开通外网。"
+ },
+ "ModifyDBInstancesProject": {
"params": [
+ {
+ "name": "DBInstanceIdSet",
+ "desc": "postgresql实例ID数组"
+ },
{
"name": "ProjectId",
- "desc": "项目ID。"
+ "desc": "postgresql实例所属新项目的ID"
+ }
+ ],
+ "desc": "本接口(ModifyDBInstancesProject)用于将实例转至其他项目。"
+ },
+ "ModifyAccountRemark": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-4wdeb0zv"
+ },
+ {
+ "name": "UserName",
+ "desc": "实例用户名"
},
+ {
+ "name": "Remark",
+ "desc": "用户UserName对应的新备注"
+ }
+ ],
+ "desc": "本接口(ModifyAccountRemark)用于修改帐号备注。"
+ },
+ "DescribeDBXlogs": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-4wdeb0zv。"
+ },
+ {
+ "name": "StartTime",
+ "desc": "查询开始时间,形如2018-06-10 17:06:38,起始时间不得小于7天以前"
+ },
+ {
+ "name": "EndTime",
+ "desc": "查询结束时间,形如2018-06-10 17:06:38"
+ },
+ {
+ "name": "Offset",
+ "desc": "分页返回,表示返回第几页的条目。从第0页开始计数。"
+ },
+ {
+ "name": "Limit",
+ "desc": "分页返回,表示每页有多少条目。取值为1-100。"
+ }
+ ],
+ "desc": "本接口(DescribeDBXlogs)用于获取实例Xlog列表。"
+ },
+ "SetAutoRenewFlag": {
+ "params": [
+ {
+ "name": "DBInstanceIdSet",
+ "desc": "实例ID数组"
+ },
+ {
+ "name": "AutoRenewFlag",
+ "desc": "续费标记。0-正常续费;1-自动续费;2-到期不续费"
+ }
+ ],
+ "desc": "本接口(SetAutoRenewFlag)用于设置自动续费。"
+ },
+ "RestartDBInstance": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-6r233v55"
+ }
+ ],
+ "desc": "本接口(RestartDBInstance)用于重启实例。"
+ },
+ "ModifyDBInstanceName": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "数据库实例ID,形如postgres-6fego161"
+ },
+ {
+ "name": "InstanceName",
+ "desc": "新的数据库实例名字"
+ }
+ ],
+ "desc": "本接口(ModifyDBInstanceName)用于修改postgresql实例名字。"
+ },
+ "CreateDBInstances": {
+ "params": [
{
"name": "SpecCode",
"desc": "售卖规格ID。该参数可以通过调用DescribeProductConfig的返回值中的SpecCode字段来获取。"
@@ -59,12 +246,20 @@
},
{
"name": "InstanceCount",
- "desc": "一次性购买的实例数量。"
+ "desc": "一次性购买的实例数量。取值1-100"
},
{
"name": "Period",
"desc": "购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值。"
},
+ {
+ "name": "Zone",
+ "desc": "可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。"
+ },
+ {
+ "name": "ProjectId",
+ "desc": "项目ID。"
+ },
{
"name": "InstanceChargeType",
"desc": "实例计费类型。目前只支持:PREPAID(预付费,即包年包月)。"
@@ -84,71 +279,214 @@
{
"name": "SubnetId",
"desc": "私有网络子网ID。"
- },
- {
- "name": "Zone",
- "desc": "可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。"
}
],
"desc": "本接口 (CreateDBInstances) 用于创建一个或者多个PostgreSQL实例。"
},
- "DescribeProductConfig": {
+ "RenewInstance": {
"params": [
{
- "name": "Zone",
- "desc": "可用区名称"
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-6fego161"
+ },
+ {
+ "name": "Period",
+ "desc": "续费多少个月"
+ },
+ {
+ "name": "AutoVoucher",
+ "desc": "是否自动使用代金券,1是,0否,默认不使用"
+ },
+ {
+ "name": "VoucherIds",
+ "desc": "代金券ID列表,目前仅支持指定一张代金券"
}
],
- "desc": "本接口 (DescribeProductConfig) 用于查询售卖规格配置。"
+ "desc": "本接口(RenewInstance)用于续费实例。"
},
"DescribeDBInstances": {
"params": [
{
- "name": "PageSize",
- "desc": "每页显示数量,默认返回10条。"
+ "name": "Filters",
+ "desc": "过滤条件,目前支持:db-instance-id、db-instance-name两种。"
},
{
- "name": "PageNumber",
- "desc": "分页序号,从1开始。"
+ "name": "Limit",
+ "desc": "每页显示数量,默认返回10条。"
},
{
- "name": "Filters",
- "desc": "过滤条件,目前支持:db-instance-id、db-instance-name两种。"
+ "name": "Offset",
+ "desc": "分页序号,从0开始。"
}
],
"desc": "本接口 (DescribeDBInstances) 用于查询一个或多个实例的详细信息。"
},
- "InquiryPriceCreateDBInstances": {
+ "DescribeZones": {
+ "params": [],
+ "desc": "本接口 (DescribeZones) 用于查询支持的可用区信息。"
+ },
+ "InitDBInstances": {
"params": [
{
- "name": "Zone",
- "desc": "可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。"
+ "name": "DBInstanceIdSet",
+ "desc": "实例ID集合。"
},
{
- "name": "SpecCode",
- "desc": "规格ID。该参数可以通过调用DescribeProductConfig接口的返回值中的SpecCode字段来获取。"
+ "name": "AdminName",
+ "desc": "实例根账号用户名。"
},
+ {
+ "name": "AdminPassword",
+ "desc": "实例根账号用户名对应的密码。"
+ },
+ {
+ "name": "Charset",
+ "desc": "实例字符集,目前只支持:UTF8、LATIN1。"
+ }
+ ],
+ "desc": "本接口 (InitDBInstances) 用于初始化云数据库PostgreSQL实例。"
+ },
+ "InquiryPriceUpgradeDBInstance": {
+ "params": [
{
"name": "Storage",
- "desc": "存储容量大小,单位:GB。"
+ "desc": "实例的磁盘大小,单位GB"
},
{
- "name": "InstanceCount",
- "desc": "实例数量。目前最大数量不超过100,如需一次性创建更多实例,请联系客服支持。"
+ "name": "Memory",
+ "desc": "实例的内存大小,单位GB"
+ },
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-hez4fh0v"
+ },
+ {
+ "name": "InstanceChargeType",
+ "desc": "实例计费类型,预付费或者后付费。PREPAID-预付费。目前只支持预付费。"
+ }
+ ],
+ "desc": "本接口(InquiryPriceUpgradeDBInstance)用于查询升级实例的价格。"
+ },
+ "DescribeRegions": {
+ "params": [],
+ "desc": "本接口 (DescribeRegions) 用于查询售卖地域信息。"
+ },
+ "InquiryPriceRenewDBInstance": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID"
},
{
"name": "Period",
- "desc": "购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值。"
+ "desc": "续费周期,按月计算,最大不超过48"
+ }
+ ],
+ "desc": "本接口(InquiryPriceRenewDBInstance)用于查询续费实例的价格。"
+ },
+ "CloseDBExtranetAccess": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-6r233v55"
+ }
+ ],
+ "desc": "本接口(CloseDBExtranetAccess)用于关闭实例外网链接。"
+ },
+ "DescribeAccounts": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-6fego161"
},
{
- "name": "Pid",
- "desc": "计费ID。该参数可以通过调用DescribeProductConfig接口的返回值中的Pid字段来获取。"
+ "name": "Limit",
+ "desc": "分页返回,每页最大返回数目,默认20,取值范围为1-100"
},
{
- "name": "InstanceChargeType",
- "desc": "实例计费类型。目前只支持:PREPAID(预付费,即包年包月)。"
+ "name": "Offset",
+ "desc": "分页返回,返回第几页的用户数据。页码从0开始计数"
+ },
+ {
+ "name": "OrderBy",
+ "desc": "返回数据按照创建时间或者用户名排序。取值只能为createTime或者name。createTime-按照创建时间排序;name-按照用户名排序"
+ },
+ {
+ "name": "OrderByType",
+ "desc": "返回结果是升序还是降序。取值只能为desc或者asc。desc-降序;asc-升序"
}
],
- "desc": "本接口 (InquiryPriceCreateDBInstances) 用于查询购买一个或多个实例的价格信息。"
+ "desc": "本接口(DescribeAccounts)用于获取实例用户列表。"
+ },
+ "UpgradeDBInstance": {
+ "params": [
+ {
+ "name": "Memory",
+ "desc": "升级后的实例内存大小,单位GB"
+ },
+ {
+ "name": "Storage",
+ "desc": "升级后的实例磁盘大小,单位GB"
+ },
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-lnp6j617"
+ },
+ {
+ "name": "AutoVoucher",
+ "desc": "是否自动使用代金券,1是,0否,默认不使用"
+ },
+ {
+ "name": "VoucherIds",
+ "desc": "代金券ID列表,目前仅支持指定一张代金券"
+ }
+ ],
+ "desc": "本接口(UpgradeDBInstance)用于升级实例。"
+ },
+ "DescribeProductConfig": {
+ "params": [
+ {
+ "name": "Zone",
+ "desc": "可用区名称"
+ }
+ ],
+ "desc": "本接口 (DescribeProductConfig) 用于查询售卖规格配置。"
+ },
+ "DescribeDBSlowlogs": {
+ "params": [
+ {
+ "name": "DBInstanceId",
+ "desc": "实例ID,形如postgres-lnp6j617"
+ },
+ {
+ "name": "StartTime",
+ "desc": "查询起始时间,形如2018-06-10 17:06:38,起始时间不得小于7天以前"
+ },
+ {
+ "name": "EndTime",
+ "desc": "查询结束时间,形如2018-06-10 17:06:38"
+ },
+ {
+ "name": "DatabaseName",
+ "desc": "数据库名字"
+ },
+ {
+ "name": "OrderBy",
+ "desc": "按照何种指标排序,取值为sum_calls或者sum_cost_time。sum_calls-总调用次数;sum_cost_time-总的花费时间"
+ },
+ {
+ "name": "OrderByType",
+ "desc": "排序规则。desc-降序;asc-升序"
+ },
+ {
+ "name": "Limit",
+ "desc": "分页返回结果,每页最大返回数量,取值为1-100,默认20"
+ },
+ {
+ "name": "Offset",
+ "desc": "分页返回结果,返回结果的第几页,从0开始计数"
+ }
+ ],
+ "desc": "本接口(DescribeDBSlowlogs)用于获取慢查询日志。"
}
}
\ No newline at end of file