service_engine_register.py
2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# coding=utf-8
#author: 4N
#createtime: 2021/9/14
#email: nheweijun@sina.com
from app.util.component.ApiTemplate import ApiTemplate
import requests
from app.modules.service.models import ServiceEngine,db,Service
import datetime
import uuid
import configure
class Api(ApiTemplate):
api_name = "注册服务引擎"
def process(self):
res = {}
try:
url = self.para.get("url")
name = self.para.get("name")
if ServiceEngine.query.filter_by(url=url).one_or_none():
raise Exception("引擎已注册!")
response:requests.Response = requests.get(url,timeout=3)
if response.status_code != 200:
raise Exception("服务引擎连接失败!")
this_time = datetime.datetime.now()
engine_guid = uuid.uuid1().__str__()
service_engine = ServiceEngine(guid=engine_guid,
name=name if name else response.json().get("Name"),
url=url,
type=response.json().get("Type"),
create_time=this_time
)
#注册地址匹配引擎服务
if response.json().get("Type") == "AddServer":
response: requests.Response = requests.get("{}/Info".format(url),timeout=3)
if response.status_code != 200:
raise Exception("服务引擎连接失败!")
add_name = response.json().get("name")
service = Service(
guid=engine_guid,
name=add_name,
title=add_name,
state=1,
create_time=this_time,
update_time=this_time,
description="地址匹配",
node=1,
overview="{}/Thumbnail".format(url),
type="地址匹配",
url = url
)
db.session.add(service)
db.session.add(service_engine)
db.session.commit()
res["result"] = True
except Exception as e:
raise e
return res
api_doc = {
"tags": ["引擎接口"],
"parameters": [
{"name": "url",
"in": "formData",
"type": "string",
"description": "服务地址"},
{"name": "name",
"in": "formData",
"type": "string",
"description": "name"},
],
"responses": {
200: {
"schema": {
"properties": {
}
}
}
}
}