Allow to pass multiple time the -d parameter to perform the discovery of many devices in one command call. (#564)
This commit is contained in:
@@ -49,11 +49,11 @@ use App::Netdisco::Util::Device 'get_device';
|
|||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
Getopt::Long::Configure ("bundling");
|
Getopt::Long::Configure ("bundling");
|
||||||
|
|
||||||
my ($device, $port, $extra, $debug, $quiet, $queue_only, $rollback);
|
my ($port, $extra, $debug, $quiet, $queue_only, $rollback);
|
||||||
my ($infotrace, $snmptrace, $sqltrace) = (0, 0, 0);
|
my ($devices, $infotrace, $snmptrace, $sqltrace) = ([], 0, 0, 0);
|
||||||
|
|
||||||
my $result = GetOptions(
|
my $result = GetOptions(
|
||||||
'device|d=s' => \$device,
|
'device|d=s@' => \$devices,
|
||||||
'port|p=s' => \$port,
|
'port|p=s' => \$port,
|
||||||
'extra|e=s' => \$extra,
|
'extra|e=s' => \$extra,
|
||||||
'debug|D' => \$debug,
|
'debug|D' => \$debug,
|
||||||
@@ -101,14 +101,16 @@ unless ($action) {
|
|||||||
use Moo;
|
use Moo;
|
||||||
with 'App::Netdisco::Worker::Runner';
|
with 'App::Netdisco::Worker::Runner';
|
||||||
}
|
}
|
||||||
|
my @hostlist = ();
|
||||||
my $net = NetAddr::IP->new($device);
|
foreach my $device (@$devices) {
|
||||||
if ($device and (!$net or $net->num == 0 or $net->addr eq '0.0.0.0')) {
|
my $net = NetAddr::IP->new($device);
|
||||||
|
if ($device and (!$net or $net->num == 0 or $net->addr eq '0.0.0.0')) {
|
||||||
info sprintf '%s: error - Bad host, IP or prefix: %s', $action, $device;
|
info sprintf '%s: error - Bad host, IP or prefix: %s', $action, $device;
|
||||||
exit 1;
|
exit 1;
|
||||||
|
}
|
||||||
|
push(@hostlist,$net->hostenum) if defined $device;
|
||||||
}
|
}
|
||||||
|
|
||||||
my @hostlist = defined $device ? ($net->hostenum) : (undef);
|
|
||||||
my @job_specs = ();
|
my @job_specs = ();
|
||||||
my $exitstatus = 0;
|
my $exitstatus = 0;
|
||||||
|
|
||||||
@@ -206,12 +208,19 @@ Any action taking a C<device> parameter can be passed either a hostname or IP
|
|||||||
of any interface on a known or unknown device, or an IP prefix (subnet) which
|
of any interface on a known or unknown device, or an IP prefix (subnet) which
|
||||||
will cause C<netdisco-do> to run the action for all addresses in that range.
|
will cause C<netdisco-do> to run the action for all addresses in that range.
|
||||||
|
|
||||||
|
The C<device> parameter can be passed many time. In this case, the devices would
|
||||||
|
be take in count one by one.
|
||||||
|
|
||||||
=head2 discover
|
=head2 discover
|
||||||
|
|
||||||
Run a discover on the device (specified with C<-d>).
|
Run a discover on the device (specified with C<-d>).
|
||||||
|
|
||||||
~/bin/netdisco-do discover -d 192.0.2.1
|
~/bin/netdisco-do discover -d 192.0.2.1
|
||||||
|
|
||||||
|
Run a discover on two different devices (specified with C<-d>).
|
||||||
|
|
||||||
|
~/bin/netdisco-do discover -d 192.0.2.1 -d 192.15.2.95
|
||||||
|
|
||||||
=head2 discoverall
|
=head2 discoverall
|
||||||
|
|
||||||
Queue a discover for all known devices.
|
Queue a discover for all known devices.
|
||||||
|
|||||||
Reference in New Issue
Block a user