various fixes and now tested

This commit is contained in:
Oliver Gorwits
2019-03-12 14:48:10 +00:00
parent 1d9e803387
commit 6c1cc16861
2 changed files with 8 additions and 4 deletions

View File

@@ -4,6 +4,8 @@ use Dancer qw/:syntax :script/;
use App::Netdisco::Util::Device 'get_device';
use Module::Load ();
use Net::OpenSSH;
use Try::Tiny;
use base 'Dancer::Object::Singleton';
@@ -43,11 +45,12 @@ Returns C<undef> if the connection fails.
has 'ssh' => ( is => 'rw' );
has 'auth' => ( is => 'rw' );
has 'host' => ( is => 'rw' );
has 'platform' => ( is => 'rw' );
sub arpnip {
my $self = shift;
$self->platform->arpnip(@_, $self->ssh, $self->auth);
$self->platform->arpnip(@_, $self->host, $self->ssh, $self->auth);
}
}
@@ -71,7 +74,7 @@ sub session_for {
push(@master_opts, @{$auth->{ssh_master_opts}})
if $auth->{ssh_master_opts};
$Net::OpenSSH::debug = ~0 if setting('log') eq 'debug';
$Net::OpenSSH::debug = $ENV{SSH_TRACE};
my $ssh = Net::OpenSSH->new(
$device->ip,
user => $auth->{username},
@@ -102,6 +105,7 @@ sub session_for {
my $sess = MySession->new(
ssh => $ssh,
auth => $auth,
host => $device->ip,
platform => $platform->new(),
);

View File

@@ -71,7 +71,7 @@ register_worker({ phase => 'main', driver => 'cli' }, sub {
or return Status->defer("arpnip failed: could not SSH connect to $device");
# should be both v4 and v6
my $arps = get_arps_cli($device, $cli->arpnip);
my $arps = get_arps_cli($device, [$cli->arpnip]);
# update node_ip with ARP and Neighbor Cache entries
my $now = 'to_timestamp('. (join '.', gettimeofday) .')';
@@ -89,7 +89,7 @@ sub get_arps_cli {
$entries ||= [];
foreach my $entry (@$entries) {
next unless check_mac( $entry->{mac} );
next unless check_mac($entry->{mac}, $device);
push @arps, {
node => $entry->{mac},
ip => $entry->{ip},