mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-29 07:29:32 +00:00
Reworks factory reset
This commit is contained in:
parent
6a23f59bcf
commit
6fc182412f
6 changed files with 85 additions and 31 deletions
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
local os_utils = require "os_utils"
|
||||
local prefs_reload_utils = require "prefs_reload_utils"
|
||||
local prefs_factory_reset_utils = require "prefs_factory_reset_utils"
|
||||
|
||||
local prefs_dump_utils = {}
|
||||
|
||||
|
|
@ -20,14 +21,6 @@ local patterns = {"ntopng.prefs.*", "ntopng.user.*"}
|
|||
|
||||
-- ###########################################
|
||||
|
||||
local function set_admin_prefs()
|
||||
-- User admin is always an administrator, let's make sure serialized values are correct
|
||||
ntop.setCache("ntopng.user.admin.group", "administrator")
|
||||
ntop.setCache("ntopng.user.admin.allowed_nets", "0.0.0.0/0,::/0")
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
local debug = false
|
||||
|
||||
function prefs_dump_utils.check_dump_prefs_to_disk()
|
||||
|
|
@ -70,6 +63,17 @@ end
|
|||
|
||||
-- ###########################################
|
||||
|
||||
local function delete_all_keys()
|
||||
for _, pattern in pairs(patterns) do
|
||||
local keys = ntop.getKeysCache(pattern)
|
||||
for k, _ in pairs(keys or {}) do
|
||||
ntop.delCache(k)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function prefs_dump_utils.check_restore_prefs_from_disk()
|
||||
if not prefs_reload_utils.is_dump_prefs_to_disk_enabled() then
|
||||
-- nothing to do
|
||||
|
|
@ -94,12 +98,7 @@ function prefs_dump_utils.check_restore_prefs_from_disk()
|
|||
-- Failing to do this delete could result in inconsistent redis state as:
|
||||
-- 1. There could be redis keys not yet backed up to file (backup is done at most once every few seconds)
|
||||
-- 2. Redis keys not backed up to file could rely/depends on other keys that won't be restored.
|
||||
for _, pattern in pairs(patterns) do
|
||||
local keys = ntop.getKeysCache(pattern)
|
||||
for k, _ in pairs(keys or {}) do
|
||||
ntop.delCache(k)
|
||||
end
|
||||
end
|
||||
delete_all_keys()
|
||||
|
||||
local json = require("dkjson")
|
||||
local restore = json.decode(dump, 1, nil)
|
||||
|
|
@ -115,9 +114,24 @@ function prefs_dump_utils.check_restore_prefs_from_disk()
|
|||
ntop.restoreCache(k,v)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
set_admin_prefs()
|
||||
-- Necessary to reload all the restored and deleted preferences
|
||||
ntop.reloadPreferences(true --[[ also reset Redis defaults (e.g., admin user name, group, password) --]])
|
||||
end
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
-- @brief Perform a factory reset, if requested.
|
||||
-- NOTE: must be performed right after the startup of ntopng
|
||||
function prefs_dump_utils.check_prefs_factory_reset()
|
||||
if prefs_factory_reset_utils.is_prefs_factory_reset_requested() then
|
||||
-- Delete all the configuration keys
|
||||
delete_all_keys()
|
||||
|
||||
-- Necessary as all the preferences have been deleted: defaults will be reloaded
|
||||
ntop.reloadPreferences(true --[[also reset Redis defaults (e..g, admin user name, group, password) --]])
|
||||
end
|
||||
end
|
||||
|
||||
return prefs_dump_utils
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue