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;
|
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 `tlayout` ADD COLUMN `maintenance_mode` TEXT;
|
||||||
|
|
||||||
ALTER TABLE `tusuario` ADD COLUMN `auth_token_secret` VARCHAR(45) DEFAULT NULL;
|
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_privacy_pass = get_parameter('snmp_privacy_pass', null);
|
||||||
$snmp_auth_method = get_parameter('snmp_auth_method', null);
|
$snmp_auth_method = get_parameter('snmp_auth_method', null);
|
||||||
$snmp_security_level = get_parameter('snmp_security_level', 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', []);
|
$auth_strings = get_parameter('auth_strings', []);
|
||||||
|
|
||||||
if ($snmp_version == 3) {
|
if ($snmp_version == 3) {
|
||||||
|
@ -556,6 +557,7 @@ class HostDevices extends Wizard
|
||||||
$this->task['snmp_privacy_pass'] = $snmp_privacy_pass;
|
$this->task['snmp_privacy_pass'] = $snmp_privacy_pass;
|
||||||
$this->task['snmp_auth_method'] = $snmp_auth_method;
|
$this->task['snmp_auth_method'] = $snmp_auth_method;
|
||||||
$this->task['snmp_security_level'] = $snmp_security_level;
|
$this->task['snmp_security_level'] = $snmp_security_level;
|
||||||
|
$this->task['snmp_skip_non_enabled_ifs'] = $snmp_skip_non_enabled_ifs;
|
||||||
$this->task['auth_strings'] = '';
|
$this->task['auth_strings'] = '';
|
||||||
if (is_array($auth_strings) === true) {
|
if (is_array($auth_strings) === true) {
|
||||||
$this->task['auth_strings'] = join(
|
$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.
|
// SNMP Options pack v1.
|
||||||
$form['inputs'][] = [
|
$form['inputs'][] = [
|
||||||
'hidden' => 1,
|
'hidden' => 1,
|
||||||
|
@ -1487,6 +1507,7 @@ class HostDevices extends Wizard
|
||||||
|
|
||||||
function SNMPExtraShow(target) {
|
function SNMPExtraShow(target) {
|
||||||
$("#snmp_options_basic").hide();
|
$("#snmp_options_basic").hide();
|
||||||
|
$("#snmp_options_skip_non_enabled_ifs").hide();
|
||||||
$("#snmp_options_v3").hide();
|
$("#snmp_options_v3").hide();
|
||||||
if (document.getElementsByName("snmp_enabled")[0].checked) {
|
if (document.getElementsByName("snmp_enabled")[0].checked) {
|
||||||
$("#snmp_extra").show();
|
$("#snmp_extra").show();
|
||||||
|
@ -1494,6 +1515,7 @@ class HostDevices extends Wizard
|
||||||
$("#snmp_options_v3").show();
|
$("#snmp_options_v3").show();
|
||||||
} else {
|
} else {
|
||||||
$("#snmp_options_basic").show();
|
$("#snmp_options_basic").show();
|
||||||
|
$("#snmp_options_skip_non_enabled_ifs").show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1519,6 +1541,7 @@ class HostDevices extends Wizard
|
||||||
// Hide unusable sections
|
// Hide unusable sections
|
||||||
$("#snmp_extra").hide();
|
$("#snmp_extra").hide();
|
||||||
$("#snmp_options_basic").hide();
|
$("#snmp_options_basic").hide();
|
||||||
|
$("#snmp_options_skip_non_enabled_ifs").hide();
|
||||||
$("#snmp_options_v3").hide();
|
$("#snmp_options_v3").hide();
|
||||||
|
|
||||||
// Disable snmp dependant checks
|
// Disable snmp dependant checks
|
||||||
|
|
|
@ -874,6 +874,7 @@ CREATE TABLE IF NOT EXISTS `trecon_task` (
|
||||||
`summary` TEXT,
|
`summary` TEXT,
|
||||||
`type` INT NOT NULL DEFAULT 0,
|
`type` INT NOT NULL DEFAULT 0,
|
||||||
`subnet_csv` TINYINT UNSIGNED DEFAULT 0,
|
`subnet_csv` TINYINT UNSIGNED DEFAULT 0,
|
||||||
|
`snmp_skip_non_enabled_ifs` TINYINT UNSIGNED DEFAULT 1,
|
||||||
PRIMARY KEY (`id_rt`),
|
PRIMARY KEY (`id_rt`),
|
||||||
KEY `recon_task_daemon` (`id_recon_server`)
|
KEY `recon_task_daemon` (`id_recon_server`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
|
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
|
||||||
|
|
|
@ -273,6 +273,7 @@ sub data_consumer ($$) {
|
||||||
snmp_security_level => $task->{'snmp_security_level'},
|
snmp_security_level => $task->{'snmp_security_level'},
|
||||||
snmp_timeout => $task->{'snmp_timeout'},
|
snmp_timeout => $task->{'snmp_timeout'},
|
||||||
snmp_version => $task->{'snmp_version'},
|
snmp_version => $task->{'snmp_version'},
|
||||||
|
snmp_skip_non_enabled_ifs => $task->{'snmp_skip_non_enabled_ifs'},
|
||||||
subnets => \@subnets,
|
subnets => \@subnets,
|
||||||
task_id => $task->{'id_rt'},
|
task_id => $task->{'id_rt'},
|
||||||
vlan_cache_enabled => $task->{'vlan_enabled'},
|
vlan_cache_enabled => $task->{'vlan_enabled'},
|
||||||
|
@ -723,9 +724,12 @@ sub PandoraFMS::Recon::Base::create_interface_modules($$) {
|
||||||
foreach my $if_index (@output) {
|
foreach my $if_index (@output) {
|
||||||
next unless ($if_index =~ /^[0-9]+$/);
|
next unless ($if_index =~ /^[0-9]+$/);
|
||||||
|
|
||||||
# Check the status of the interface.
|
if ($self->{'task_data'}{'snmp_skip_non_enabled_ifs'} == 1) {
|
||||||
my $if_status = $self->snmp_get_value($device, "$PandoraFMS::Recon::Base::IFOPERSTATUS.$if_index");
|
# Check the status of the interface.
|
||||||
next unless $if_status == 1;
|
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.
|
# Fill the module description with the IP and MAC addresses.
|
||||||
my $mac = $self->get_if_mac($device, $if_index);
|
my $mac = $self->get_if_mac($device, $if_index);
|
||||||
|
|
|
@ -215,6 +215,7 @@ sub new {
|
||||||
snmp_security_level => '',
|
snmp_security_level => '',
|
||||||
snmp_timeout => 2,
|
snmp_timeout => 2,
|
||||||
snmp_version => 1,
|
snmp_version => 1,
|
||||||
|
snmp_skip_non_enabled_ifs => 1,
|
||||||
subnets => [],
|
subnets => [],
|
||||||
autoconfiguration_enabled => 0,
|
autoconfiguration_enabled => 0,
|
||||||
|
|
||||||
|
@ -312,6 +313,7 @@ sub new {
|
||||||
$self->{'snmp_privacy_method'} = '';
|
$self->{'snmp_privacy_method'} = '';
|
||||||
$self->{'snmp_privacy_pass'} = '';
|
$self->{'snmp_privacy_pass'} = '';
|
||||||
$self->{'snmp_security_level'} = '';
|
$self->{'snmp_security_level'} = '';
|
||||||
|
$self->{'snmp_skip_non_enabled_ifs'} = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $self;
|
return $self;
|
||||||
|
|
Loading…
Reference in New Issue