@@ -5529,6 +5529,58 @@ def doCreateWorkGroup(args, parsed_globals):
55295529 FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
55305530
55315531
5532+ def doCreateTcIcebergTable(args, parsed_globals):
5533+ g_param = parse_global_arg(parsed_globals)
5534+
5535+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
5536+ cred = credential.CVMRoleCredential()
5537+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
5538+ cred = credential.STSAssumeRoleCredential(
5539+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
5540+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
5541+ )
5542+ 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):
5543+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
5544+ else:
5545+ cred = credential.Credential(
5546+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
5547+ )
5548+ http_profile = HttpProfile(
5549+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
5550+ reqMethod="POST",
5551+ endpoint=g_param[OptionsDefine.Endpoint],
5552+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
5553+ )
5554+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
5555+ if g_param[OptionsDefine.Language]:
5556+ profile.language = g_param[OptionsDefine.Language]
5557+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
5558+ client = mod.DlcClient(cred, g_param[OptionsDefine.Region], profile)
5559+ client._sdkVersion += ("_CLI_" + __version__)
5560+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
5561+ model = models.CreateTcIcebergTableRequest()
5562+ model.from_json_string(json.dumps(args))
5563+ start_time = time.time()
5564+ while True:
5565+ rsp = client.CreateTcIcebergTable(model)
5566+ result = rsp.to_json_string()
5567+ try:
5568+ json_obj = json.loads(result)
5569+ except TypeError as e:
5570+ json_obj = json.loads(result.decode('utf-8')) # python3.3
5571+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
5572+ break
5573+ cur_time = time.time()
5574+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
5575+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
5576+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
5577+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
5578+ else:
5579+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
5580+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
5581+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
5582+
5583+
55325584def doCreateCHDFSBindingProduct(args, parsed_globals):
55335585 g_param = parse_global_arg(parsed_globals)
55345586
@@ -9494,6 +9546,7 @@ def doUpdateDataEngine(args, parsed_globals):
94949546 "QueryTaskCostDetail": doQueryTaskCostDetail,
94959547 "DropDMSPartitions": doDropDMSPartitions,
94969548 "CreateWorkGroup": doCreateWorkGroup,
9549+ "CreateTcIcebergTable": doCreateTcIcebergTable,
94979550 "CreateCHDFSBindingProduct": doCreateCHDFSBindingProduct,
94989551 "QueryInternalTableWarehouse": doQueryInternalTableWarehouse,
94999552 "DescribeDatasourceConnection": doDescribeDatasourceConnection,
0 commit comments