Skip to content

Commit eb56dba

Browse files
author
liyan.90210
committed
feat auto update sdk
1 parent eb80fc8 commit eb56dba

24 files changed

+2509
-73
lines changed

Changelog

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
### Change log
22

3+
2025-12-22 Bumped to version v1.0.210
4+
- Updated apis for tls
5+
36
2025-12-11 Bumped to version v1.0.209
47
- Updated apis for vms/vod
58

volcengine/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# coding:utf-8
2-
VERSION='v1.0.209'
2+
VERSION='v1.0.210'
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# coding=utf-8
2+
from __future__ import absolute_import
3+
from __future__ import division
4+
from __future__ import print_function
5+
6+
from volcengine.tls.TLSService import TLSService
7+
from volcengine.tls.tls_requests import DescribeTraceInstanceRequest
8+
9+
10+
if __name__ == "__main__":
11+
# 初始化TLS服务
12+
endpoint = "your-endpoint"
13+
access_key_id = "your-access-key-id"
14+
access_key_secret = "your-access-key-secret"
15+
region = "your-region"
16+
17+
tls_service = TLSService(endpoint, access_key_id, access_key_secret, region)
18+
19+
# 创建DescribeTraceInstance请求
20+
trace_instance_id = "your-trace-instance-id"
21+
request = DescribeTraceInstanceRequest(trace_instance_id=trace_instance_id)
22+
23+
try:
24+
# 调用DescribeTraceInstance API
25+
response = tls_service.describe_trace_instance(request)
26+
27+
# 获取Trace实例信息
28+
trace_instance = response.get_trace_instance()
29+
30+
print(f"Trace Instance ID: {trace_instance.get_trace_instance_id()}")
31+
print(f"Trace Instance Name: {trace_instance.get_trace_instance_name()}")
32+
print(f"Trace Instance Status: {trace_instance.get_trace_instance_status()}")
33+
print(f"Project ID: {trace_instance.get_project_id()}")
34+
print(f"Project Name: {trace_instance.get_project_name()}")
35+
print(f"Description: {trace_instance.get_description()}")
36+
print(f"Create Time: {trace_instance.get_create_time()}")
37+
print(f"Modify Time: {trace_instance.get_modify_time()}")
38+
print(f"Trace Topic ID: {trace_instance.get_trace_topic_id()}")
39+
print(f"Trace Topic Name: {trace_instance.get_trace_topic_name()}")
40+
print(f"Dependency Topic ID: {trace_instance.get_dependency_topic_id()}")
41+
print(f"Dependency Topic Name: {trace_instance.get_dependency_topic_topic_name()}")
42+
43+
except Exception as e:
44+
print(f"Error: {e}")

volcengine/tls/TLSService.py

Lines changed: 104 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import hashlib
77
import threading
88
import random
9+
import time
910

1011
from volcengine.ApiInfo import ApiInfo
1112
from volcengine.Credentials import Credentials
@@ -14,7 +15,11 @@
1415
from volcengine.base.Service import Service
1516
from volcengine.tls.tls_requests import *
1617
from volcengine.tls.tls_responses import *
18+
from volcengine.tls.tls_requests import DescribeETLTaskRequest
19+
from volcengine.tls.tls_responses import DescribeETLTaskResponse
20+
from volcengine.tls.tls_responses import ModifyTraceInstanceResponse
1721
from volcengine.tls.tls_exception import TLSException
22+
from volcengine.tls.const import DELETE_TRACE_INSTANCE, DESCRIBE_TRACE_INSTANCE
1823
from volcengine.tls.util import get_logger
1924

2025
API_INFO = {
@@ -47,8 +52,10 @@
4752
CREATE_DOWNLOAD_TASK: ApiInfo(HTTP_POST, CREATE_DOWNLOAD_TASK, {}, {}, {}),
4853
DESCRIBE_DOWNLOAD_TASKS: ApiInfo(HTTP_GET, DESCRIBE_DOWNLOAD_TASKS, {}, {}, {}),
4954
DESCRIBE_DOWNLOAD_URL: ApiInfo(HTTP_GET, DESCRIBE_DOWNLOAD_URL, {}, {}, {}),
55+
CANCEL_DOWNLOAD_TASK: ApiInfo(HTTP_POST, CANCEL_DOWNLOAD_TASK, {}, {}, {}),
5056
# APIs of shards.
5157
DESCRIBE_SHARDS: ApiInfo(HTTP_GET, DESCRIBE_SHARDS, {}, {}, {}),
58+
MANUAL_SHARD_SPLIT: ApiInfo(HTTP_POST, MANUAL_SHARD_SPLIT, {}, {}, {}),
5259
# APIs of host groups.
5360
CREATE_HOST_GROUP: ApiInfo(HTTP_POST, CREATE_HOST_GROUP, {}, {}, {}),
5461
DELETE_HOST_GROUP: ApiInfo(HTTP_DELETE, DELETE_HOST_GROUP, {}, {}, {}),
@@ -98,13 +105,19 @@
98105
DELETE_IMPORT_TASK: ApiInfo(HTTP_DELETE, DELETE_IMPORT_TASK, {}, {}, {}),
99106
MODIFY_IMPORT_TASK: ApiInfo(HTTP_PUT, MODIFY_IMPORT_TASK, {}, {}, {}),
100107
DESCRIBE_IMPORT_TASKS: ApiInfo(HTTP_GET, DESCRIBE_IMPORT_TASKS, {}, {}, {}),
101-
DESCRIBE_IMPORT_TASK: ApiInfo(HTTP_GET, DESCRIBE_IMPORT_TASK, {}, {}, {}),
102-
# APIs of shipper.
103-
CREATE_SHIPPER: ApiInfo(HTTP_POST, CREATE_SHIPPER, {}, {}, {}),
104-
DELETE_SHIPPER: ApiInfo(HTTP_DELETE, DELETE_SHIPPER, {}, {}, {}),
105-
MODIFY_SHIPPER: ApiInfo(HTTP_PUT, MODIFY_SHIPPER, {}, {}, {}),
106108
DESCRIBE_SHIPPERS: ApiInfo(HTTP_GET, DESCRIBE_SHIPPERS, {}, {}, {}),
107-
DESCRIBE_SHIPPER: ApiInfo(HTTP_GET, DESCRIBE_SHIPPER, {}, {}, {})
109+
DESCRIBE_SHIPPER: ApiInfo(HTTP_GET, DESCRIBE_SHIPPER, {}, {}, {}),
110+
DESCRIBE_ETL_TASK: ApiInfo(HTTP_GET, DESCRIBE_ETL_TASK, {}, {}, {}),
111+
# APIs of account.
112+
ACTIVE_TLS_ACCOUNT: ApiInfo(HTTP_POST, ACTIVE_TLS_ACCOUNT, {}, {}, {}),
113+
# APIs of trace instance.
114+
CREATE_TRACE_INSTANCE: ApiInfo(HTTP_POST, CREATE_TRACE_INSTANCE, {}, {}, {}),
115+
DELETE_TRACE_INSTANCE: ApiInfo(HTTP_DELETE, DELETE_TRACE_INSTANCE, {}, {}, {}),
116+
MODIFY_TRACE_INSTANCE: ApiInfo(HTTP_PUT, MODIFY_TRACE_INSTANCE, {}, {}, {}),
117+
DESCRIBE_TRACE_INSTANCE: ApiInfo(HTTP_GET, DESCRIBE_TRACE_INSTANCE, {}, {}, {}),
118+
DESCRIBE_TRACE_INSTANCES: ApiInfo(HTTP_GET, DESCRIBE_TRACE_INSTANCES, {}, {}, {}),
119+
# APIs of account status.
120+
GET_ACCOUNT_STATUS: ApiInfo(HTTP_GET, GET_ACCOUNT_STATUS, {}, {}, {})
108121
}
109122

110123
HEADER_API_VERSION = "x-tls-apiversion"
@@ -383,19 +396,29 @@ def put_logs(self, put_logs_request: PutLogsRequest) -> PutLogsResponse:
383396

384397
def put_logs_v2(self, request: PutLogsV2Request) -> PutLogsResponse:
385398
log_group_list = LogGroupList()
386-
log_group = log_group_list.log_groups.add()
399+
log_group = log_group_list.log_groups.add() # pylint: disable=no-member
387400
if request.logs.source is not None:
388401
log_group.source = request.logs.source
389402
if request.logs.filename is not None:
390403
log_group.filename = request.logs.filename
404+
# 添加日志组标签
405+
if request.logs.log_tags:
406+
for key, value in request.logs.log_tags.items():
407+
log_tag = log_group.log_tags.add()
408+
log_tag.key = str(key)
409+
log_tag.value = str(value)
391410
for v in request.logs.logs:
392411
new_log = log_group.logs.add()
393412
new_log.time = v.time
413+
# 设置纳秒级时间戳(如果提供)
414+
if v.time_ns is not None:
415+
new_log.TimeNs = v.time_ns
394416
for key in v.log_dict.keys():
395417
log_content = new_log.contents.add()
396418
log_content.key = str(key)
397419
log_content.value = str(v.log_dict[key])
398-
put_logs_request = PutLogsRequest(request.topic_id, log_group_list, request.hash_key, request.compression)
420+
put_logs_request = PutLogsRequest(request.topic_id, log_group_list,
421+
request.hash_key, request.compression, request.content_md5)
399422
return self.put_logs(put_logs_request)
400423

401424
def describe_cursor(self, describe_cursor_request: DescribeCursorRequest) -> DescribeCursorResponse:
@@ -503,6 +526,13 @@ def describe_shards(self, describe_shards_request: DescribeShardsRequest) -> Des
503526

504527
return DescribeShardsResponse(response)
505528

529+
def manual_shard_split(self, manual_shard_split_request: ManualShardSplitRequest) -> ManualShardSplitResponse:
530+
if manual_shard_split_request.check_validation() is False:
531+
raise TLSException(error_code="InvalidArgument", error_message="Invalid request, please check it")
532+
response = self.__request(api=MANUAL_SHARD_SPLIT, body=manual_shard_split_request.get_api_input())
533+
534+
return ManualShardSplitResponse(response)
535+
506536
def create_host_group(self, create_host_group_request: CreateHostGroupRequest) -> CreateHostGroupResponse:
507537
if create_host_group_request.check_validation() is False:
508538
raise TLSException(error_code="InvalidArgument", error_message="Invalid request, please check it")
@@ -834,6 +864,72 @@ def describe_shipper(self, describe_shipper_request: DescribeShipperRequest) ->
834864
response = self.__request(api=DESCRIBE_SHIPPER, params=describe_shipper_request.get_api_input())
835865
return DescribeShipperResponse(response)
836866

867+
def describe_etl_task(self, describe_etl_task_request: DescribeETLTaskRequest) -> DescribeETLTaskResponse:
868+
if describe_etl_task_request.check_validation() is False:
869+
raise TLSException(error_code="InvalidArgument", error_message="Invalid request, please check it")
870+
response = self.__request(api=DESCRIBE_ETL_TASK, params=describe_etl_task_request.get_api_input())
871+
return DescribeETLTaskResponse(response)
872+
873+
def create_trace_instance(self, create_trace_instance_request: CreateTraceInstanceRequest) -> CreateTraceInstanceResponse:
874+
if create_trace_instance_request.check_validation() is False:
875+
raise TLSException(error_code="InvalidArgument", error_message="Invalid request, please check it")
876+
response = self.__request(api=CREATE_TRACE_INSTANCE, body=create_trace_instance_request.get_api_input())
877+
return CreateTraceInstanceResponse(response)
878+
879+
def delete_trace_instance(self, delete_trace_instance_request: DeleteTraceInstanceRequest) -> DeleteTraceInstanceResponse:
880+
if delete_trace_instance_request.check_validation() is False:
881+
raise TLSException(error_code="InvalidArgument", error_message="Invalid request, please check it")
882+
response = self.__request(api=DELETE_TRACE_INSTANCE, body=delete_trace_instance_request.get_api_input())
883+
return DeleteTraceInstanceResponse(response)
884+
885+
def describe_trace_instance(self, describe_trace_instance_request: DescribeTraceInstanceRequest) -> DescribeTraceInstanceResponse:
886+
if describe_trace_instance_request.check_validation() is False:
887+
raise TLSException(error_code="InvalidArgument", error_message="Invalid request, please check it")
888+
response = self.__request(api=DESCRIBE_TRACE_INSTANCE,
889+
params=describe_trace_instance_request.get_api_input())
890+
return DescribeTraceInstanceResponse(response)
891+
892+
def describe_trace_instances(self, describe_trace_instances_request: DescribeTraceInstancesRequest) -> DescribeTraceInstancesResponse:
893+
if describe_trace_instances_request.check_validation() is False:
894+
raise TLSException(error_code="InvalidArgument", error_message="Invalid request, please check it")
895+
response = self.__request(api=DESCRIBE_TRACE_INSTANCES,
896+
params=describe_trace_instances_request.get_api_input())
897+
return DescribeTraceInstancesResponse(response)
898+
899+
def active_tls_account(self) -> ActiveTlsAccountResponse:
900+
"""\
901+
激活TLS账户
902+
:return: ActiveTlsAccountResponse
903+
:rtype: ActiveTlsAccountResponse
904+
"""
905+
response = self.__request(api=ACTIVE_TLS_ACCOUNT, body={})
906+
return ActiveTlsAccountResponse(response)
907+
837908
def describe_shippers(self, describe_shippers_request: DescribeShippersRequest) -> DescribeShippersResponse:
838909
response = self.__request(api=DESCRIBE_SHIPPERS, params=describe_shippers_request.get_api_input())
839910
return DescribeShippersResponse(response)
911+
912+
def cancel_download_task(self, cancel_download_task_request) -> 'CancelDownloadTaskResponse':
913+
if not cancel_download_task_request.check_validation():
914+
raise TLSException(error_code="InvalidArgument", error_message="Invalid request, please check it")
915+
response = self.__request(api=CANCEL_DOWNLOAD_TASK, body=cancel_download_task_request.get_api_input())
916+
return CancelDownloadTaskResponse(response)
917+
918+
def modify_trace_instance(self, modify_trace_instance_request: ModifyTraceInstanceRequest) -> ModifyTraceInstanceResponse:
919+
"""修改 Trace 实例
920+
921+
:param modify_trace_instance_request: 修改请求
922+
:type modify_trace_instance_request: ModifyTraceInstanceRequest
923+
:return: 修改结果
924+
:rtype: ModifyTraceInstanceResponse
925+
"""
926+
if not modify_trace_instance_request.check_validation():
927+
raise TLSException(error_code="InvalidArgument", error_message="Invalid request, please check it")
928+
response = self.__request(api=MODIFY_TRACE_INSTANCE, body=modify_trace_instance_request.get_api_input())
929+
return ModifyTraceInstanceResponse(response)
930+
931+
def get_account_status(self, get_account_status_request: GetAccountStatusRequest) -> GetAccountStatusResponse:
932+
if get_account_status_request.check_validation() is False:
933+
raise TLSException(error_code="InvalidArgument", error_message="Invalid request, please check it")
934+
response = self.__request(api=GET_ACCOUNT_STATUS, params=get_account_status_request.get_api_input())
935+
return GetAccountStatusResponse(response)

volcengine/tls/const.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
DESCRIBE_INDEX = "/DescribeIndex"
6363

6464
DESCRIBE_SHARDS = "/DescribeShards"
65+
MANUAL_SHARD_SPLIT = "/ManualShardSplit"
6566

6667
CREATE_HOST_GROUP = "/CreateHostGroup"
6768
DELETE_HOST_GROUP = "/DeleteHostGroup"
@@ -119,12 +120,37 @@
119120
DESCRIBE_SHIPPERS = "/DescribeShippers"
120121
DESCRIBE_SHIPPER = "/DescribeShipper"
121122

123+
# ETL APIs
124+
DESCRIBE_ETL_TASK = "/DescribeETLTask"
125+
126+
# APIs of account.
127+
ACTIVE_TLS_ACCOUNT = "/ActiveTlsAccount"
128+
129+
# Trace APIs
130+
CREATE_TRACE_INSTANCE = "/CreateTraceInstance"
131+
DELETE_TRACE_INSTANCE = "/DeleteTraceInstance"
132+
MODIFY_TRACE_INSTANCE = "/ModifyTraceInstance"
133+
DESCRIBE_TRACE_INSTANCE = "/DescribeTraceInstance"
134+
DESCRIBE_TRACE_INSTANCES = "/DescribeTraceInstances"
135+
136+
# Trace related fields
137+
TRACE_INSTANCE_ID = "TraceInstanceId"
138+
TRACE_INSTANCE_NAME = "TraceInstanceName"
139+
TRACE_INSTANCES = "TraceInstances"
140+
TRACE_INSTANCE_STATUS = "TraceInstanceStatus"
141+
TRACE_TOPIC_ID = "TraceTopicId"
142+
TRACE_TOPIC_NAME = "TraceTopicName"
143+
DEPENDENCY_TOPIC_ID = "DependencyTopicId"
144+
DEPENDENCY_TOPIC_TOPIC_NAME = "DependencyTopicTopicName"
145+
146+
CANCEL_DOWNLOAD_TASK = "/CancelDownloadTask"
122147

123148
# TLS API fields
124149
DATA = "Data"
125150

126151
REQUEST_ID = "RequestId"
127152
DESCRIPTION = "Description"
153+
NAME = "Name"
128154
PAGE_NUMBER = "PageNumber"
129155
PAGE_SIZE = "PageSize"
130156
TOTAL = "Total"
@@ -156,6 +182,8 @@
156182
FULL_TEXT = "FullText"
157183
KEY_VALUE = "KeyValue"
158184
USER_INNER_KEY_VALUE = "UserInnerKeyValue"
185+
MAX_TEXT_LEN = "MaxTextLen"
186+
ENABLE_AUTO_INDEX = "EnableAutoIndex"
159187
KEY = "Key"
160188
VALUE = "Value"
161189
CASE_SENSITIVE = "CaseSensitive"
@@ -165,6 +193,9 @@
165193
SQL_FLAG = "SqlFlag"
166194
INDEX_ALL = "IndexAll"
167195
JSON_KEYS = "JsonKeys"
196+
AUTO_INDEX_FLAG = "AutoIndexFlag"
197+
ENABLE_AUTO_INDEX = "EnableAutoIndex"
198+
MAX_TEXT_LEN = "MaxTextLen"
168199

169200
SHARD_ID = "ShardId"
170201
SHARDS = "Shards"
@@ -269,6 +300,7 @@
269300

270301

271302
ALARM_NOTIFY_GROUP_ID = "AlarmNotifyGroupId"
303+
272304
ALARM_NOTIFY_GROUP_NAME = "AlarmNotifyGroupName"
273305
NOTIFY_TYPE = "NotifyType"
274306
TRIGGER = "Trigger"
@@ -362,3 +394,31 @@
362394
REGION_ID = "region_id"
363395
USER_CMK_ID = "user_cmk_id"
364396
USER_CMK_INFO = "user_cmk_info"
397+
398+
# ETL Task fields
399+
DSL_TYPE = "DSLType"
400+
ETL_STATUS = "ETLStatus"
401+
ENABLE = "Enable"
402+
FROM_TIME = "FromTime"
403+
LAST_ENABLE_TIME = "LastEnableTime"
404+
SCRIPT = "Script"
405+
SOURCE_TOPIC_ID = "SourceTopicId"
406+
SOURCE_TOPIC_NAME = "SourceTopicName"
407+
TARGET_RESOURCES = "TargetResources"
408+
TASK_TYPE = "TaskType"
409+
TO_TIME = "ToTime"
410+
ALIAS = "Alias"
411+
412+
# Trace API fields
413+
TRACE_INSTANCE_ID = "TraceInstanceId"
414+
TRACE_INSTANCE_NAME = "TraceInstanceName"
415+
TRACE_INSTANCES = "TraceInstances"
416+
TRACE_TOPIC_ID = "TraceTopicId"
417+
TRACE_TOPIC_NAME = "TraceTopicName"
418+
DEPENDENCY_TOPIC_ID = "DependencyTopicId"
419+
DEPENDENCY_TOPIC_TOPIC_NAME = "DependencyTopicTopicName"
420+
TRACE_INSTANCE_STATUS = "TraceInstanceStatus"
421+
422+
# GetAccountStatus API
423+
GET_ACCOUNT_STATUS = "/GetAccountStatus"
424+
ARCH_VERSION = "ArchVersion"

0 commit comments

Comments
 (0)