summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhandingkang <[email protected]>2024-04-18 17:18:12 +0800
committerhandingkang <[email protected]>2024-04-18 17:18:12 +0800
commitb862fe9d30bf179cefaddaf25f8ccfc8b50b36d2 (patch)
treeb0a66cccf2a71c1c1af8be549406766ae9098779
parent3c02761ae60e96feca4829ef4f2d73e07b8e8637 (diff)
代理注册接口问题修复
-rw-r--r--agent/app.py4
-rw-r--r--server/apps/agentcomm.py82
-rw-r--r--server/apps/util.py11
3 files changed, 60 insertions, 37 deletions
diff --git a/agent/app.py b/agent/app.py
index 6a26c8c..ee88577 100644
--- a/agent/app.py
+++ b/agent/app.py
@@ -100,8 +100,8 @@ if __name__ == '__main__':
args = parser.parse_args()
# 注册代理,并获取主控分配的代理编号
- id = registernode(port=args.port, server=args.server, atype=args.type)
- config = {"id": id, "port": args.port, "atype": args.type, "server": args.server}
+ id = registernode(port=args.port, server=args.server, atype=args.atype)
+ config = {"id": id, "port": args.port, "atype": args.atype, "server": args.server}
# 配置写入yaml文件存储
with open('config.yaml', 'w') as f:
diff --git a/server/apps/agentcomm.py b/server/apps/agentcomm.py
index 43f197b..d8611a9 100644
--- a/server/apps/agentcomm.py
+++ b/server/apps/agentcomm.py
@@ -7,7 +7,7 @@ from apiflask.validators import OneOf
from flask import request
from settings import *
-from .util import da
+from .util import da, error, string_to_mysql
bp = APIBlueprint("代理管理接口集合", __name__, url_prefix="/agent")
@@ -78,18 +78,22 @@ def register_agent():
id = "".join(random.sample('1234567890zyxwvutsrqponmlkjihgfedcba', 8))
# 代理所有参数
param = {"id": id,
- "ipaddr": (request.remote_addr).join(("|" + i) for i in data["v6addr"]),
- "start_time": str(datetime.datetime.now()),
+ "ipaddr": "|".join([request.remote_addr] + [i for i in data["v6addr"]]),
+ # "start_time",在数据库中实现
"lat": data["lat"],
"lng": data["lng"],
"cpunum": data["cpu_num"],
- "mem": data["ram_size"] + "GB" + "(" + {1 - data["ram_per"]} + "%" + "可用)",
+ "mem": str(data["ram_size"]) + "GB" + "(" + str(1 - data["ram_per"]) + "%" + "可用)",
"sys": data["sys"],
"status": True,
"idle": True,
"port": data["port"],
"atype": data["atype"],
}
+ # 对字符串值进行处理
+ param = string_to_mysql(param)
+ param["tab"] = MYSQL_TAB_AGENT
+ print(param)
err = insert_agent(param)
if not err:
return {"id": id}
@@ -164,37 +168,6 @@ def agent_info(query_data):
return {"code": 200, "agent_data": agent_list, "total": res_count}
-# 代理信息存储到数据库
-def insert_agent(param: dict):
- sql = """REPLACE INTO %s(AGENT_ID,IPADDR,
- CREATED_TIME,
- LAT,
- LNG ,
- AGENT_TYPE,
- SYS ,
- PORT ,
- CPU_NUM ,
- STATUS ,
- RAM_SIZE ,
- WORK_STATUS) VALUES(
- %(id)s,
- %(ipaddr)s,
- %(create_time)s,
- %(lat)s,
- %(lng)s,
- %(atype)s,
- %(sys)s,
- %(port)s,
- %(cpunum)s,
- %(status)s,
- %(mem)s,
- %(work_status)s)
- )""" % param
- da.cursor.execute(sql)
- da.conn.commit()
- return None
-
-
@bp.doc("代理删除接口", "输入参数说明:</br>"
+ "id: 代理编号")
@bp.post("/del")
@@ -208,4 +181,43 @@ def insert_agent(param: dict):
# TODO: 实现
def del_agent(json_data):
print(json_data)
+ sql = """DELETE FROM %s WHERE id = %s
+ """ % (MYSQL_TAB_AGENT, json_data["id"])
+ try:
+ da.cursor.execute(sql)
+ da.conn.commit()
+ except Exception as e:
+ error(message=str(e))
return {"code": 200, "msg": "ok"}
+
+
+# 代理信息存储到数据库
+def insert_agent(param: dict):
+ sql = """REPLACE INTO %(tab)s(
+ AGENT_ID,
+ IPADDR,
+ LAT,
+ LNG ,
+ AGENT_TYPE,
+ SYS ,
+ PORT ,
+ CPU_NUM ,
+ STATUS ,
+ MEM,
+ IDLE)
+ VALUES(
+ %(id)s,
+ %(ipaddr)s,
+ %(lat)s,
+ %(lng)s,
+ %(atype)s,
+ %(sys)s,
+ %(port)s,
+ %(cpunum)s,
+ %(status)s,
+ %(mem)s,
+ %(idle)s);""" % param
+ print(sql)
+ da.cursor.execute(sql)
+ da.conn.commit()
+ return None
diff --git a/server/apps/util.py b/server/apps/util.py
index 320ef37..39986cb 100644
--- a/server/apps/util.py
+++ b/server/apps/util.py
@@ -226,6 +226,17 @@ class DataHandler:
da = DataHandler()
+# 将插入mysql中的字符串处理为满足mysql形式的单引号字符串,输入为字典形式
+def string_to_mysql(data: dict):
+ res = {}
+ for key, val in data.items():
+ if type(val) == type("text"):
+ res[key] = "\'" + val + "\'"
+ else:
+ res[key] = val
+ return res
+
+
def debug(message, *args, **kwargs):
logger.debug(message, *args, **kwargs)