#!/usr/bin/perl -w #use strict; #modules used use XML::Simple; use Data::Dumper; use Net::SNMP; our ($data, $xml, $e, $Host, $OID, $port, $CMD, $value, $SNMP_TARGET , $SNMP_GET_CMD); #create object $xml = new XML::Simple; # MIB Hard value taken from parameters of the DC1 fab port pairs script appended a 1 to test port #1 $OID = ".1.3.6.1.4.1.289.2.1.1.2.3.1.1.152.1"; #checking against PD110 as a test run will probably be read from an XML input file in the future $Host = "10.2.125.110"; # read the XML file #$CMD = "snmpget -v1 -c public -Ovq -m "; #chomp($value = '${CMD} ${Host} .1.3.6.1.4.1.289.2.1.1.2.3.1.1.152.1'); #print $value; $data = $xml->XMLin("FabPortPairs.xml"); #print Dumper($data); foreach $e (@{$data->{PairedDevices}}) #Do actions that require use of XML data in this loop possibly #call SNMP data gathering and reporting { print "Pairname is: " . $e->{PairName} . "\n "; print "Hosted Apps are: " . $e->{HostedApplication} . "\n" ; print "HostOS is: " . $e->{HostOS} . "\n"; } #### $VAR1 = { 'PairedDevices' => [ { 'DeviceB' => { 'SNMPCommunity' => 'public', 'DeviceNickName' => 'SD131', 'SNMPPortIndex' => '19', 'IPAddress' => '10.2.125.131', 'PathName' => '01', 'RealPort' => '18' }, 'ExclusionIndicator' => {}, 'PairName' => 'Chestnut', 'MetricSeverity' => '34', 'MinPercent' => '20', 'HostOwningGroup' => 'AIX Team', 'StatusAlertThisPair' => 'Y', 'DeviceA' => { 'SNMPCommunity' => 'public', 'DeviceNickName' => 'SD130', 'SNMPPortIndex' => '19', 'IPAddress' => '10.2.125.130', 'PathName' => '00', 'RealPort' => '18' }, 'StatusSeverity' => '31', 'HostedEnvironment' => 'Test', 'MetricAlertThisPair' => 'Y', 'MaxPercent' => '80', 'HostedApplication' => 'IEOR', 'HostOS' => 'AIX' },