Merge branch 'ent-9376-Discovery-SNMP-Host-Filtro-por-interfaces-no-operativas' into 'develop'
implemented option to skip inoperative interfaces on demand See merge request artica/pandorafms!5149
This commit is contained in:
commit
65048966bf
|
@ -1,5 +1,7 @@
|
|||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE `trecon_task` ADD COLUMN `snmp_skip_non_enabled_ifs` TINYINT UNSIGNED DEFAULT 1;
|
||||
|
||||
ALTER TABLE `tlayout` ADD COLUMN `maintenance_mode` TEXT;
|
||||
|
||||
ALTER TABLE `tusuario` ADD COLUMN `auth_token_secret` VARCHAR(45) DEFAULT NULL;
|
||||
|
|
|
@ -509,6 +509,7 @@ class HostDevices extends Wizard
|
|||
$snmp_privacy_pass = get_parameter('snmp_privacy_pass', null);
|
||||
$snmp_auth_method = get_parameter('snmp_auth_method', null);
|
||||
$snmp_security_level = get_parameter('snmp_security_level', null);
|
||||
$snmp_skip_non_enabled_ifs = get_parameter_switch('snmp_skip_non_enabled_ifs');
|
||||
$auth_strings = get_parameter('auth_strings', []);
|
||||
|
||||
if ($snmp_version == 3) {
|
||||
|
@ -556,6 +557,7 @@ class HostDevices extends Wizard
|
|||
$this->task['snmp_privacy_pass'] = $snmp_privacy_pass;
|
||||
$this->task['snmp_auth_method'] = $snmp_auth_method;
|
||||
$this->task['snmp_security_level'] = $snmp_security_level;
|
||||
$this->task['snmp_skip_non_enabled_ifs'] = $snmp_skip_non_enabled_ifs;
|
||||
$this->task['auth_strings'] = '';
|
||||
if (is_array($auth_strings) === true) {
|
||||
$this->task['auth_strings'] = join(
|
||||
|
@ -1215,6 +1217,24 @@ class HostDevices extends Wizard
|
|||
],
|
||||
];
|
||||
|
||||
$form['inputs'][] = [
|
||||
'hidden' => 1,
|
||||
'block_id' => 'snmp_options_skip_non_enabled_ifs',
|
||||
'class' => 'indented',
|
||||
'block_content' => [
|
||||
[
|
||||
'label' => __('Skip non-enabled interfaces'),
|
||||
'arguments' => [
|
||||
'name' => 'snmp_skip_non_enabled_ifs',
|
||||
'type' => 'switch',
|
||||
'value' => (isset($this->task['snmp_enabled']) === true) ? $this->task['snmp_skip_non_enabled_ifs'] : 1,
|
||||
'size' => 25,
|
||||
'return' => true,
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
// SNMP Options pack v1.
|
||||
$form['inputs'][] = [
|
||||
'hidden' => 1,
|
||||
|
@ -1487,6 +1507,7 @@ class HostDevices extends Wizard
|
|||
|
||||
function SNMPExtraShow(target) {
|
||||
$("#snmp_options_basic").hide();
|
||||
$("#snmp_options_skip_non_enabled_ifs").hide();
|
||||
$("#snmp_options_v3").hide();
|
||||
if (document.getElementsByName("snmp_enabled")[0].checked) {
|
||||
$("#snmp_extra").show();
|
||||
|
@ -1494,6 +1515,7 @@ class HostDevices extends Wizard
|
|||
$("#snmp_options_v3").show();
|
||||
} else {
|
||||
$("#snmp_options_basic").show();
|
||||
$("#snmp_options_skip_non_enabled_ifs").show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1519,6 +1541,7 @@ class HostDevices extends Wizard
|
|||
// Hide unusable sections
|
||||
$("#snmp_extra").hide();
|
||||
$("#snmp_options_basic").hide();
|
||||
$("#snmp_options_skip_non_enabled_ifs").hide();
|
||||
$("#snmp_options_v3").hide();
|
||||
|
||||
// Disable snmp dependant checks
|
||||
|
|
|
@ -874,6 +874,7 @@ CREATE TABLE IF NOT EXISTS `trecon_task` (
|
|||
`summary` TEXT,
|
||||
`type` INT NOT NULL DEFAULT 0,
|
||||
`subnet_csv` TINYINT UNSIGNED DEFAULT 0,
|
||||
`snmp_skip_non_enabled_ifs` TINYINT UNSIGNED DEFAULT 1,
|
||||
PRIMARY KEY (`id_rt`),
|
||||
KEY `recon_task_daemon` (`id_recon_server`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
|
||||
|
|
|
@ -273,6 +273,7 @@ sub data_consumer ($$) {
|
|||
snmp_security_level => $task->{'snmp_security_level'},
|
||||
snmp_timeout => $task->{'snmp_timeout'},
|
||||
snmp_version => $task->{'snmp_version'},
|
||||
snmp_skip_non_enabled_ifs => $task->{'snmp_skip_non_enabled_ifs'},
|
||||
subnets => \@subnets,
|
||||
task_id => $task->{'id_rt'},
|
||||
vlan_cache_enabled => $task->{'vlan_enabled'},
|
||||
|
@ -723,9 +724,12 @@ sub PandoraFMS::Recon::Base::create_interface_modules($$) {
|
|||
foreach my $if_index (@output) {
|
||||
next unless ($if_index =~ /^[0-9]+$/);
|
||||
|
||||
# Check the status of the interface.
|
||||
my $if_status = $self->snmp_get_value($device, "$PandoraFMS::Recon::Base::IFOPERSTATUS.$if_index");
|
||||
next unless $if_status == 1;
|
||||
if ($self->{'task_data'}{'snmp_skip_non_enabled_ifs'} == 1) {
|
||||
# Check the status of the interface.
|
||||
my $if_status = $self->snmp_get_value($device, "$PandoraFMS::Recon::Base::IFOPERSTATUS.$if_index");
|
||||
|
||||
next unless $if_status == 1;
|
||||
}
|
||||
|
||||
# Fill the module description with the IP and MAC addresses.
|
||||
my $mac = $self->get_if_mac($device, $if_index);
|
||||
|
|
|
@ -215,6 +215,7 @@ sub new {
|
|||
snmp_security_level => '',
|
||||
snmp_timeout => 2,
|
||||
snmp_version => 1,
|
||||
snmp_skip_non_enabled_ifs => 1,
|
||||
subnets => [],
|
||||
autoconfiguration_enabled => 0,
|
||||
|
||||
|
@ -312,6 +313,7 @@ sub new {
|
|||
$self->{'snmp_privacy_method'} = '';
|
||||
$self->{'snmp_privacy_pass'} = '';
|
||||
$self->{'snmp_security_level'} = '';
|
||||
$self->{'snmp_skip_non_enabled_ifs'} = '';
|
||||
}
|
||||
|
||||
return $self;
|
||||
|
|
Loading…
Reference in New Issue