lesscode-py 0.3.72__tar.gz → 0.3.74__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.
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/PKG-INFO +1 -1
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/es/es_request.py +30 -15
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/es_log/record_log.py +7 -5
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/oss/ks3_oss.py +7 -7
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/request.py +105 -156
- lesscode-py-0.3.74/lesscode/utils/upms_util.py +58 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/wrapper.py +6 -7
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/version.py +1 -1
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/web/router_mapping.py +14 -6
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/web/web_server.py +1 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode_py.egg-info/PKG-INFO +1 -1
- lesscode-py-0.3.72/lesscode/utils/upms_util.py +0 -33
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/README.md +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/base_connection_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/base_sql_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/condition_wrapper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/connection_info.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/db_function.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/ds_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/elasticsearch/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/elasticsearch/elasticsearch_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/elasticsearch/elasticsearch_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/es/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/es/es_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/es/es_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/init_connection_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/mongodb/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/mongodb/mongodb_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/mongodb/mongodb_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/mysql/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/mysql/mysql_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/mysql/mysql_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/mysql_sqlalchemy/SqlAlchemy.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/mysql_sqlalchemy/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/mysql_sqlalchemy/mysql_sqlalchemy_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/nebula/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/nebula/nebula_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/nebula/nebula_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/neo4j/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/neo4j/neo4j_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/neo4j/neo4j_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/page.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/postgresql/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/postgresql/postgresql_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/postgresql/postgresql_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/redis/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/redis/redis_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/redis/redis_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/redis_cluster/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/redis_cluster/redis_cluster_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/redis_cluster/redis_cluster_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/relational_db_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/sqlalchemy/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/sqlalchemy/sqlalchemy_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/sqlalchemy/sqlalchemy_pool.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/extend_handlers/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/extend_handlers/doc/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/extend_handlers/doc/swagger_interface_doc_handler.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/extend_handlers/not_found_handler.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/mq/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/mq/kafka/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/mq/kafka/kafka_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/mq/rabbitmq/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/mq/rabbitmq/rabbitmq_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/sentry/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/sentry/sentry_monitor.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/task/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/task/job_info.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/task/task_helper.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/CacheUtil.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/doc/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/doc/interface_doc_handler.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/es_log/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/json.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/utils/oss/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/web/__init__.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/web/base_handler.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/web/base_server_send_event_handler.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/web/base_websocket_handler.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/web/business_exception.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/web/native_handler.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/web/response_result.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/web/status_code.py +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode_py.egg-info/SOURCES.txt +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode_py.egg-info/dependency_links.txt +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode_py.egg-info/top_level.txt +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/setup.cfg +0 -0
- {lesscode-py-0.3.72 → lesscode-py-0.3.74}/setup.py +0 -0
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
import
|
|
2
|
+
import importlib
|
|
3
3
|
import random
|
|
4
4
|
|
|
5
|
-
import requests
|
|
6
|
-
from requests.auth import HTTPBasicAuth
|
|
7
|
-
|
|
8
5
|
|
|
9
6
|
class EsRequest:
|
|
10
7
|
|
|
11
8
|
def __init__(self, host, port, user, password):
|
|
9
|
+
|
|
12
10
|
# 主机地址
|
|
13
11
|
self.host = host
|
|
14
12
|
# 端口号
|
|
@@ -17,7 +15,11 @@ class EsRequest:
|
|
|
17
15
|
self.user = user
|
|
18
16
|
# 密码
|
|
19
17
|
self.password = password
|
|
20
|
-
|
|
18
|
+
try:
|
|
19
|
+
httpx = importlib.import_module("httpx")
|
|
20
|
+
except ImportError as e:
|
|
21
|
+
raise Exception(f"httpx is not exist,run:pip install httpx==0.24.1")
|
|
22
|
+
self.auth = httpx.BasicAuth(user, password)
|
|
21
23
|
host_str = host.split(",")
|
|
22
24
|
self.hosts = [host for host in host_str]
|
|
23
25
|
|
|
@@ -49,9 +51,13 @@ class EsRequest:
|
|
|
49
51
|
:param body:
|
|
50
52
|
:return:
|
|
51
53
|
"""
|
|
52
|
-
|
|
54
|
+
try:
|
|
55
|
+
httpx = importlib.import_module("httpx")
|
|
56
|
+
except ImportError as e:
|
|
57
|
+
raise Exception(f"httpx is not exist,run:pip install httpx==0.24.1")
|
|
58
|
+
r = httpx.post(
|
|
53
59
|
url,
|
|
54
|
-
|
|
60
|
+
json=body,
|
|
55
61
|
headers={'content-type': "application/json"},
|
|
56
62
|
params=params,
|
|
57
63
|
auth=self.auth
|
|
@@ -67,10 +73,14 @@ class EsRequest:
|
|
|
67
73
|
:param body:
|
|
68
74
|
:return:
|
|
69
75
|
"""
|
|
70
|
-
|
|
76
|
+
try:
|
|
77
|
+
httpx = importlib.import_module("httpx")
|
|
78
|
+
except ImportError as e:
|
|
79
|
+
raise Exception(f"httpx is not exist,run:pip install httpx==0.24.1")
|
|
80
|
+
r = httpx.put(
|
|
71
81
|
url,
|
|
72
82
|
params=params,
|
|
73
|
-
|
|
83
|
+
json=body,
|
|
74
84
|
headers={'content-type': "application/json"},
|
|
75
85
|
auth=self.auth
|
|
76
86
|
)
|
|
@@ -82,10 +92,13 @@ class EsRequest:
|
|
|
82
92
|
发送http请求
|
|
83
93
|
:param params:
|
|
84
94
|
:param url:
|
|
85
|
-
:param body:
|
|
86
95
|
:return:
|
|
87
96
|
"""
|
|
88
|
-
|
|
97
|
+
try:
|
|
98
|
+
httpx = importlib.import_module("httpx")
|
|
99
|
+
except ImportError as e:
|
|
100
|
+
raise Exception(f"httpx is not exist,run:pip install httpx==0.24.1")
|
|
101
|
+
r = httpx.get(
|
|
89
102
|
url,
|
|
90
103
|
params=params,
|
|
91
104
|
headers={'content-type': "application/json"},
|
|
@@ -94,17 +107,19 @@ class EsRequest:
|
|
|
94
107
|
res = r.json()
|
|
95
108
|
return res
|
|
96
109
|
|
|
97
|
-
def format_es_delete(self, url,
|
|
110
|
+
def format_es_delete(self, url, params=None):
|
|
98
111
|
"""
|
|
99
112
|
发送http请求
|
|
100
113
|
:param params:
|
|
101
114
|
:param url:
|
|
102
|
-
:param body:
|
|
103
115
|
:return:
|
|
104
116
|
"""
|
|
105
|
-
|
|
117
|
+
try:
|
|
118
|
+
httpx = importlib.import_module("httpx")
|
|
119
|
+
except ImportError as e:
|
|
120
|
+
raise Exception(f"httpx is not exist,run:pip install httpx==0.24.1")
|
|
121
|
+
r = httpx.delete(
|
|
106
122
|
url,
|
|
107
|
-
data=json.dumps(body) if body else body,
|
|
108
123
|
params=params,
|
|
109
124
|
headers={'content-type': "application/json"},
|
|
110
125
|
auth=self.auth
|
|
@@ -3,15 +3,13 @@
|
|
|
3
3
|
# @Author : navysummer
|
|
4
4
|
# @Email : navysummer@yeah.net
|
|
5
5
|
import datetime
|
|
6
|
+
import importlib
|
|
6
7
|
import json
|
|
7
8
|
import logging
|
|
8
9
|
import traceback
|
|
9
10
|
|
|
10
|
-
import requests
|
|
11
|
-
from requests.auth import HTTPBasicAuth
|
|
12
11
|
from tornado.options import options
|
|
13
12
|
|
|
14
|
-
from lesscode.db.ds_helper import DSHelper
|
|
15
13
|
from lesscode.utils.json import JSONEncoder
|
|
16
14
|
|
|
17
15
|
|
|
@@ -52,14 +50,18 @@ def es_record_log(request, message="", level="info", status_code=200, task_id=No
|
|
|
52
50
|
|
|
53
51
|
|
|
54
52
|
def send_es(protocol, connect_name, es_index, body):
|
|
53
|
+
try:
|
|
54
|
+
httpx = importlib.import_module("httpx")
|
|
55
|
+
except ImportError as e:
|
|
56
|
+
raise Exception(f"httpx is not exist,run:pip install httpx==0.24.1")
|
|
55
57
|
try:
|
|
56
58
|
pool, conn_info = options.database[connect_name]
|
|
57
59
|
url = f"{protocol}://{conn_info.host}:{conn_info.port}/{es_index}/_doc/"
|
|
58
|
-
res =
|
|
60
|
+
res = httpx.post(
|
|
59
61
|
url,
|
|
60
62
|
data=json.dumps(body, ensure_ascii=False, cls=JSONEncoder).encode('utf-8'),
|
|
61
63
|
headers={'content-type': "application/json"},
|
|
62
|
-
auth=
|
|
64
|
+
auth=httpx.BasicAuth(conn_info.user, conn_info.password)
|
|
63
65
|
)
|
|
64
66
|
|
|
65
67
|
if res.ok:
|
|
@@ -2,23 +2,23 @@ import importlib
|
|
|
2
2
|
import math
|
|
3
3
|
import os
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
from tornado.options import options
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class Ks3Oss:
|
|
9
9
|
def __init__(self, **kwargs):
|
|
10
10
|
if not kwargs.get("access_key_id"):
|
|
11
|
-
kwargs.update({"access_key_id":
|
|
11
|
+
kwargs.update({"access_key_id": options.ks3_connect_config.get("access_key_id")})
|
|
12
12
|
if not kwargs.get("access_key_secret"):
|
|
13
|
-
kwargs.update({"access_key_secret":
|
|
13
|
+
kwargs.update({"access_key_secret": options.ks3_connect_config.get("access_key_secret")})
|
|
14
14
|
if not kwargs.get("host"):
|
|
15
|
-
kwargs.update({"host":
|
|
15
|
+
kwargs.update({"host": options.ks3_connect_config.get("host")})
|
|
16
16
|
if not kwargs.get("is_secure"):
|
|
17
|
-
if
|
|
18
|
-
kwargs.update({"is_secure":
|
|
17
|
+
if options.ks3_connect_config.get("is_secure"):
|
|
18
|
+
kwargs.update({"is_secure": options.ks3_connect_config.get("is_secure")})
|
|
19
19
|
bucket_name = kwargs.pop("bucket_name", None)
|
|
20
20
|
if bucket_name is None:
|
|
21
|
-
bucket_name =
|
|
21
|
+
bucket_name = options.ks3_connect_config.get("bucket_name")
|
|
22
22
|
try:
|
|
23
23
|
ks3_connection = importlib.import_module("ks3.connection")
|
|
24
24
|
except ImportError:
|
|
@@ -2,90 +2,31 @@ import importlib
|
|
|
2
2
|
import random
|
|
3
3
|
import uuid
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
from tornado.options import options
|
|
6
6
|
|
|
7
7
|
from lesscode.web.business_exception import BusinessException
|
|
8
8
|
from lesscode.web.status_code import StatusCode
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
async def
|
|
12
|
-
|
|
13
|
-
result_type="json", pack=False, **kwargs):
|
|
14
|
-
try:
|
|
15
|
-
aiohttp = importlib.import_module("aiohttp")
|
|
16
|
-
except ImportError as e:
|
|
17
|
-
raise Exception(f"aiohttp is not exist,run:pip install aiohttp==3.8.3")
|
|
18
|
-
|
|
19
|
-
project_name = tornado.options.options.project_name.encode("utf-8")
|
|
20
|
-
flag = kwargs.pop("flag", True)
|
|
21
|
-
if flag:
|
|
22
|
-
if not kwargs.get("headers"):
|
|
23
|
-
kwargs.update({"headers": {
|
|
24
|
-
"Content-Type": "application/json",
|
|
25
|
-
"Project-Name": project_name,
|
|
26
|
-
"Request-Id": uuid.uuid1().hex
|
|
27
|
-
}})
|
|
28
|
-
else:
|
|
29
|
-
kwargs["headers"].update({"Project-Name": project_name})
|
|
30
|
-
else:
|
|
31
|
-
if not kwargs.get("headers"):
|
|
32
|
-
kwargs.update({"headers": {
|
|
33
|
-
"Project-Name": project_name,
|
|
34
|
-
"Request-Id": uuid.uuid1().hex
|
|
35
|
-
}})
|
|
36
|
-
else:
|
|
37
|
-
kwargs["headers"].update({"Project-Name": project_name})
|
|
38
|
-
async with aiohttp.ClientSession() as session:
|
|
39
|
-
flag = kwargs.pop("flag", True)
|
|
40
|
-
if flag:
|
|
41
|
-
async with session.post(base_url + path, json=data, **kwargs) as resp:
|
|
42
|
-
if result_type == "json":
|
|
43
|
-
result = await resp.json()
|
|
44
|
-
if not pack:
|
|
45
|
-
if result.get("status") == "00000":
|
|
46
|
-
result = result.get("data")
|
|
47
|
-
else:
|
|
48
|
-
message = f'ori_message:{result.get("status", "")}, {result.get("message", "未知错误")}'
|
|
49
|
-
raise BusinessException(StatusCode.COMMON_CODE_MESSAGE("C0001", message))
|
|
50
|
-
elif result_type == "text":
|
|
51
|
-
result = await resp.text()
|
|
52
|
-
else:
|
|
53
|
-
result = await resp.content.read()
|
|
54
|
-
return result
|
|
55
|
-
else:
|
|
56
|
-
async with session.post(base_url + path, data=data, **kwargs) as resp:
|
|
57
|
-
if result_type == "json":
|
|
58
|
-
result = await resp.json()
|
|
59
|
-
if not pack:
|
|
60
|
-
if result.get("status") == "00000":
|
|
61
|
-
result = result.get("data")
|
|
62
|
-
else:
|
|
63
|
-
message = f'ori_message:{result.get("status", "")}, {result.get("message", "未知错误")}'
|
|
64
|
-
raise BusinessException(StatusCode.COMMON_CODE_MESSAGE("C0001", message))
|
|
65
|
-
elif result_type == "text":
|
|
66
|
-
result = await resp.text()
|
|
67
|
-
else:
|
|
68
|
-
result = await resp.content.read()
|
|
69
|
-
return result
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
async def get(path, params=None, base_url=tornado.options.options.data_server, result_type="json", pack=False,
|
|
73
|
-
**kwargs):
|
|
11
|
+
async def common_request(method, path, params=None, data=None, json=None, base_url=options.data_server,
|
|
12
|
+
result_type="json", pack=False, connect_config=None, **kwargs):
|
|
74
13
|
try:
|
|
75
|
-
|
|
14
|
+
httpx = importlib.import_module("httpx")
|
|
76
15
|
except ImportError as e:
|
|
77
|
-
raise Exception(f"
|
|
78
|
-
project_name =
|
|
16
|
+
raise Exception(f"httpx is not exist,run:pip install httpx==0.24.1")
|
|
17
|
+
project_name = options.project_name.encode("utf-8")
|
|
79
18
|
if not kwargs.get("headers"):
|
|
80
19
|
kwargs.update({"headers": {
|
|
81
20
|
"Project-Name": project_name,
|
|
82
21
|
"Request-Id": uuid.uuid1().hex
|
|
83
22
|
}})
|
|
84
23
|
else:
|
|
85
|
-
kwargs["headers"].update({"Project-Name": project_name})
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
24
|
+
kwargs["headers"].update({"Project-Name": project_name, "Request-Id": uuid.uuid1().hex})
|
|
25
|
+
if not connect_config or not isinstance(connect_config, dict):
|
|
26
|
+
connect_config = dict()
|
|
27
|
+
with httpx.AsyncClient(**connect_config) as session:
|
|
28
|
+
async with session.request(method.upper(), url=base_url + path, params=params, json=json, data=data,
|
|
29
|
+
**kwargs) as resp:
|
|
89
30
|
if result_type == "json":
|
|
90
31
|
result = await resp.json()
|
|
91
32
|
if not pack:
|
|
@@ -95,22 +36,51 @@ async def get(path, params=None, base_url=tornado.options.options.data_server, r
|
|
|
95
36
|
message = f'ori_message:{result.get("status", "")}, {result.get("message", "未知错误")}'
|
|
96
37
|
raise BusinessException(StatusCode.COMMON_CODE_MESSAGE("C0001", message))
|
|
97
38
|
elif result_type == "text":
|
|
98
|
-
result = await resp.text
|
|
39
|
+
result = await resp.text
|
|
99
40
|
else:
|
|
100
41
|
result = await resp.content.read()
|
|
101
42
|
return result
|
|
102
43
|
|
|
103
44
|
|
|
45
|
+
async def post(path, data=None,
|
|
46
|
+
base_url=options.data_server,
|
|
47
|
+
result_type="json", pack=False, **kwargs):
|
|
48
|
+
flag = kwargs.pop("flag", True)
|
|
49
|
+
if flag:
|
|
50
|
+
return await common_request("POST", path=path, json=data, base_url=base_url,
|
|
51
|
+
result_type=result_type, pack=pack, **kwargs)
|
|
52
|
+
else:
|
|
53
|
+
return await common_request("POST", path=path, data=data, base_url=base_url,
|
|
54
|
+
result_type=result_type, pack=pack, **kwargs)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
async def get(path, params=None, base_url=options.data_server, result_type="json", pack=False,
|
|
58
|
+
**kwargs):
|
|
59
|
+
return await common_request("GET", path=path, params=params, base_url=base_url,
|
|
60
|
+
result_type=result_type, pack=pack, **kwargs)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
async def put(path, params=None, data=None, json=None, base_url=options.data_server, result_type="json", pack=False,
|
|
64
|
+
**kwargs):
|
|
65
|
+
return await common_request("PUT", path=path, params=params, data=data, json=json, base_url=base_url,
|
|
66
|
+
result_type=result_type, pack=pack, **kwargs)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
async def delete(path, params=None, data=None, json=None, base_url=options.data_server, result_type="json", pack=False,
|
|
70
|
+
**kwargs):
|
|
71
|
+
return await common_request("DELETE", path=path, params=params, data=data, json=json, base_url=base_url,
|
|
72
|
+
result_type=result_type, pack=pack, **kwargs)
|
|
73
|
+
|
|
74
|
+
|
|
104
75
|
def sync_common_request(method, path, params=None, data=None, json=None, base_url=None, result_type="json",
|
|
105
76
|
pack=False, connect_config=None, **kwargs):
|
|
106
77
|
try:
|
|
107
|
-
|
|
108
|
-
requests_adapters = importlib.import_module("requests.adapters")
|
|
78
|
+
httpx = importlib.import_module("httpx")
|
|
109
79
|
except ImportError as e:
|
|
110
|
-
raise Exception(f"
|
|
111
|
-
project_name =
|
|
80
|
+
raise Exception(f"httpx is not exist,run:pip install httpx==0.24.1")
|
|
81
|
+
project_name = options.project_name.encode("utf-8")
|
|
112
82
|
if not base_url:
|
|
113
|
-
base_url =
|
|
83
|
+
base_url = options.data_server
|
|
114
84
|
if not kwargs.get("headers"):
|
|
115
85
|
kwargs.update({"headers": {
|
|
116
86
|
"Project-Name": project_name,
|
|
@@ -118,53 +88,31 @@ def sync_common_request(method, path, params=None, data=None, json=None, base_ur
|
|
|
118
88
|
}})
|
|
119
89
|
else:
|
|
120
90
|
kwargs["headers"].update({"Project-Name": project_name, "Request-Id": uuid.uuid1().hex})
|
|
121
|
-
if not connect_config:
|
|
122
|
-
connect_config =
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
"
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
elif method == "POST":
|
|
137
|
-
res = s.post(base_url + path, params=params, data=data, json=json, **kwargs)
|
|
138
|
-
elif method == "PUT":
|
|
139
|
-
res = s.put(base_url + path, params=params, data=data, json=json, **kwargs)
|
|
140
|
-
elif method == "PATCH":
|
|
141
|
-
res = s.patch(base_url + path, params=params, data=data, json=json, **kwargs)
|
|
142
|
-
elif method == "DELETE":
|
|
143
|
-
res = s.delete(base_url + path, params=params, data=data, json=json, **kwargs)
|
|
144
|
-
else:
|
|
145
|
-
raise Exception(f"method={method} is not allowed")
|
|
146
|
-
except Exception as e:
|
|
147
|
-
raise e
|
|
148
|
-
finally:
|
|
149
|
-
s.close()
|
|
150
|
-
if result_type == "json":
|
|
151
|
-
res = res.json()
|
|
152
|
-
if not pack:
|
|
153
|
-
if res.get("status") == "00000":
|
|
154
|
-
res = res.get("data")
|
|
91
|
+
if not connect_config or not isinstance(connect_config, dict):
|
|
92
|
+
connect_config = dict()
|
|
93
|
+
with httpx.Client(**connect_config) as session:
|
|
94
|
+
try:
|
|
95
|
+
res = session.request(method.upper(), url=base_url + path, params=params, data=data, json=json, **kwargs)
|
|
96
|
+
if result_type == "json":
|
|
97
|
+
res = res.json()
|
|
98
|
+
if not pack:
|
|
99
|
+
if res.get("status") == "00000":
|
|
100
|
+
res = res.get("data")
|
|
101
|
+
else:
|
|
102
|
+
message = f'ori_message:{res.get("status", "")}, {res.get("message", "未知错误")}'
|
|
103
|
+
raise BusinessException(StatusCode.COMMON_CODE_MESSAGE("C0001", message))
|
|
104
|
+
elif result_type == "text":
|
|
105
|
+
res = res.text
|
|
155
106
|
else:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
else:
|
|
161
|
-
res = res.content
|
|
162
|
-
return res
|
|
107
|
+
res = res.content
|
|
108
|
+
return res
|
|
109
|
+
except Exception as e:
|
|
110
|
+
raise e
|
|
163
111
|
|
|
164
112
|
|
|
165
113
|
def sync_get(path, params=None, base_url=None, result_type="json", pack=False, connect_config=None, **kwargs):
|
|
166
114
|
if connect_config is None:
|
|
167
|
-
connect_config =
|
|
115
|
+
connect_config = options.connect_config
|
|
168
116
|
res = sync_common_request(method="GET", path=path, params=params, base_url=base_url,
|
|
169
117
|
result_type=result_type, pack=pack, connect_config=connect_config, **kwargs)
|
|
170
118
|
return res
|
|
@@ -175,7 +123,7 @@ def sync_post(path, data=None,
|
|
|
175
123
|
result_type="json", pack=False, connect_config=None, **kwargs):
|
|
176
124
|
flag = kwargs.pop("flag", True)
|
|
177
125
|
if connect_config is None:
|
|
178
|
-
connect_config =
|
|
126
|
+
connect_config = options.connect_config
|
|
179
127
|
if flag:
|
|
180
128
|
res = sync_common_request(method="POST", path=path, json=data, base_url=base_url,
|
|
181
129
|
result_type=result_type, pack=pack, connect_config=connect_config, **kwargs)
|
|
@@ -189,7 +137,7 @@ def sync_post(path, data=None,
|
|
|
189
137
|
def sync_patch(path, params=None, data=None, json=None, base_url=None,
|
|
190
138
|
result_type="json", pack=False, connect_config=None, **kwargs):
|
|
191
139
|
if connect_config is None:
|
|
192
|
-
connect_config =
|
|
140
|
+
connect_config = options.connect_config
|
|
193
141
|
res = sync_common_request(method="PATCH", path=path, params=params, data=data, json=json, base_url=base_url,
|
|
194
142
|
result_type=result_type, pack=pack, connect_config=connect_config, **kwargs)
|
|
195
143
|
return res
|
|
@@ -198,7 +146,7 @@ def sync_patch(path, params=None, data=None, json=None, base_url=None,
|
|
|
198
146
|
def sync_put(path, params=None, data=None, json=None, base_url=None,
|
|
199
147
|
result_type="json", pack=False, connect_config=None, **kwargs):
|
|
200
148
|
if connect_config is None:
|
|
201
|
-
connect_config =
|
|
149
|
+
connect_config = options.connect_config
|
|
202
150
|
res = sync_common_request(method="PATCH", path=path, params=params, data=data, json=json, base_url=base_url,
|
|
203
151
|
result_type=result_type, pack=pack, connect_config=connect_config, **kwargs)
|
|
204
152
|
return res
|
|
@@ -207,7 +155,7 @@ def sync_put(path, params=None, data=None, json=None, base_url=None,
|
|
|
207
155
|
def sync_delete(path, params=None, data=None, json=None, base_url=None,
|
|
208
156
|
result_type="json", pack=False, connect_config=None, **kwargs):
|
|
209
157
|
if connect_config is None:
|
|
210
|
-
connect_config =
|
|
158
|
+
connect_config = options.connect_config
|
|
211
159
|
res = sync_common_request(method="DELETE", path=path, params=params, data=data, json=json, base_url=base_url,
|
|
212
160
|
result_type=result_type, pack=pack, connect_config=connect_config, **kwargs)
|
|
213
161
|
return res
|
|
@@ -238,11 +186,11 @@ def eureka_request(path="", return_type="json", method="GET", data=None, app_nam
|
|
|
238
186
|
|
|
239
187
|
|
|
240
188
|
def eureka_get(path="", data=None, return_type="json", app_name="DATA_SERVICE", pack=False, **kwargs):
|
|
241
|
-
base_url =
|
|
189
|
+
base_url = options.data_server
|
|
242
190
|
if kwargs.get("base_url") is not None:
|
|
243
191
|
base_url = kwargs.pop("base_url")
|
|
244
192
|
|
|
245
|
-
if
|
|
193
|
+
if options.running_env != "local":
|
|
246
194
|
|
|
247
195
|
res = eureka_request(path=path, return_type=return_type, method="GET", data=data, app_name=app_name, pack=pack,
|
|
248
196
|
**kwargs)
|
|
@@ -254,10 +202,10 @@ def eureka_get(path="", data=None, return_type="json", app_name="DATA_SERVICE",
|
|
|
254
202
|
|
|
255
203
|
|
|
256
204
|
def eureka_post(path="", data=None, return_type="json", app_name="DATA_SERVICE", pack=False, **kwargs):
|
|
257
|
-
base_url =
|
|
205
|
+
base_url = options.data_server
|
|
258
206
|
if kwargs.get("base_url") is not None:
|
|
259
207
|
base_url = kwargs.pop("base_url")
|
|
260
|
-
if
|
|
208
|
+
if options.running_env != "local":
|
|
261
209
|
import json
|
|
262
210
|
res = eureka_request(path=path, return_type=return_type, method="POST", data=json.dumps(data),
|
|
263
211
|
app_name=app_name,
|
|
@@ -270,7 +218,7 @@ def eureka_post(path="", data=None, return_type="json", app_name="DATA_SERVICE",
|
|
|
270
218
|
|
|
271
219
|
|
|
272
220
|
def nacos_service_instance(service_name, namespace, clusters=None, group_name=None):
|
|
273
|
-
server_addresses =
|
|
221
|
+
server_addresses = options.nacos_config.get("server_addresses")
|
|
274
222
|
try:
|
|
275
223
|
nacos = importlib.import_module("nacos")
|
|
276
224
|
except ImportError as e:
|
|
@@ -289,10 +237,10 @@ def nacos_service_instance(service_name, namespace, clusters=None, group_name=No
|
|
|
289
237
|
|
|
290
238
|
def nacos_get(path, params=None, service_name=None, namespace="public", clusters=None, group_name=None,
|
|
291
239
|
pack=False, return_type="json", **kwargs):
|
|
292
|
-
base_url =
|
|
240
|
+
base_url = options.data_server
|
|
293
241
|
if kwargs.get("base_url") is not None:
|
|
294
242
|
base_url = kwargs.pop("base_url")
|
|
295
|
-
if
|
|
243
|
+
if options.running_env != "local":
|
|
296
244
|
service_instance = nacos_service_instance(service_name=service_name,
|
|
297
245
|
namespace=namespace, clusters=clusters, group_name=group_name)
|
|
298
246
|
base_url = f'http://{service_instance.get("ip")}:{service_instance.get("port")}'
|
|
@@ -303,10 +251,10 @@ def nacos_get(path, params=None, service_name=None, namespace="public", clusters
|
|
|
303
251
|
|
|
304
252
|
def nacos_post(path, data=None, service_name=None, namespace="public", clusters=None, group_name=None,
|
|
305
253
|
pack=False, return_type="json", **kwargs):
|
|
306
|
-
base_url =
|
|
254
|
+
base_url = options.data_server
|
|
307
255
|
if kwargs.get("base_url") is not None:
|
|
308
256
|
base_url = kwargs.pop("base_url")
|
|
309
|
-
if
|
|
257
|
+
if options.running_env != "local":
|
|
310
258
|
service_instance = nacos_service_instance(service_name=service_name,
|
|
311
259
|
namespace=namespace, clusters=clusters, group_name=group_name)
|
|
312
260
|
base_url = f'http://{service_instance.get("ip")}:{service_instance.get("port")}'
|
|
@@ -316,20 +264,20 @@ def nacos_post(path, data=None, service_name=None, namespace="public", clusters=
|
|
|
316
264
|
|
|
317
265
|
|
|
318
266
|
def common_get(path, params=None, service_name=None, namespace="public", clusters=None, group_name=None,
|
|
319
|
-
pack=False, return_type="json", connect_config=None, **kwargs):
|
|
320
|
-
base_url =
|
|
267
|
+
pack=False, return_type="json", connect_config=None, request_type="request", **kwargs):
|
|
268
|
+
base_url = options.data_server
|
|
321
269
|
if connect_config is None:
|
|
322
|
-
connect_config =
|
|
270
|
+
connect_config = options.connect_config
|
|
323
271
|
if kwargs.get("base_url") is not None:
|
|
324
272
|
base_url = kwargs.pop("base_url")
|
|
325
|
-
if
|
|
273
|
+
if request_type == "request":
|
|
326
274
|
res = sync_get(path=path, params=params, base_url=base_url, result_type=return_type, pack=pack,
|
|
327
275
|
connect_config=connect_config, **kwargs)
|
|
328
276
|
return res
|
|
329
|
-
elif
|
|
277
|
+
elif request_type == "eureka":
|
|
330
278
|
res = eureka_get(path=path, data=params, return_type=return_type, app_name=service_name, pack=pack, **kwargs)
|
|
331
279
|
return res
|
|
332
|
-
elif
|
|
280
|
+
elif request_type == "nacos":
|
|
333
281
|
res = nacos_get(path=path, params=params, service_name=service_name, namespace=namespace, clusters=clusters,
|
|
334
282
|
group_name=group_name, pack=pack, return_type=return_type, **kwargs)
|
|
335
283
|
return res
|
|
@@ -338,20 +286,20 @@ def common_get(path, params=None, service_name=None, namespace="public", cluster
|
|
|
338
286
|
|
|
339
287
|
|
|
340
288
|
def common_post(path, data=None, service_name=None, namespace="public", clusters=None, group_name=None,
|
|
341
|
-
pack=False, return_type="json", connect_config=None, **kwargs):
|
|
342
|
-
base_url =
|
|
289
|
+
pack=False, return_type="json", connect_config=None, request_type="request", **kwargs):
|
|
290
|
+
base_url = options.data_server
|
|
343
291
|
if connect_config is None:
|
|
344
|
-
connect_config =
|
|
292
|
+
connect_config = options.connect_config
|
|
345
293
|
if kwargs.get("base_url") is not None:
|
|
346
294
|
base_url = kwargs.pop("base_url")
|
|
347
|
-
if
|
|
295
|
+
if request_type == "request":
|
|
348
296
|
res = sync_post(path=path, data=data, base_url=base_url, result_type=return_type, pack=pack,
|
|
349
297
|
connect_config=connect_config, **kwargs)
|
|
350
298
|
return res
|
|
351
|
-
elif
|
|
299
|
+
elif request_type == "eureka":
|
|
352
300
|
res = eureka_post(path=path, data=data, return_type=return_type, app_name=service_name, pack=pack, **kwargs)
|
|
353
301
|
return res
|
|
354
|
-
elif
|
|
302
|
+
elif request_type == "nacos":
|
|
355
303
|
res = nacos_post(path=path, data=data, service_name=service_name, namespace=namespace, clusters=clusters,
|
|
356
304
|
group_name=group_name,
|
|
357
305
|
pack=pack, return_type=return_type, **kwargs)
|
|
@@ -360,13 +308,14 @@ def common_post(path, data=None, service_name=None, namespace="public", clusters
|
|
|
360
308
|
raise BusinessException(StatusCode.UNSUPPORTED_REQUEST_TYPE)
|
|
361
309
|
|
|
362
310
|
|
|
363
|
-
def common_put(path, params=None, data=None, json=None, pack=False, return_type="json", connect_config=None,
|
|
364
|
-
|
|
311
|
+
def common_put(path, params=None, data=None, json=None, pack=False, return_type="json", connect_config=None,
|
|
312
|
+
request_type="request", **kwargs):
|
|
313
|
+
base_url = options.data_server
|
|
365
314
|
if kwargs.get("base_url") is not None:
|
|
366
315
|
base_url = kwargs.pop("base_url")
|
|
367
316
|
if connect_config is None:
|
|
368
|
-
connect_config =
|
|
369
|
-
if
|
|
317
|
+
connect_config = options.connect_config
|
|
318
|
+
if request_type == "request":
|
|
370
319
|
res = sync_put(path=path, params=params, data=data, json=json,
|
|
371
320
|
base_url=base_url, result_type=return_type, pack=pack, connect_config=connect_config, **kwargs)
|
|
372
321
|
return res
|
|
@@ -375,13 +324,13 @@ def common_put(path, params=None, data=None, json=None, pack=False, return_type=
|
|
|
375
324
|
|
|
376
325
|
|
|
377
326
|
def common_patch(path, params=None, data=None, json=None, pack=False, return_type="json", connect_config=None,
|
|
378
|
-
**kwargs):
|
|
379
|
-
base_url =
|
|
327
|
+
request_type="request", **kwargs):
|
|
328
|
+
base_url = options.data_server
|
|
380
329
|
if kwargs.get("base_url") is not None:
|
|
381
330
|
base_url = kwargs.pop("base_url")
|
|
382
331
|
if connect_config is None:
|
|
383
|
-
connect_config =
|
|
384
|
-
if
|
|
332
|
+
connect_config = options.connect_config
|
|
333
|
+
if request_type == "request":
|
|
385
334
|
res = sync_patch(path=path, params=params, data=data, json=json,
|
|
386
335
|
base_url=base_url, result_type=return_type, pack=pack, connect_config=connect_config, **kwargs)
|
|
387
336
|
return res
|
|
@@ -390,13 +339,13 @@ def common_patch(path, params=None, data=None, json=None, pack=False, return_typ
|
|
|
390
339
|
|
|
391
340
|
|
|
392
341
|
def common_delete(path, params=None, data=None, json=None, pack=False, return_type="json", connect_config=None,
|
|
393
|
-
**kwargs):
|
|
394
|
-
base_url =
|
|
342
|
+
request_type="request", **kwargs):
|
|
343
|
+
base_url = options.data_server
|
|
395
344
|
if connect_config is None:
|
|
396
|
-
connect_config =
|
|
345
|
+
connect_config = options.connect_config
|
|
397
346
|
if kwargs.get("base_url") is not None:
|
|
398
347
|
base_url = kwargs.pop("base_url")
|
|
399
|
-
if
|
|
348
|
+
if request_type == "request":
|
|
400
349
|
res = sync_delete(path=path, params=params, data=data, json=json,
|
|
401
350
|
base_url=base_url, result_type=return_type, pack=pack, connect_config=connect_config,
|
|
402
351
|
**kwargs)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# @Time : 2022/8/10 11:32
|
|
3
|
+
# @Author : navysummer
|
|
4
|
+
# @Email : navysummer@yeah.net
|
|
5
|
+
import importlib
|
|
6
|
+
import logging
|
|
7
|
+
|
|
8
|
+
from tornado.options import options
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def upms_register(item, full_url):
|
|
12
|
+
if options.rms_register_enable:
|
|
13
|
+
try:
|
|
14
|
+
httpx = importlib.import_module("httpx")
|
|
15
|
+
except ImportError as e:
|
|
16
|
+
raise Exception(f"httpx is not exist,run:pip install httpx==0.24.1")
|
|
17
|
+
client_name = item[3] if item[3] else options.application_name
|
|
18
|
+
title = item[4] if item[4] else full_url
|
|
19
|
+
en_name = item[5] if item[5] else full_url
|
|
20
|
+
access = item[6] if item[6] else 0
|
|
21
|
+
client_res = httpx.get(url=f"{options.rms_register_server}/upms/client/fetchall",
|
|
22
|
+
params={"client_name": client_name}).json()
|
|
23
|
+
if not client_res.get("data"):
|
|
24
|
+
httpx.post(url=f"{options.rms_register_server}/upms/client/insert",
|
|
25
|
+
json={"client_name": client_name})
|
|
26
|
+
client_res = httpx.get(url=f"{options.rms_register_server}/upms/client/fetchall",
|
|
27
|
+
params={"client_name": client_name}).json()
|
|
28
|
+
client_id = client_res.get("data")[0].get("id")
|
|
29
|
+
resource_res = httpx.get(
|
|
30
|
+
url=f"{options.rms_register_server}/upms/resource/fetchall",
|
|
31
|
+
params={"client_name": client_name, "resource_type": 2, "url": full_url}).json()
|
|
32
|
+
if not resource_res.get("data"):
|
|
33
|
+
res = httpx.post(url=f"{options.rms_register_server}/upms/resource/insert",
|
|
34
|
+
json={"client_id": client_id, "resource_type": 2, "url": full_url, "label": title,
|
|
35
|
+
"en_name": en_name, "access": access}).json()
|
|
36
|
+
if res.get("status") == "00000":
|
|
37
|
+
logging.info(f"add url={full_url} to rms success")
|
|
38
|
+
else:
|
|
39
|
+
logging.info(f"add url={full_url} to rms fail")
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def resource_register(resource_type: int, url: str, label: str, access: int, parent_id: str, full_url: str = None):
|
|
43
|
+
if options.resource_register_enable:
|
|
44
|
+
try:
|
|
45
|
+
httpx = importlib.import_module("httpx")
|
|
46
|
+
except ImportError as e:
|
|
47
|
+
raise Exception(f"httpx is not exist,run:pip install httpx==0.24.1")
|
|
48
|
+
if resource_type == 2:
|
|
49
|
+
url = url if url else full_url
|
|
50
|
+
label = label if label else full_url
|
|
51
|
+
access = access if access else 0
|
|
52
|
+
client_id = options.client_id
|
|
53
|
+
resource_res = httpx.post(
|
|
54
|
+
url=f"{options.rms_register_server}/upms/resource/lesscode/insert",
|
|
55
|
+
json={"client_id": client_id, "resource_type": resource_type, "url": url, "label": label, "access": access,
|
|
56
|
+
"parent_id": parent_id}).json()
|
|
57
|
+
logging.info(resource_res)
|
|
58
|
+
return resource_res["data"]
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import functools
|
|
2
2
|
import json
|
|
3
|
-
import uuid
|
|
4
3
|
|
|
5
|
-
|
|
4
|
+
from tornado.options import options
|
|
6
5
|
|
|
7
6
|
from lesscode.web.business_exception import BusinessException
|
|
8
7
|
from lesscode.web.status_code import StatusCode
|
|
@@ -38,7 +37,7 @@ def user_verification(username="admin", **kw):
|
|
|
38
37
|
def wrapper(func):
|
|
39
38
|
@functools.wraps(func)
|
|
40
39
|
def run(self, *args, **kwargs):
|
|
41
|
-
if
|
|
40
|
+
if options.running_env != "local":
|
|
42
41
|
user_str = self.request.headers.get("User")
|
|
43
42
|
if user_str:
|
|
44
43
|
user = json.loads(user_str)
|
|
@@ -59,7 +58,7 @@ def user_verification(username="admin", **kw):
|
|
|
59
58
|
|
|
60
59
|
|
|
61
60
|
def login_verification_func(self, *args, **kwargs):
|
|
62
|
-
if
|
|
61
|
+
if options.running_env != "local":
|
|
63
62
|
user = self.request.headers.get("User")
|
|
64
63
|
if not user:
|
|
65
64
|
raise BusinessException(StatusCode.INVALID_TOKEN)
|
|
@@ -72,9 +71,9 @@ def login_verification_func(self, *args, **kwargs):
|
|
|
72
71
|
def login_verification(func):
|
|
73
72
|
@functools.wraps(func)
|
|
74
73
|
def wrapper(self, *args, **kwargs):
|
|
75
|
-
if not
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
if not options.login_verification_func:
|
|
75
|
+
options.login_verification_func = login_verification_func
|
|
76
|
+
options.login_verification_func(self, *args, **kwargs)
|
|
78
77
|
|
|
79
78
|
return func(self, *args, **kwargs)
|
|
80
79
|
|
|
@@ -3,17 +3,15 @@
|
|
|
3
3
|
import logging
|
|
4
4
|
import threading
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
from tornado.options import define
|
|
6
|
+
from tornado.options import define, options
|
|
8
7
|
from tornado.web import RequestHandler
|
|
9
8
|
|
|
10
9
|
from lesscode.utils.doc.interface_doc_handler import parser_swagger
|
|
11
|
-
from lesscode.utils.upms_util import upms_register
|
|
10
|
+
from lesscode.utils.upms_util import upms_register, resource_register
|
|
12
11
|
from lesscode.web.business_exception import BusinessException
|
|
13
12
|
from lesscode.web.status_code import StatusCode
|
|
14
13
|
|
|
15
14
|
define("route_prefix", default="", type=str, help="路由前缀")
|
|
16
|
-
tornado.options.options.route_prefix = ""
|
|
17
15
|
|
|
18
16
|
|
|
19
17
|
class RouterMapping(list):
|
|
@@ -47,7 +45,7 @@ def Handler(url: str, desc=""):
|
|
|
47
45
|
:param url:
|
|
48
46
|
:return:
|
|
49
47
|
"""
|
|
50
|
-
route_prefix =
|
|
48
|
+
route_prefix = options.route_prefix
|
|
51
49
|
|
|
52
50
|
def wrapper(cls):
|
|
53
51
|
# 验证是否为RequestHandler 子类,仅注册其子类
|
|
@@ -56,12 +54,20 @@ def Handler(url: str, desc=""):
|
|
|
56
54
|
# 通过类名查找对应该类下的所有注册方法信息
|
|
57
55
|
res = [item for item in RouterMapping.instance().dynamicMethods
|
|
58
56
|
if item[0] == cls.__name__]
|
|
57
|
+
# 资源注册
|
|
58
|
+
resource_id = resource_register(resource_type=0, url="", label="接口资源", access=0, parent_id="")
|
|
59
|
+
path_group_list = cls.__module__.split(".")
|
|
60
|
+
if path_group_list[0] == "handlers":
|
|
61
|
+
if desc:
|
|
62
|
+
path_group_list[-1] = desc
|
|
63
|
+
for path in path_group_list[1:]:
|
|
64
|
+
resource_id = resource_register(resource_type=0, url="", label=path, access=0, parent_id=resource_id)
|
|
59
65
|
for item in res:
|
|
60
66
|
# 处理类 RequestHandler 子类 使用时统一继承BaseHandler
|
|
61
67
|
handler = item[1]
|
|
62
68
|
# 全路径 Handler+Mapping 组合
|
|
63
69
|
full_url = route_prefix + url + item[2]
|
|
64
|
-
if
|
|
70
|
+
if options.url_log_enable:
|
|
65
71
|
logging.info(f"url={full_url}")
|
|
66
72
|
# 判断是否存在重复注册情况,重复情况直接抛出异常
|
|
67
73
|
# if [router for router in RouterMapping.instance() if full_url in router]:
|
|
@@ -75,6 +81,8 @@ def Handler(url: str, desc=""):
|
|
|
75
81
|
RouterMapping.instance().handlerMapping.append((full_url, handler))
|
|
76
82
|
# RouterMapping.instance().handlerMapping.append((full_url, handler))
|
|
77
83
|
upms_register(item, full_url)
|
|
84
|
+
resource_register(resource_type=2, url=item[5], label=item[4], access=item[6], parent_id=resource_id,
|
|
85
|
+
full_url=full_url)
|
|
78
86
|
cls.__route_name__ = url
|
|
79
87
|
try:
|
|
80
88
|
parser_swagger(cls, desc)
|
|
@@ -60,6 +60,7 @@ define("login_verification_func", default=None, type=object, help="登录验证
|
|
|
60
60
|
define("cors", default=None, type=dict, help="跨域策略")
|
|
61
61
|
define("url_log_enable", default=False, type=bool, help="项目url打印")
|
|
62
62
|
define("cronjob_config", default={}, type=dict, help="定时任务配置")
|
|
63
|
+
define("resource_register_enable", default=False, type=bool, help="资源注册开关")
|
|
63
64
|
# 日志初始化配置,配置文件中可修改设置
|
|
64
65
|
options.logging = "DEBUG"
|
|
65
66
|
options.log_rotate_mode = "time"
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
# @Time : 2022/8/10 11:32
|
|
3
|
-
# @Author : navysummer
|
|
4
|
-
# @Email : navysummer@yeah.net
|
|
5
|
-
import tornado.options
|
|
6
|
-
from requests import post, get
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def upms_register(item, full_url):
|
|
10
|
-
if tornado.options.options.rms_register_enable:
|
|
11
|
-
client_name = item[3] if item[3] else tornado.options.options.application_name
|
|
12
|
-
title = item[4] if item[4] else full_url
|
|
13
|
-
en_name = item[5] if item[5] else full_url
|
|
14
|
-
access = item[6] if item[6] else 0
|
|
15
|
-
client_res = get(url=f"{tornado.options.options.rms_register_server}/upms/client/fetchall",
|
|
16
|
-
params={"client_name": client_name}).json()
|
|
17
|
-
if not client_res.get("data"):
|
|
18
|
-
post(url=f"{tornado.options.options.rms_register_server}/upms/client/insert",
|
|
19
|
-
json={"client_name": client_name})
|
|
20
|
-
client_res = get(url=f"{tornado.options.options.rms_register_server}/upms/client/fetchall",
|
|
21
|
-
params={"client_name": client_name}).json()
|
|
22
|
-
client_id = client_res.get("data")[0].get("id")
|
|
23
|
-
resource_res = get(
|
|
24
|
-
url=f"{tornado.options.options.rms_register_server}/upms/resource/fetchall",
|
|
25
|
-
params={"client_name": client_name, "resource_type": 2, "url": full_url}).json()
|
|
26
|
-
if not resource_res.get("data"):
|
|
27
|
-
res = post(url=f"{tornado.options.options.rms_register_server}/upms/resource/insert",
|
|
28
|
-
json={"client_id": client_id, "resource_type": 2, "url": full_url, "label": title,
|
|
29
|
-
"en_name": en_name, "access": access}).json()
|
|
30
|
-
if res.get("status") == "00000":
|
|
31
|
-
print(f"add url={full_url} to rms success")
|
|
32
|
-
else:
|
|
33
|
-
print(f"add url={full_url} to rms fail")
|
|
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
|
{lesscode-py-0.3.72 → lesscode-py-0.3.74}/lesscode/db/mysql_sqlalchemy/mysql_sqlalchemy_pool.py
RENAMED
|
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
|
|
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
|