ADDITIONAL METHODS
device_ips_with_address_or_name( $address_or_name )
Returns a correlated subquery for the set of device_ip
entries for each device. The IP alias or dns matches the supplied address_or_name
, using ILIKE
.
ports_with_mac( $mac )
Returns a correlated subquery for the set of device_port
entries for each device. The port MAC address matches the supplied mac
, using ILIKE
.
with_times
This is a modifier for any search()
(including the helpers below) which will add the following additional synthesized columns to the result set:
- uptime_age
- first_seen_stamp
- last_discover_stamp
- last_macsuck_stamp
- last_arpnip_stamp
- since_first_seen
- since_last_discover
- since_last_macsuck
- since_last_arpnip
search_aliases( {$name or $ip or $prefix}, \%options? )
Tries to find devices in Netdisco which have an identity corresponding to $name
, $ip
or $prefix
.
The search is across all aliases of the device, as well as its "root IP" identity. Note that this search will try not to use DNS, in case the current name for an IP does not correspond to the data within Netdisco.
Passing a zero value to the partial
key of the options
hashref will prevent partial matching of a host name. Otherwise the default is to perform a partial, case-insensitive search on the host name fields.
search_for_device( $name or $ip or $prefix )
This is a wrapper for search_aliases
which:
Disables partial matching on host names
Returns only the first result of any found devices
If no matching devices are found, undef
is returned.
search_by_field( \%cond, \%attrs? )
This variant of the standard search()
method returns a ResultSet of Device entries. It is written to support web forms which accept fields that match and locate Devices in the database.
The hashref parameter should contain fields from the Device table which will be intelligently used in a search query.
In addition, you can provide the key matchall
which, given a True or False value, controls whether fields must all match or whether any can match, to select a row.
Supported keys:
- matchall
-
If a True value, fields must all match to return a given row of the Device table, otherwise any field matching will cause the row to be included in results.
- name
-
Can match the
name
field as a substring. - location
-
Can match the
location
field as a substring. - description
-
Can match the
description
field as a substring (usually this field contains a description of the vendor operating system). - mac
-
Will match exactly the
mac
field of the Device or any of its Interfaces. - model
-
Will match exactly the
model
field. - os
-
Will match exactly the
os
field, which is the operating system. - os_ver
-
Will match exactly the
os_ver
field, which is the operating system software version. - vendor
-
Will match exactly the
vendor
(manufacturer). - dns
-
Can match any of the Device IP address aliases as a substring.
- ip
-
Can be a string IP or a NetAddr::IP object, either way being treated as an IPv4 or IPv6 prefix within which the device must have one IP address alias.
- layers
-
OSI Layers which the device must support.
search_fuzzy( $value )
This method accepts a single parameter only and returns a ResultSet of rows from the Device table where one field matches the passed parameter.
The following fields are inspected for a match:
- contact
- serial
- chassis_id
- module serials (exact)
- location
- name
- mac (including port addresses)
- description
- dns
- ip (including aliases)
carrying_vlan( \%cond, \%attrs? )
my $set = $rs->carrying_vlan({ vlan => 123 });
Like search()
, this returns a ResultSet of matching rows from the Device table.
The returned devices each are aware of the given Vlan.
The
cond
parameter must be a hashref containing a keyvlan
with the value to search for.Results are ordered by the Device DNS and IP fields.
Column
pcount
gives a count of the number of ports on the device that are actually configured to carry the VLAN.
carrying_vlan_name( \%cond, \%attrs? )
my $set = $rs->carrying_vlan_name({ name => 'Branch Office' });
Like search()
, this returns a ResultSet of matching rows from the Device table.
The returned devices each are aware of the named Vlan.
The
cond
parameter must be a hashref containing a keyname
with the value to search for. The value may optionally include SQL wildcard characters.Results are ordered by the Device DNS and IP fields.
Column
pcount
gives a count of the number of ports on the device that are actually configured to carry the VLAN.
has_layer( $layer )
my $rset = $rs->has_layer(3);
This predefined search()
returns a ResultSet of matching rows from the Device table of devices advertising support of the supplied layer in the OSI Model.
The
layer
parameter must be an integer between 1 and 7.
get_platforms
Returns a sorted list of Device models with the following columns only:
- vendor
- model
- count
Where count
is the number of instances of that Vendor's Model in the Netdisco database.
get_releases
Returns a sorted list of Device OS releases with the following columns only:
- os
- os_ver
- count
Where count
is the number of devices running that OS release in the Netdisco database.
with_port_count
This is a modifier for any search()
which will add the following additional synthesized column to the result set:
- port_count
SPECIAL METHODS
delete( \%options? )
Overrides the built-in DBIx::Class delete method to more efficiently handle the removal or archiving of nodes.