diff options
| author | handingkang <[email protected]> | 2024-04-18 17:18:12 +0800 |
|---|---|---|
| committer | handingkang <[email protected]> | 2024-04-18 17:18:12 +0800 |
| commit | b862fe9d30bf179cefaddaf25f8ccfc8b50b36d2 (patch) | |
| tree | b0a66cccf2a71c1c1af8be549406766ae9098779 | |
| parent | 3c02761ae60e96feca4829ef4f2d73e07b8e8637 (diff) | |
代理注册接口问题修复
| -rw-r--r-- | agent/app.py | 4 | ||||
| -rw-r--r-- | server/apps/agentcomm.py | 82 | ||||
| -rw-r--r-- | server/apps/util.py | 11 |
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) |
