codosdk 1.0.7__tar.gz → 1.0.8__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.
- {codosdk-1.0.7 → codosdk-1.0.8}/PKG-INFO +1 -1
- {codosdk-1.0.7 → codosdk-1.0.8}/codosdk.egg-info/PKG-INFO +1 -1
- {codosdk-1.0.7 → codosdk-1.0.8}/setup.py +2 -2
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/client.py +50 -18
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/model_utils.py +1 -2
- {codosdk-1.0.7 → codosdk-1.0.8}/LICENSE +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/README.md +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/codosdk.egg-info/SOURCES.txt +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/codosdk.egg-info/dependency_links.txt +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/codosdk.egg-info/requires.txt +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/codosdk.egg-info/top_level.txt +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/opssdk/__init__.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/opssdk/utils/__init__.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/pyproject.toml +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/setup.cfg +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/__init__.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/api_set.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/apis/__init__.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/apis/admin_apis.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/apis/agent_apis.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/apis/cmdb_apis.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/apis/kerrigan_apis.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/apis/mgv4_apis.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/apis/task_apis.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/application.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/base_handler.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/cache.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/cache_context.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/cloud/__init__.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/cloud/qcloud_api.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/cloud/ucloud_api.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/cloud_utils.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/configs.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/consts.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/db_context.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/error.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/fetch_coroutine.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/jwt_token.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/ldap.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/logger.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/mqhelper.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/program.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/salt_api.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/sqlalchemy_pagination.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/tools.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/utils/__init__.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/utils/cc_crypto.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/utils/date_format.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/utils/pydantic_utils.py +0 -0
- {codosdk-1.0.7 → codosdk-1.0.8}/websdk2/web_logs.py +0 -0
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# -*-coding:utf-8-*-
|
|
3
3
|
""""
|
|
4
4
|
author : shenshuo
|
|
5
|
-
date :
|
|
5
|
+
date : 2024年12月12日
|
|
6
6
|
desc : CODO SDK
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import sys
|
|
10
10
|
from distutils.core import setup
|
|
11
11
|
|
|
12
|
-
VERSION = '1.0.
|
|
12
|
+
VERSION = '1.0.8'
|
|
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.')
|
|
@@ -10,6 +10,7 @@ Desc : 处理API请求
|
|
|
10
10
|
import json
|
|
11
11
|
import requests
|
|
12
12
|
from urllib.parse import urlencode
|
|
13
|
+
from typing import Union, Optional
|
|
13
14
|
import logging
|
|
14
15
|
from .consts import const
|
|
15
16
|
from .configs import configs
|
|
@@ -98,32 +99,63 @@ class AcsClient:
|
|
|
98
99
|
# timeout=self.request_timeout) as response:
|
|
99
100
|
# return await response.read()
|
|
100
101
|
|
|
101
|
-
def with_params_data_url(self, **kwargs):
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
# def with_params_data_url(self, **kwargs):
|
|
103
|
+
# # 重新组装URL
|
|
104
|
+
# url = "{}{}".format(self.endpoint, kwargs['url'])
|
|
105
|
+
# kwargs['url'] = url
|
|
106
|
+
#
|
|
107
|
+
# if not kwargs['method']: kwargs['method'] = 'GET'
|
|
108
|
+
#
|
|
109
|
+
# # logging.debug(f"with_params_data_url {kwargs}")
|
|
110
|
+
# body = kwargs.get('body', {})
|
|
111
|
+
# req_json = kwargs.get('json')
|
|
112
|
+
#
|
|
113
|
+
# if kwargs['method'] in ['POST', 'post', 'PATCH', 'patch', 'PUT', 'put']:
|
|
114
|
+
# if not (body or req_json):
|
|
115
|
+
# raise TypeError('method {}, body can not be empty'.format(kwargs['method']))
|
|
116
|
+
# else:
|
|
117
|
+
# if not isinstance(body, dict):
|
|
118
|
+
# json.loads(body)
|
|
119
|
+
#
|
|
120
|
+
# if body and isinstance(body, dict): kwargs['body'] = json.dumps(body)
|
|
121
|
+
#
|
|
122
|
+
# params = kwargs.get('params')
|
|
123
|
+
# if params: kwargs['url'] = "{}?{}".format(url, urlencode(params))
|
|
124
|
+
#
|
|
125
|
+
# if not self.headers: self.headers = kwargs.get('headers', {})
|
|
126
|
+
#
|
|
127
|
+
# if kwargs['method'] not in ['GET', 'get']: self.headers['Content-Type'] = 'application/json'
|
|
128
|
+
#
|
|
129
|
+
# return kwargs
|
|
105
130
|
|
|
106
|
-
|
|
131
|
+
def with_params_data_url(self, **kwargs) -> dict:
|
|
132
|
+
endpoint = self.endpoint.strip("'").strip('"')
|
|
133
|
+
kwargs['url'] = f"{endpoint}{kwargs.get('url', '')}"
|
|
134
|
+
kwargs['method'] = kwargs.get('method', 'GET').upper()
|
|
107
135
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
req_json = kwargs.get('json')
|
|
136
|
+
body: Union[dict, str] = kwargs.get('body', {})
|
|
137
|
+
req_json: Optional[dict] = kwargs.get('json')
|
|
111
138
|
|
|
112
|
-
if kwargs['method'] in
|
|
139
|
+
if kwargs['method'] in {'POST', 'PATCH', 'PUT'}:
|
|
113
140
|
if not (body or req_json):
|
|
114
|
-
raise TypeError('method
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
json.loads(body)
|
|
141
|
+
raise TypeError(f"Method {kwargs['method']} requires a non-empty body or JSON payload.")
|
|
142
|
+
if body and not isinstance(body, dict):
|
|
143
|
+
try:
|
|
144
|
+
body = json.loads(body)
|
|
145
|
+
except json.JSONDecodeError as e:
|
|
146
|
+
raise TypeError(f"Invalid JSON body: {e}")
|
|
118
147
|
|
|
119
|
-
if body and isinstance(body, dict):
|
|
148
|
+
if body and isinstance(body, dict):
|
|
149
|
+
kwargs['body'] = json.dumps(body)
|
|
120
150
|
|
|
121
|
-
params = kwargs.get('params')
|
|
122
|
-
if params:
|
|
151
|
+
params: Optional[dict] = kwargs.get('params')
|
|
152
|
+
if params:
|
|
153
|
+
kwargs['url'] = f"{kwargs['url']}?{urlencode(params)}"
|
|
123
154
|
|
|
124
|
-
|
|
155
|
+
kwargs['headers'] = kwargs.get('headers', self.headers or {})
|
|
125
156
|
|
|
126
|
-
if kwargs['method']
|
|
157
|
+
if kwargs['method'] != 'GET':
|
|
158
|
+
kwargs['headers'].setdefault('Content-Type', 'application/json')
|
|
127
159
|
|
|
128
160
|
return kwargs
|
|
129
161
|
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|