codosdk 1.0.9__tar.gz → 1.0.10__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.9 → codosdk-1.0.10}/PKG-INFO +1 -1
- {codosdk-1.0.9 → codosdk-1.0.10}/codosdk.egg-info/PKG-INFO +1 -1
- {codosdk-1.0.9 → codosdk-1.0.10}/setup.py +1 -1
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/tools.py +8 -4
- {codosdk-1.0.9 → codosdk-1.0.10}/LICENSE +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/README.md +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/codosdk.egg-info/SOURCES.txt +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/codosdk.egg-info/dependency_links.txt +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/codosdk.egg-info/requires.txt +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/codosdk.egg-info/top_level.txt +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/opssdk/__init__.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/opssdk/utils/__init__.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/pyproject.toml +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/setup.cfg +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/__init__.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/api_set.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/apis/__init__.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/apis/admin_apis.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/apis/agent_apis.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/apis/cmdb_apis.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/apis/kerrigan_apis.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/apis/mgv4_apis.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/apis/task_apis.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/application.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/base_handler.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/cache.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/cache_context.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/client.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/cloud/__init__.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/cloud/qcloud_api.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/cloud/ucloud_api.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/cloud_utils.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/configs.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/consts.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/db_context.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/error.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/fetch_coroutine.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/jwt_token.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/ldap.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/logger.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/model_utils.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/mqhelper.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/program.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/salt_api.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/sqlalchemy_pagination.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/utils/__init__.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/utils/cc_crypto.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/utils/date_format.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/utils/pydantic_utils.py +0 -0
- {codosdk-1.0.9 → codosdk-1.0.10}/websdk2/web_logs.py +0 -0
|
@@ -11,18 +11,22 @@ import re
|
|
|
11
11
|
import time
|
|
12
12
|
import redis
|
|
13
13
|
import subprocess
|
|
14
|
+
from threading import Lock
|
|
14
15
|
from concurrent.futures import ThreadPoolExecutor
|
|
15
16
|
from .consts import const
|
|
16
17
|
|
|
18
|
+
|
|
17
19
|
def singleton(class_):
|
|
18
20
|
instances = {}
|
|
21
|
+
lock = Lock() # 线程锁
|
|
19
22
|
|
|
20
|
-
def
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
def get_instance(*args, **kwargs):
|
|
24
|
+
with lock: # 确保线程安全
|
|
25
|
+
if class_ not in instances:
|
|
26
|
+
instances[class_] = class_(*args, **kwargs)
|
|
23
27
|
return instances[class_]
|
|
24
28
|
|
|
25
|
-
return
|
|
29
|
+
return get_instance
|
|
26
30
|
|
|
27
31
|
|
|
28
32
|
def bytes_to_unicode(input_bytes):
|
|
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
|
|
File without changes
|