File: edit_check.lua

package info (click to toggle)
ntopng 5.2.1%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 121,832 kB
  • sloc: javascript: 143,431; cpp: 71,175; ansic: 11,108; sh: 4,687; makefile: 911; python: 587; sql: 512; pascal: 234; perl: 118; ruby: 52; exp: 4
file content (95 lines) | stat: -rw-r--r-- 2,969 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
--
-- (C) 2021 - ntop.org
--

-- TODO: reset custom callback
-- TODO: /scripts/lua/module/checks/templates

local dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path

local page_utils = require("page_utils")
local ui_utils = require("ui_utils")
local template = require("template_utils")
local json = require("dkjson")
local plugins_utils = require("plugins_utils")
local checks = require("checks")
local rest_utils = require "rest_utils"
local auth = require "auth"
local checks_utils = require("checks_utils")
local alert_severities = require("alert_severities")

local function format_exclusion_list_filters(filters)

    local formatted = {}

    for _, filter in ipairs(filters.current_filters) do
        for key, filter_value in pairs(filter) do
            formatted[#formatted+1] = key .. "=" .. filter_value
        end
    end 

    return table.concat(formatted, '\n')
end

if not auth.has_capability(auth.capabilities.checks) then
    rest_utils.answer(rest_utils.consts.err.not_granted)
    return
end

sendHTTPContentTypeHeader('text/html')

page_utils.set_active_menu_entry(page_utils.menu_entries.scripts_config)

-- append the menu above the page
dofile(dirs.installdir .. "/scripts/lua/inc/menu.lua")

local check_subdir = _GET["subdir"]
local script_key    = _GET["script_key"]

local configset     = checks.getConfigset()
local script_type   = checks.getScriptType(check_subdir)
local selected_script = checks.loadModule(getSystemInterfaceId(), script_type, check_subdir, script_key)
local script_title = i18n(selected_script.gui.i18n_title) or selected_script.gui.i18n_title

local confset_name  = configset.name
local titles        = checks_utils.load_configset_titles()

local hooks_config = checks.getScriptConfig(configset, selected_script, check_subdir)
local generated_templates = selected_script.template:render(hooks_config)

local generated_breadcrumb = ui_utils.render_breadcrumb(i18n("about.checks"), {
    {
        label = titles[check_subdir],
    },
    {
        href = ntop.getHttpPrefix() .. "/lua/admin/edit_configset.lua?subdir=" .. check_subdir,
        label = i18n("scripts_list.config", {}) .. " " .. confset_name
    },
    {
        active = true, 
        label = script_title
    }
    
}, "fab fa-superpowers")

local base_context = {
    info = ntop.getInfo(),
    json = json,
    edit_check = {
        breadcrumb = generated_breadcrumb,
        plugin = selected_script,
        alert_severities = alert_severities,
        script_title = script_title,
        rendered_hooks = generated_templates,
        
        hooks_config = hooks_config,
        check_subdir = check_subdir,
        script_key = script_key,
        filters = format_exclusion_list_filters(checks.getDefaultFilters(interface.getId(), check_subdir, script_key))
    }
}

print(template.gen("pages/edit_check.template", base_context))

dofile(dirs.installdir .. "/scripts/lua/inc/footer.lua")