NAME
Net::Intermapper::Interface - Interface with the HelpSystems Intermapper HTTP API - Interfaces
SYNOPSIS
use Net::Intermapper;
my $intermapper = Net::Intermapper->new(hostname=>"10.0.0.1", username=>"admin", password=>"nmsadmin");
# Options:
# hostname - IP or hostname of Intermapper 5.x server
# username - Username of Administrator user
# password - Password of user
# ssl - SSL enabled (1 - default) or disabled (0)
# port - TCP port for querying information. Defaults to 8181
# modifyport - TCP port for modifying information. Default to 443
# cache - Boolean to enable smart caching or force network queries
my %users = $intermapper->users;
my $users_ref = $intermapper->users;
# Retrieve all users from Intermapper, Net::Intermapper::User instances
# Returns hash or hashref, depending on context
my %devices = $intermapper->devices;
my $devices_ref = $intermapper->devices;
# Retrieve all devices from Intermapper, Net::Intermapper::Device instances
# Returns hash or hashref, depending on context
my %maps = $intermapper->maps;
my $maps_ref = $intermapper->maps;
# Retrieve all maps from Intermapper, Net::Intermapper::Map instances
# Returns hash or hashref, depending on context
my %interfaces = $intermapper->interfaces;
my $interfaces_ref = $intermapper->interfaces;
# Retrieve all interfaces from Intermapper, Net::Intermapper::Interface instances
# Returns hash or hashref, depending on context
my %vertices = $intermapper->vertices;
my $vertices_ref = $intermapper->vertices;
# Retrieve all vertices from Intermapper, Net::Intermapper::Vertice instances
# Returns hash or hashref, depending on context
my $user = $intermapper->users->{"admin"};
print $user->header;
print $device->header;
print $map->header;
print $interface->header;
print $vertice->header;
# Generate 'directive' needed for manipulation. Mostly used internally.
# $user->mode("create"); # This changes the header fields
# $user->mode("update"); # This also changes the header fields
# Both are NOT needed when adding or updating a record
print $user->toTAB;
print $device->toXML;
print $map->toCSV;
# Works on ALL classes
# Produce human-readable output of each record.
my $user = Net::Intermapper::User->new(Name=>"testuser", Password=>"Test12345");
my $response = $intermapper->create($user);
# Create new user
# Return value is HTTP::Response object
my $device = Net::Intermapper::Device->new(Name=>"testDevice", MapName=>"TestMap", MapPath=>"/TestMap", Address=>"10.0.0.1");
my $response = $intermapper->create($device);
# Create new device
# Return value is HTTP::Response object
$user->Password("Foobar123");
my $response = $intermapper->update($user);
# Update existing user
# Return value is HTTP::Response object
my $user = $intermapper->users->{"bob"};
my $response = $intermapper->delete($user);
# Delete existing user
# Return value is HTTP::Response object
my $device = $intermapper->devices->{"UniqueDeviceID"};
my $response = $intermapper->delete($device);
# Delete existing device
# Return value is HTTP::Response object
my $users = { "Tom" => $tom_user, "Bob" => $bob_user };
$intermapper->users($users);
# At this point, there is no real reason to do this as update, create and delete work with explicit arguments.
# But it can be done with users, devices, interfaces, maps and vertices
# Pass a hashref to each method. This will NOT affect the smart-caching (only explicit calls to create, update and delete do this - for now).
DESCRIPTION
Net::Intermapper::Interface is a perl wrapper around the HelpSystems Intermapper API provided through HTTP/HTTPS for access to interface information.
All calls are handled through an instance of the Net::Intermapper class.
use Net::Intermapper;
my $intermapper = Net::Intermapper->new(hostname => '10.0.0.1', username => 'admin', password => 'nmsadmin');
USAGE
- new
-
Class constructor. Returns object of Net::Intermapper::Interface on succes. Attributes are:
- MapName (read-only)
-
The name of the map to which the interface belongs.
- InterfaceID (read-only)
-
A unique persistent identifier for this interface instance. This value is used for lookups in the
users
method in Net::Intermapper. - DeviceID (read-only)
-
The unique persistent identifier for the adjacent device.
- NetworkID (read-only)
-
The unique persistent identifier for the adjacent network.
- Index (read-only)
-
The interface index (i.e. ifIndex) of the interface.
- IntegerIndex (read-only)
-
The interface index (i.e. ifIndex) of the interface, as an integer.
- Description (read-only)
-
The interface description (i.e. ifDescr).
- Name (read-only)
-
The interface name (i.e. ifName).
- Alias (read-only)
-
The interface alias (i.e. ifAlias).
- PhysAddress (read-only)
-
The interface's data-link layer address (i.e. ifPhysAddr) .
- Type (read-only)
-
The interface type as a human-readable string (i.e. ifType).
- MTU (read-only)
-
The interface MTU (i.e. ifMTU).
- Address (read-only)
-
The interface's first network-layer address.
- SubnetMask (read-only)
-
The subnet mask associated with Address.
- SubnetList (read-only)
-
A comma-separated list of addresses/masks on this interface.
- SubnetPrefixList (read-only)
-
A comma-separated list of addresses/prefixes on this interface.
- Speed (read-only)
-
The interface's speed in bits per second. (Derived from preferred speed and reported speed.)
- PreferredSpeed (read-write)
-
The preferred speed of the interface as set by the customer.
- ReportedSpeed (read-only)
-
The speed of the interface as reported by the interface.
- LastChange (read-only)
-
The timestamp when the interface last changed status.
- Status (read-only)
-
The status of the interface (e.g. UP, DOWN, or ADMIN-DOWN).
- Enabled (read-write)
-
Flag which indicates whether the interface is enabled or not.
- MapId (read-only)
-
The unique persistent identifier for the map to which the interface belongs.
- IMID (read-only)
-
Identifier of the interface in the IMID format.
- TypeInt (read-only)
-
The interface type as a number.
- RecvSpeed (read-write)
-
Unsigned 64-bit integer. 0 means baseband; speed in Speed.
- StatusInt (read-only)
-
The status of the interface as integer. Values correspond to {UP, DOWN, ADMIN-DOWN, DOWN but locally acked}.
- CustomerNameReference (read-only)
-
Customer-supplied name, for referencing an external database.
- DataRetentionPolicy (read-only)
-
Database data retention policy.
- Duplex (read-only)
-
Interface Duplex status.
- VLANs (read-only)
-
Comma-separated list of this interface's VLANs.
- NatVLAN (read-write)
-
Native VLAN. Signed integer (0-4093). 0 means none.
- header
-
Returns the
directive
aka data header required by the Intermapper API to perform CRUD actions. This is handled through thecreate
,update
anddelete
method and should not really be used.
- toTAB
-
Returns the object data formatted in TAB delimited format. Used in combination with the
header
and theformat
method in Net::Intermapper to perform CRUD actions. This is handled through thecreate
,update
anddelete
method and should not really be used.
- toCSV
-
Returns the object data formatted in Comma Separated delimited format. Used in combination with the
header
and theformat
method in Net::Intermapper to perform CRUD actions. This is handled through thecreate
,update
anddelete
method and should not really be used.
- toXML
-
Returns the object data formatted in XML format. Used in combination with the
header
and theformat
method in Net::Intermapper to perform CRUD actions. This is handled through thecreate
,update
anddelete
method and should not really be used.
- mode
-
Internal method to properly format the data and header for CRUD actions. Typically not used.
- $ERROR
-
NEEDS TO BE ADDED
This variable will contain detailed error information.
REQUIREMENTS
For this library to work, you need an instance with Intermapper (obviously) or a simulator like Net::Intermapper::Mock.
BUGS
None so far
SUPPORT
None so far :)
AUTHOR
Hendrik Van Belleghem
CPAN ID: BEATNIK
hendrik.vanbelleghem@gmail.com
COPYRIGHT
This program is free software licensed under the...
The General Public License (GPL)
Version 2, June 1991
The full text of the license can be found in the LICENSE file included with this module.
SEE ALSO
http://download.intermapper.com/docs/UserGuide/Content/09-Reference/09-05-Advanced_Importing/the_directive_line.htm http://download.intermapper.com/schema/imserverschema.html