<?php /** * SnmpTraps element for tactical view. * * @category General * @package Pandora FMS * @subpackage TacticalView * @version 1.0.0 * @license See below * * ______ ___ _______ _______ ________ * | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __| * | __/| _ | | _ || _ | _| _ | | ___| |__ | * |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______| * * ============================================================================ * Copyright (c) 2007-2023 Artica Soluciones Tecnologicas, http://www.artica.es * This code is NOT free software. This code is NOT licenced under GPL2 licence * You cannnot redistribute it without written permission of copyright holder. * ============================================================================ */ use PandoraFMS\TacticalView\Element; /** * SnmpTraps, this class contain all logic for this section. */ class SnmpTraps extends Element { /** * Constructor */ public function __construct() { parent::__construct(); $this->title = __('SNMP Traps'); $this->ajaxMethods = [ 'getQueues', 'getTotalSources', ]; $this->interval = 300000; $this->refreshConfig = [ 'queues' => [ 'id' => 'total-queues', 'method' => 'getQueues', ], 'total-snmp' => [ 'id' => 'total-snmp', 'method' => 'getTotalSources', ], ]; } /** * Check if snmp traps module exist. * * @return boolean */ public function isEnabled():bool { if (empty($this->monitoringAgent) === true) { return false; } $existModule = modules_get_agentmodule_id(io_safe_input('snmp_trap_queue'), $this->monitoringAgent['id_agente']); if ($existModule === false) { return false; } else { return true; } } /** * Returns the html of queues traps. * * @return string */ public function getQueues():string { $value = $this->valueMonitoring('snmp_trap_queue'); $total = round($value[0]['data']); return html_print_div( [ 'content' => $total, 'class' => 'text-l', 'style' => 'margin: 0px 10px 10px 10px;', 'id' => 'total-queues', ], true ); } /** * Returns the html of total sources traps. * * @return string */ public function getTotalSources():string { $value = $this->valueMonitoring('total_trap'); $total = round($value[0]['data']); return html_print_div( [ 'content' => $total, 'class' => 'text-l', 'style' => 'margin: 0px 10px 10px 10px;', 'id' => 'total-snmp', ], true ); } }