From 704f0fc8e9e8a57a789c1c99dc0ebeac8cdbb820 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Sun, 9 Dec 2012 19:07:35 +0000 Subject: [PATCH] bug fixes for port up/down setting --- Netdisco/lib/Netdisco/Daemon/Actions/Port.pm | 12 ++++++------ Netdisco/lib/Netdisco/Util/Connect.pm | 2 +- Netdisco/lib/Netdisco/Util/Permissions.pm | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Netdisco/lib/Netdisco/Daemon/Actions/Port.pm b/Netdisco/lib/Netdisco/Daemon/Actions/Port.pm index 8985642b..c1f35666 100644 --- a/Netdisco/lib/Netdisco/Daemon/Actions/Port.pm +++ b/Netdisco/lib/Netdisco/Daemon/Actions/Port.pm @@ -7,7 +7,7 @@ use Netdisco::Daemon::Actions::Util ':all'; use namespace::clean; use Moo::Role; -sub portcontrol { +sub set_portcontrol { my ($self, $job) = @_; my $ip = $job->device; @@ -25,7 +25,7 @@ sub portcontrol { my $info = snmp_connect($ip) or return error("Failed to connect to device [$ip] to control port"); - my $iid = get_iid($port) + my $iid = get_iid($info, $port) or return error("Failed to get port ID for [$pn] from [$ip]"); my $rv = $info->set_i_up_admin(lc($dir), $iid); @@ -36,14 +36,14 @@ sub portcontrol { # confirm the set happened $info->clear_cache; my $state = ($info->i_up_admin($iid) || ''); - if ($state ne $dir) { - return error("Verify of [$pn] port status failed on [$ip]: $state"); + if (ref {} ne ref $state or $state->{$iid} ne $dir) { + return error("Verify of [$pn] port status failed on [$ip]"); } # update netdisco DB - $port->device->update({up_admin => $state}); + $port->update({up_admin => $dir}); - return done("Updated [$pn] port status on [$ip] to [$state]"); + return done("Updated [$pn] port status on [$ip] to [$dir]"); } 1; diff --git a/Netdisco/lib/Netdisco/Util/Connect.pm b/Netdisco/lib/Netdisco/Util/Connect.pm index 9afcbd08..ee3dc8db 100644 --- a/Netdisco/lib/Netdisco/Util/Connect.pm +++ b/Netdisco/lib/Netdisco/Util/Connect.pm @@ -55,7 +55,7 @@ sub get_port { $device = get_device($device) if not ref $device; - my $port = schema('Netdisco')->resultset('DevicePort') + my $port = schema('netdisco')->resultset('DevicePort') ->find({ip => $device->ip, port => $portname}); return $port; diff --git a/Netdisco/lib/Netdisco/Util/Permissions.pm b/Netdisco/lib/Netdisco/Util/Permissions.pm index 4d9c9089..71873da0 100644 --- a/Netdisco/lib/Netdisco/Util/Permissions.pm +++ b/Netdisco/lib/Netdisco/Util/Permissions.pm @@ -53,7 +53,7 @@ sub port_reconfig_check { my $ip = $port->ip; my $name = $port->port; - my $has_phone = has_phone($port); + my $has_phone = port_has_phone($port); my $is_vlan = is_vlan_interface($port); # uplink check