fix very wrong rancid conf parser
This commit is contained in:
@@ -7,7 +7,7 @@ use App::Netdisco::Worker::Plugin;
|
|||||||
use aliased 'App::Netdisco::Worker::Status';
|
use aliased 'App::Netdisco::Worker::Status';
|
||||||
|
|
||||||
use Path::Class;
|
use Path::Class;
|
||||||
use List::Util 'first';
|
use List::Util qw/pairkeys pairfirst/;
|
||||||
use File::Slurper 'write_text';
|
use File::Slurper 'write_text';
|
||||||
use App::Netdisco::Util::Permission 'check_acl_no';
|
use App::Netdisco::Util::Permission 'check_acl_no';
|
||||||
|
|
||||||
@@ -30,8 +30,8 @@ register_worker({ phase => 'main' }, sub {
|
|||||||
\['age(now(), last_discover) > ?::interval', $down_age] },
|
\['age(now(), last_discover) > ?::interval', $down_age] },
|
||||||
});
|
});
|
||||||
|
|
||||||
$config->{groups} ||= [{ default => 'any' }];
|
$config->{groups} ||= { default => 'any' };
|
||||||
$config->{vendormap} ||= [];
|
$config->{vendormap} ||= {};
|
||||||
|
|
||||||
my $routerdb = {};
|
my $routerdb = {};
|
||||||
while (my $d = $devices->next) {
|
while (my $d = $devices->next) {
|
||||||
@@ -40,14 +40,12 @@ register_worker({ phase => 'main' }, sub {
|
|||||||
$name =~ s/$domain_suffix$//
|
$name =~ s/$domain_suffix$//
|
||||||
if check_acl_no($d, $config->{by_hostname});
|
if check_acl_no($d, $config->{by_hostname});
|
||||||
|
|
||||||
my $vmatch =
|
my ($group) =
|
||||||
first { check_acl_no($d, (values %$_)[0]) } @{$config->{vendormap}};
|
pairkeys pairfirst { check_acl_no($d, $b) } %{ $config->{groups} };
|
||||||
my $vendor = $vmatch
|
|
||||||
? (keys %$vmatch)[0] : $d->vendor;
|
|
||||||
|
|
||||||
my $gmatch =
|
my ($vendor) =
|
||||||
first { check_acl_no($d, (values %$_)[0]) } @{$config->{groups}};
|
(pairkeys pairfirst { check_acl_no($d, $b) } %{ $config->{vendormap} })
|
||||||
my $group = (keys %$gmatch)[0];
|
|| $d->vendor;
|
||||||
|
|
||||||
push @{$routerdb->{$group}},
|
push @{$routerdb->{$group}},
|
||||||
(sprintf "%s${delimiter}%s${delimiter}%s", $name, $vendor,
|
(sprintf "%s${delimiter}%s${delimiter}%s", $name, $vendor,
|
||||||
|
|||||||
Reference in New Issue
Block a user