Improve smart recording checks

This commit is contained in:
Alfredo Cardigliano 2023-06-15 09:56:07 +02:00
parent 50fa9de3d5
commit e5bc59bf66

View file

@ -14,9 +14,11 @@ if((not isAdministrator()) or (not recording_utils.isAvailable())) then
return
end
local record_traffic = false
local smart_record_traffic = false
-- POST check
if(_SERVER["REQUEST_METHOD"] == "POST") then
local record_traffic = false
if not isEmptyString(_POST["record_traffic"]) then
record_traffic = true
ntop.setCache('ntopng.prefs.ifid_'..master_ifid..'.traffic_recording.enabled', "1")
@ -36,22 +38,23 @@ if(_SERVER["REQUEST_METHOD"] == "POST") then
end
ntop.setCache('ntopng.prefs.ifid_'..master_ifid..'.traffic_recording.disk_space', tostring(disk_space))
local smart_record_traffic = false
if not isEmptyString(_POST["smart_record_traffic"]) then
smart_record_traffic = true
ntop.setCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.instance', recording_utils.getN2diskInstanceName(master_ifid))
ntop.setCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.enabled', "1")
else
ntop.delCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.enabled')
ntop.delCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.instance')
end
interface.updateSmartRecording()
if ntop.isEnterpriseXL() then
if not isEmptyString(_POST["smart_record_traffic"]) then
smart_record_traffic = true
ntop.setCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.instance', recording_utils.getN2diskInstanceName(master_ifid))
ntop.setCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.enabled', "1")
else
ntop.delCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.enabled')
ntop.delCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.instance')
end
interface.updateSmartRecording()
local smart_disk_space = recording_utils.default_disk_space
if not isEmptyString(_POST["smart_disk_space"]) then
smart_disk_space = tonumber(_POST["smart_disk_space"])*1024
local smart_disk_space = recording_utils.default_disk_space
if not isEmptyString(_POST["smart_disk_space"]) then
smart_disk_space = tonumber(_POST["smart_disk_space"])*1024
end
ntop.setCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.disk_space', tostring(smart_disk_space))
end
ntop.setCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.disk_space', tostring(smart_disk_space))
if recording_utils.isSupportedZMQInterface(master_ifid) then
local ext_ifname
@ -73,7 +76,7 @@ if(_SERVER["REQUEST_METHOD"] == "POST") then
local config = {}
config.max_disk_space = disk_space
config.bpf_filter = bpf_filter
if smart_record_traffic then
if ntop.isEnterpriseXL() and smart_record_traffic then
config.enable_smart_recording = true
config.max_smart_disk_space = smart_disk_space
end
@ -89,34 +92,39 @@ if(_SERVER["REQUEST_METHOD"] == "POST") then
end
end
local record_traffic = false
local smart_record_traffic = false
if ntop.getCache('ntopng.prefs.ifid_'..master_ifid..'.traffic_recording.enabled') == "1" then
record_traffic = true
if ntop.getCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.enabled') == "1" then
if ntop.isEnterpriseXL() and ntop.getCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.enabled') == "1" then
smart_record_traffic = true
end
end
local bpf_filter = ntop.getCache('ntopng.prefs.ifid_'..master_ifid..'.traffic_recording.bpf_filter')
local disk_space = ntop.getCache('ntopng.prefs.ifid_'..master_ifid..'.traffic_recording.disk_space')
local smart_disk_space = ntop.getCache('ntopng.prefs.ifid_'..master_ifid..'.smart_traffic_recording.disk_space')
local storage_info = recording_utils.storageInfo(master_ifid)
local max_space = recording_utils.recommendedSpace(master_ifid, storage_info)
-- Compute suggested max disk space
max_space = math.floor(max_space/(1024*1024*1024))*1024
if isEmptyString(disk_space) and isEmptyString(smart_disk_space) then
disk_space = max_space/2
smart_disk_space = max_space/2
elseif isEmptyString(disk_space) then
disk_space = ternary(max_space > tonumber(smart_disk_space), max_space - tonumber(smart_disk_space), 0)
elseif isEmptyString(smart_disk_space) then
smart_disk_space = ternary(max_space > tonumber(disk_space), max_space - tonumber(disk_space), 0)
if ntop.isEnterpriseXL() then
-- Compute recommended values for storage and smart storage
if isEmptyString(disk_space) and isEmptyString(smart_disk_space) then
disk_space = max_space/2
smart_disk_space = max_space/2
elseif isEmptyString(disk_space) then
disk_space = ternary(max_space > tonumber(smart_disk_space), max_space - tonumber(smart_disk_space), 0)
elseif isEmptyString(smart_disk_space) then
smart_disk_space = ternary(max_space > tonumber(disk_space), max_space - tonumber(disk_space), 0)
end
smart_disk_space = tostring(math.floor(tonumber(smart_disk_space)/1024))
else
-- Compute recommended values for storage only
disk_space = max_space
disk_space = tostring(math.floor(tonumber(disk_space)/1024))
end
disk_space = tostring(math.floor(tonumber(disk_space)/1024))
smart_disk_space = tostring(math.floor(tonumber(smart_disk_space)/1024))
print("<h2>"..i18n("traffic_recording.traffic_recording_settings").."</h2><br>")