Updated host details l7 page (#6803)

This commit is contained in:
MatteoBiscosi 2022-10-05 10:20:27 +02:00
parent 0aa60f5001
commit c1c7b09e47
12 changed files with 688 additions and 230 deletions

View file

@ -0,0 +1,70 @@
--
-- (C) 2013-22 - ntop.org
--
dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
-- Imports
require "lua_utils"
local rest_utils = require "rest_utils"
-- Local variables
local host_ip = _GET["host"]
local vlan = _GET["vlan"]
local view = _GET["view"]
local host = interface.getHostInfo(host_ip, vlan) or {}
local total_bytes = 0
local rsp = {}
-- Applications
if view == 'applications' then
local host_applications = host["ndpi"]
-- Calculate the total bytes sent and received, to calculate the percentages
for _, v in pairs(host_applications) do
total_bytes = total_bytes + v["bytes.rcvd"] + v["bytes.sent"]
end
-- Now format the values
for k, v in pairs(host_applications) do
local tot_l7_bytes = v["bytes.sent"] + v["bytes.rcvd"]
rsp[#rsp + 1] = {
application = {
id = interface.getnDPIProtoId(k),
label = k,
},
duration = v["duration"],
bytes_sent = v["bytes.sent"],
bytes_rcvd = v["bytes.rcvd"],
tot_bytes = tot_l7_bytes,
percentage = (tot_l7_bytes * 100) / total_bytes,
}
end
else
-- Categories
local categories_utils = require "categories_utils"
local host_categories = host["ndpi_categories"]
-- Calculate the total bytes sent and received, to calculate the percentages
for _, v in pairs(host_categories) do
total_bytes = total_bytes + v["bytes"]
end
-- Now format the values
for k, v in pairs(host_categories) do
rsp[#rsp + 1] = {
category = {
id = interface.getnDPICategoryId(k),
label = getCategoryLabel(k, v.category),
},
applications = categories_utils.get_category_protocols_list(v.category, true),
duration = v["duration"],
tot_bytes = v["bytes"],
percentage = (v["bytes"] * 100) / total_bytes,
}
end
end
rest_utils.answer(rest_utils.consts.success.ok, rsp)