nacos-sdk-python 2.0.0b1__tar.gz → 2.0.0b2__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.
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/PKG-INFO +1 -1
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos/client.py +1 -1
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos_sdk_python.egg-info/PKG-INFO +1 -1
- nacos-sdk-python-2.0.0b2/nacos_sdk_python.egg-info/SOURCES.txt +104 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos_sdk_python.egg-info/top_level.txt +1 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/setup.py +1 -3
- nacos-sdk-python-2.0.0b2/v2/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/__init__.py +41 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/common/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/common/client_config.py +126 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/common/client_config_builder.py +86 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/common/constants.py +227 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/common/nacos_exception.py +40 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/common/payload_registry.py +24 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/common/preserved_metadata_key.py +10 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/cache/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/cache/config_info_cache.py +48 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/cache/config_subscribe_manager.py +99 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/encryption/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/encryption/kms_client.py +41 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/encryption/kms_handler.py +46 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/encryption/plugin/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/encryption/plugin/encryption_plugin.py +30 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/encryption/plugin/kms_aes_128_encrytion_plugin.py +21 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/encryption/plugin/kms_aes_256_encrytion_plugin.py +21 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/encryption/plugin/kms_base_encryption_plugin.py +39 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/encryption/plugin/kms_encrytion_plugin.py +51 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/filter/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/filter/config_encryption_filter.py +37 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/filter/config_filter.py +47 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/model/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/model/config.py +103 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/model/config_param.py +49 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/model/config_request.py +58 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/model/config_response.py +43 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/nacos_config_service.py +122 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/remote/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/remote/config_change_notify_request_handler.py +29 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/remote/config_grpc_client_proxy.py +251 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/remote/config_grpc_connection_event_listener.py +23 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/util/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/config/util/config_client_util.py +5 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/nacos_client.py +57 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/cache/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/cache/service_info_cache.py +141 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/cache/subscribe_manager.py +35 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/event/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/event/instance_change_notifier.py +5 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/model/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/model/instance.py +83 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/model/naming_param.py +60 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/model/naming_request.py +63 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/model/naming_response.py +37 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/model/service.py +117 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/nacos_naming_service.py +199 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/remote/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/remote/naming_grpc_client_proxy.py +189 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/remote/naming_grpc_connection_event_listener.py +70 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/remote/naming_push_request_handler.py +27 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/util/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/util/naming_client_util.py +11 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/naming/util/naming_remote_constants.py +18 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/proto/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/auth_client.py +47 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/connection.py +34 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/connection_event_listener.py +12 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/grpc_client.py +158 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/grpc_connection.py +46 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/grpc_util.py +84 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/grpcauto/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/grpcauto/nacos_grpc_service_pb2.py +264 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/grpcauto/nacos_grpc_service_pb2_grpc.py +191 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/http_agent.py +58 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/model/__init__.py +1 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/model/internal_request.py +57 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/model/internal_response.py +42 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/model/rpc_request.py +41 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/model/rpc_response.py +40 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/model/server_info.py +25 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/nacos_server_connector.py +91 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/rpc_client.py +441 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/rpc_client_factory.py +117 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/transport/server_request_handler.py +30 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/utils/__init__.py +0 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/utils/aes_util.py +36 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/utils/common_util.py +44 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/utils/content_util.py +9 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/utils/encode_util.py +32 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/utils/file_util.py +94 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/utils/hmac_util.py +13 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/utils/md5_util.py +9 -0
- nacos-sdk-python-2.0.0b2/v2/nacos/utils/net_util.py +20 -0
- nacos-sdk-python-2.0.0b1/nacos_sdk_python.egg-info/SOURCES.txt +0 -15
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/README.md +0 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos/__init__.py +0 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos/commons.py +0 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos/exception.py +0 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos/files.py +0 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos/listener.py +0 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos/params.py +0 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos/task.py +0 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos/timer.py +0 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/nacos_sdk_python.egg-info/dependency_links.txt +0 -0
- {nacos-sdk-python-2.0.0b1 → nacos-sdk-python-2.0.0b2}/setup.cfg +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
setup.py
|
|
3
|
+
nacos/__init__.py
|
|
4
|
+
nacos/client.py
|
|
5
|
+
nacos/commons.py
|
|
6
|
+
nacos/exception.py
|
|
7
|
+
nacos/files.py
|
|
8
|
+
nacos/listener.py
|
|
9
|
+
nacos/params.py
|
|
10
|
+
nacos/task.py
|
|
11
|
+
nacos/timer.py
|
|
12
|
+
nacos_sdk_python.egg-info/PKG-INFO
|
|
13
|
+
nacos_sdk_python.egg-info/SOURCES.txt
|
|
14
|
+
nacos_sdk_python.egg-info/dependency_links.txt
|
|
15
|
+
nacos_sdk_python.egg-info/top_level.txt
|
|
16
|
+
v2/__init__.py
|
|
17
|
+
v2/nacos/__init__.py
|
|
18
|
+
v2/nacos/nacos_client.py
|
|
19
|
+
v2/nacos/common/__init__.py
|
|
20
|
+
v2/nacos/common/client_config.py
|
|
21
|
+
v2/nacos/common/client_config_builder.py
|
|
22
|
+
v2/nacos/common/constants.py
|
|
23
|
+
v2/nacos/common/nacos_exception.py
|
|
24
|
+
v2/nacos/common/payload_registry.py
|
|
25
|
+
v2/nacos/common/preserved_metadata_key.py
|
|
26
|
+
v2/nacos/config/__init__.py
|
|
27
|
+
v2/nacos/config/nacos_config_service.py
|
|
28
|
+
v2/nacos/config/cache/__init__.py
|
|
29
|
+
v2/nacos/config/cache/config_info_cache.py
|
|
30
|
+
v2/nacos/config/cache/config_subscribe_manager.py
|
|
31
|
+
v2/nacos/config/encryption/__init__.py
|
|
32
|
+
v2/nacos/config/encryption/kms_client.py
|
|
33
|
+
v2/nacos/config/encryption/kms_handler.py
|
|
34
|
+
v2/nacos/config/encryption/plugin/__init__.py
|
|
35
|
+
v2/nacos/config/encryption/plugin/encryption_plugin.py
|
|
36
|
+
v2/nacos/config/encryption/plugin/kms_aes_128_encrytion_plugin.py
|
|
37
|
+
v2/nacos/config/encryption/plugin/kms_aes_256_encrytion_plugin.py
|
|
38
|
+
v2/nacos/config/encryption/plugin/kms_base_encryption_plugin.py
|
|
39
|
+
v2/nacos/config/encryption/plugin/kms_encrytion_plugin.py
|
|
40
|
+
v2/nacos/config/filter/__init__.py
|
|
41
|
+
v2/nacos/config/filter/config_encryption_filter.py
|
|
42
|
+
v2/nacos/config/filter/config_filter.py
|
|
43
|
+
v2/nacos/config/model/__init__.py
|
|
44
|
+
v2/nacos/config/model/config.py
|
|
45
|
+
v2/nacos/config/model/config_param.py
|
|
46
|
+
v2/nacos/config/model/config_request.py
|
|
47
|
+
v2/nacos/config/model/config_response.py
|
|
48
|
+
v2/nacos/config/remote/__init__.py
|
|
49
|
+
v2/nacos/config/remote/config_change_notify_request_handler.py
|
|
50
|
+
v2/nacos/config/remote/config_grpc_client_proxy.py
|
|
51
|
+
v2/nacos/config/remote/config_grpc_connection_event_listener.py
|
|
52
|
+
v2/nacos/config/util/__init__.py
|
|
53
|
+
v2/nacos/config/util/config_client_util.py
|
|
54
|
+
v2/nacos/naming/__init__.py
|
|
55
|
+
v2/nacos/naming/nacos_naming_service.py
|
|
56
|
+
v2/nacos/naming/cache/__init__.py
|
|
57
|
+
v2/nacos/naming/cache/service_info_cache.py
|
|
58
|
+
v2/nacos/naming/cache/subscribe_manager.py
|
|
59
|
+
v2/nacos/naming/event/__init__.py
|
|
60
|
+
v2/nacos/naming/event/instance_change_notifier.py
|
|
61
|
+
v2/nacos/naming/model/__init__.py
|
|
62
|
+
v2/nacos/naming/model/instance.py
|
|
63
|
+
v2/nacos/naming/model/naming_param.py
|
|
64
|
+
v2/nacos/naming/model/naming_request.py
|
|
65
|
+
v2/nacos/naming/model/naming_response.py
|
|
66
|
+
v2/nacos/naming/model/service.py
|
|
67
|
+
v2/nacos/naming/remote/__init__.py
|
|
68
|
+
v2/nacos/naming/remote/naming_grpc_client_proxy.py
|
|
69
|
+
v2/nacos/naming/remote/naming_grpc_connection_event_listener.py
|
|
70
|
+
v2/nacos/naming/remote/naming_push_request_handler.py
|
|
71
|
+
v2/nacos/naming/util/__init__.py
|
|
72
|
+
v2/nacos/naming/util/naming_client_util.py
|
|
73
|
+
v2/nacos/naming/util/naming_remote_constants.py
|
|
74
|
+
v2/nacos/proto/__init__.py
|
|
75
|
+
v2/nacos/transport/__init__.py
|
|
76
|
+
v2/nacos/transport/auth_client.py
|
|
77
|
+
v2/nacos/transport/connection.py
|
|
78
|
+
v2/nacos/transport/connection_event_listener.py
|
|
79
|
+
v2/nacos/transport/grpc_client.py
|
|
80
|
+
v2/nacos/transport/grpc_connection.py
|
|
81
|
+
v2/nacos/transport/grpc_util.py
|
|
82
|
+
v2/nacos/transport/http_agent.py
|
|
83
|
+
v2/nacos/transport/nacos_server_connector.py
|
|
84
|
+
v2/nacos/transport/rpc_client.py
|
|
85
|
+
v2/nacos/transport/rpc_client_factory.py
|
|
86
|
+
v2/nacos/transport/server_request_handler.py
|
|
87
|
+
v2/nacos/transport/grpcauto/__init__.py
|
|
88
|
+
v2/nacos/transport/grpcauto/nacos_grpc_service_pb2.py
|
|
89
|
+
v2/nacos/transport/grpcauto/nacos_grpc_service_pb2_grpc.py
|
|
90
|
+
v2/nacos/transport/model/__init__.py
|
|
91
|
+
v2/nacos/transport/model/internal_request.py
|
|
92
|
+
v2/nacos/transport/model/internal_response.py
|
|
93
|
+
v2/nacos/transport/model/rpc_request.py
|
|
94
|
+
v2/nacos/transport/model/rpc_response.py
|
|
95
|
+
v2/nacos/transport/model/server_info.py
|
|
96
|
+
v2/nacos/utils/__init__.py
|
|
97
|
+
v2/nacos/utils/aes_util.py
|
|
98
|
+
v2/nacos/utils/common_util.py
|
|
99
|
+
v2/nacos/utils/content_util.py
|
|
100
|
+
v2/nacos/utils/encode_util.py
|
|
101
|
+
v2/nacos/utils/file_util.py
|
|
102
|
+
v2/nacos/utils/hmac_util.py
|
|
103
|
+
v2/nacos/utils/md5_util.py
|
|
104
|
+
v2/nacos/utils/net_util.py
|
|
@@ -5,8 +5,6 @@ from shutil import rmtree
|
|
|
5
5
|
|
|
6
6
|
from setuptools import find_packages, setup, Command
|
|
7
7
|
|
|
8
|
-
import nacos
|
|
9
|
-
|
|
10
8
|
# just run `python setup.py upload`
|
|
11
9
|
here = os.path.abspath(os.path.dirname(__file__))
|
|
12
10
|
|
|
@@ -50,7 +48,7 @@ class UploadCommand(Command):
|
|
|
50
48
|
|
|
51
49
|
setup(
|
|
52
50
|
name="nacos-sdk-python",
|
|
53
|
-
version=
|
|
51
|
+
version="2.0.0.beta2",
|
|
54
52
|
packages=find_packages(
|
|
55
53
|
exclude=["test", "*.tests", "*.tests.*", "tests.*", "tests"]),
|
|
56
54
|
url="https://github.com/nacos-group/nacos-sdk-python",
|
|
File without changes
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
from .common.client_config import (KMSConfig,
|
|
2
|
+
GRPCConfig,
|
|
3
|
+
TLSConfig,
|
|
4
|
+
ClientConfig)
|
|
5
|
+
from .common.client_config_builder import ClientConfigBuilder
|
|
6
|
+
from .common.nacos_exception import NacosException
|
|
7
|
+
from .config.model.config_param import ConfigParam
|
|
8
|
+
from .config.nacos_config_service import NacosConfigService
|
|
9
|
+
from .naming.model.instance import Instance
|
|
10
|
+
from .naming.model.naming_param import (RegisterInstanceParam,
|
|
11
|
+
BatchRegisterInstanceParam,
|
|
12
|
+
DeregisterInstanceParam,
|
|
13
|
+
ListInstanceParam,
|
|
14
|
+
SubscribeServiceParam,
|
|
15
|
+
GetServiceParam,
|
|
16
|
+
ListServiceParam)
|
|
17
|
+
from .naming.model.service import (Service,
|
|
18
|
+
ServiceList)
|
|
19
|
+
from .naming.nacos_naming_service import NacosNamingService
|
|
20
|
+
|
|
21
|
+
__all__ = [
|
|
22
|
+
"KMSConfig",
|
|
23
|
+
"GRPCConfig",
|
|
24
|
+
"TLSConfig",
|
|
25
|
+
"ClientConfig",
|
|
26
|
+
"ClientConfigBuilder",
|
|
27
|
+
"NacosException",
|
|
28
|
+
"ConfigParam",
|
|
29
|
+
"NacosConfigService",
|
|
30
|
+
"Instance",
|
|
31
|
+
"Service",
|
|
32
|
+
"ServiceList",
|
|
33
|
+
"RegisterInstanceParam",
|
|
34
|
+
"BatchRegisterInstanceParam",
|
|
35
|
+
"DeregisterInstanceParam",
|
|
36
|
+
"ListInstanceParam",
|
|
37
|
+
"SubscribeServiceParam",
|
|
38
|
+
"GetServiceParam",
|
|
39
|
+
"ListServiceParam",
|
|
40
|
+
"NacosNamingService"
|
|
41
|
+
]
|
|
File without changes
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from v2.nacos.common.constants import Constants
|
|
4
|
+
from v2.nacos.common.nacos_exception import NacosException, INVALID_PARAM
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class KMSConfig:
|
|
8
|
+
def __init__(self, enabled=False, endpoint='', access_key='', secret_key='', client_key_content='', password=''):
|
|
9
|
+
self.enabled = enabled # 是否启用kms
|
|
10
|
+
self.endpoint = endpoint # kms服务的地址
|
|
11
|
+
self.client_key_content = client_key_content
|
|
12
|
+
self.password = password
|
|
13
|
+
self.access_key = access_key
|
|
14
|
+
self.secret_key = secret_key
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class TLSConfig:
|
|
18
|
+
def __init__(self, enabled=False, appointed=False, ca_file='', cert_file='',
|
|
19
|
+
key_file='', server_name_override=''):
|
|
20
|
+
self.enabled = enabled # 是否启用tls
|
|
21
|
+
self.appointed = appointed # 指明是否使用预设的配置
|
|
22
|
+
self.ca_file = ca_file # CA证书文件的路径
|
|
23
|
+
self.cert_file = cert_file # 客户端证书文件的路径
|
|
24
|
+
self.key_file = key_file # 私钥文件的路径
|
|
25
|
+
self.server_name_override = server_name_override # 服务器名称覆盖(用于测试)
|
|
26
|
+
|
|
27
|
+
def __str__(self):
|
|
28
|
+
return str(self.__dict__)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class GRPCConfig:
|
|
32
|
+
def __init__(self, max_receive_message_length=Constants.GRPC_MAX_RECEIVE_MESSAGE_LENGTH,
|
|
33
|
+
max_keep_alive_ms=Constants.GRPC_KEEPALIVE_TIME_MILLS,
|
|
34
|
+
initial_window_size=Constants.GRPC_INITIAL_WINDOW_SIZE,
|
|
35
|
+
initial_conn_window_size=Constants.GRPC_INITIAL_CONN_WINDOW_SIZE,
|
|
36
|
+
grpc_timeout=Constants.DEFAULT_GRPC_TIMEOUT_MILLS):
|
|
37
|
+
self.max_receive_message_length = max_receive_message_length
|
|
38
|
+
self.max_keep_alive_ms = max_keep_alive_ms
|
|
39
|
+
self.initial_window_size = initial_window_size
|
|
40
|
+
self.initial_conn_window_size = initial_conn_window_size
|
|
41
|
+
self.grpc_timeout = grpc_timeout
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class ClientConfig:
|
|
45
|
+
def __init__(self, server_addresses=None, endpoint=None, namespace_id='', context_path='', access_key=None,
|
|
46
|
+
secret_key=None, username=None, password=None, app_name='', app_key='', log_dir='', log_level=None,
|
|
47
|
+
log_rotation_backup_count=None, app_conn_labels=None):
|
|
48
|
+
self.server_list = []
|
|
49
|
+
try:
|
|
50
|
+
if server_addresses is not None and server_addresses.strip() != "":
|
|
51
|
+
for server_address in server_addresses.strip().split(','):
|
|
52
|
+
self.server_list.append(server_address.strip())
|
|
53
|
+
except Exception:
|
|
54
|
+
raise NacosException(INVALID_PARAM, "server_addresses is invalid")
|
|
55
|
+
|
|
56
|
+
self.endpoint = endpoint
|
|
57
|
+
self.endpoint_context_path = Constants.WEB_CONTEXT
|
|
58
|
+
self.namespace_id = namespace_id
|
|
59
|
+
self.access_key = access_key
|
|
60
|
+
self.context_path = context_path
|
|
61
|
+
self.secret_key = secret_key
|
|
62
|
+
self.username = username # the username for nacos auth
|
|
63
|
+
self.password = password # the password for nacos auth
|
|
64
|
+
self.app_name = app_name
|
|
65
|
+
self.app_key = app_key
|
|
66
|
+
self.cache_dir = ''
|
|
67
|
+
self.disable_use_config_cache = False
|
|
68
|
+
self.log_dir = log_dir
|
|
69
|
+
self.log_level = logging.INFO if log_level is None else log_level # the log level for nacos client, default value is logging.INFO: log_level
|
|
70
|
+
self.log_rotation_backup_count = 7 if log_rotation_backup_count is None else log_rotation_backup_count
|
|
71
|
+
self.timeout_ms = 10 * 1000 # timeout for requesting Nacos server, default value is 10000ms
|
|
72
|
+
self.heart_beat_interval = 5 * 1000 # the time interval for sending beat to server,default value is 5000ms
|
|
73
|
+
self.kms_config = KMSConfig(enabled=False)
|
|
74
|
+
self.tls_config = TLSConfig(enabled=False)
|
|
75
|
+
self.grpc_config = GRPCConfig()
|
|
76
|
+
self.load_cache_at_start = True
|
|
77
|
+
self.update_cache_when_empty = False
|
|
78
|
+
self.app_conn_labels = app_conn_labels
|
|
79
|
+
|
|
80
|
+
def set_log_level(self, log_level):
|
|
81
|
+
self.log_level = log_level
|
|
82
|
+
return self
|
|
83
|
+
|
|
84
|
+
def set_cache_dir(self, cache_dir):
|
|
85
|
+
self.cache_dir = cache_dir
|
|
86
|
+
return self
|
|
87
|
+
|
|
88
|
+
def set_log_dir(self, log_dir):
|
|
89
|
+
self.log_dir = log_dir
|
|
90
|
+
return self
|
|
91
|
+
|
|
92
|
+
def set_timeout_ms(self, timeout_ms):
|
|
93
|
+
self.timeout_ms = timeout_ms
|
|
94
|
+
return self
|
|
95
|
+
|
|
96
|
+
def set_heart_beat_interval(self, heart_beat_interval):
|
|
97
|
+
self.heart_beat_interval = heart_beat_interval
|
|
98
|
+
return self
|
|
99
|
+
|
|
100
|
+
def set_tls_config(self, tls_config: TLSConfig):
|
|
101
|
+
self.tls_config = tls_config
|
|
102
|
+
return self
|
|
103
|
+
|
|
104
|
+
def set_kms_config(self, kms_config: KMSConfig):
|
|
105
|
+
self.kms_config = kms_config
|
|
106
|
+
return self
|
|
107
|
+
|
|
108
|
+
def set_grpc_config(self, grpc_config: GRPCConfig):
|
|
109
|
+
self.grpc_config = grpc_config
|
|
110
|
+
return self
|
|
111
|
+
|
|
112
|
+
def set_load_cache_at_start(self, load_cache_at_start):
|
|
113
|
+
self.load_cache_at_start = load_cache_at_start
|
|
114
|
+
return self
|
|
115
|
+
|
|
116
|
+
def set_update_cache_when_empty(self, update_cache_when_empty: bool):
|
|
117
|
+
self.update_cache_when_empty = update_cache_when_empty
|
|
118
|
+
return self
|
|
119
|
+
|
|
120
|
+
def set_endpoint_context_path(self, endpoint_context_path):
|
|
121
|
+
self.endpoint_context_path = endpoint_context_path
|
|
122
|
+
return self
|
|
123
|
+
|
|
124
|
+
def set_app_conn_labels(self, app_conn_labels: dict):
|
|
125
|
+
self.app_conn_labels = app_conn_labels
|
|
126
|
+
return self
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
from v2.nacos.common.client_config import ClientConfig, GRPCConfig
|
|
2
|
+
from v2.nacos.common.client_config import KMSConfig
|
|
3
|
+
from v2.nacos.common.client_config import TLSConfig
|
|
4
|
+
from v2.nacos.common.constants import Constants
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ClientConfigBuilder:
|
|
8
|
+
def __init__(self):
|
|
9
|
+
self._config = ClientConfig()
|
|
10
|
+
|
|
11
|
+
def server_address(self, server_address: str) -> "ClientConfigBuilder":
|
|
12
|
+
if server_address is not None and server_address.strip() != "":
|
|
13
|
+
for server_address in server_address.strip().split(','):
|
|
14
|
+
self._config.server_list.append(server_address.strip())
|
|
15
|
+
return self
|
|
16
|
+
|
|
17
|
+
def endpoint(self, endpoint) -> "ClientConfigBuilder":
|
|
18
|
+
self._config.endpoint = endpoint
|
|
19
|
+
return self
|
|
20
|
+
|
|
21
|
+
def namespace_id(self, namespace_id: str) -> "ClientConfigBuilder":
|
|
22
|
+
if namespace_id is None:
|
|
23
|
+
namespace_id = Constants.DEFAULT_NAMESPACE_ID
|
|
24
|
+
self._config.namespace_id = namespace_id
|
|
25
|
+
return self
|
|
26
|
+
|
|
27
|
+
def timeout_ms(self, timeout_ms) -> "ClientConfigBuilder":
|
|
28
|
+
self._config.timeout_ms = timeout_ms
|
|
29
|
+
return self
|
|
30
|
+
|
|
31
|
+
def heart_beat_interval(self, heart_beat_interval) -> "ClientConfigBuilder":
|
|
32
|
+
self._config.heart_beat_interval = heart_beat_interval
|
|
33
|
+
return self
|
|
34
|
+
|
|
35
|
+
def log_level(self, log_level) -> "ClientConfigBuilder":
|
|
36
|
+
self._config.log_level = log_level
|
|
37
|
+
return self
|
|
38
|
+
|
|
39
|
+
def log_dir(self, log_dir: str) -> "ClientConfigBuilder":
|
|
40
|
+
self._config.log_dir = log_dir
|
|
41
|
+
return self
|
|
42
|
+
|
|
43
|
+
def access_key(self, access_key: str) -> "ClientConfigBuilder":
|
|
44
|
+
self._config.access_key = access_key
|
|
45
|
+
return self
|
|
46
|
+
|
|
47
|
+
def secret_key(self, secret_key: str) -> "ClientConfigBuilder":
|
|
48
|
+
self._config.secret_key = secret_key
|
|
49
|
+
return self
|
|
50
|
+
|
|
51
|
+
def username(self, username: str) -> "ClientConfigBuilder":
|
|
52
|
+
self._config.username = username
|
|
53
|
+
return self
|
|
54
|
+
|
|
55
|
+
def password(self, password: str) -> "ClientConfigBuilder":
|
|
56
|
+
self._config.password = password
|
|
57
|
+
return self
|
|
58
|
+
|
|
59
|
+
def cache_dir(self, cache_dir: str) -> "ClientConfigBuilder":
|
|
60
|
+
self._config.cache_dir = cache_dir
|
|
61
|
+
return self
|
|
62
|
+
|
|
63
|
+
def tls_config(self, tls_config: TLSConfig) -> "ClientConfigBuilder":
|
|
64
|
+
self._config.tls_config = tls_config
|
|
65
|
+
return self
|
|
66
|
+
|
|
67
|
+
def kms_config(self, kms_config: KMSConfig) -> "ClientConfigBuilder":
|
|
68
|
+
self._config.kms_config = kms_config
|
|
69
|
+
return self
|
|
70
|
+
|
|
71
|
+
def grpc_config(self, grpc_config: GRPCConfig) -> "ClientConfigBuilder":
|
|
72
|
+
self._config.grpc_config = grpc_config
|
|
73
|
+
return self
|
|
74
|
+
|
|
75
|
+
def load_cache_at_start(self, load_cache_at_start: bool) -> "ClientConfigBuilder":
|
|
76
|
+
self._config.load_cache_at_start = load_cache_at_start
|
|
77
|
+
return self
|
|
78
|
+
|
|
79
|
+
def app_conn_labels(self, app_conn_labels: dict) -> "ClientConfigBuilder":
|
|
80
|
+
if self._config.app_conn_labels is None:
|
|
81
|
+
self._config.app_conn_labels = {}
|
|
82
|
+
self._config.app_conn_labels.update(app_conn_labels)
|
|
83
|
+
return self
|
|
84
|
+
|
|
85
|
+
def build(self):
|
|
86
|
+
return self._config
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
class Constants:
|
|
2
|
+
NAMING_MODULE = "naming"
|
|
3
|
+
|
|
4
|
+
CONFIG_MODULE = "config"
|
|
5
|
+
|
|
6
|
+
LABEL_SOURCE = "source"
|
|
7
|
+
|
|
8
|
+
LABEL_SOURCE_SDK = "sdk"
|
|
9
|
+
|
|
10
|
+
LABEL_SOURCE_CLUSTER = "cluster"
|
|
11
|
+
|
|
12
|
+
LABEL_MODULE = "module"
|
|
13
|
+
|
|
14
|
+
CLIENT_VERSION = "Nacos-Python-Client:v2.0.0"
|
|
15
|
+
|
|
16
|
+
DATA_IN_BODY_VERSION = 204
|
|
17
|
+
|
|
18
|
+
DEFAULT_GROUP = "DEFAULT_GROUP"
|
|
19
|
+
|
|
20
|
+
WEB_CONTEXT = "/nacos"
|
|
21
|
+
|
|
22
|
+
APPNAME = "AppName"
|
|
23
|
+
|
|
24
|
+
UNKNOWN_APP = "UnknownApp"
|
|
25
|
+
|
|
26
|
+
DEFAULT_DOMAINNAME = "commonconfig.config-host.taobao.com"
|
|
27
|
+
|
|
28
|
+
DAILY_DOMAINNAME = "commonconfig.taobao.net"
|
|
29
|
+
|
|
30
|
+
NULL = ""
|
|
31
|
+
|
|
32
|
+
DATAID = "dataId"
|
|
33
|
+
|
|
34
|
+
GROUP = "group"
|
|
35
|
+
|
|
36
|
+
DEFAULT_HEARTBEAT_INTERVAL = 5
|
|
37
|
+
|
|
38
|
+
LAST_MODIFIED = "Last-Modified"
|
|
39
|
+
|
|
40
|
+
ACCEPT_ENCODING = "Accept-Encoding"
|
|
41
|
+
|
|
42
|
+
CONTENT_ENCODING = "Content-Encoding"
|
|
43
|
+
|
|
44
|
+
PROBE_MODIFY_REQUEST = "Listening-Configs"
|
|
45
|
+
|
|
46
|
+
PROBE_MODIFY_RESPONSE = "Probe-Modify-Response"
|
|
47
|
+
|
|
48
|
+
PROBE_MODIFY_RESPONSE_NEW = "Probe-Modify-Response-New"
|
|
49
|
+
|
|
50
|
+
USE_ZIP = "true"
|
|
51
|
+
|
|
52
|
+
CONTENT_MD5 = "Content-MD5"
|
|
53
|
+
|
|
54
|
+
CONFIG_VERSION = "Config-Version"
|
|
55
|
+
|
|
56
|
+
CONFIG_TYPE = "Config-Type"
|
|
57
|
+
|
|
58
|
+
ENCRYPTED_DATA_KEY = "Encrypted-Data-Key"
|
|
59
|
+
|
|
60
|
+
IF_MODIFIED_SINCE = "If-Modified-Since"
|
|
61
|
+
|
|
62
|
+
SPACING_INTERVAL = "client-spacing-interval"
|
|
63
|
+
|
|
64
|
+
BASE_PATH = "/v1/cs"
|
|
65
|
+
|
|
66
|
+
SERVICE_BASE_PATH = "/v1/ns"
|
|
67
|
+
|
|
68
|
+
CONFIG_CONTROLLER_PATH = BASE_PATH + "/configs"
|
|
69
|
+
|
|
70
|
+
TOKEN = "token"
|
|
71
|
+
|
|
72
|
+
ACCESS_TOKEN = "accessToken"
|
|
73
|
+
|
|
74
|
+
TOKEN_TTL = "tokenTtl"
|
|
75
|
+
|
|
76
|
+
GLOBAL_ADMIN = "globalAdmin"
|
|
77
|
+
|
|
78
|
+
USERNAME = "username"
|
|
79
|
+
|
|
80
|
+
TOKEN_REFRESH_WINDOW = "tokenRefreshWindow"
|
|
81
|
+
|
|
82
|
+
# second.
|
|
83
|
+
ASYNC_UPDATE_ADDRESS_INTERVAL = 300
|
|
84
|
+
|
|
85
|
+
# second.
|
|
86
|
+
POLLING_INTERVAL_TIME = 15
|
|
87
|
+
|
|
88
|
+
# millisecond.
|
|
89
|
+
ONCE_TIMEOUT = 2000
|
|
90
|
+
|
|
91
|
+
# millisecond.
|
|
92
|
+
SO_TIMEOUT = 60000
|
|
93
|
+
|
|
94
|
+
# millisecond.
|
|
95
|
+
CONFIG_LONG_POLL_TIMEOUT = 30000
|
|
96
|
+
|
|
97
|
+
# millisecond.
|
|
98
|
+
MIN_CONFIG_LONG_POLL_TIMEOUT = 10000
|
|
99
|
+
|
|
100
|
+
# millisecond.
|
|
101
|
+
CONFIG_RETRY_TIME = 2000
|
|
102
|
+
|
|
103
|
+
# Maximum number of retries.
|
|
104
|
+
MAX_RETRY = 3
|
|
105
|
+
|
|
106
|
+
# millisecond.
|
|
107
|
+
RECV_WAIT_TIMEOUT = ONCE_TIMEOUT * 5
|
|
108
|
+
|
|
109
|
+
ENCODE = "UTF-8"
|
|
110
|
+
|
|
111
|
+
MAP_FILE = "map-file.js"
|
|
112
|
+
|
|
113
|
+
FLOW_CONTROL_THRESHOLD = 20
|
|
114
|
+
|
|
115
|
+
FLOW_CONTROL_SLOT = 10
|
|
116
|
+
|
|
117
|
+
FLOW_CONTROL_INTERVAL = 1000
|
|
118
|
+
|
|
119
|
+
DEFAULT_PROTECT_THRESHOLD = 0.0
|
|
120
|
+
|
|
121
|
+
LINE_SEPARATOR = chr(1)
|
|
122
|
+
|
|
123
|
+
WORD_SEPARATOR = chr(2)
|
|
124
|
+
|
|
125
|
+
LONGPOLLING_LINE_SEPARATOR = "\r\n"
|
|
126
|
+
|
|
127
|
+
CLIENT_APPNAME_HEADER = "Client-AppName"
|
|
128
|
+
|
|
129
|
+
APP_NAME_HEADER = "AppName"
|
|
130
|
+
|
|
131
|
+
CLIENT_REQUEST_TS_HEADER = "Client-RequestTS"
|
|
132
|
+
|
|
133
|
+
CLIENT_REQUEST_TOKEN_HEADER = "Client-RequestToken"
|
|
134
|
+
|
|
135
|
+
ATOMIC_MAX_SIZE = 1000
|
|
136
|
+
|
|
137
|
+
NAMING_INSTANCE_ID_SPLITTER = "#"
|
|
138
|
+
|
|
139
|
+
NAMING_INSTANCE_ID_SEG_COUNT = 4
|
|
140
|
+
|
|
141
|
+
NAMING_HTTP_HEADER_SPLITTER = "\\|"
|
|
142
|
+
|
|
143
|
+
DEFAULT_CLUSTER_NAME = "DEFAULT"
|
|
144
|
+
|
|
145
|
+
DEFAULT_HEART_BEAT_TIMEOUT = 15000
|
|
146
|
+
|
|
147
|
+
DEFAULT_IP_DELETE_TIMEOUT = 30000
|
|
148
|
+
|
|
149
|
+
DEFAULT_HEART_BEAT_INTERVAL = 5000
|
|
150
|
+
|
|
151
|
+
DEFAULT_NAMESPACE_ID = ""
|
|
152
|
+
|
|
153
|
+
DEFAULT_USE_CLOUD_NAMESPACE_PARSING = True
|
|
154
|
+
|
|
155
|
+
WRITE_REDIRECT_CODE = 307
|
|
156
|
+
|
|
157
|
+
RESPONSE_SUCCESS_CODE = 200
|
|
158
|
+
|
|
159
|
+
REQUEST_DOMAIN_RETRY_TIME = 3
|
|
160
|
+
|
|
161
|
+
SERVICE_INFO_SPLITER = "@@"
|
|
162
|
+
|
|
163
|
+
CONFIG_INFO_SPLITER = "@@"
|
|
164
|
+
|
|
165
|
+
SERVICE_INFO_SPLIT_COUNT = 2
|
|
166
|
+
|
|
167
|
+
NULL_STRING = "null"
|
|
168
|
+
|
|
169
|
+
NUMBER_PATTERN = "^\\d+$"
|
|
170
|
+
|
|
171
|
+
ANY_PATTERN = ".*"
|
|
172
|
+
|
|
173
|
+
DEFAULT_INSTANCE_ID_GENERATOR = "simple"
|
|
174
|
+
|
|
175
|
+
SNOWFLAKE_INSTANCE_ID_GENERATOR = "snowflake"
|
|
176
|
+
|
|
177
|
+
HTTP_PREFIX = "http"
|
|
178
|
+
|
|
179
|
+
ALL_PATTERN = "*"
|
|
180
|
+
|
|
181
|
+
COLON = ":"
|
|
182
|
+
|
|
183
|
+
LINE_BREAK = "\n"
|
|
184
|
+
|
|
185
|
+
POUND = "#"
|
|
186
|
+
|
|
187
|
+
VIPSERVER_TAG = "Vipserver-Tag"
|
|
188
|
+
|
|
189
|
+
AMORY_TAG = "Amory-Tag"
|
|
190
|
+
|
|
191
|
+
LOCATION_TAG = "Location-Tag"
|
|
192
|
+
|
|
193
|
+
CHARSET_KEY = "charset"
|
|
194
|
+
|
|
195
|
+
EX_CONFIG_INFO = "exConfigInfo"
|
|
196
|
+
|
|
197
|
+
GROUP_NAME_KEY = "groupName"
|
|
198
|
+
|
|
199
|
+
SERVICE_NAME_KEY = "serviceName"
|
|
200
|
+
|
|
201
|
+
CIPHER_PRE_FIX = "cipher-"
|
|
202
|
+
|
|
203
|
+
DEFAULT_PORT = 8848
|
|
204
|
+
|
|
205
|
+
GRPC_MAX_RECEIVE_MESSAGE_LENGTH = 100 * 1024 * 1024
|
|
206
|
+
|
|
207
|
+
GRPC_KEEPALIVE_TIME_MILLS = 60 * 1000
|
|
208
|
+
|
|
209
|
+
GRPC_INITIAL_WINDOW_SIZE = 10 * 1024 * 1024
|
|
210
|
+
|
|
211
|
+
GRPC_INITIAL_CONN_WINDOW_SIZE = 10 * 1024 * 1024
|
|
212
|
+
|
|
213
|
+
KEEP_ALIVE_TIME_MILLS = 5000
|
|
214
|
+
|
|
215
|
+
INTERNAL_TIME_MILLS = 3000
|
|
216
|
+
|
|
217
|
+
DEFAULT_GRPC_TIMEOUT_MILLS = 3000
|
|
218
|
+
|
|
219
|
+
DEFAULT_TIMEOUT_MILLS = 10000
|
|
220
|
+
|
|
221
|
+
PER_TASK_CONFIG_SIZE = 3000
|
|
222
|
+
|
|
223
|
+
MSE_KMS_V1_DEFAULT_KEY_ID = "alias/acs/mse"
|
|
224
|
+
|
|
225
|
+
KMS_AES_128_ALGORITHM_NAME = "AES_128"
|
|
226
|
+
|
|
227
|
+
KMS_AES_256_ALGORITHM_NAME = "AES_256"
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
CLIENT_INVALID_PARAM = -400
|
|
2
|
+
|
|
3
|
+
CLIENT_DISCONNECT = -401
|
|
4
|
+
|
|
5
|
+
CLIENT_OVER_THRESHOLD = -503
|
|
6
|
+
|
|
7
|
+
INVALID_PARAM = 400
|
|
8
|
+
|
|
9
|
+
NO_RIGHT = 403
|
|
10
|
+
|
|
11
|
+
NOT_FOUND = 404
|
|
12
|
+
|
|
13
|
+
CONFLICT = 409
|
|
14
|
+
|
|
15
|
+
SERVER_ERROR = 500
|
|
16
|
+
|
|
17
|
+
BAD_GATEWAY = 502
|
|
18
|
+
|
|
19
|
+
OVER_THRESHOLD = 503
|
|
20
|
+
|
|
21
|
+
INVALID_SERVER_STATUS = 300
|
|
22
|
+
|
|
23
|
+
UN_REGISTER = 301
|
|
24
|
+
|
|
25
|
+
NO_HANDLER = 302
|
|
26
|
+
|
|
27
|
+
INVALID_INTERFACE_ERROR = -403
|
|
28
|
+
|
|
29
|
+
RESOURCE_NOT_FOUND = -404
|
|
30
|
+
|
|
31
|
+
HTTP_CLIENT_ERROR_CODE = -500
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class NacosException(Exception):
|
|
35
|
+
"""Custom exception class with an error code attribute."""
|
|
36
|
+
|
|
37
|
+
def __init__(self, error_code, message="An error occurred"):
|
|
38
|
+
self.error_code = error_code
|
|
39
|
+
self.message = message
|
|
40
|
+
super().__init__(f'Error [{error_code}]: {message}')
|