tccli 3.0.1154.1__py2.py3-none-any.whl → 3.0.1155.1__py2.py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- tccli/__init__.py +1 -1
- tccli/services/ccc/v20200210/api.json +1 -1
- tccli/services/cdb/v20170320/api.json +1 -1
- tccli/services/ckafka/ckafka_client.py +65 -12
- tccli/services/ckafka/v20190819/api.json +134 -0
- tccli/services/ckafka/v20190819/examples.json +8 -0
- tccli/services/cvm/cvm_client.py +110 -4
- tccli/services/cvm/v20170312/api.json +95 -0
- tccli/services/cvm/v20170312/examples.json +16 -0
- tccli/services/cynosdb/cynosdb_client.py +110 -4
- tccli/services/cynosdb/v20190107/api.json +192 -0
- tccli/services/cynosdb/v20190107/examples.json +16 -0
- tccli/services/es/v20180416/api.json +36 -0
- tccli/services/ess/v20201111/api.json +10 -10
- tccli/services/essbasic/v20210526/api.json +16 -16
- tccli/services/essbasic/v20210526/examples.json +3 -3
- tccli/services/hunyuan/v20230901/api.json +77 -2
- tccli/services/mna/mna_client.py +322 -4
- tccli/services/mna/v20210119/api.json +435 -0
- tccli/services/mna/v20210119/examples.json +48 -0
- tccli/services/vpc/v20170312/api.json +10 -10
- {tccli-3.0.1154.1.dist-info → tccli-3.0.1155.1.dist-info}/METADATA +2 -2
- {tccli-3.0.1154.1.dist-info → tccli-3.0.1155.1.dist-info}/RECORD +26 -26
- {tccli-3.0.1154.1.dist-info → tccli-3.0.1155.1.dist-info}/WHEEL +0 -0
- {tccli-3.0.1154.1.dist-info → tccli-3.0.1155.1.dist-info}/entry_points.txt +0 -0
- {tccli-3.0.1154.1.dist-info → tccli-3.0.1155.1.dist-info}/license_files/LICENSE +0 -0
tccli/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = '3.0.
|
1
|
+
__version__ = '3.0.1155.1'
|
@@ -6172,7 +6172,7 @@
|
|
6172
6172
|
},
|
6173
6173
|
{
|
6174
6174
|
"disabled": false,
|
6175
|
-
"document": "是否只预检此次请求。true:发送检查请求,不会创建实例。检查项包括是否填写了必需参数,请求格式,业务限制等。如果检查不通过,则返回对应错误码;如果检查通过,则返回RequestId
|
6175
|
+
"document": "是否只预检此次请求。true:发送检查请求,不会创建实例。检查项包括是否填写了必需参数,请求格式,业务限制等。如果检查不通过,则返回对应错误码;如果检查通过,则返回 RequestId。false:发送正常请求,通过检查后直接创建实例。\n默认为 false。",
|
6176
6176
|
"example": "true",
|
6177
6177
|
"member": "bool",
|
6178
6178
|
"name": "DryRun",
|
@@ -797,7 +797,7 @@ def doDescribeDatahubGroupOffsets(args, parsed_globals):
|
|
797
797
|
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
798
798
|
|
799
799
|
|
800
|
-
def
|
800
|
+
def doDescribeDatahubTask(args, parsed_globals):
|
801
801
|
g_param = parse_global_arg(parsed_globals)
|
802
802
|
|
803
803
|
if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
|
@@ -826,11 +826,11 @@ def doCreateCdcCluster(args, parsed_globals):
|
|
826
826
|
client = mod.CkafkaClient(cred, g_param[OptionsDefine.Region], profile)
|
827
827
|
client._sdkVersion += ("_CLI_" + __version__)
|
828
828
|
models = MODELS_MAP[g_param[OptionsDefine.Version]]
|
829
|
-
model = models.
|
829
|
+
model = models.DescribeDatahubTaskRequest()
|
830
830
|
model.from_json_string(json.dumps(args))
|
831
831
|
start_time = time.time()
|
832
832
|
while True:
|
833
|
-
rsp = client.
|
833
|
+
rsp = client.DescribeDatahubTask(model)
|
834
834
|
result = rsp.to_json_string()
|
835
835
|
try:
|
836
836
|
json_obj = json.loads(result)
|
@@ -1629,6 +1629,58 @@ def doDeleteInstancePost(args, parsed_globals):
|
|
1629
1629
|
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
1630
1630
|
|
1631
1631
|
|
1632
|
+
def doModifyPassword(args, parsed_globals):
|
1633
|
+
g_param = parse_global_arg(parsed_globals)
|
1634
|
+
|
1635
|
+
if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
|
1636
|
+
cred = credential.CVMRoleCredential()
|
1637
|
+
elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
|
1638
|
+
cred = credential.STSAssumeRoleCredential(
|
1639
|
+
g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
|
1640
|
+
g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
|
1641
|
+
)
|
1642
|
+
elif os.getenv(OptionsDefine.ENV_TKE_REGION) and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
|
1643
|
+
cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
|
1644
|
+
else:
|
1645
|
+
cred = credential.Credential(
|
1646
|
+
g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
|
1647
|
+
)
|
1648
|
+
http_profile = HttpProfile(
|
1649
|
+
reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
|
1650
|
+
reqMethod="POST",
|
1651
|
+
endpoint=g_param[OptionsDefine.Endpoint],
|
1652
|
+
proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
|
1653
|
+
)
|
1654
|
+
profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
|
1655
|
+
if g_param[OptionsDefine.Language]:
|
1656
|
+
profile.language = g_param[OptionsDefine.Language]
|
1657
|
+
mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
|
1658
|
+
client = mod.CkafkaClient(cred, g_param[OptionsDefine.Region], profile)
|
1659
|
+
client._sdkVersion += ("_CLI_" + __version__)
|
1660
|
+
models = MODELS_MAP[g_param[OptionsDefine.Version]]
|
1661
|
+
model = models.ModifyPasswordRequest()
|
1662
|
+
model.from_json_string(json.dumps(args))
|
1663
|
+
start_time = time.time()
|
1664
|
+
while True:
|
1665
|
+
rsp = client.ModifyPassword(model)
|
1666
|
+
result = rsp.to_json_string()
|
1667
|
+
try:
|
1668
|
+
json_obj = json.loads(result)
|
1669
|
+
except TypeError as e:
|
1670
|
+
json_obj = json.loads(result.decode('utf-8')) # python3.3
|
1671
|
+
if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
|
1672
|
+
break
|
1673
|
+
cur_time = time.time()
|
1674
|
+
if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
|
1675
|
+
raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
|
1676
|
+
(g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
|
1677
|
+
search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
|
1678
|
+
else:
|
1679
|
+
print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
|
1680
|
+
time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
|
1681
|
+
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
1682
|
+
|
1683
|
+
|
1632
1684
|
def doDescribeACL(args, parsed_globals):
|
1633
1685
|
g_param = parse_global_arg(parsed_globals)
|
1634
1686
|
|
@@ -2253,7 +2305,7 @@ def doCreateConnectResource(args, parsed_globals):
|
|
2253
2305
|
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
2254
2306
|
|
2255
2307
|
|
2256
|
-
def
|
2308
|
+
def doModifyRoutineMaintenanceTask(args, parsed_globals):
|
2257
2309
|
g_param = parse_global_arg(parsed_globals)
|
2258
2310
|
|
2259
2311
|
if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
|
@@ -2282,11 +2334,11 @@ def doDescribeDatahubTask(args, parsed_globals):
|
|
2282
2334
|
client = mod.CkafkaClient(cred, g_param[OptionsDefine.Region], profile)
|
2283
2335
|
client._sdkVersion += ("_CLI_" + __version__)
|
2284
2336
|
models = MODELS_MAP[g_param[OptionsDefine.Version]]
|
2285
|
-
model = models.
|
2337
|
+
model = models.ModifyRoutineMaintenanceTaskRequest()
|
2286
2338
|
model.from_json_string(json.dumps(args))
|
2287
2339
|
start_time = time.time()
|
2288
2340
|
while True:
|
2289
|
-
rsp = client.
|
2341
|
+
rsp = client.ModifyRoutineMaintenanceTask(model)
|
2290
2342
|
result = rsp.to_json_string()
|
2291
2343
|
try:
|
2292
2344
|
json_obj = json.loads(result)
|
@@ -4177,7 +4229,7 @@ def doDeleteTopic(args, parsed_globals):
|
|
4177
4229
|
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
4178
4230
|
|
4179
4231
|
|
4180
|
-
def
|
4232
|
+
def doCreateCdcCluster(args, parsed_globals):
|
4181
4233
|
g_param = parse_global_arg(parsed_globals)
|
4182
4234
|
|
4183
4235
|
if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
|
@@ -4206,11 +4258,11 @@ def doModifyPassword(args, parsed_globals):
|
|
4206
4258
|
client = mod.CkafkaClient(cred, g_param[OptionsDefine.Region], profile)
|
4207
4259
|
client._sdkVersion += ("_CLI_" + __version__)
|
4208
4260
|
models = MODELS_MAP[g_param[OptionsDefine.Version]]
|
4209
|
-
model = models.
|
4261
|
+
model = models.CreateCdcClusterRequest()
|
4210
4262
|
model.from_json_string(json.dumps(args))
|
4211
4263
|
start_time = time.time()
|
4212
4264
|
while True:
|
4213
|
-
rsp = client.
|
4265
|
+
rsp = client.CreateCdcCluster(model)
|
4214
4266
|
result = rsp.to_json_string()
|
4215
4267
|
try:
|
4216
4268
|
json_obj = json.loads(result)
|
@@ -4359,7 +4411,7 @@ ACTION_MAP = {
|
|
4359
4411
|
"SendMessage": doSendMessage,
|
4360
4412
|
"DescribeUser": doDescribeUser,
|
4361
4413
|
"DescribeDatahubGroupOffsets": doDescribeDatahubGroupOffsets,
|
4362
|
-
"
|
4414
|
+
"DescribeDatahubTask": doDescribeDatahubTask,
|
4363
4415
|
"CreateTopicIpWhiteList": doCreateTopicIpWhiteList,
|
4364
4416
|
"DeleteConnectResource": doDeleteConnectResource,
|
4365
4417
|
"DescribeGroup": doDescribeGroup,
|
@@ -4375,6 +4427,7 @@ ACTION_MAP = {
|
|
4375
4427
|
"FetchMessageListByOffset": doFetchMessageListByOffset,
|
4376
4428
|
"CreateDatahubTopic": doCreateDatahubTopic,
|
4377
4429
|
"DeleteInstancePost": doDeleteInstancePost,
|
4430
|
+
"ModifyPassword": doModifyPassword,
|
4378
4431
|
"DescribeACL": doDescribeACL,
|
4379
4432
|
"DescribeDatahubTopics": doDescribeDatahubTopics,
|
4380
4433
|
"DescribeTopicDetail": doDescribeTopicDetail,
|
@@ -4387,7 +4440,7 @@ ACTION_MAP = {
|
|
4387
4440
|
"DescribeConsumerGroup": doDescribeConsumerGroup,
|
4388
4441
|
"DescribeTopicSubscribeGroup": doDescribeTopicSubscribeGroup,
|
4389
4442
|
"CreateConnectResource": doCreateConnectResource,
|
4390
|
-
"
|
4443
|
+
"ModifyRoutineMaintenanceTask": doModifyRoutineMaintenanceTask,
|
4391
4444
|
"CheckCdcCluster": doCheckCdcCluster,
|
4392
4445
|
"DescribeTopicFlowRanking": doDescribeTopicFlowRanking,
|
4393
4446
|
"DeleteRouteTriggerTime": doDeleteRouteTriggerTime,
|
@@ -4424,7 +4477,7 @@ ACTION_MAP = {
|
|
4424
4477
|
"DescribeConnectResources": doDescribeConnectResources,
|
4425
4478
|
"DescribeTopic": doDescribeTopic,
|
4426
4479
|
"DeleteTopic": doDeleteTopic,
|
4427
|
-
"
|
4480
|
+
"CreateCdcCluster": doCreateCdcCluster,
|
4428
4481
|
"InquireCkafkaPrice": doInquireCkafkaPrice,
|
4429
4482
|
"ModifyTopicAttributes": doModifyTopicAttributes,
|
4430
4483
|
|
@@ -560,6 +560,13 @@
|
|
560
560
|
"output": "ModifyPasswordResponse",
|
561
561
|
"status": "online"
|
562
562
|
},
|
563
|
+
"ModifyRoutineMaintenanceTask": {
|
564
|
+
"document": "设置自动化运维属性",
|
565
|
+
"input": "ModifyRoutineMaintenanceTaskRequest",
|
566
|
+
"name": "设置自动化运维属性",
|
567
|
+
"output": "ModifyRoutineMaintenanceTaskResponse",
|
568
|
+
"status": "online"
|
569
|
+
},
|
563
570
|
"ModifyTopicAttributes": {
|
564
571
|
"document": "本接口用于修改主题属性。",
|
565
572
|
"input": "ModifyTopicAttributesRequest",
|
@@ -13421,6 +13428,133 @@
|
|
13421
13428
|
],
|
13422
13429
|
"type": "object"
|
13423
13430
|
},
|
13431
|
+
"ModifyRoutineMaintenanceTaskRequest": {
|
13432
|
+
"document": "ModifyRoutineMaintenanceTask请求参数结构体",
|
13433
|
+
"members": [
|
13434
|
+
{
|
13435
|
+
"disabled": false,
|
13436
|
+
"document": "实例id",
|
13437
|
+
"example": "ckafka-pkbw2qkq",
|
13438
|
+
"member": "string",
|
13439
|
+
"name": "InstanceId",
|
13440
|
+
"required": true,
|
13441
|
+
"type": "string"
|
13442
|
+
},
|
13443
|
+
{
|
13444
|
+
"disabled": false,
|
13445
|
+
"document": "自动化运维类别",
|
13446
|
+
"example": "QUOTA",
|
13447
|
+
"member": "string",
|
13448
|
+
"name": "MaintenanceType",
|
13449
|
+
"required": true,
|
13450
|
+
"type": "string"
|
13451
|
+
},
|
13452
|
+
{
|
13453
|
+
"disabled": false,
|
13454
|
+
"document": "自动化运维子类别",
|
13455
|
+
"example": "INSTANCE_STORAGE_CAPACITY",
|
13456
|
+
"member": "string",
|
13457
|
+
"name": "MaintenanceSubtype",
|
13458
|
+
"required": true,
|
13459
|
+
"type": "string"
|
13460
|
+
},
|
13461
|
+
{
|
13462
|
+
"disabled": false,
|
13463
|
+
"document": "主题名称",
|
13464
|
+
"example": "test",
|
13465
|
+
"member": "string",
|
13466
|
+
"name": "TopicName",
|
13467
|
+
"required": false,
|
13468
|
+
"type": "string"
|
13469
|
+
},
|
13470
|
+
{
|
13471
|
+
"disabled": false,
|
13472
|
+
"document": "任务触发阈值",
|
13473
|
+
"example": "60",
|
13474
|
+
"member": "int64",
|
13475
|
+
"name": "ConfigureThreshold",
|
13476
|
+
"required": false,
|
13477
|
+
"type": "int"
|
13478
|
+
},
|
13479
|
+
{
|
13480
|
+
"disabled": false,
|
13481
|
+
"document": "任务调整步长",
|
13482
|
+
"example": "30",
|
13483
|
+
"member": "int64",
|
13484
|
+
"name": "ConfigureStepSize",
|
13485
|
+
"required": false,
|
13486
|
+
"type": "int"
|
13487
|
+
},
|
13488
|
+
{
|
13489
|
+
"disabled": false,
|
13490
|
+
"document": "任务调整上限",
|
13491
|
+
"example": "70",
|
13492
|
+
"member": "int64",
|
13493
|
+
"name": "ConfigureLimit",
|
13494
|
+
"required": false,
|
13495
|
+
"type": "int"
|
13496
|
+
},
|
13497
|
+
{
|
13498
|
+
"disabled": false,
|
13499
|
+
"document": "任务预期触发时间,存储从当日 0AM 开始偏移的秒数",
|
13500
|
+
"example": "9600",
|
13501
|
+
"member": "int64",
|
13502
|
+
"name": "PlannedTime",
|
13503
|
+
"required": false,
|
13504
|
+
"type": "int"
|
13505
|
+
},
|
13506
|
+
{
|
13507
|
+
"disabled": false,
|
13508
|
+
"document": "任务额外信息",
|
13509
|
+
"example": "{\"key\":\"value\"}",
|
13510
|
+
"member": "string",
|
13511
|
+
"name": "ExtraConfig",
|
13512
|
+
"required": false,
|
13513
|
+
"type": "string"
|
13514
|
+
},
|
13515
|
+
{
|
13516
|
+
"disabled": false,
|
13517
|
+
"document": "任务状态",
|
13518
|
+
"example": "1",
|
13519
|
+
"member": "int64",
|
13520
|
+
"name": "Status",
|
13521
|
+
"required": false,
|
13522
|
+
"type": "int"
|
13523
|
+
},
|
13524
|
+
{
|
13525
|
+
"disabled": false,
|
13526
|
+
"document": "执行week day",
|
13527
|
+
"example": "1,2,3,4,5,6,7",
|
13528
|
+
"member": "string",
|
13529
|
+
"name": "Week",
|
13530
|
+
"required": false,
|
13531
|
+
"type": "string"
|
13532
|
+
}
|
13533
|
+
],
|
13534
|
+
"type": "object"
|
13535
|
+
},
|
13536
|
+
"ModifyRoutineMaintenanceTaskResponse": {
|
13537
|
+
"document": "ModifyRoutineMaintenanceTask返回参数结构体",
|
13538
|
+
"members": [
|
13539
|
+
{
|
13540
|
+
"disabled": false,
|
13541
|
+
"document": "返回结果",
|
13542
|
+
"example": "无",
|
13543
|
+
"member": "JgwOperateResponse",
|
13544
|
+
"name": "Result",
|
13545
|
+
"output_required": true,
|
13546
|
+
"type": "object",
|
13547
|
+
"value_allowed_null": false
|
13548
|
+
},
|
13549
|
+
{
|
13550
|
+
"document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
|
13551
|
+
"member": "string",
|
13552
|
+
"name": "RequestId",
|
13553
|
+
"type": "string"
|
13554
|
+
}
|
13555
|
+
],
|
13556
|
+
"type": "object"
|
13557
|
+
},
|
13424
13558
|
"ModifyTopicAttributesRequest": {
|
13425
13559
|
"document": "ModifyTopicAttributes请求参数结构体",
|
13426
13560
|
"members": [
|
@@ -682,6 +682,14 @@
|
|
682
682
|
"title": "修改密码"
|
683
683
|
}
|
684
684
|
],
|
685
|
+
"ModifyRoutineMaintenanceTask": [
|
686
|
+
{
|
687
|
+
"document": "",
|
688
|
+
"input": "POST / HTTP/1.1\nHost: ckafka.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: ModifyRoutineMaintenanceTask\n<公共请求参数>\n\n{\n \"InstanceId\": \"ckafka-9jnejnb9\",\n \"MaintenanceType\": \"RE_BALANCE\",\n \"MaintenanceSubtype\": \"INSTANCE_PARTITION_RE_BALANCE\",\n \"PlannedTime\": 79200,\n \"Status\": 1,\n \"Week\": \"1,2,3,4,5,6,7\"\n}",
|
689
|
+
"output": "{\n \"Response\": {\n \"Result\": {\n \"ReturnCode\": \"abc\",\n \"ReturnMessage\": \"abc\",\n \"Data\": {\n \"FlowId\": 0,\n \"RouteDTO\": {\n \"RouteId\": 0\n }\n }\n },\n \"RequestId\": \"abc\"\n }\n}",
|
690
|
+
"title": "设置实例属性"
|
691
|
+
}
|
692
|
+
],
|
685
693
|
"ModifyTopicAttributes": [
|
686
694
|
{
|
687
695
|
"document": "",
|
tccli/services/cvm/cvm_client.py
CHANGED
@@ -1421,6 +1421,58 @@ def doDescribeInstancesModification(args, parsed_globals):
|
|
1421
1421
|
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
1422
1422
|
|
1423
1423
|
|
1424
|
+
def doCreateKeyPair(args, parsed_globals):
|
1425
|
+
g_param = parse_global_arg(parsed_globals)
|
1426
|
+
|
1427
|
+
if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
|
1428
|
+
cred = credential.CVMRoleCredential()
|
1429
|
+
elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
|
1430
|
+
cred = credential.STSAssumeRoleCredential(
|
1431
|
+
g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
|
1432
|
+
g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
|
1433
|
+
)
|
1434
|
+
elif os.getenv(OptionsDefine.ENV_TKE_REGION) and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
|
1435
|
+
cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
|
1436
|
+
else:
|
1437
|
+
cred = credential.Credential(
|
1438
|
+
g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
|
1439
|
+
)
|
1440
|
+
http_profile = HttpProfile(
|
1441
|
+
reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
|
1442
|
+
reqMethod="POST",
|
1443
|
+
endpoint=g_param[OptionsDefine.Endpoint],
|
1444
|
+
proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
|
1445
|
+
)
|
1446
|
+
profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
|
1447
|
+
if g_param[OptionsDefine.Language]:
|
1448
|
+
profile.language = g_param[OptionsDefine.Language]
|
1449
|
+
mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
|
1450
|
+
client = mod.CvmClient(cred, g_param[OptionsDefine.Region], profile)
|
1451
|
+
client._sdkVersion += ("_CLI_" + __version__)
|
1452
|
+
models = MODELS_MAP[g_param[OptionsDefine.Version]]
|
1453
|
+
model = models.CreateKeyPairRequest()
|
1454
|
+
model.from_json_string(json.dumps(args))
|
1455
|
+
start_time = time.time()
|
1456
|
+
while True:
|
1457
|
+
rsp = client.CreateKeyPair(model)
|
1458
|
+
result = rsp.to_json_string()
|
1459
|
+
try:
|
1460
|
+
json_obj = json.loads(result)
|
1461
|
+
except TypeError as e:
|
1462
|
+
json_obj = json.loads(result.decode('utf-8')) # python3.3
|
1463
|
+
if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
|
1464
|
+
break
|
1465
|
+
cur_time = time.time()
|
1466
|
+
if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
|
1467
|
+
raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
|
1468
|
+
(g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
|
1469
|
+
search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
|
1470
|
+
else:
|
1471
|
+
print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
|
1472
|
+
time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
|
1473
|
+
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
1474
|
+
|
1475
|
+
|
1424
1476
|
def doAssociateInstancesKeyPairs(args, parsed_globals):
|
1425
1477
|
g_param = parse_global_arg(parsed_globals)
|
1426
1478
|
|
@@ -2253,6 +2305,58 @@ def doDescribeHosts(args, parsed_globals):
|
|
2253
2305
|
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
2254
2306
|
|
2255
2307
|
|
2308
|
+
def doEnterRescueMode(args, parsed_globals):
|
2309
|
+
g_param = parse_global_arg(parsed_globals)
|
2310
|
+
|
2311
|
+
if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
|
2312
|
+
cred = credential.CVMRoleCredential()
|
2313
|
+
elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
|
2314
|
+
cred = credential.STSAssumeRoleCredential(
|
2315
|
+
g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
|
2316
|
+
g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
|
2317
|
+
)
|
2318
|
+
elif os.getenv(OptionsDefine.ENV_TKE_REGION) and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
|
2319
|
+
cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
|
2320
|
+
else:
|
2321
|
+
cred = credential.Credential(
|
2322
|
+
g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
|
2323
|
+
)
|
2324
|
+
http_profile = HttpProfile(
|
2325
|
+
reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
|
2326
|
+
reqMethod="POST",
|
2327
|
+
endpoint=g_param[OptionsDefine.Endpoint],
|
2328
|
+
proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
|
2329
|
+
)
|
2330
|
+
profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
|
2331
|
+
if g_param[OptionsDefine.Language]:
|
2332
|
+
profile.language = g_param[OptionsDefine.Language]
|
2333
|
+
mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
|
2334
|
+
client = mod.CvmClient(cred, g_param[OptionsDefine.Region], profile)
|
2335
|
+
client._sdkVersion += ("_CLI_" + __version__)
|
2336
|
+
models = MODELS_MAP[g_param[OptionsDefine.Version]]
|
2337
|
+
model = models.EnterRescueModeRequest()
|
2338
|
+
model.from_json_string(json.dumps(args))
|
2339
|
+
start_time = time.time()
|
2340
|
+
while True:
|
2341
|
+
rsp = client.EnterRescueMode(model)
|
2342
|
+
result = rsp.to_json_string()
|
2343
|
+
try:
|
2344
|
+
json_obj = json.loads(result)
|
2345
|
+
except TypeError as e:
|
2346
|
+
json_obj = json.loads(result.decode('utf-8')) # python3.3
|
2347
|
+
if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
|
2348
|
+
break
|
2349
|
+
cur_time = time.time()
|
2350
|
+
if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
|
2351
|
+
raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
|
2352
|
+
(g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
|
2353
|
+
search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
|
2354
|
+
else:
|
2355
|
+
print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
|
2356
|
+
time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
|
2357
|
+
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
2358
|
+
|
2359
|
+
|
2256
2360
|
def doDescribeInstancesStatus(args, parsed_globals):
|
2257
2361
|
g_param = parse_global_arg(parsed_globals)
|
2258
2362
|
|
@@ -2461,7 +2565,7 @@ def doModifyLaunchTemplateDefaultVersion(args, parsed_globals):
|
|
2461
2565
|
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
2462
2566
|
|
2463
2567
|
|
2464
|
-
def
|
2568
|
+
def doExitRescueMode(args, parsed_globals):
|
2465
2569
|
g_param = parse_global_arg(parsed_globals)
|
2466
2570
|
|
2467
2571
|
if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
|
@@ -2490,11 +2594,11 @@ def doCreateKeyPair(args, parsed_globals):
|
|
2490
2594
|
client = mod.CvmClient(cred, g_param[OptionsDefine.Region], profile)
|
2491
2595
|
client._sdkVersion += ("_CLI_" + __version__)
|
2492
2596
|
models = MODELS_MAP[g_param[OptionsDefine.Version]]
|
2493
|
-
model = models.
|
2597
|
+
model = models.ExitRescueModeRequest()
|
2494
2598
|
model.from_json_string(json.dumps(args))
|
2495
2599
|
start_time = time.time()
|
2496
2600
|
while True:
|
2497
|
-
rsp = client.
|
2601
|
+
rsp = client.ExitRescueMode(model)
|
2498
2602
|
result = rsp.to_json_string()
|
2499
2603
|
try:
|
2500
2604
|
json_obj = json.loads(result)
|
@@ -5099,6 +5203,7 @@ ACTION_MAP = {
|
|
5099
5203
|
"DescribeImageSharePermission": doDescribeImageSharePermission,
|
5100
5204
|
"DescribeRegions": doDescribeRegions,
|
5101
5205
|
"DescribeInstancesModification": doDescribeInstancesModification,
|
5206
|
+
"CreateKeyPair": doCreateKeyPair,
|
5102
5207
|
"AssociateInstancesKeyPairs": doAssociateInstancesKeyPairs,
|
5103
5208
|
"DisassociateInstancesKeyPairs": doDisassociateInstancesKeyPairs,
|
5104
5209
|
"DeleteInstancesActionTimer": doDeleteInstancesActionTimer,
|
@@ -5115,11 +5220,12 @@ ACTION_MAP = {
|
|
5115
5220
|
"RenewHosts": doRenewHosts,
|
5116
5221
|
"RepairTaskControl": doRepairTaskControl,
|
5117
5222
|
"DescribeHosts": doDescribeHosts,
|
5223
|
+
"EnterRescueMode": doEnterRescueMode,
|
5118
5224
|
"DescribeInstancesStatus": doDescribeInstancesStatus,
|
5119
5225
|
"ModifyImageSharePermission": doModifyImageSharePermission,
|
5120
5226
|
"ImportInstancesActionTimer": doImportInstancesActionTimer,
|
5121
5227
|
"ModifyLaunchTemplateDefaultVersion": doModifyLaunchTemplateDefaultVersion,
|
5122
|
-
"
|
5228
|
+
"ExitRescueMode": doExitRescueMode,
|
5123
5229
|
"DescribeInstancesActionTimer": doDescribeInstancesActionTimer,
|
5124
5230
|
"InquiryPriceResizeInstanceDisks": doInquiryPriceResizeInstanceDisks,
|
5125
5231
|
"InquiryPriceResetInstance": doInquiryPriceResetInstance,
|
@@ -357,6 +357,20 @@
|
|
357
357
|
"output": "DisassociateSecurityGroupsResponse",
|
358
358
|
"status": "online"
|
359
359
|
},
|
360
|
+
"EnterRescueMode": {
|
361
|
+
"document": "进入救援模式",
|
362
|
+
"input": "EnterRescueModeRequest",
|
363
|
+
"name": "进入救援模式",
|
364
|
+
"output": "EnterRescueModeResponse",
|
365
|
+
"status": "online"
|
366
|
+
},
|
367
|
+
"ExitRescueMode": {
|
368
|
+
"document": "退出救援模式",
|
369
|
+
"input": "ExitRescueModeRequest",
|
370
|
+
"name": "退出救援模式",
|
371
|
+
"output": "ExitRescueModeResponse",
|
372
|
+
"status": "online"
|
373
|
+
},
|
360
374
|
"ExportImages": {
|
361
375
|
"document": "提供导出自定义镜像到指定COS存储桶的能力",
|
362
376
|
"input": "ExportImagesRequest",
|
@@ -4702,6 +4716,87 @@
|
|
4702
4716
|
],
|
4703
4717
|
"usage": "both"
|
4704
4718
|
},
|
4719
|
+
"EnterRescueModeRequest": {
|
4720
|
+
"document": "EnterRescueMode请求参数结构体",
|
4721
|
+
"members": [
|
4722
|
+
{
|
4723
|
+
"disabled": false,
|
4724
|
+
"document": "需要进入救援模式的实例id",
|
4725
|
+
"example": "'ins-abcdefg'",
|
4726
|
+
"member": "string",
|
4727
|
+
"name": "InstanceId",
|
4728
|
+
"required": true,
|
4729
|
+
"type": "string"
|
4730
|
+
},
|
4731
|
+
{
|
4732
|
+
"disabled": false,
|
4733
|
+
"document": "救援模式下系统密码",
|
4734
|
+
"example": "'hello123456789'",
|
4735
|
+
"member": "string",
|
4736
|
+
"name": "Password",
|
4737
|
+
"required": true,
|
4738
|
+
"type": "string"
|
4739
|
+
},
|
4740
|
+
{
|
4741
|
+
"disabled": false,
|
4742
|
+
"document": "救援模式下系统用户名",
|
4743
|
+
"example": "'root'",
|
4744
|
+
"member": "string",
|
4745
|
+
"name": "Username",
|
4746
|
+
"required": false,
|
4747
|
+
"type": "string"
|
4748
|
+
},
|
4749
|
+
{
|
4750
|
+
"disabled": false,
|
4751
|
+
"document": "是否强制关机",
|
4752
|
+
"example": "False",
|
4753
|
+
"member": "bool",
|
4754
|
+
"name": "ForceStop",
|
4755
|
+
"required": false,
|
4756
|
+
"type": "bool"
|
4757
|
+
}
|
4758
|
+
],
|
4759
|
+
"type": "object"
|
4760
|
+
},
|
4761
|
+
"EnterRescueModeResponse": {
|
4762
|
+
"document": "EnterRescueMode返回参数结构体",
|
4763
|
+
"members": [
|
4764
|
+
{
|
4765
|
+
"document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
|
4766
|
+
"member": "string",
|
4767
|
+
"name": "RequestId",
|
4768
|
+
"type": "string"
|
4769
|
+
}
|
4770
|
+
],
|
4771
|
+
"type": "object"
|
4772
|
+
},
|
4773
|
+
"ExitRescueModeRequest": {
|
4774
|
+
"document": "ExitRescueMode请求参数结构体",
|
4775
|
+
"members": [
|
4776
|
+
{
|
4777
|
+
"disabled": false,
|
4778
|
+
"document": "退出救援模式的实例id",
|
4779
|
+
"example": "instance_Id",
|
4780
|
+
"member": "string",
|
4781
|
+
"name": "InstanceId",
|
4782
|
+
"required": true,
|
4783
|
+
"type": "string"
|
4784
|
+
}
|
4785
|
+
],
|
4786
|
+
"type": "object"
|
4787
|
+
},
|
4788
|
+
"ExitRescueModeResponse": {
|
4789
|
+
"document": "ExitRescueMode返回参数结构体",
|
4790
|
+
"members": [
|
4791
|
+
{
|
4792
|
+
"document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
|
4793
|
+
"member": "string",
|
4794
|
+
"name": "RequestId",
|
4795
|
+
"type": "string"
|
4796
|
+
}
|
4797
|
+
],
|
4798
|
+
"type": "object"
|
4799
|
+
},
|
4705
4800
|
"ExportImagesRequest": {
|
4706
4801
|
"document": "ExportImages请求参数结构体",
|
4707
4802
|
"members": [
|
@@ -438,6 +438,22 @@
|
|
438
438
|
"title": "解绑实例安全组"
|
439
439
|
}
|
440
440
|
],
|
441
|
+
"EnterRescueMode": [
|
442
|
+
{
|
443
|
+
"document": "",
|
444
|
+
"input": "POST / HTTP/1.1\nHost: cvm.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: EnterRescueMode\n<公共请求参数>\n\n{\n \"InstanceId\": \"instance_Id\",\n \"Password\": \"\\\"uu7797UUX\\\"\"\n}",
|
445
|
+
"output": "{\n \"Response\": {\n \"RequestId\": \"5920380e-277a-420a-a221-0caac3eb7159\"\n }\n}",
|
446
|
+
"title": "进入救援模式"
|
447
|
+
}
|
448
|
+
],
|
449
|
+
"ExitRescueMode": [
|
450
|
+
{
|
451
|
+
"document": "",
|
452
|
+
"input": "https://cvm.tencentcloudapi.com/?Action=ExitRescueMode\n&InstanceId=instance_Id\n&<公共请求参数>",
|
453
|
+
"output": "{\n \"Response\": {\n \"RequestId\": \"5920380e-277a-420a-a221-0caac3eb7159\"\n }\n}",
|
454
|
+
"title": "退出救援模式"
|
455
|
+
}
|
456
|
+
],
|
441
457
|
"ExportImages": [
|
442
458
|
{
|
443
459
|
"document": "导出自定义镜像",
|