mirror of
https://github.com/ntop/ntopng.git
synced 2026-05-05 19:15:03 +00:00
79 lines
2.3 KiB
Lua
79 lines
2.3 KiB
Lua
--
|
|
-- (C) 2019-22 - ntop.org
|
|
--
|
|
|
|
-- ##############################################
|
|
|
|
local dirs = ntop.getDirs()
|
|
local other_alert_keys = require "other_alert_keys"
|
|
local alert_creators = require "alert_creators"
|
|
-- Import the classes library.
|
|
local classes = require "classes"
|
|
-- Make sure to import the Superclass!
|
|
local alert = require "alert"
|
|
local alert_entities = require "alert_entities"
|
|
|
|
-- ##############################################
|
|
|
|
local alert_unexpected_new_device = classes.class(alert)
|
|
|
|
-- ##############################################
|
|
|
|
alert_unexpected_new_device.meta = {
|
|
alert_key = other_alert_keys.alert_unexpected_new_device,
|
|
i18n_title = "checks.unexpected_new_device_title",
|
|
icon = "fas fa-fw fa-exclamation",
|
|
entities = {
|
|
alert_entities.mac
|
|
},
|
|
}
|
|
|
|
-- ##############################################
|
|
|
|
function alert_unexpected_new_device:init(device, mac)
|
|
-- Call the parent constructor
|
|
self.super:init()
|
|
|
|
self.alert_type_params = {
|
|
device = device,
|
|
mac = mac,
|
|
}
|
|
end
|
|
|
|
-- #######################################################
|
|
|
|
function alert_unexpected_new_device.format(ifid, alert, alert_type_params)
|
|
-- Pro description
|
|
if(ntop.isPro()) then
|
|
package.path = dirs.installdir .. "/pro/scripts/lua/modules/?.lua;" .. package.path
|
|
local snmp_location = require "snmp_location"
|
|
|
|
has_snmp_location = snmp_location.host_has_snmp_location(alert_type_params.mac)
|
|
-- The host has an snmp location
|
|
if has_snmp_location then
|
|
local access_port = snmp_location.get_host_access_port(alert_type_params.mac)
|
|
|
|
if access_port then
|
|
return(i18n("checks.status_unexpected_new_device_description_pro", {
|
|
mac_address = alert_type_params.device,
|
|
host_url = getMacUrl(alert_type_params.mac),
|
|
port = access_port.id,
|
|
port_url = snmpIfaceUrl(access_port.snmp_device_ip, access_port.id),
|
|
interface_name = access_port.name,
|
|
ip = access_port.snmp_device_ip,
|
|
ip_url = snmpDeviceUrl(access_port.snmp_device_ip),
|
|
}))
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Non enterprise software or the host hasn't an snmp location
|
|
return(i18n("checks.status_unexpected_new_device_description", {
|
|
mac_address = alert_type_params.device,
|
|
host_url = getMacUrl(alert_type_params.mac),
|
|
}))
|
|
end
|
|
|
|
-- #######################################################
|
|
|
|
return alert_unexpected_new_device
|