ntopng/scripts/lua/modules/configuration_utils.lua
2025-07-28 11:23:46 +02:00

82 lines
2 KiB
Lua

--
-- (C) 2013-24 - ntop.org
--
require "lua_utils"
local sys_utils = require "sys_utils"
local rest_utils = require("rest_utils")
local conf_utils = {}
local dirs = ntop.getDirs()
local dir = dirs.bindir .. "/ntopng-config"
local redis_key = "increased_max_num_host_or_flows"
-- ################################################################
local function closestNumber(n)
if n > 0 and (n & (n - 1)) == 0 then
return n
end
-- Find the closest 2^ to the number n
local x = 2 ^ math.ceil(math.log(n) / math.log(2))
local i, _ = math.modf(x)
return i
end
-- ################################################################
function conf_utils.increase_num_host_num_flows(incr_num_hosts, incr_num_flows)
local exit_status
-- Double the value of the hosts or of the flows
if incr_num_hosts then
local num_hosts = interface.getNumHosts()
num_hosts = closestNumber(num_hosts)
exit_status = sys_utils.execShellCmd(dir .. " -x " .. num_hosts)
elseif incr_num_flows then
local num_flows = interface.getNumFlows()
num_flows = closestNumber(num_flows)
exit_status = sys_utils.execShellCmd(dir .. " -X " .. num_flows)
end
local res = {
exit_status = exit_status
}
if string.find(exit_status, "succesfully changed") then
-- Set the redis key for the restart
ntop.setCache(redis_key, true)
rest_utils.answer(rest_utils.consts.success.ok, res)
return
end
rest_utils.answer(rest_utils.consts.err.internal_error, res)
end
-- #################################
function conf_utils.set_restart_required()
ntop.setCache(redis_key, true)
end
-- #################################
function conf_utils.restart_required()
if ntop.getCache(redis_key) == '' then
return false
end
return true
end
-- #################################
function conf_utils.reset()
if ntop.getCache(redis_key) ~= '' then
ntop.delCache(redis_key)
end
end
-- #################################
return conf_utils