should defer SNMP against pseudo devices

This commit is contained in:
Oliver Gorwits
2019-09-01 18:32:19 +01:00
parent 897ba3a629
commit b108be5e23

View File

@@ -58,8 +58,12 @@ Returns C<undef> if the connection fails.
sub reader_for { sub reader_for {
my ($class, $ip, $useclass) = @_; my ($class, $ip, $useclass) = @_;
my $device = get_device($ip) or return undef; my $device = get_device($ip) or return undef;
return undef if $device->in_storage
and $device->vendor and $device->vendor eq 'netdisco';
my $readers = $class->instance->readers or return undef; my $readers = $class->instance->readers or return undef;
return $readers->{$device->ip} if exists $readers->{$device->ip}; return $readers->{$device->ip} if exists $readers->{$device->ip};
debug sprintf 'snmp reader cache warm: [%s]', $device->ip; debug sprintf 'snmp reader cache warm: [%s]', $device->ip;
return ($readers->{$device->ip} return ($readers->{$device->ip}
= _snmp_connect_generic('read', $device, $useclass)); = _snmp_connect_generic('read', $device, $useclass));
@@ -104,8 +108,12 @@ Returns C<undef> if the connection fails.
sub writer_for { sub writer_for {
my ($class, $ip, $useclass) = @_; my ($class, $ip, $useclass) = @_;
my $device = get_device($ip) or return undef; my $device = get_device($ip) or return undef;
return undef if $device->in_storage
and $device->vendor and $device->vendor eq 'netdisco';
my $writers = $class->instance->writers or return undef; my $writers = $class->instance->writers or return undef;
return $writers->{$device->ip} if exists $writers->{$device->ip}; return $writers->{$device->ip} if exists $writers->{$device->ip};
debug sprintf 'snmp writer cache warm: [%s]', $device->ip; debug sprintf 'snmp writer cache warm: [%s]', $device->ip;
return ($writers->{$device->ip} return ($writers->{$device->ip}
= _snmp_connect_generic('write', $device, $useclass)); = _snmp_connect_generic('write', $device, $useclass));