move all netdisco-do action to worker plugins
This commit is contained in:
32
lib/App/Netdisco/Worker/Plugin/Show.pm
Normal file
32
lib/App/Netdisco/Worker/Plugin/Show.pm
Normal file
@@ -0,0 +1,32 @@
|
||||
package App::Netdisco::Worker::Plugin::Show;
|
||||
|
||||
use Dancer ':syntax';
|
||||
use App::Netdisco::Worker::Plugin;
|
||||
use aliased 'App::Netdisco::Worker::Status';
|
||||
|
||||
use Data::Printer ();
|
||||
use App::Netdisco::Transport::SNMP;
|
||||
|
||||
register_worker({ primary => true }, sub {
|
||||
my ($job, $workerconf) = @_;
|
||||
my ($device, $port, $extra) = map {$job->$_} qw/device port extra/;
|
||||
return Status->error('Missing device (-d).') if !defined $device;
|
||||
|
||||
$extra ||= 'interfaces'; my $class = undef;
|
||||
($class, $extra) = split(/::([^:]+)$/, $extra);
|
||||
if ($class and $extra) {
|
||||
$class = 'SNMP::Info::'.$class;
|
||||
}
|
||||
else {
|
||||
$extra = $class;
|
||||
undef $class;
|
||||
}
|
||||
|
||||
my $i = App::Netdisco::Transport::SNMP->reader_for($device, $class);
|
||||
Data::Printer::p($i->$extra);
|
||||
|
||||
return Status->done(
|
||||
sprintf "Showed %s response from %s.", $extra, $device->ip);
|
||||
});
|
||||
|
||||
true;
|
||||
Reference in New Issue
Block a user