Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 43 additions & 26 deletions client/apache_shenyu_client/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
from .config import GatewayConfig, ALL_ENV
from .exception import (EnvTypeExp, SetUpUriExp, SetUpRegisterExp, SetUpGatewayExp, GetRegisterTokenErr)

__all__ = ["GatewayProxy"]


class GatewayProxy(object):

Expand All @@ -32,6 +34,7 @@ class GatewayProxy(object):
"""
gateway proxy class
"""

def __init__(self):
self.headers = {"Content-Type": "application/json;charset=UTF-8"}
self.env = GatewayConfig.uri.get("environment")
Expand Down Expand Up @@ -90,6 +93,8 @@ def _setup_register_params(self):
self.register_token_type = GatewayConfig.register.get("register_type")
self.register_base_servers = GatewayConfig.register.get("servers").split(",")
self.register_namespace_id = GatewayConfig.register.get("namespace_id")
self.register_namespace_id = self.register_namespace_id.split(";") if self.register_namespace_id else [
self.SYS_DEFAULT_NAMESPACE_ID]
self.register_path = "/platform/login"
self.register_token_servers = [_url + self.register_path for _url in self.register_base_servers]
self.register_username = GatewayConfig.register.get("props", {}).get("username")
Expand Down Expand Up @@ -181,19 +186,23 @@ def register_uri(self):
"appName": self.app_name,
"contextPath": self.context_path,
"rpcType": self.rpc_type,
"namespaceId": self.register_namespace_id or self.SYS_DEFAULT_NAMESPACE_ID,
"namespaceId": self.register_namespace_id[0],
"host": self.host,
"port": self.port
}
register_flag = False
for _url in self.register_uri_list:
res = self._request(_url, json_data)
if not res:
continue
else:
print("[SUCCESS], register uri success, register data is:{}".format(str(json_data)))
register_flag = True
break
for _namespace in self.register_namespace_id:
if not _namespace:
continue
json_data["namespaceId"] = _namespace
res = self._request(_url, json_data)
if not res:
continue
else:
print("[SUCCESS], register uri success, register data is:{}".format(str(json_data)))
register_flag = True
break
if not register_flag:
print("[ERROR], register uri fail, app_name is:{}, host is:{}, port is:{}".format(self.app_name,
self.host,
Expand Down Expand Up @@ -226,7 +235,7 @@ def register_metadata(self, **kwargs):
json_data = {
"appName": self.app_name,
"contextPath": self.context_path,
"namespaceId": self.register_namespace_id or self.SYS_DEFAULT_NAMESPACE_ID,
"namespaceId": self.register_namespace_id[0],
"path": path,
"pathDesc": path_desc,
"rpcType": self.rpc_type,
Expand All @@ -238,13 +247,17 @@ def register_metadata(self, **kwargs):
}
register_flag = False
for _url in self.register_meta_data_path_list:
res = self._request(_url, json_data)
if not res:
continue
else:
print("[SUCCESS], register metadata success, register data is:{}".format(str(json_data)))
register_flag = True
break
for _namespace in self.register_namespace_id:
if not _namespace:
continue
json_data["namespaceId"] = _namespace
res = self._request(_url, json_data)
if not res:
continue
else:
print("[SUCCESS], register metadata success, register data is:{}".format(str(json_data)))
register_flag = True
break
if not register_flag:
print("[ERROR],register metadata fail, app_name:{}, path:{}, contextPath:{}".format(self.app_name,
path,
Expand Down Expand Up @@ -277,7 +290,7 @@ def register_discovery_config(self, **kwargs):
break
if not register_flag:
print("[ERROR],register discovery config fail, app_name:{}, contextPath:{}".format(self.app_name,
self.context_path))
self.context_path))
return register_flag

def offline_register(self):
Expand All @@ -301,19 +314,23 @@ def offline_register(self):
"protocol": self.rpc_type,
"host": self.host,
"port": self.port,
"namespaceId": self.register_namespace_id | self.SYS_DEFAULT_NAMESPACE_ID,
"namespaceId": self.register_namespace_id[0],
"eventType": "OFFLINE"
}
register_flag = False
for _url in self.register_offline_suffix:
res = self._request(_url, json_data)
if not res:
continue
else:
print("[SUCCESS], offline register success, register data is:{}".format(str(json_data)))
register_flag = True
break
for _namespace in self.register_namespace_id:
if not _namespace:
continue
json_data["namespaceId"] = _namespace
res = self._request(_url, json_data)
if not res:
continue
else:
print("[SUCCESS], offline register success, register data is:{}".format(str(json_data)))
register_flag = True
break
if not register_flag:
print("[ERROR],offline register fail, app_name:{}, contextPath:{}".format(self.app_name,
self.context_path))
self.context_path))
return register_flag
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
requests==2.32.3
requests>=2.31.0