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.

delete_device( $ip, $archive? )

Given an IP address, deletes the device from Netdisco, including all related data such as logs and nodes. If the $archive parameter is true, then nodes will be maintained in an archive state.

Returns true if the transaction completes, else returns false.

renumber_device( $current_ip, $new_ip )

Will update all records in Netdisco referring to the device with $current_ip to use $new_ip instead, followed by renumbering the device itself.

Returns true if the transaction completes, else returns false.

match_to_setting( $type, $setting_name )

Given a $type (which may be any text value), returns true if any of the list of regular expressions in $setting_name is matched, otherwise returns false.

is_discoverable( $ip, [$device_type, \@device_capabilities]? )

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 be checked. Also respects discover_phones and discover_waps if either are set to false.

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

is_discoverable_now( $ip, $device_type? )

Same as is_discoverable, but also checks the last_discover field if the device is in storage, and returns false if that host has been too recently discovered.

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.

is_arpnipable_now( $ip )

Same as is_arpnipable, but also checks the last_arpnip field if the device is in storage, and returns false if that host has been too recently arpnipped.

Returns false if the host is not permitted to arpnip 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.

is_macsuckable_now( $ip )

Same as is_macsuckable, but also checks the last_macsuck field if the device is in storage, and returns false if that host has been too recently macsucked.

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