The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::Netdisco::Util::Device

DESCRIPTION

A set of helper subroutines to support parts of the Netdisco application.

There are no default exports, however the :all tag will export all subroutines.

EXPORT_OK

get_device( $ip )

Given an IP address, returns a DBIx::Class::Row object for the Device in the Netdisco database. The IP can be for any interface on the device.

If for any reason $ip is already a DBIx::Class Device object, then it is simply returned.

If the device or interface IP is not known to Netdisco a new Device object is created for the IP, and returned. This object is in-memory only and not yet stored to the database.

check_no( $ip, $setting_name )

Given the IP address of a device, returns true if the configuration setting $setting_name matches that device, else returns false.

There are several options for what $setting_name can contain:

  • Hostname, IP address, IP prefix

  • "model:regex" - matched against the device model

  • "vendor:regex" - matched against the device vendor

To simply match all devices, use IP Prefix "0.0.0.0/0". All regular expressions are anchored (that is, they must match the whole string).

is_discoverable( $ip, $device_type? )

Given an IP address, returns true if Netdisco on this host is permitted by the local configuration to discover the device.

The configuration items discover_no and discover_only are checked against the given IP.

If $device_type is also given, then discover_no_type will also be checked.

Returns false if the host is not permitted to discover the target device.

is_arpnipable( $ip )

Given an IP address, returns true if Netdisco on this host is permitted by the local configuration to arpnip the device.

The configuration items arpnip_no and arpnip_only are checked against the given IP.

Returns false if the host is not permitted to arpnip the target device.

can_nodenames( $ip )

Given an IP address, returns true if Netdisco on this host is permitted by the local configuration to resolve Node IPs to DNS names for the device.

The configuration items nodenames_no and nodenames_only are checked against the given IP.

Returns false if the host is not permitted to do this job for the target device.

is_macsuckable( $ip )

Given an IP address, returns true if Netdisco on this host is permitted by the local configuration to macsuck the device.

The configuration items macsuck_no and macsuck_only are checked against the given IP.

Returns false if the host is not permitted to macsuck the target device.