mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-30 07:59:35 +00:00
205 lines
6.7 KiB
Lua
205 lines
6.7 KiB
Lua
--
|
|
-- (C) 2013-20 - ntop.org
|
|
--
|
|
|
|
dirs = ntop.getDirs()
|
|
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
|
|
require "lua_utils"
|
|
local ts_utils = require("ts_utils")
|
|
local info = ntop.getInfo()
|
|
local page_utils = require("page_utils")
|
|
local alerts_api = require("alerts_api")
|
|
local format_utils = require("format_utils")
|
|
|
|
local plugins_utils = require "plugins_utils"
|
|
local notification_configs = require("notification_configs")
|
|
local notification_recipients = require("notification_recipients")
|
|
|
|
sendHTTPContentTypeHeader('text/html')
|
|
|
|
page_utils.print_header(i18n("about.about_x", { product=info.product }))
|
|
|
|
if not isAdministrator() then
|
|
return
|
|
end
|
|
|
|
dofile(dirs.installdir .. "/scripts/lua/inc/menu.lua")
|
|
|
|
local res
|
|
|
|
---------------------------
|
|
-- TEST ENDPOINT CONFIGS --
|
|
---------------------------
|
|
|
|
res = notification_configs.reset_configs()
|
|
assert(res["status"] == "OK")
|
|
|
|
res = notification_configs.delete_config("nonexisting_config_name")
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "endpoint_config_not_existing")
|
|
|
|
res = notification_configs.add_config("nonexisting", nil, nil)
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "endpoint_not_existing")
|
|
|
|
res = notification_configs.add_config("email", nil, nil)
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "invalid_endpoint_conf_name")
|
|
|
|
res = notification_configs.add_config("email", "ntop_email", nil)
|
|
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "invalid_conf_params")
|
|
|
|
-- see email.lua for mandatory conf_params
|
|
local conf_params = {
|
|
smtp_server = "mail.ntop.org"
|
|
}
|
|
|
|
res = notification_configs.add_config("email", "ntop_email", conf_params)
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "missing_mandatory_param")
|
|
|
|
conf_params = {
|
|
smtp_server = "mail.ntop.org",
|
|
email_sender = "tester@ntop.org"
|
|
}
|
|
res = notification_configs.add_config("email", "ntop_email", conf_params)
|
|
assert(res["status"] == "OK")
|
|
|
|
-- Duplicate addition
|
|
res = notification_configs.add_config("email", "ntop_email", conf_params)
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "endpoint_config_already_existing")
|
|
|
|
-- Delete the endpoint
|
|
res = notification_configs.delete_config("ntop_email")
|
|
assert(res["status"] == "OK")
|
|
|
|
-- Add also some optional params
|
|
conf_params = {
|
|
smtp_server = "mail.ntop.org",
|
|
email_sender = "tester@ntop.org",
|
|
smpt_username = "ntopuser",
|
|
smtp_password = "ntoppassword"
|
|
}
|
|
|
|
res = notification_configs.add_config("email", "ntop_email", conf_params)
|
|
assert(res["status"] == "OK")
|
|
|
|
res = notification_configs.delete_config("ntop_email")
|
|
assert(res["status"] == "OK")
|
|
|
|
-- Add some garbage and make sure it is not written
|
|
conf_params["garbage"] = "trash"
|
|
|
|
res = notification_configs.add_config("email", "ntop_email", conf_params)
|
|
assert(res["status"] == "OK")
|
|
|
|
res = notification_configs.get_endpoint_config("ntop_email")
|
|
assert(res["status"] == "OK")
|
|
assert(res["endpoint_key"] == "email")
|
|
assert(res["endpoint_conf_name"] == "ntop_email")
|
|
assert(res["endpoint_conf"])
|
|
assert(not res["endpoint_conf"]["garbage"])
|
|
|
|
for k, v in pairs(res["endpoint_conf"]) do
|
|
assert(conf_params[k])
|
|
assert(conf_params[k] == v)
|
|
end
|
|
|
|
-- Edit the config
|
|
conf_params["smtp_server"] = "mail2.ntop.org"
|
|
res = notification_configs.edit_config("ntop_email", conf_params)
|
|
assert(res["status"] == "OK")
|
|
|
|
res = notification_configs.get_endpoint_config("ntop_email")
|
|
assert(res["status"] == "OK")
|
|
assert(res["endpoint_key"] == "email")
|
|
assert(res["endpoint_conf_name"] == "ntop_email")
|
|
assert(res["endpoint_conf"])
|
|
assert(res["endpoint_conf"]["smtp_server"] == "mail2.ntop.org")
|
|
|
|
-- Add another endpoint
|
|
conf_params = {
|
|
smtp_server = "mail.google.com",
|
|
email_sender = "tester@google.com",
|
|
smpt_username = "googleuser",
|
|
smtp_password = "googlepassword"
|
|
}
|
|
|
|
res = notification_configs.add_config("email", "google_email", conf_params)
|
|
assert(res["status"] == "OK")
|
|
|
|
-- Get all configs
|
|
res = notification_configs.get_configs()
|
|
assert(#res == 2)
|
|
|
|
------------------------------
|
|
-- TEST ENDPOINT RECIPIENTS --
|
|
------------------------------
|
|
|
|
-- Test the addition
|
|
res = notification_recipients.add_recipient("nonexisting_config_name", nil, nil)
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "endpoint_config_not_existing")
|
|
|
|
res = notification_recipients.add_recipient("ntop_email", nil, nil)
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "invalid_endpoint_recipient_name")
|
|
|
|
res = notification_recipients.add_recipient("ntop_email", "sysadmins", nil)
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "invalid_recipient_params")
|
|
|
|
res = notification_recipients.add_recipient("ntop_email", "sysadmins", {})
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "missing_mandatory_param")
|
|
|
|
local recipient_params = {
|
|
email_recipient = "ci@ntop.org"
|
|
}
|
|
|
|
res = notification_recipients.add_recipient("ntop_email", "sysadmins", recipient_params)
|
|
assert(res["status"] == "OK")
|
|
|
|
-- See if duplicate recipient is detected
|
|
res = notification_recipients.add_recipient("ntop_email", "sysadmins", recipient_params)
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "endpoint_recipient_already_existing")
|
|
|
|
-- Test deletion
|
|
res = notification_recipients.delete_recipient("sysadmins")
|
|
assert(res["status"] == "OK")
|
|
|
|
res = notification_recipients.delete_recipient("sysadmins")
|
|
assert(res["status"] == "failed" and res["error"]["type"] == "endpoint_recipient_not_existing")
|
|
|
|
recipient_params["garbage"] = "trash"
|
|
|
|
res = notification_recipients.add_recipient("ntop_email", "sysadmins", recipient_params)
|
|
assert(res["status"] == "OK")
|
|
|
|
res = notification_recipients.get_recipient("sysadmins")
|
|
assert(res["status"] == "OK")
|
|
assert(res["recipient_params"])
|
|
assert(res["recipient_params"]["email_recipient"] == "ci@ntop.org")
|
|
assert(not res["recipient_params"]["garbage"])
|
|
|
|
-- Test edit
|
|
recipient_params["email_recipient"] = "ci2@ntop.org"
|
|
res = notification_recipients.edit_recipient("sysadmins", recipient_params)
|
|
assert(res["status"] == "OK")
|
|
|
|
res = notification_recipients.get_recipient("sysadmins")
|
|
assert(res["status"] == "OK")
|
|
assert(res["recipient_params"])
|
|
assert(res["recipient_params"]["email_recipient"] == "ci2@ntop.org")
|
|
|
|
-- Add another couple of recipients
|
|
recipient_params["email_recipient"] = "devops2@ntop.org"
|
|
res = notification_recipients.add_recipient("ntop_email", "devops", recipient_params)
|
|
assert(res["status"] == "OK")
|
|
|
|
recipient_params["email_recipient"] = "sres@gmail.com"
|
|
res = notification_recipients.add_recipient("google_email", "sres", recipient_params)
|
|
assert(res["status"] == "OK")
|
|
|
|
res = notification_recipients.get_recipients()
|
|
|
|
assert(#res == 3)
|
|
for _, recipient in pairs(res) do
|
|
assert(recipient["status"] == "OK")
|
|
end
|
|
|
|
dofile(dirs.installdir .. "/scripts/lua/inc/footer.lua")
|
|
|