add filter for meraki discovery

This commit is contained in:
garnier-quentin 2020-10-15 10:32:52 +02:00
parent 40ab645939
commit 2128f49a82

View File

@ -59,37 +59,29 @@ sub manage_selection {
); );
my $devices_statuses = $options{custom}->get_organization_device_statuses(); my $devices_statuses = $options{custom}->get_organization_device_statuses();
my $results = {};
foreach (keys %$devices) { foreach (keys %$devices) {
if (defined($self->{option_results}->{filter_network_id}) && $self->{option_results}->{filter_network_id} ne '' && next if (defined($self->{option_results}->{filter_network_id}) && $self->{option_results}->{filter_network_id} ne '' &&
$devices->{$_}->{networkId} !~ /$self->{option_results}->{filter_network_id}/) { $devices->{$_}->{networkId} !~ /$self->{option_results}->{filter_network_id}/);
delete $devices->{$_}; next if (defined($self->{option_results}->{filter_tags}) && $self->{option_results}->{filter_tags} ne '' &&
next; (!defined($devices->{$_}->{tags}) || $devices->{$_}->{tags} !~ /$self->{option_results}->{filter_tags}/));
} next if (defined($self->{option_results}->{filter_organization_id}) && $self->{option_results}->{filter_organization_id} ne '' &&
if (defined($self->{option_results}->{filter_tags}) && $self->{option_results}->{filter_tags} ne '' && $networks->{ $devices->{$_}->{networkId} }->{organizationId} !~ /$self->{option_results}->{filter_organization_id}/);
(!defined($devices->{$_}->{tags}) || $devices->{$_}->{tags} !~ /$self->{option_results}->{filter_tags}/)) {
delete $devices->{$_};
next;
}
if (defined($self->{option_results}->{filter_organization_id}) && $self->{option_results}->{filter_organization_id} ne '' &&
$networks->{ $devices->{$_}->{networkId} }->{organizationId} !~ /$self->{option_results}->{filter_organization_id}/) {
delete $devices->{$_};
next;
}
my $organization_name = $organizations->{ $networks->{ $devices->{$_}->{networkId} }->{organizationId} }->{name}; my $organization_name = $organizations->{ $networks->{ $devices->{$_}->{networkId} }->{organizationId} }->{name};
if (defined($self->{option_results}->{filter_organization_name}) && $self->{option_results}->{filter_organization_name} ne '' && next if (defined($self->{option_results}->{filter_organization_name}) && $self->{option_results}->{filter_organization_name} ne '' &&
$organization_name !~ /$self->{option_results}->{filter_organization_name}/) { $organization_name !~ /$self->{option_results}->{filter_organization_name}/);
delete $devices->{$_};
next;
}
$devices->{$_}->{status} = $devices_statuses->{ $devices->{$_}->{serial} }->{status}; $results->{$_} = {
$devices->{$_}->{public_ip} = $devices_statuses->{ $devices->{$_}->{serial} }->{publicIp}; %{$devices->{$_}},
$devices->{$_}->{network_name} = $networks->{ $devices->{$_}->{networkId} }->{name}; status => $devices_statuses->{ $devices->{$_}->{serial} }->{status},
$devices->{$_}->{organization_name} = $organization_name; public_ip => $devices_statuses->{ $devices->{$_}->{serial} }->{publicIp},
network_name => $networks->{ $devices->{$_}->{networkId} }->{name},
organization_name => $organization_name
};
} }
return $devices; return $results;
} }
sub run { sub run {