From 88fc2a5bb4246a289ddeaddc0496fba4236e5ead Mon Sep 17 00:00:00 2001
From: Christophe Sovant <christophe.sovant@forgerock.com>
Date: Sat, 31 May 2008 11:59:35 +0000
Subject: [PATCH] Update SNMP user list, enable encryption in the SNMP managers and add news functions in snmp.xml
---
opends/tests/shared/functions/snmp.xml | 445 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 335 insertions(+), 110 deletions(-)
diff --git a/opends/tests/shared/functions/snmp.xml b/opends/tests/shared/functions/snmp.xml
index bb7000b..d044dba 100755
--- a/opends/tests/shared/functions/snmp.xml
+++ b/opends/tests/shared/functions/snmp.xml
@@ -57,48 +57,54 @@
<function-arg-def name="snmpPort" type="required">
<function-arg-description>
Directory server SNMP port number
- </function-arg-description>
+ </function-arg-description>
<function-arg-property name="type" value="Port number"/>
</function-arg-def>
<function-arg-def name="snmpOIDs" type="optional">
<function-arg-description>
- Bind password
+ SNMP OID to query
</function-arg-description>
<function-arg-property name="type" value="string"/>
- </function-arg-def>
+ </function-arg-def>
<function-arg-def name="snmpCommunity" type="required">
<function-arg-description>
- Bind DN
+ SNMP community/context
</function-arg-description>
- <function-arg-property name="type" value="DN"/>
+ <function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="snmpUser" type="optional">
<function-arg-description>
- Bind DN
+ SNMP user used for v3 requests
</function-arg-description>
- <function-arg-property name="type" value="DN"/>
+ <function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="snmpSecurityLevel" type="optional">
<function-arg-description>
- Bind DN
+ SNMP security level used for v3 requests
</function-arg-description>
- <function-arg-property name="type" value="DN"/>
- </function-arg-def>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
<function-arg-def name="snmpSecurityFile" type="optional">
<function-arg-description>
- Bind password
+ Path to the SNMP security file
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="snmpStatus" type="required">
<function-arg-description>
- Bind password
+ Expected status of the SNMP request
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="snmpValidOIDs" type="optional">
<function-arg-description>
- Bind password
+ Check if the values returned for the OIDs are correct
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ <function-arg-def name="snmpWalk" type="optional">
+ <function-arg-description>
+ Perform a walk request
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
@@ -107,70 +113,79 @@
Expected return code value. Default value is 0
Wildcard 'noCheck' to not check the RC
</function-arg-description>
- <function-arg-property name="type" value="integer"/>
+ <function-arg-property name="type" value="integer"/>
</function-arg-def>
</function-map-args>
-
+
<sequence>
<!-- Build the command -->
<script>
STAFCmdParamsList=[]
STAFCmdParams=''
-
+
if snmpVersion:
- STAFCmdParamsList.append('-v %s' % snmpVersion)
-
- if snmpHost:
+ STAFCmdParamsList.append('-v %s' % snmpVersion)
+
+ if snmpHost:
STAFCmdParamsList.append('-h %s' % snmpHost)
-
+
if snmpPort:
STAFCmdParamsList.append('-p %s' % snmpPort)
-
+
if snmpOIDs:
STAFCmdParamsList.append('-o %s' % snmpOIDs)
-
+
if snmpCommunity:
- STAFCmdParamsList.append('-c %s' % snmpCommunity)
-
+ STAFCmdParamsList.append('-c %s' % snmpCommunity)
+
if snmpUser:
STAFCmdParamsList.append('-u %s' % snmpUser)
if snmpSecurityLevel:
- STAFCmdParamsList.append('-l %s' % snmpSecurityLevel)
-
+ STAFCmdParamsList.append('-l %s' % snmpSecurityLevel)
+
if snmpSecurityFile:
STAFCmdParamsList.append('-f %s' % snmpSecurityFile)
-
+
if snmpStatus:
STAFCmdParamsList.append('-s %s' % snmpStatus)
-
+
if snmpValidOIDs:
STAFCmdParamsList.append('-n %s' % snmpValidOIDs)
-
+
+ if snmpWalk:
+ STAFCmdParamsList.append('-w %s' % snmpWalk)
+
STAFCmdParams=' '.join(STAFCmdParamsList)
-
+
STAFCmd='SNMPGet'
-
+
if is_windows_platform(location):
separator=';'
else:
separator=':'
-
+
opends_jarfile='%s/%s' % (DIRECTORY_INSTANCE_DIR,SNMP_OPENDS_JARFILE)
snmpPath='%s/%s/snmp' % (DIRECTORY_INSTANCE_DIR, relativeJavaDir)
jdmk_jarfile='%s/jdmkrt.jar' % snmpPath
- cp = 'CLASSPATH=%s%s%s%s.' \
- % (opends_jarfile,separator,jdmk_jarfile,separator)
-
- env = ['JAVA_HOME=%s' % JAVA_HOME, '%s' % cp]
+
+ emma_jarfile='%s/%s/lib/emma.jar' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
+ if os.path.exists(emma_jarfile):
+ cp = 'CLASSPATH=%s%s%s%s%s%s.' \
+ % (opends_jarfile,separator,jdmk_jarfile,separator,emma_jarfile,separator)
+ else:
+ cp = 'CLASSPATH=%s%s%s%s.' \
+ % (opends_jarfile,separator,jdmk_jarfile,separator)
+
+ env = ['JAVA_HOME=%s' % JAVA_HOME, '%s' % cp]
</script>
-
+
<message>
'%s %s' % (STAFCmd, STAFCmdParams)
</message>
-
+
<call function="'runCommand'" >
- {
+ {
'name' : 'SNMP Get' ,
'command' : '%s/bin/java' % JAVA_HOME ,
'arguments' : '%s %s' % (STAFCmd, STAFCmdParams) ,
@@ -180,11 +195,11 @@
'expectedRC' : expectedRC
}
</call>
-
+
<return>
STAXResult
</return>
-
+
</sequence>
</function>
@@ -219,48 +234,48 @@
<function-arg-def name="snmpPort" type="required">
<function-arg-description>
Directory server SNMP port number
- </function-arg-description>
+ </function-arg-description>
<function-arg-property name="type" value="Port number"/>
- </function-arg-def>
+ </function-arg-def>
<function-arg-def name="snmpOIDs" type="optional">
<function-arg-description>
- Bind password
+ SNMP OID to query
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="snmpCommunity" type="required">
<function-arg-description>
- Bind DN
+ SNMP community/context
</function-arg-description>
- <function-arg-property name="type" value="DN"/>
+ <function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="snmpUser" type="optional">
<function-arg-description>
- Bind DN
+ SNMP user used for v3 requests
</function-arg-description>
- <function-arg-property name="type" value="DN"/>
+ <function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="snmpSecurityLevel" type="optional">
<function-arg-description>
- Bind DN
+ SNMP security level used for v3 requests
</function-arg-description>
- <function-arg-property name="type" value="DN"/>
- </function-arg-def>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
<function-arg-def name="snmpSecurityFile" type="optional">
<function-arg-description>
- Bind password
+ Path to the SNMP security file
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="snmpStatus" type="required">
<function-arg-description>
- Bind password
+ Expected status of the SNMP request
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="snmpValidOIDs" type="optional">
<function-arg-description>
- Bind password
+ Check if the values returned for the OIDs are correct
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
@@ -269,28 +284,28 @@
Expected return code value. Default value is 0
Wildcard 'noCheck' to not check the RC
</function-arg-description>
- <function-arg-property name="type" value="integer"/>
+ <function-arg-property name="type" value="integer"/>
</function-arg-def>
</function-map-args>
-
+
<sequence>
<!-- Build the command -->
<script>
STAFCmdParamsList=[]
STAFCmdParams=''
-
+
if snmpVersion:
- STAFCmdParamsList.append('-v %s' % snmpVersion)
-
- if snmpHost:
+ STAFCmdParamsList.append('-v %s' % snmpVersion)
+
+ if snmpHost:
STAFCmdParamsList.append('-h %s' % snmpHost)
-
+
if snmpPort:
STAFCmdParamsList.append('-p %s' % snmpPort)
if snmpOIDs:
STAFCmdParamsList.append('-o %s' % snmpOIDs)
-
+
if snmpCommunity:
STAFCmdParamsList.append('-c %s' % snmpCommunity)
@@ -298,41 +313,47 @@
STAFCmdParamsList.append('-u %s' % snmpUser)
if snmpSecurityLevel:
- STAFCmdParamsList.append('-l %s' % snmpSecurityLevel)
-
+ STAFCmdParamsList.append('-l %s' % snmpSecurityLevel)
+
if snmpSecurityFile:
- STAFCmdParamsList.append('-f %s' % snmpSecurityFile)
-
+ STAFCmdParamsList.append('-f %s' % snmpSecurityFile)
+
if snmpStatus:
STAFCmdParamsList.append('-s %s' % snmpStatus)
-
+
if snmpValidOIDs:
STAFCmdParamsList.append('-n %s' % snmpValidOIDs)
-
+
STAFCmdParams=' '.join(STAFCmdParamsList)
-
+
STAFCmd='SNMPSet'
-
+
if is_windows_platform(location):
separator=';'
else:
separator=':'
-
+
opends_jarfile='%s/%s' % (DIRECTORY_INSTANCE_DIR,SNMP_OPENDS_JARFILE)
snmpPath='%s/%s/snmp' % (DIRECTORY_INSTANCE_DIR, relativeJavaDir)
jdmk_jarfile='%s/jdmkrt.jar' % snmpPath
- cp = 'CLASSPATH=%s%s%s%s.' \
- % (opends_jarfile,separator,jdmk_jarfile,separator)
-
- env = ['JAVA_HOME=%s' % JAVA_HOME, '%s' % cp]
+
+ emma_jarfile='%s/%s/lib/emma.jar' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
+ if os.path.exists(emma_jarfile):
+ cp = 'CLASSPATH=%s%s%s%s%s%s.' \
+ % (opends_jarfile,separator,jdmk_jarfile,separator,emma_jarfile,separator)
+ else:
+ cp = 'CLASSPATH=%s%s%s%s.' \
+ % (opends_jarfile,separator,jdmk_jarfile,separator)
+
+ env = ['JAVA_HOME=%s' % JAVA_HOME, '%s' % cp]
</script>
-
+
<message>
'%s %s' % (STAFCmd, STAFCmdParams)
</message>
-
+
<call function="'runCommand'" >
- {
+ {
'name' : 'SNMP Set' ,
'command' : '%s/bin/java' % JAVA_HOME ,
'arguments' : '%s %s' % (STAFCmd, STAFCmdParams) ,
@@ -342,11 +363,11 @@
'expectedRC' : expectedRC
}
</call>
-
+
<return>
STAXResult
</return>
-
+
</sequence>
</function>
@@ -367,24 +388,24 @@
<function-arg-def name="snmpHost" type="required">
<function-arg-description>
Directory server SNMP port number
- </function-arg-description>
+ </function-arg-description>
<function-arg-property name="type" value="hostname"/>
- </function-arg-def>
+ </function-arg-def>
<function-arg-def name="snmpTrapPort" type="required">
<function-arg-description>
Directory server SNMP port number
- </function-arg-description>
+ </function-arg-description>
<function-arg-property name="type" value="Port number"/>
- </function-arg-def>
+ </function-arg-def>
<function-arg-def name="snmpTrapCommunity" type="required">
<function-arg-description>
- Bind DN
+ SNMP trap community
</function-arg-description>
- <function-arg-property name="type" value="DN"/>
- </function-arg-def>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
<function-arg-def name="snmpTrapNumber" type="required">
<function-arg-description>
- Bind password
+ Number of expected traps
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
@@ -393,61 +414,61 @@
Expected return code value. Default value is 0
Wildcard 'noCheck' to not check the RC
</function-arg-description>
- <function-arg-property name="type" value="integer"/>
+ <function-arg-property name="type" value="integer"/>
</function-arg-def>
</function-map-args>
-
+
<sequence>
<call function="'ResolveVar'" >
- {
+ {
'location' : location ,
'type' : 'STRING',
'name' : 'STAF/Config/STAFRoot'
}
- </call>
- <script>jstaf_jarfile = '%s/lib/JSTAF.jar' % STAFResult</script>
-
+ </call>
+ <script>jstaf_jarfile = '%s/lib/JSTAF.jar' % STAFResult</script>
+
<!-- Build the command -->
<script>
STAFCmdParamsList=[]
STAFCmdParams=''
-
+
if snmpHost:
- STAFCmdParamsList.append('-h %s' % snmpHost)
-
+ STAFCmdParamsList.append('-h %s' % snmpHost)
+
if snmpTrapPort:
STAFCmdParamsList.append('-p %s' % snmpTrapPort)
-
+
if snmpTrapCommunity:
STAFCmdParamsList.append('-c %s' % snmpTrapCommunity)
-
+
if snmpTrapNumber:
STAFCmdParamsList.append('-t %s' % snmpTrapNumber)
-
+
STAFCmdParams=' '.join(STAFCmdParamsList)
-
+
STAFCmd='SNMPTrapListener'
-
+
if is_windows_platform(location):
separator=';'
else:
separator=':'
-
+
opends_jarfile='%s/%s' % (DIRECTORY_INSTANCE_DIR,SNMP_OPENDS_JARFILE)
snmpPath='%s/%s/snmp' % (DIRECTORY_INSTANCE_DIR, relativeJavaDir)
jdmk_jarfile='%s/jdmkrt.jar' % snmpPath
cp = 'CLASSPATH=%s%s%s%s%s%s.' \
% (opends_jarfile,separator,jdmk_jarfile,separator,jstaf_jarfile,separator)
-
- env = ['JAVA_HOME=%s' % JAVA_HOME, '%s' % cp]
+
+ env = ['JAVA_HOME=%s' % JAVA_HOME, '%s' % cp]
</script>
-
+
<message>
'%s %s' % (STAFCmd, STAFCmdParams)
</message>
-
+
<call function="'runCommand'" >
- {
+ {
'name' : 'SNMP Trap Listener' ,
'command' : '%s/bin/java' % JAVA_HOME ,
'arguments' : '%s %s' % (STAFCmd, STAFCmdParams) ,
@@ -457,11 +478,215 @@
'expectedRC' : expectedRC
}
</call>
-
+
<return>
STAXResult
</return>
-
+
</sequence>
</function>
+
+ <!-- Restart SNMP Connection Handler -->
+ <function name="restartSNMPConnectionHandler" scope="local">
+ <function-prolog>
+ This function restart the SNMP Connection Handler using dsconfig
+ </function-prolog>
+ <function-map-args>
+ <function-arg-def name="location"
+ type="optional"
+ default="STAF_REMOTE_HOSTNAME">
+ <function-arg-description>
+ Location of target host
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname" />
+ </function-arg-def>
+ <function-arg-def name="dsPath"
+ type="optional"
+ default="'%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)">
+ <function-arg-description>
+ Pathname to installation root
+ </function-arg-description>
+ <function-arg-property name="type" value="filepath" />
+ </function-arg-def>
+ <function-arg-def name="dsInstanceHost"
+ type="optional"
+ default="STAF_REMOTE_HOSTNAME">
+ <function-arg-description>
+ Directory server hostname or IP address
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname" />
+ </function-arg-def>
+ <function-arg-def name="dsInstancePort" type="required">
+ <function-arg-description>
+ Directory server port number
+ </function-arg-description>
+ <function-arg-property name="type" value="Port number" />
+ </function-arg-def>
+
+ <function-arg-def name="dsInstanceDn" type="required">
+ <function-arg-description>
+ Bind DN
+ </function-arg-description>
+ <function-arg-property name="type" value="DN" />
+ </function-arg-def>
+ <function-arg-def name="dsInstancePswd" type="required">
+ <function-arg-description>
+ Bind password
+ </function-arg-description>
+ <function-arg-property name="type" value="string" />
+ </function-arg-def>
+ <function-arg-def name="expectedRC" type="optional" default="0">
+ <function-arg-description>
+ Expected return code value. Default value is 0.
+ Wildcard 'noCheck' to not check the RC
+ </function-arg-description>
+ <function-arg-property name="type" value="string" />
+ </function-arg-def>
+ </function-map-args>
+
+ <sequence>
+ <!-- Build the command -->
+ <script>
+ STAFCmdParamsList=[]
+ STAFCmdParams=''
+
+ if dsPath:
+ dsBinPath='%s/%s' % (dsPath,fileFolder)
+
+ if dsInstanceHost:
+ STAFCmdParamsList.append('-h %s' % dsInstanceHost)
+
+ if dsInstancePort:
+ STAFCmdParamsList.append('-p %s' % dsInstancePort)
+
+ if dsInstanceDn:
+ STAFCmdParamsList.append('-D "%s"' % dsInstanceDn)
+
+ if dsInstancePswd:
+ STAFCmdParamsList.append('-w "%s"' % dsInstancePswd)
+
+ STAFCmdParamsList.append('-n')
+
+ STAFCmdParamsList.append('set-connection-handler-prop')
+ STAFCmdParamsList.append('--handler-name "SNMP Connection Handler"')
+
+ STAFCmdParams=' '.join(STAFCmdParamsList)
+
+ STAFCmd='%s/%s%s' % (dsBinPath,DSCONFIG,fileExt)
+ </script>
+
+ <call function="'runCommand'">
+ {
+ 'name' : 'Disable the SNMP Connection Handler' ,
+ 'location' : location ,
+ 'command' : STAFCmd ,
+ 'arguments' : '%s --set enabled:false' % STAFCmdParams ,
+ 'expectedRC': expectedRC
+ }
+ </call>
+
+ <call function="'runCommand'">
+ {
+ 'name' : 'Enable the SNMP Connection Handler' ,
+ 'location' : location ,
+ 'command' : STAFCmd ,
+ 'arguments' : '%s --set enabled:true' % STAFCmdParams ,
+ 'expectedRC': expectedRC
+ }
+ </call>
+
+ <return>
+ STAXResult
+ </return>
+
+ </sequence>
+ </function>
+
+ <!-- Compare SNMP values -->
+ <function name="compareSNMPValues" scope="local">
+ <function-prolog>
+ This function compare SNMP Values
+ </function-prolog>
+ <function-map-args>
+ <function-arg-def name="location"
+ type="optional"
+ default="STAF_REMOTE_HOSTNAME">
+ <function-arg-description>
+ Location of target host
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname" />
+ </function-arg-def>
+ <function-arg-def name="snmpHost"
+ type="optional"
+ default="STAF_REMOTE_HOSTNAME">
+ <function-arg-description>
+ Directory server hostname or IP address
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname" />
+ </function-arg-def>
+ <function-arg-def name="snmpPort" type="required">
+ <function-arg-description>
+ Directory server SNMP port number
+ </function-arg-description>
+ <function-arg-property name="type" value="Port number"/>
+ </function-arg-def>
+ <function-arg-def name="snmpCommunity" type="required">
+ <function-arg-description>
+ SNMP community/context
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ <function-arg-def name="expectedRC" type="optional" default="0">
+ <function-arg-description>
+ Expected return code value. Default value is 0
+ Wildcard 'noCheck' to not check the RC
+ </function-arg-description>
+ <function-arg-property name="type" value="integer"/>
+ </function-arg-def>
+ </function-map-args>
+
+ <sequence>
+ <message>
+ 'get the current mib values'
+ </message>
+
+ <call function="'SNMPGet'">
+ {
+ 'location' : location ,
+ 'snmpVersion' : '1',
+ 'snmpHost' : snmpHost ,
+ 'snmpPort' : snmpPort ,
+ 'snmpCommunity' : snmpCommunity ,
+ 'snmpOIDs' : '' ,
+ 'snmpStatus' : 'noError' ,
+ 'snmpWalk' : 'True' ,
+ 'expectedRC' : expectedRC
+ }
+ </call>
+
+ <script>
+ CURRENT_VALUES = {}
+ CURRENT_VALUES = create_table_fromoutput(STAXResult[0][1])
+
+ result = compare_snmp_values(DEFAULT_VALUES, CURRENT_VALUES)
+ </script>
+
+ <message>
+ 'result: %s' % result
+ </message>
+
+ <call function="'checktestStringNotPresent'">
+ {
+ 'returnString' : result ,
+ 'testString' : 'ERROR'
+ }
+ </call>
+
+ <return>
+ STAXResult
+ </return>
+
+ </sequence>
+ </function>
+
</stax>
--
Gitblit v1.10.0