migration-tools/0013-display-agent-host-information.patch
2024-11-04 14:00:42 +08:00

125 lines
3.9 KiB
Diff

From 2140a85929564d0104bc364cd4e306f75c7dc77d Mon Sep 17 00:00:00 2001
From: lixin <lixinb@uniontech.com>
Date: Thu, 9 Nov 2023 16:35:55 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=BB=E6=9C=BA=E4=BF=A1?=
=?UTF-8?q?=E6=81=AF=E5=B1=95=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
index.py | 13 +++++++++++
views/server.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 70 insertions(+), 2 deletions(-)
diff --git a/index.py b/index.py
index 2cb89aa..0c64990 100644
--- a/index.py
+++ b/index.py
@@ -27,6 +27,7 @@ mods = {
'system_migration': migration.system_migration,
'migration_details': migration.migration_details,
'import_host_info': server.import_host_info,
+ 'host_info_display': server.host_info_display,
}
@app.route('/import_host_info', methods=['GET', 'POST'])
@@ -39,6 +40,18 @@ def import_host_info():
if mod:
return Response(mod, content_type='application/json')
+
+@app.route('/host_info_display', methods=['GET', 'POST'])
+def host_info_display():
+ """
+ 显示主机信息
+ :return:
+ """
+ mod = check_methods()
+ if mod:
+ return Response(mod, content_type='application/json')
+
+
def check_methods():
if request.method == 'POST':
data = request.get_data()
diff --git a/views/server.py b/views/server.py
index cf07d2f..d2ca719 100644
--- a/views/server.py
+++ b/views/server.py
@@ -38,7 +38,6 @@ def import_host_info(data):
return data_json
-
def get_agent_id(agent_ip):
"""
获取agent_id
@@ -77,4 +76,60 @@ def create_task_stream(agent_ip):
create_agent_task_sql = "insert into agent_task(agent_id,agent_ip,task_id,task_status,task_progress," \
"task_CreateTime,task_Updatetime,task_stream_id,task_data) values " \
"(%s, %s, %s, %s, %s, %s, %s, %s, %s);"
- DBHelper().insert(create_agent_task_sql, values)
\ No newline at end of file
+ DBHelper().insert(create_agent_task_sql, values)
+
+
+def pagebreak(data, page, size):
+ """
+ 页面数据分页
+ :param data:
+ :return:
+ """
+ page_start = (page - 1) * size
+ page_end = page * size
+ result = data[page_start:page_end]
+
+ return result
+
+def host_info_display(data):
+ """
+ 显示主机信息
+ agent_ip,hostname,agent_online_status,agent_os,agent_arch,
+ agent_history_faild_reason,task_CreateTime,task_status
+ :return:
+ """
+ page = json.loads(data).get('page')
+ size = json.loads(data).get('size')
+ sql = "select agent_ip,hostname,agent_online_status,agent_os,agent_arch," \
+ "agent_history_faild_reason from agent_info;"
+ data = DBHelper().execute(sql).fetchall()
+ data = list(data)
+ for i in range(0, len(data)):
+ data[i] = list(data[i])
+ agent_task = "select task_CreateTime,task_data from agent_task where agent_ip = '%s';" % data[i][0]
+ get_agent_task = DBHelper().execute(agent_task).fetchall()
+ get_agent_task = list(get_agent_task)
+
+ if not get_agent_task:
+ data[i] += ["", ""]
+ else:
+ task_CreateTime = get_agent_task[0][0].strftime('%Y-%-m-%d %H:%M:%S')
+ task_status = get_agent_task[0][1]
+ data[i].append(task_CreateTime)
+ data[i].append(task_status)
+
+ res = {}
+ res['num'] = len(data)
+ info_list = []
+ info_dict_keys_list = ['agent_ip', 'hostname', 'agent_online_status', 'agent_os', 'agent_arch',
+ 'failure_reasons', 'task_CreateTime', 'task_status']
+ for i in data:
+ info_list.append(dict(zip(info_dict_keys_list, i)))
+
+ page_list = pagebreak(info_list, page, size)
+ res['info'] = page_list
+ res['page'] = page
+ res['size'] = size
+
+ json_res = json.dumps(res)
+ return json_res
\ No newline at end of file
--
2.20.1