Delete device from CLI with new "delete" option to netdisco-do

This commit is contained in:
Oliver Gorwits
2015-02-04 13:54:00 +00:00
parent af7f36774a
commit aabc65b87a
6 changed files with 68 additions and 17 deletions

View File

@@ -113,8 +113,9 @@ unless ($action) {
}
use App::Netdisco::Util::SNMP ();
use App::Netdisco::Util::Device 'get_device';
use App::Netdisco::Util::Device qw/get_device delete_device/;
use NetAddr::IP::Lite ':lower';
use Scalar::Util 'blessed';
sub show {
my $ip = NetAddr::IP::Lite->new($device)
@@ -137,6 +138,22 @@ unless ($action) {
Data::Printer::p($i->$extra);
return ('done', "Showed $extra response from $device.");
}
sub delete {
my $ip = NetAddr::IP::Lite->new($device)
or return ('error', "Bad host or IP: $device");
my $dev = get_device($ip->addr);
unless (blessed $dev and $dev->in_storage) {
return ('error', "Don't know device: $device");
}
$extra ||= ''; my $archive = 0;
if ($extra =~ m/^(\d),(.+)/) {
($archive, $extra) = ($1, $2);
}
delete_device($dev->ip, $archive, $extra);
return ('done', "Deleted device $device.");
}
}
my $worker = MyWorker->new();
@@ -204,6 +221,12 @@ Run a macsuck on the device (specified with C<-d>).
Run an arpnip on the device (specified with C<-d>).
=head2 delete
Delete a device (specified with C<-d>). Pass a log message for the action in
the C<-e> parameter. Optionally request for associated nodes to be archived
(rather than deleted) by prefixing the C<-e> parameter with "C<1,>".
=head2 nbtstat
Run an nbtstat on the node (specified with C<-d>).