ntopng/scripts/lua/traffic_extraction.lua
2022-03-23 16:20:38 +01:00

52 lines
1.4 KiB
Lua

--
-- (C) 2013-22 - ntop.org
--
local dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
require "lua_utils"
local json = require("dkjson")
local recording_utils = require "recording_utils"
sendHTTPContentTypeHeader('application/json')
local res = {}
local filter = _POST["bpf_filter"] or _GET["bpf_filter"]
local time_from = _POST["epoch_begin"] or _GET["epoch_begin"]
local time_to = _POST["epoch_end"] or _GET["epoch_end"]
local chart_url = _POST["url"] or _GET["url"]
if not recording_utils.isAvailable() then
res.error = i18n("traffic_recording.not_granted")
else
if time_from == nil or time_to == nil then
res.error = i18n("traffic_recording.missing_parameters")
else
interface.select(ifname)
local ifstats = interface.getStats()
time_from = tonumber(time_from)
time_to = tonumber(time_to)
local timeline_path
if recording_utils.getCurrentTrafficRecordingProvider(ifstats.id) ~= "ntopng" then
timeline_path = recording_utils.getCurrentTrafficRecordingProviderTimelinePath(ifstats.id)
end
local params = {
time_from = time_from,
time_to = time_to,
filter = filter,
chart_url = chart_url,
timeline_path = timeline_path
}
local job_info = recording_utils.scheduleExtraction(ifstats.id, params)
res.id = job_info.id
end
end
print(json.encode(res))