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

NAME

perfSONAR_PS::Services::MP::Agent::SNMP - A module that will query a SNMP device and return it's output.

DESCRIPTION

Inherited perfSONAR_PS::MP::Agent::Base class that allows a command to be executed. Specific tools should inherit from this class and override parse() in order to be able to format the command line output in a well understood data structure.

SYNOPSIS

  # command line to run, variables are indicated with the '%...%' notation
  my $command = '/bin/ping -c %count% %destination%';
  
  # options to use, the above keys defined in $command will be 
  # substituted with the following values
  my %options = (
      'count' => 10,
      'destination' => 'localhost',
  );
  
  # create and setup a new Agent  
  my $agent = perfSONAR_PS::Services::MP::Agent::CommandLine( $command, $options );
  $agent->init();
  
  # collect the results (i.e. run the command)
  if( $mp->collectMeasurements() == 0 )
  {
        
        # get the raw datastructure for the measurement
        print "Results:\n" . $self->results() . "\n";

  }
  # opps! something went wrong! :(
  else {
    
    print STDERR "Command: '" . $self->commandString() . "' failed with result '" . $self->results() . "': " . $agent->error() . "\n"; 
    
  }

new( $command, $options, $namespace)

Creates a new agent class

  $host = device to query
  $port = udp port number to query on $host
  $ver = snmp version number (1,2c,3)
  $comm = community string to use to query device
  $vars = hash of OIDs to query

init( )

Setup the snmp agent

collectMeasurement( @var )

collect the snmp oids defined. Optional list of variables to collect @var (otherwise will use whatever was defined in the constructor or overloaded with $self->variables())

host( $string )

accessor/mutator function for the host to query

port( $string )

accessor/mutator function for the udp port to query

version( $string )

accessor/mutator function for the snmp version to use

version( $string )

accessor/mutator function for the snmp community string

variables( $string )

accessor/mutator function for the hash of snmp oids to collect

addVariable( $string )

Add the snmp oid to the list of variable to collect

removeVariables( )

Clears the list of snmp oids to collect

removeVariables( $string )

removes a single snmp oid variable from teh list to query

getVariableCount( )

determines the number of snmp oid variables to poll

collectVariables( )

Actually polls the host on port with community string and version the list of variables.

Input: @vars = list of oids to collect, if not supplied, will use $self->variables().

Returns:

  -1 = something went wrong (use $self->error() )
   0 = everything went okay
   

setSession

creates and sets a Net::SNMP session for use in collection of oids

setSession

closes the Net::SNMP session

Returns

  -1 = could not close the session;
   0 = closed session okay