codosdk 1.0.13__tar.gz → 1.0.15__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. {codosdk-1.0.13 → codosdk-1.0.15}/PKG-INFO +1 -1
  2. {codosdk-1.0.13 → codosdk-1.0.15}/codosdk.egg-info/PKG-INFO +1 -1
  3. {codosdk-1.0.13 → codosdk-1.0.15}/setup.py +1 -1
  4. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/consts.py +6 -1
  5. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/crud_utils.py +38 -21
  6. {codosdk-1.0.13 → codosdk-1.0.15}/LICENSE +0 -0
  7. {codosdk-1.0.13 → codosdk-1.0.15}/README.md +0 -0
  8. {codosdk-1.0.13 → codosdk-1.0.15}/codosdk.egg-info/SOURCES.txt +0 -0
  9. {codosdk-1.0.13 → codosdk-1.0.15}/codosdk.egg-info/dependency_links.txt +0 -0
  10. {codosdk-1.0.13 → codosdk-1.0.15}/codosdk.egg-info/requires.txt +0 -0
  11. {codosdk-1.0.13 → codosdk-1.0.15}/codosdk.egg-info/top_level.txt +0 -0
  12. {codosdk-1.0.13 → codosdk-1.0.15}/opssdk/__init__.py +0 -0
  13. {codosdk-1.0.13 → codosdk-1.0.15}/opssdk/utils/__init__.py +0 -0
  14. {codosdk-1.0.13 → codosdk-1.0.15}/pyproject.toml +0 -0
  15. {codosdk-1.0.13 → codosdk-1.0.15}/setup.cfg +0 -0
  16. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/__init__.py +0 -0
  17. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/api_set.py +0 -0
  18. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/apis/__init__.py +0 -0
  19. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/apis/admin_apis.py +0 -0
  20. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/apis/agent_apis.py +0 -0
  21. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/apis/cmdb_apis.py +0 -0
  22. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/apis/kerrigan_apis.py +0 -0
  23. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/apis/mgv4_apis.py +0 -0
  24. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/apis/task_apis.py +0 -0
  25. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/application.py +0 -0
  26. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/base_handler.py +0 -0
  27. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/cache.py +0 -0
  28. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/cache_context.py +0 -0
  29. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/client.py +0 -0
  30. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/cloud/__init__.py +0 -0
  31. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/cloud/qcloud_api.py +0 -0
  32. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/cloud/ucloud_api.py +0 -0
  33. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/cloud_utils.py +0 -0
  34. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/configs.py +0 -0
  35. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/db_context.py +0 -0
  36. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/error.py +0 -0
  37. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/fetch_coroutine.py +0 -0
  38. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/jwt_token.py +0 -0
  39. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/ldap.py +0 -0
  40. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/logger.py +0 -0
  41. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/model_utils.py +0 -0
  42. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/mqhelper.py +0 -0
  43. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/program.py +0 -0
  44. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/salt_api.py +0 -0
  45. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/sqlalchemy_pagination.py +0 -0
  46. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/tools.py +0 -0
  47. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/utils/__init__.py +0 -0
  48. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/utils/cc_crypto.py +0 -0
  49. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/utils/date_format.py +0 -0
  50. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/utils/pydantic_utils.py +0 -0
  51. {codosdk-1.0.13 → codosdk-1.0.15}/websdk2/web_logs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: codosdk
3
- Version: 1.0.13
3
+ Version: 1.0.15
4
4
  Summary: CODO项目的Python SDK
5
5
  Home-page: https://github.com/ss1917/codo_sdk/
6
6
  Author: shenshuo
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: codosdk
3
- Version: 1.0.13
3
+ Version: 1.0.15
4
4
  Summary: CODO项目的Python SDK
5
5
  Home-page: https://github.com/ss1917/codo_sdk/
6
6
  Author: shenshuo
@@ -9,7 +9,7 @@ desc : CODO SDK
9
9
  import sys
10
10
  from setuptools import setup, find_packages
11
11
 
12
- VERSION = '1.0.13'
12
+ VERSION = '1.0.15'
13
13
 
14
14
  if sys.version_info < (2, 7) or (3, 0) <= sys.version_info < (3, 6):
15
15
  print('This program requires at least Python 2.7 or 3.6 to run.')
@@ -214,7 +214,12 @@ const.ORDER_STATE_TERMINATED = '39' # 订单终止
214
214
  const.ORDER_STATE_QUEUE = '11' # 订单排队中
215
215
  const.EXEC_TIMEOUT = 1800
216
216
 
217
- ## 节点地址
217
+ # 节点地址
218
218
  const.NODE_ADDRESS = 'NODE_ADDRESS'
219
219
  const.EXEC_NODE_MAP_KEY = 'EXEC_NODE_MAP_KEY'
220
220
  const.AGENT_USED_KEY = "agent_is_used_map_mark_key"
221
+
222
+ # otel
223
+ const.JAEGER_EXPORTER_HOST = "jaeger_exporter_host"
224
+ const.JAEGER_EXPORTER_PORT = "jaeger_exporter_port"
225
+ const.OTEL_ENABLED = "otel_enabled"
@@ -6,6 +6,7 @@ Date : 2025年02月08日
6
6
  Desc : 存储类
7
7
  """
8
8
 
9
+ import time
9
10
  import logging
10
11
  from sqlalchemy import true
11
12
  from sqlalchemy.exc import IntegrityError
@@ -14,6 +15,14 @@ from .utils.pydantic_utils import sqlalchemy_to_pydantic, ValidationError, Pydan
14
15
  from .sqlalchemy_pagination import paginate
15
16
 
16
17
 
18
+ def get_millisecond_timestamp() -> int:
19
+ """
20
+ 获取当前时间的毫秒级时间戳。
21
+ :return: 毫秒级时间戳(int)
22
+ """
23
+ return int(time.time() * 1000)
24
+
25
+
17
26
  class ModelCRUDView:
18
27
  def __init__(self, model, **kwargs):
19
28
  self.model = model
@@ -33,19 +42,22 @@ class ModelCRUDView:
33
42
  self.prepare()
34
43
  data_id = data.get('id')
35
44
  if not data_id:
36
- return dict(code=1, msg="缺少必要的 'id' 参数", data=None)
45
+ return dict(code=1, msg="缺少必要的 'id' 参数", data=None, reason="", timestamp=get_millisecond_timestamp())
37
46
 
38
47
  try:
39
48
  with DBContext('r') as session:
40
49
  _info = session.query(self.model).filter(self.model.id == data_id).first()
41
50
  if not _info:
42
- return dict(code=1, msg='数据未找到', data=None)
43
- return dict(code=0, msg='获取成功', data={
44
- 'item': _info.to_dict()
45
- })
51
+ return dict(code=1, msg='数据未找到', data=None, reason="", timestamp=get_millisecond_timestamp())
52
+ return dict(code=0,
53
+ msg='获取成功',
54
+ reason="",
55
+ timestamp=get_millisecond_timestamp(),
56
+ data={'item': _info.to_dict()}
57
+ )
46
58
  except Exception as e:
47
59
  logging.error(f"Database query failed: {e}")
48
- return dict(code=2, msg='查询失败', data=None)
60
+ return dict(code=2, msg='查询失败', data=None, reason=str(e), timestamp=get_millisecond_timestamp())
49
61
 
50
62
  def handle_list(self, params: dict, get_by_val_func=None) -> dict:
51
63
  self.prepare()
@@ -74,13 +86,18 @@ class ModelCRUDView:
74
86
  except Exception as e:
75
87
  raise ValueError(f"Error while executing `get_by_val_func`: {e}")
76
88
 
77
- with DBContext('r') as session:
78
- query = session.query(self.model).filter(filter_condition).filter_by(**filter_map)
79
- page = paginate(query, **params)
89
+ try:
90
+ with DBContext('r') as session:
91
+ query = session.query(self.model).filter(filter_condition).filter_by(**filter_map)
92
+ page = paginate(query, **params)
93
+ except Exception as e:
94
+ return dict(code=2, msg='查询失败', data=None, reason=str(e), timestamp=get_millisecond_timestamp())
80
95
 
81
96
  return dict(
82
97
  code=0,
83
98
  msg='获取成功',
99
+ reason="",
100
+ timestamp=get_millisecond_timestamp(),
84
101
  data={
85
102
  'items': page.items,
86
103
  'current_page': page.page, # 当前页
@@ -95,18 +112,18 @@ class ModelCRUDView:
95
112
  try:
96
113
  self.pydantic_model(**data)
97
114
  except ValidationError as e:
98
- return dict(code=-1, msg=str(e))
115
+ return dict(code=-1, msg='数据格式出错', reason=str(e), timestamp=get_millisecond_timestamp())
99
116
 
100
117
  try:
101
118
  with DBContext('w', None, True) as db:
102
119
  db.add(self.model(**data))
103
120
  except IntegrityError as e:
104
- return dict(code=-2, msg='不要重复添加')
121
+ return dict(code=-2, msg='不要重复添加', reason=str(e), timestamp=get_millisecond_timestamp())
105
122
 
106
123
  except Exception as e:
107
- return dict(code=-3, msg=f'{e}')
124
+ return dict(code=-3, msg='创建失败', reason=str(e), timestamp=get_millisecond_timestamp())
108
125
 
109
- return dict(code=0, msg="创建成功")
126
+ return dict(code=0, msg="创建成功", reason="", timestamp=get_millisecond_timestamp())
110
127
 
111
128
  def handle_update(self, data: dict) -> dict:
112
129
  self.prepare()
@@ -114,19 +131,19 @@ class ModelCRUDView:
114
131
  try:
115
132
  valid_data = self.pydantic_model_base(**data)
116
133
  except ValidationError as e:
117
- return dict(code=-1, msg=str(e))
134
+ return dict(code=-1, msg="数据格式校验失败", reason=str(e), timestamp=get_millisecond_timestamp())
118
135
 
119
136
  try:
120
137
  with DBContext('w', None, True) as db:
121
138
  db.query(self.model).filter(self.model.id == valid_data.id).update(data)
122
139
 
123
140
  except IntegrityError as e:
124
- return dict(code=-2, msg=f'修改失败,已存在')
141
+ return dict(code=-2, msg=f'修改失败,已存在', reason=str(e), timestamp=get_millisecond_timestamp())
125
142
 
126
- except Exception as err:
127
- return dict(code=-3, msg=f'修改失败, {err}')
143
+ except Exception as e:
144
+ return dict(code=-3, msg=f'修改失败, {e}', reason=str(e), timestamp=get_millisecond_timestamp())
128
145
 
129
- return dict(code=0, msg="修改成功")
146
+ return dict(code=0, msg="修改成功", reason='', timestamp=get_millisecond_timestamp())
130
147
 
131
148
  def handle_update_no_validation(self, data: dict) -> dict:
132
149
  """不进行校验的更新方法"""
@@ -134,15 +151,15 @@ class ModelCRUDView:
134
151
  data_id = data.get('id')
135
152
  with DBContext('w', None, True) as db:
136
153
  db.query(self.model).filter(self.model.id == data_id).update(data)
137
- return dict(code=0, msg='更新成功')
154
+ return dict(code=0, msg='更新成功', reason='', timestamp=get_millisecond_timestamp())
138
155
 
139
156
  def handle_delete(self, data: dict) -> dict:
140
157
  self.prepare()
141
158
  try:
142
159
  valid_data = PydanticDelList(**data)
143
160
  except ValidationError as e:
144
- return dict(code=-1, msg=str(e))
161
+ return dict(code=-1, msg="数据格式校验失败", reason=str(e), timestamp=get_millisecond_timestamp())
145
162
 
146
163
  with DBContext('w', None, True) as session:
147
164
  session.query(self.model).filter(self.model.id.in_(valid_data.id_list)).delete(synchronize_session=False)
148
- return dict(code=0, msg=f"删除成功")
165
+ return dict(code=0, msg=f"删除成功", reason='', timestamp=get_millisecond_timestamp())
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes