Fixes backup function not called (#7397)

This commit is contained in:
Matteo Biscosi 2023-04-13 18:07:07 +02:00
parent 4a138666c2
commit a1df1ab8de
2 changed files with 16 additions and 22 deletions

View file

@ -34,7 +34,7 @@ local function remove_last(epoch_keys)
table.sort(epoch_keys, function(a, b) return a[1].split('.')[4] < b[1].split('.')[4] end)
if debugger then
tprint(epoch_keys)
traceError(TRACE_DEBUG, TRACE_CONSOLE," Epoch Keys: " .. epoch_keys .. "\n")
end
for item in pairs(epoch_keys) do
@ -59,33 +59,31 @@ end
-- @brief Save configurations backup.
function backup_config.save_backup()
local instances = {}
instances["all"] = all_import_export:create()
local backup = import_export_rest_utils.export(instances, false)
if debugger then
tprint("START BACKUP SAVING")
traceError(TRACE_DEBUG, TRACE_CONSOLE, "START BACKUP SAVING")
end
local now = os.time()
local last_redis_key = saved_backup_key.."."..tostring(now)
local actual_saved_backup = ntop.getKeysCache(saved_backup_key..".*") or {}
local num_actual_saved_backup = count_entries(actual_saved_backup)
local current_saved_backup = ntop.getKeysCache(saved_backup_key..".*") or {}
local num_current_saved_backup = count_entries(current_saved_backup)
-- check actual saved backups
if (num_actual_saved_backup == 7) then
remove_last(actual_saved_backup)
if (num_current_saved_backup == 7) then
remove_last(current_saved_backup)
end
if debugger then
tprint(actual_saved_backup)
tprint(num_actual_saved_backup)
traceError(TRACE_DEBUG, TRACE_CONSOLE, "Total saved backups: " .. num_current_saved_backup .. "\nCurrent Saved Backup: " .. current_saved_backup .. "\n")
end
if (actual_saved_backup and num_actual_saved_backup > 1) then
if (current_saved_backup and num_current_saved_backup > 1) then
local last_backup = {}
for item in pairs(actual_saved_backup) do
for item in pairs(current_saved_backup) do
local redis_item = json.decode(ntop.getCache(item)) or {}
if(redis_item and redis_item.last) then
last_backup = {key = item, redis = redis_item}
@ -96,8 +94,7 @@ function backup_config.save_backup()
if (last_backup.redis.instance ~= backup) then
if debugger then
tprint("Saving on cache with key: "..last_redis_key)
tprint(backup)
traceError(TRACE_DEBUG, TRACE_CONSOLE, "Saving Backup: " .. backup .."\nUsing Redis key: " .. last_redis_key)
end
local string_to_save = json.encode({instance = backup, last = true})
last_backup.redis.last = false
@ -106,8 +103,7 @@ function backup_config.save_backup()
end
else
if debugger then
tprint("Saving on cache with key: "..last_redis_key)
tprint(backup)
traceError(TRACE_DEBUG, TRACE_CONSOLE, "Saving Backup: " .. backup .."\nUsing Redis key: " .. last_redis_key)
end
local string_to_save = json.encode({instance = backup, last = true})
ntop.setCache(last_redis_key, string_to_save)
@ -119,12 +115,12 @@ end
-- @brief List all configurations backup.
function backup_config.list_backup()
local num_actual_saved_backup = ntop.getKeysCache(saved_backup_key..".*") or {}
local num_current_saved_backup = ntop.getKeysCache(saved_backup_key..".*") or {}
local epoch_list = {}
if (num_actual_saved_backup) then
for item in pairs(num_actual_saved_backup) do
if (num_current_saved_backup) then
for item in pairs(num_current_saved_backup) do
table.insert(epoch_list, {epoch = item})
end
end
@ -143,9 +139,9 @@ function backup_config.export_backup(epoch)
local rc = rest_utils.consts.success.ok
local num_actual_saved_backup = ntop.getKeysCache(saved_backup_key..".*") or {}
local num_current_saved_backup = ntop.getKeysCache(saved_backup_key..".*") or {}
if(num_actual_saved_backup) then
if(num_current_saved_backup) then
local backup_to_restore_key = saved_backup_key.."."..epoch