Table Of Contents
AXP SysInfo API
Overview
Data Model
SysInfoRequest
SysInfoResponse
Description
Java
Java Signatures
Class and Methods
SysInfoRequest
SysInfoResponse
ErrorInfo
ParamListList
ParamList
Param
Java Example
C/C++
C/C++ Signatures
C/C++ Class and Methods
SysInfoRequest
SysInfoResponse
ErrorInfo
ParamListList
ParamList
Param
C/C++ Example
Python
Python Signatures
Class and Static Methods
SysInfoRequest
SysInfoResponse
ErrorInfo
Param
ParamList
ParamListList
Python Examples
Perl
Perl Signatures
Class and Static Methods
ParamList
ParamListList
Perl Example
AXP SysInfo API
•
Overview
•
Data Model
•
Description
•
Java
•
C/C++
•
Python
•
Perl
Overview
Use the AXP SysInfo API to run selected commands on the router, using an application running in the AXP Reference OS or AXPUDL. For selected commands, see the "Description" section.
Interfaces for Java, C/C++, Perl, and Python are listed below and are similar for both of the System APIs: AXP SysInfo API, and AXP SysOp API. (Both of these APIs share the APIs for Param, ParamList, ParamListList, and ErrorInfo.)
Data Model
The following data is used by the AXP SysInfo API:
•
SysInfoRequest
•
SysInfoResponse
SysInfoRequest
The following diagram shows some of the XML data elements that are used by the SysInfo API. Also, refer to the "Appendix I: API Schemas" section on page 340.
Figure 10 SysInfoRequest Data
For further information on the data schemas, refer to the "Appendix I: API Schemas" section on page 340.
Table 59 SysInfoRequest Data
Element
|
Description
|
serviceInfo
|
This element is included in all requests and provides the information common to any type of service
|
serviceType
|
Determines if service request is for IOS or AXP. For SysInfoRequest, AXP is the only valid value
|
serviceRequestor
|
Name of the virtual interface, set by the system
|
serviceAddress
|
IP/hostname of the Cisco IOS router, which is used for IOS serviceType. For AXP 1.5 or higher, the serviceAddress cannot be set
|
genericSysInfoReq
|
Details of the response
|
reqName
|
Requested service. For example, "swapStatistics", "routerInfo"
|
subName
|
Optional further information for service
|
paramList
|
Name value pairs (param) holding data for the requested command
|
param
|
Name-value pair information—query data for obtaining system information
|
SysInfoResponse
The following diagram shows a selection of XML data elements that are used by the SysInfo API.
For further information on the data schemas, refer to the "Appendix I: API Schemas" section on page 340.
Figure 11 SysInfoResponse Data
Table 60 SysInfoResponse Elements
Element
|
Description
|
errorInfo
|
errorCode and errorMessage—data is only present when a request is unsuccessful
|
errorCode
|
Code representing the cause of failure of the request
|
errorMessage
|
Describes the cause of failure of the request
|
genericSysInfoResp
|
Details of the response
|
paramList
|
List of params (name-value pairs) in the response
|
param
|
Name-value pair within the paramList
|
Description
Use the AXP SysInfo API to obtain the following AXP system information:
•
Request for routerInfo
•
Request for swapStatistics
The method of obtaining system information is to first send request information using a SysInfoRequest object. (For example, a request to show the swap statistics.) Then a response is returned in a SysInfoResponse object, which contains values in the paramList.
The following two requests can be made using SysInfoRequest objects: routerInfo (obtain IP address of the router), and swapStatistics (equivalent to the swap statistics CLI command).
Request for routerInfo
Submit a request with reqName = "routerInfo".
The response contains a paramList—one param containing a name-value of "ipAddress" and the
<ip address of the router>.
Request for swapStatistics
Submit a request with reqName = "swapStatistics". The response contains a paramList—three params with name-value amounts of swap space shown in Table 61.
Table 61 paramList values
Name
|
Value
|
swapTotal
|
Total swap space allocated, in KB
|
swapUsed
|
Currently used swap space, in KB
|
swapFree
|
Available swap space, in KB
|
Example
The following example, in pseudocode, describes a process that uses the AXP SysInfo API to request "swap statistics".
set request name to 'swapStatistics'
if the response is successful
get the parameter list of lists
get the value of the 'swapFree' parameter
Java
•
Java Signatures
•
Java Example
Java Signatures
•
Class and Methods
•
SysInfoRequest
•
SysInfoResponse
•
ErrorInfo
•
ParamListList
•
ParamList
•
Param
Class and Methods
Table 62 Java SysInfo API Class and Methods
Method
|
Description
|
static SysInfoRequest getSysInfoRequest ()
|
Returns an instance of the SysInfoRequest object, which is used to perform operation(s) supported by the object for a particular service type.
|
SysInfoRequest
Table 63 Java SysInfoRequest Methods
Method
|
Description
|
SysInfoRequest()
|
Constructor
|
void setReqName(String Key)
|
Sets the requested name from a key string, showing the system request to be executed
Key: swapStatistics—realtime swap statistics of the virtual instance
Key: routerInfo—request router information
|
void setSubName (SysInfoRequest* sysInfo, char* name)
|
Sets the optional sub request name for further identification of the request
|
String getReqName( )
|
Returns the request name key
|
String getSubName( )
|
Returns the sub request name
|
SysInfoResponse execute( )
|
Executes the request with a key string specified by setReqName()
Returns instance of SysInfoResponse with data results
Throws ErrorInfo exception
|
void clrParamListList( )
|
Clears the current system information in ParamListList
|
String toString( )
|
Returns the string representation, in XML format, of the SysInfoRequest object
|
ParamListList getParamListList( )
|
Returns a list of ParamLists
|
SysInfoResponse
Table 64 Java SysInfoResponse Methods
Method
|
Description
|
boolean isSuccess( )
|
Returns: true—if request successful (SysInfoRequest execute() method) false—if request unsuccessful (SysInfoRequest execute() method)
|
ParamListList getParamListList( )
|
Returns a list of ParamLists
|
ErrorInfo getErrorInfo ()
|
Returns error information (sysInfo-response.errorInfo)
|
String toString( )
|
Returns the string representation, in XML format, of the SysInfoResponse object
|
ErrorInfo
ErrorInfo provides access methods for an error structure. The structure is generic across different languages of the AXP SysInfo API.
Table 65 Java ErrorInfo Methods
Method
|
Description
|
String getErrorCode()
|
Returns error code from ErrorInfo
|
String getErrorMessage()
|
Returns error message(errorInfo.errorMessage) from ErrorInfo
|
ParamListList
The following table contains instances of ParamList, and access methods for obtaining a ParamList using an index or key.
Table 66 Java ParamListList Methods
Method
|
Description
|
public ParamList newParamList(String sequence)
|
Creates a ParamList, if one does not already exist, or returns the current ParamList
The ParamList includes a "sequence" (optional), a key for the ParamList
If only one ParamList is required, specify null as the sequence key value
|
ParamList getParamListAt(int indx)
|
Returns the ParamList at a position given by an index
|
ParamList getParamListKey(String sequence)
|
Returns the ParamList at a position given by a key. If the key is null, returns only one ParamList
|
int getSize()
|
Returns an integer giving the number of ParamLists in ParamListList
|
String toString()
|
Returns an XML string representation of the ParamListList instance
|
ParamList
ParamList object contains a list of Param objects. ParamList provides access methods for Param using name as the key.
Table 67 Java ParamList Methods
Method
|
Description
|
ParamList(String sequence);
|
Constructor. The ParamList object contains a list of Param objects. sequence is a key to the ParamList
|
setSequence(String sequence)
|
Sets the sequence (key) of the ParamList. If no sequence is required, pass null as the argument
|
getSequence()
|
Returns the sequence of the ParamList
|
void setParam(String name, String value)
|
Creates an instance of Param if one does not already exist. The Param has name and value, where name is a unique key. (Two Params with the same name are not allowed.)
|
Param newParam(String name, String value)
|
Creates an instance of the Param object, consisting of a name and value
|
String getParamValue(String name)
|
Returns a Param using name (key)
|
Param getParamAt(int index)
|
Returns a Param at the given index position
|
int getSize()
|
Returns the number of Param instances in this ParamList
|
String toString()
|
Returns an XML string representation of the ParamList
|
Param
Table 68 Java Param Methods
Method
|
Description
|
Param(String name)
|
Constructor. name is a key
|
Param(String name, String value)
|
Constructor. name is a key
|
String getName()
|
Returns name of Param
|
String getValue()
|
Returns value of Param
|
void setValue(String val)
|
Sets value of Param
|
Java Example
// ---------------------------------------------------------------------
// Get Router IP Address and Swap Statistics and then copy tech support
// files to the specified URL.
// javac -classpath localsocket.jar:axpsystemapi.jar:xercesImpl.jar:.
SystemInfoExample.java
// java -cp /usr/lib/java/localsocket.jar:
// /usr/lib/java/axpsystemapi.jar:/usr/lib/java/xercesImpl.jar:. SystemInfoExample
// ---------------------------------------------------------------------
import com.cisco.aesop.apphosting.serviceapi.*;
import com.cisco.aesop.apphosting.serviceapi.axpsystemapi.*;
import java.io.IOException;
public class SystemInfoExample {
public static void main(String args[]) {
//Static call to get SysInfoRequest object.
SysInfoRequest sysInfo = AxpSystemAPI.getSysInfoRequest();
/* -----------------------
* -----------------------
//Get the swap space information
sysInfo.setReqName("swapStatistics");
SysInfoResponse resp = sysInfo.execute();
ParamListList listlist = resp.getParamListList();
//Get the parameter list for the recent key.
ParamList list = listlist.getParamListKey(null);
//Get the swap data for each supported key.
String payloadSF = list.getParamValue("swapFree");
String payloadST = list.getParamValue("swapTotal");
String payloadSU = list.getParamValue("swapUsed");
System.out.println("swapFree is " + payloadSF);
System.out.println("swapTotal is " + payloadST);
System.out.println("swapUsed is " + payloadSU);
} catch (ErrorInfo err) {
System.out.println("ErrorInfo.errorCode=" + err.getErrorCode());
System.out.println("ErrorInfo.errorMsg=" + err.getErrorMessage());
/* -----------------------
* -----------------------
sysInfo.setReqName("routerInfo");
SysInfoResponse resp = sysInfo.execute();
ParamListList listlist = resp.getParamListList();
ParamList list = listlist.getParamListKey(null);
String ip = list.getParamValue("ipAddress");
System.out.println("IP Address of the router is " + ip);
} catch (ErrorInfo err) {
System.out.println("ErrorInfo.errorCode=" + err.getErrorCode());
System.out.println("ErrorInfo.errorMsg=" + err.getErrorMessage());
C/C++
•
C/C++ Signatures
•
C/C++ Example
C/C++ Signatures
•
C/C++ Class and Methods
•
SysInfoRequest
•
SysInfoResponse
•
ErrorInfo
•
ParamListList
•
ParamList
•
Param
C/C++ Class and Methods
Constants
Table 69 C/C++ Class Methods
Method
|
Description
|
int getSysInfoRequest(SysInfoRequest **sysInfo);
|
Gets SysInfoRequest object and AXP_API_OK if success. Returns NULL and AXP_API_FAIL if failure
|
SysInfoRequest
Table 70 C/C++ SysInfoRequest Methods
Method
|
Description
|
void setReqName (SysInfoRequest* sysInfo, char* name)
|
Sets the name (reqName) for the SysInfoRequest. name is a key. name = "swapStatistics" returns real time swap statistics of the virtual instance. name= "routerInfo" returns router's IP address
|
void setSubName (SysInfoRequest* sysInfo, char* name)
|
Sets the (optional) name (subName) of the sub request, of this SysInfoRequest
|
void setSubName (String name)
|
Sets the (optional) name (subName) of the sub request, of this SysInfoRequest
|
char* getReqName(SysInfoRequest* sysInfo)
|
Gets the name (reqName) of the SysInfoRequest
|
char* getSubName(SysInfoRequest* sysInfo)
|
Gets the name (subName) of the SysInfoRequest
|
ParamListList* getParamListList(SysInfoRequest* sysInfo)
|
Gets the (optional) ParamListList, a list of sysInfo ParamList instances.
|
void clrParamListList(SysInfoRequest* sysInfo)
|
Clears the ParamListList
|
char* toString(SysInfoRequest* sysInfo)
|
Returns the XML representation of sysInfo (SysInfoRequest)
|
int execute(SysInfoRequest* req, SysInfoResponse **resp)
|
Send request, given by req (SysInfoRequest) object, to host. Returns resp (SysInfoResponse)
|
void destroy(SysInfoRequest* req)
|
Delete request, given by req(SysInfoRequest) object
|
SysInfoResponse
Table 71 C/C++ SysInfoResponse Methods
Method
|
Description
|
int isSuccess (SysInfoResponse* resp)
|
Returns: 1—if request successful 0—if request unsuccessful
|
ParamListList* getParamListList (SysInfoResponse* resp
|
Returns a list of ParamLists
|
ErrorInfo* getErrorInfo (SysInfoResponse* resp)
|
Returns error information (sysInfo-response.errorInfo)
|
char* toString(SysInfoResponse* resp)
|
Returns the string representation, in XML format, of the SysInfoResponse object
|
ErrorInfo
Generic error structure containing an enum code and a detailed text description of the error.
typedef struct ErrorInfo_ {
char errorCode[MAX_ERROR_CODE];
char errorMessage[MAX_ERROR_MESSAGE];
ParamListList
Contains a list of ParamList instances and access methods used to obtain a ParamList using an index or key.
Table 72 C/C++ ParamListList Methods
Method
|
Description
|
ParamList* newParamList(ParamListList* pll, char* sequence)
|
Creates a ParamList, if one does not exist. Returns the current ParamList if one already exists.
The ParamList includes a "sequence"(optional), a key for the ParamList
If only one ParamList is required from ParamListList, specify null as the sequence key value
|
ParamList* getParamListAt(ParamListList* pll, int indx)
|
Gets the ParamList at a position given by an index
|
ParamList* getParamListKey(ParamListList* pll, char* sequence)
|
Gets the ParamList at a position given by a key. If the key is null, returns only one ParamList
|
int getSize(ParamListList* pll)
|
Gets the number of ParamLists in ParamListList
|
char* toString(ParamListList* pll)
|
Returns a string representation of the ParamListList instance
|
ParamList
Table 73 C/C++ ParamList Methods
Method
|
Description
|
Param* newParam(ParamList* pl, char* name, char* value)
|
Creates a ParamList object that contains a list of Param objects name is a key to ParamList
|
void setParam(ParamList* pl, char* name, char* value)
|
Creates a Param object, if one does not already exist name: is a unique key Two Params with the same name are not allowed
|
void setSequence(ParamList* pl, char* sequence)
|
Sets the sequence (key) of ParamList. If no sequence is required, pass null as the argument
|
char* getSequence(ParamList* pl)
|
Gets the sequence of ParamList
|
char* getParamValue(ParamList* pl, char* name);
|
Gets a Param using name (key)
|
Param* getParamAt(ParamList* pl, int index)
|
Gets a Param at a specified index position
|
int getSize(ParamList* pl)
|
Gets the number of Param instances in this ParamList
|
char* toString(ParamList* pl)
|
Returns a string representation of the ParamList
|
Param
Table 74 C/C++ Param Methods
Method
|
Description
|
char* getName(Param* _param)
|
Gets name
|
char* getValue(Param* _param)
|
Gets value (optional data)
|
C/C++ Example
In the following example, the SysInfo API is used to obtain swap statistics and the IP address of the router.
// ---------------------------------------------------------------------
// Get Swap Space Info and Router IP Address
// gcc -Xlinker -hash-style=sysv -Wall -I/axp-sdk.1.5.0/include -L/axp-sd//k.1.5.0/lib -g
-ldl -lc -lpthread -lutilserviceapi -llocal_socket -lax//psystemapi -lxerces-c -o
SystemInfoExample SystemInfoExample.c
// Assure library location is known.
// ---------------------------------------------------------------------
#include "AxpServiceAPI.h"
#include "utilServiceAPI.h"
int main (int argc, char *argv[])
SysInfoRequest *sysInfo = NULL;
SysInfoResponse *sysResp = NULL;
getSysInfoRequest(&sysInfo);
// ----------------------------------------------
// ----------------------------------------------
//Request swap information
sysInfo->setReqName(sysInfo, "swapStatistics");
if (sysInfo->execute(sysInfo, &sysResp) == AXP_API_OK) {
//Get list containing parameter lists.
ParamListList *listlist = sysResp->getParamListList(sysResp);
//Get recently filled parameter list
ParamList *list = listlist->getParamListKey(listlist, NULL);
//Get and print value for each parameter.
printf("swapFree = %s \n", list->getParamValue(list, "swapFree"));
printf("swapTotal = %s \n", list->getParamValue(list, "swapTotal"));
printf("swapUsed = %s \n", list->getParamValue(list, "swapUsed"));
sysResp->destroy(sysResp);
// ----------------------------------------------
// ----------------------------------------------
sysInfo->setReqName(sysInfo, "routerInfo");
if (sysInfo->execute(sysInfo, &sysResp) == AXP_API_OK) {
ParamListList *listlist = sysResp->getParamListList(sysResp);
ParamList *list = listlist->getParamListKey(listlist, NULL);
printf("Router IP Address = %s \n", list->getParamValue(list, "ipAddress"));
sysResp->destroy(sysResp);
Python
•
Python Signatures
•
Python Examples
Python Signatures
•
Class and Static Methods
•
SysInfoRequest
•
SysInfoResponse
•
ErrorInfo
•
Param
•
ParamList
•
ParamListList
Class and Static Methods
Table 75 Python Class and Static Methods
Method
|
Description
|
def getSysInfoRequest()
|
Gets SysInfoRequest instance. The SysInfoRequest is used to retrieve AXP system information.
|
SysInfoRequest
Table 76 Python SysInfoRequest Methods
Method
|
Description
|
setReqName (self, reqName)
|
Sets the name (reqName) for the SysInfoRequest
reqName = "swapStatistics" returns realtime swap statistics of the virtual instance
reqName = "routerInfo" returns router's IP address
|
setSubName(self, subName)
|
Sets the (optional) subName—name of the sub request of this SysInfoRequest
|
getReqName(self)
|
Gets the reqName of the SysInfoRequest
|
getSubName(self)
|
Gets the subName of the SysInfoRequest
|
getParamListList(self)
|
Gets the (optional) ParamListList, a list of sysInfo ParamList instances
|
clrParamListList(self)
|
Clears the ParamListList
|
toString(self)
|
Returns XML representation of sysInfo (SysInfoRequest)
|
execute(self)
|
Send request, given by self (instance of SysInfoRequest), to host Returns SysInfoResponse and ErrorInfo with value = ErrorInfo.errorCode:ErrorInfo.errorMsg
|
SysInfoResponse
Table 77 Python SysInfoResponse Methods
Method
|
Description
|
isSuccess (self)
|
Gets SysInfoResponse success: 1 success, 0 fail
|
toString (self)
|
Gets the XML representation of the SysInfoResponse
|
getErrorInfo (self)
|
Gets ErrorInfo
|
ErrorInfo
ErrorInfo contains an enum code and a detailed text description of the error.
Table 78 Python ErrorInfo Methods
Method
|
Description
|
def getErrorCode(self)
|
Gets an enum error code
|
def getErrorMessage(self)
|
Gets a text description of the error
|
Param
Table 79 Python Param Methods
Method
|
Description
|
def getName()
|
Gets name
|
def getValue()
|
Gets value (optional data)
|
ParamList
Table 80 Python ParamList Methods
Method
|
Description
|
newParam(self, name, value)
|
Creates a Param object with name-value pair
|
setParam(self, name, value)
|
Creates a Param object, if one does not already exist
|
setSequence(self, sequence)
|
Sets sequence (key) If no key is needed, pass null as argument
|
getSequence(self)
|
Gets sequence (key).
|
getParamValue(self, name)
|
Gets param with matching name (key)
|
getParamAt(self, index)
|
Gets a Param at the given index position
|
getSize(self)
|
Returns an integer giving the number of Param instances in ParamList
|
toString(self)
|
Returns an XML representation of the ParamList instance
|
ParamListList
Contains list of ParamList instances, and access methods used to obtain a ParamList using an index or key.
Table 81 Python ParamListList Methods
Method
|
Description
|
newParamList(self, sequence)
|
Creates a ParamList, if one does not already exist, or returns the current ParamList
The ParamList includes a "sequence" (optional), a key for the ParamList
If only one ParamList is required, specify null as the sequence key value
|
getParamListAt(self, indx)
|
Returns the ParamList at a position given by an index
|
getParamListKey(self, sequence)
|
Returns the ParamList at a position given by specified sequence (key) If the specified sequence is null, returns only one ParamList
|
getSize(self)
|
Returns an integer giving the number of ParamLists in ParamListList
|
toString(self)
|
Returns an XML string representation of ParamListList
|
Python Examples
# ---------------------------------------------------------------------
# Get Swap Space Info and Router IP Address
# ---------------------------------------------------------------------
sys.path.append('/usr/lib/python2.4/serviceapi')
sys.path.append('/usr/lib/python2.4/serviceapi/axpsystemapi/')
#------------------------------------------
#------------------------------------------
sysInfo = AxpSystemAPI.getSysInfoRequest()
sysInfo.setReqName("swapStatistics")
listlist = resp.getParamListList()
list = listlist.getParamListKey(None)
print "swapFree is " + list.getParamValue("swapFree")
print "swapTotal is " + list.getParamValue("swapTotal")
print "swapUsed is " + list.getParamValue("swapUsed")
#------------------------------------------
#------------------------------------------
sysInfo.setReqName("routerInfo");
listlist = resp.getParamListList()
list = listlist.getParamListKey(None)
print "IP Address is " + list.getParamValue("ipAddress")
Perl
Information on using the Perl SysInfo API is contained in the following sections.
Note
For Perl, the following softlink is required for the AXP SysInfo API:
ln -s libexpat.so libexpat.so.0
•
Perl Signatures
•
Perl Example
Perl Signatures
•
Class and Static Methods
•
ParamList
•
ParamListList
Class and Static Methods
Table 82 Perl Class and Static Methods
Method
|
Description
|
SysInfoRequest getSysInfoRequest()
|
Gets SysInfoRequest, or 0 if failure
|
ParamList
Table 83 Perl ParamList Methods
Method
|
Description
|
void setParam(name, value)
|
Creates Param instance with name-value pair
|
void setSequence(sequence)
|
Sets sequence (key). If no key is needed, pass null as argument
|
void setParam(name, value)
|
Creates Param, if one does not exist
|
sequence getSequence()
|
Gets sequence (key)
|
value getParamValue(name)
|
Gets value matching name(key)
|
Param getParamAt(index)
|
Gets a Param at the given index position
|
size getSize()
|
Gets an integer giving the number of Param instances in ParamList
|
xmldoc toString()
|
Gets an XML representation of the ParamList instance
|
ParamListList
Contains list of ParamList instances, and access methods used to obtain a ParamList using an index or key.
Table 84 Perl ParamListList Methods
Method
|
Description
|
newParamList(sequence)
|
Creates a ParamList, if one does not already exist, or returns the current ParamList
The ParamList includes a "sequence"(optional), a key for the ParamList
If only one ParamList is required, specify null as the sequence key value
|
getParamListAt(index)
|
Returns the ParamList at a position given by an index
|
getParamListKey(sequence)
|
Returns the ParamList at a position given by specified sequence (key)
|
getSize()
|
Returns an integer giving the number of ParamLists in ParamListList
|
toString()
|
Returns an XML string representation of ParamListList
|
Perl Example
# ---------------------------------------------------------------------
# Get Swap Space Info and Router IP Address
# ---------------------------------------------------------------------
use serviceapi::ParamList;
use serviceapi::ParamListList;
use serviceapi::axpsystemapi::AxpSystemAPI;
use serviceapi::axpsystemapi::SysInfoRequest;
use serviceapi::axpsystemapi::SysInfoResponse;
push @INC, '/usr/lib/perl5/5.8.8/serviceapi/';
push @INC, '/usr/lib/perl5/5.8.8/serviceapi/axpsystemapi/';
#-----------------------------------------------------
# Get Swap Space Information.
#-----------------------------------------------------
$sysInfo = serviceapi::axpsystemapi::AxpSystemAPI->getSysInfoRequest();
$sysInfo->setReqName("swapStatistics");
my $resp = $sysInfo->execute();
my $listlist = $resp->getParamListList();
my $list = $listlist->getParamListKey(undef);
my $payloadSF = $list->getParamValue('swapFree');
my $payloadST = $list->getParamValue('swapTotal');
my $payloadSU = $list->getParamValue('swapUsed');
print "swapFree = $payloadSF \n";
print "swapTotal = $payloadST \n";
print "swapUsed = $payloadSU \n";
#-----------------------------------------------------
#-----------------------------------------------------
$sysInfo = serviceapi::axpsystemapi::AxpSystemAPI->getSysInfoRequest();
$sysInfo->setReqName("routerInfo");
my $resp = $sysInfo->execute();
my $listlist = $resp->getParamListList();
my $list = $listlist->getParamListKey(undef);
my $payload = $list->getParamValue('ipAddress');
print "IP Address is $payload \n\n";