mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-30 16:09:32 +00:00
82 lines
2 KiB
Lua
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
|