From 5fea5c94d9f0c908d378a86503f329b20df1d7d0 Mon Sep 17 00:00:00 2001
From: Christophe Sovant <christophe.sovant@forgerock.com>
Date: Sun, 01 Jun 2008 14:26:09 +0000
Subject: [PATCH] Enable snmp/snmp_mibvalues testsuite

---
 opends/tests/functional-tests/testcases/snmp/snmp_mibvalues.xml |  614 ++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 469 insertions(+), 145 deletions(-)

diff --git a/opends/tests/functional-tests/testcases/snmp/snmp_mibvalues.xml b/opends/tests/functional-tests/testcases/snmp/snmp_mibvalues.xml
index cc3742e..a84cbd9 100644
--- a/opends/tests/functional-tests/testcases/snmp/snmp_mibvalues.xml
+++ b/opends/tests/functional-tests/testcases/snmp/snmp_mibvalues.xml
@@ -50,18 +50,19 @@
           </script>
 
           <call function="'testSuite_Preamble'"/>
-          
+
           <!--- Desactivate the verbose mode -->
           <script>
             VERBOSE_MODE = 'False'
           </script>
-          
+
           <!-- Default values -->
           <script>
             community = '%s@%s' \
             % (SNMP_PROPERTIES['community'], SNMP_PROPERTIES['community'])
+            nbLoop = 10
           </script>
-          
+
           <!--- Test Case information
             #@TestMarker          SNMP MIB values
             #@TestName            snmp_mibvalues: TODO
@@ -73,14 +74,14 @@
             #@TestResult          TODO.
           -->
           <testcase name="getTestCaseName
-          ('snmp_mibvalues: check the number of connection handler')">
+          ('snmp_mibvalues: check the connection handlers')">
 
             <sequence>
 
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check the number of connection handler'
+                'snmp_mibvalues: save the snmp values'
               </message>
 
               <call function="'SNMPGet'">
@@ -97,17 +98,30 @@
 
               <script>
                 DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
+              <message>
+                'snmp_mibvalues: check the connection handlers'
+              </message>
+
+              <script>
                 nbHandler = get_handler_count(DEFAULT_VALUES)
+                indexSNMP = get_handler_index(DEFAULT_VALUES, '1.3.6.1.27.3.%s'\
+                                         % SNMP_PORT)
                 indexLDAP = get_handler_index(DEFAULT_VALUES, '1.3.6.1.27.3.%s'\
                                          % DIRECTORY_INSTANCE_PORT)
+                indexLDIF = get_handler_index(DEFAULT_VALUES, '1.3.6.1.4.1.42')
               </script>
-              
-              <if expr="nbHandler == 3">
+
+              <if expr="nbHandler == 3 and indexSNMP != 0 and indexLDAP != 0 and indexLDIF != 0">
                 <sequence>
                   <script>
-                    msg1 = 'The number of connection handler is correct.\n'
-                    msg2 = 'Current value: %s' % nbHandler
-                    msg = '%s%s' % (msg1, msg2)
+                    msg1 = 'The connection handlers info are correct.\n'
+                    msg2 = 'number of hanlder: %s\n' % nbHandler
+                    msg3 = 'index SNMP hanlder: %s\n' % indexSNMP
+                    msg4 = 'index LDAP hanlder: %s\n' % indexLDAP
+                    msg5 = 'index LDIF hanlder: %s\n' % indexLDIF
+                    msg = '%s%s%s%s%s' % (msg1, msg2, msg3, msg4, msg5)
                   </script>
                   <message>
                     '%s' % msg
@@ -117,10 +131,12 @@
                 <else>
                   <sequence>
                     <script>
-                      msg1 = 'The number of connection handler is wrong.\n'
-                      msg2 = 'Expected value: 3\n'
-                      msg3 = 'Current value: %s' % nbHandler
-                      msg = '%s%s%s' % (msg1, msg2, msg3)
+                      msg1 = 'The connection handlers info are wrong.\n'
+                      msg2 = 'number of hanlder: %s/3\n' % nbHandler
+                      msg3 = 'index SNMP hanlder: %s\n' % indexSNMP
+                      msg4 = 'index LDAP hanlder: %s\n' % indexLDAP
+                      msg5 = 'index LDIF hanlder: %s' % indexLDIF
+                      msg = '%s%s%s%s%s' % (msg1, msg2, msg3, msg4, msg5)
                     </script>
                     <message>
                       '%s' % msg
@@ -129,7 +145,7 @@
                   </sequence>
                 </else>
               </if>
-              
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
@@ -159,8 +175,10 @@
 
               <script>
                 dsServerType = DEFAULT_VALUES['dsServerType.1']
-                dsVersion = DSInfo.getServerVersion(DSInfo.ServerDict['server version'])
-                dsBuild = DSInfo.getServerBuildId(DSInfo.ServerDict['server buildid'])
+                version = DSInfo.ServerDict['server version']
+                dsVersion = DSInfo.getServerVersion(version)
+                build = DSInfo.ServerDict['server buildid']
+                dsBuild = DSInfo.getServerBuildId(build)
                 dsServer = 'OpenDS Directory Server %s - %s' \
                            % (dsVersion, dsBuild)
               </script>
@@ -277,42 +295,83 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfSearchOps entry'
+                'snmp_mibvalues: do %s search operation' % nbLoop
+              </message>
+
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <script>
+                    id = 700 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s' % (loop, userDn)
+                  </message>
+
+                  <call function="'ldapSearchWithScript'">
+                    {
+                    'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+                    'dsTypesOnly'      : 'True' ,
+                    'dsBaseDN'         : 'dc=com' ,
+                    'dsFilter'         : userDn
+                    }
+                  </call>
+
+                </sequence>
+              </loop>
+
+              <message>
+                'snmp_mibvalues: increment the snmp values'
               </message>
 
               <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
-                {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
-                }
-              </call>
-
-              <!--- Increment default values -->
-              <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfSearchOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfSearchOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
@@ -337,48 +396,100 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfAddEntryOps entry'
+                'snmp_mibvalues: do %s add operations' % nbLoop
+              </message>
+
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <script>
+                    id = 1000 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+
+                    listAttr = []
+                    listAttr.append('objectclass:top')
+                    listAttr.append('objectclass:organizationalperson')
+                    listAttr.append('objectclass:inetorgperson')
+                    listAttr.append('objectclass:person')
+                    listAttr.append('givenname:Izen.0')
+                    listAttr.append('sn:Abizen.0')
+                    listAttr.append('cn:Izen Abizen.0')
+                    listAttr.append('l:ICNC')
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s' % (loop, userDn)
+                  </message>
+
+                  <call function="'addAnEntry'">
+                    {
+                    'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+                    'DNToAdd'          : userDn,
+                    'listAttributes'   : listAttr
+                    }
+                  </call>
+
+                </sequence>
+              </loop>
+
+              <message>
+                'snmp_mibvalues: increment the snmp values'
               </message>
 
               <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
-                {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
-                }
-              </call>
-
-              <!--- Increment default values -->
-              <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfAddEntryOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
+                DEFAULT_VALUES['dsMasterEntries.1'] = \
+                  str(int(DEFAULT_VALUES['dsMasterEntries.1']) + nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfAddEntryOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
 
           </testcase>
-          
+
            <!--- Test Case information
             #@TestMarker          SNMP MIB values
             #@TestName            snmp_mibvalues: TODO
@@ -397,48 +508,89 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfRemoveEntryOps entry'
+                'snmp_mibvalues: do %s remove operations' % nbLoop
+              </message>
+
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <script>
+                    id = 1000 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s' % (loop, userDn)
+                  </message>
+
+                  <call function="'ldapDeleteWithScript'">
+                    {
+                    'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+                    'dsDn'             : ['%s' % userDn]
+                    }
+                  </call>
+
+                </sequence>
+              </loop>
+
+              <message>
+                'snmp_mibvalues: increment the snmp values'
               </message>
 
               <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
-                {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
-                }
-              </call>
-
-              <!--- Increment default values -->
-              <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfRemoveEntryOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
+                DEFAULT_VALUES['dsMasterEntries.1'] = \
+                  str(int(DEFAULT_VALUES['dsMasterEntries.1']) - nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfRemoveEntryOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
 
           </testcase>
-          
+
           <!--- Test Case information
             #@TestMarker          SNMP MIB values
             #@TestName            snmp_mibvalues: TODO
@@ -457,48 +609,88 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfCompareOps entry'
+                'snmp_mibvalues: do %s compare operations' % nbLoop
+              </message>
+
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <script>
+                    id = 0 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s' % (loop, userDn)
+                  </message>
+
+                  <call function="'ldapCompareWithScript'">
+                    {
+                    'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+                    'dsDn'             : ['postalCode:64447', '%s' % userDn] ,
+                    'expectedRC'       : 'noCheck'
+                    }
+                  </call>
+
+                </sequence>
+              </loop>
+
+              <message>
+                'snmp_mibvalues: increment the snmp values'
               </message>
 
               <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
-                {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
-                }
-              </call>
-
-              <!--- Increment default values -->
-              <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfCompareOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfCompareOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
 
           </testcase>
-          
+
           <!--- Test Case information
             #@TestMarker          SNMP MIB values
             #@TestName            snmp_mibvalues: TODO
@@ -517,48 +709,90 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfModifyEntryOps entry'
+                'snmp_mibvalues: do %s modify operations' % nbLoop
+              </message>
+
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <script>
+                    id = 400 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s' % (loop, userDn)
+                  </message>
+
+                  <call function="'modifyAnAttribute'">
+                    {
+                    'dsInstanceHost'     : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'     : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'       : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'     : DIRECTORY_INSTANCE_PSWD ,
+                    'DNToModify'         : userDn ,
+                    'attributeName'      : 'postalCode' ,
+                    'newAttributeValue'  : '%s' % id ,
+                    'changetype'         : 'replace'
+                    }
+                  </call>
+
+                </sequence>
+              </loop>
+
+              <message>
+                'snmp_mibvalues: increment the snmp values'
               </message>
 
               <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
-                {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
-                }
-              </call>
-
-              <!--- Increment default values -->
-              <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfModifyEntryOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfModifyEntryOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
 
           </testcase>
-          
+
           <!--- Test Case information
             #@TestMarker          SNMP MIB values
             #@TestName            snmp_mibvalues: TODO
@@ -577,53 +811,143 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfModifyRDNOps entry'
+                'snmp_mibvalues: do %s modify RDN operations' % nbLoop
               </message>
 
-              <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <!--- Create a ldif file for moddn -->
+                  <script>
+                    id = 800 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+                    newid = 2000 + loop
+                    newDn = 'uid=user.%s' % newid
+
+                    templateFile = 'template.ldif'
+                    templatePath = '%s/%s' % (TMPDIR, templateFile)
+                    ldifFile = 'moddn.ldif'
+                    ldifPath = '%s/%s' % (DIRECTORY_INSTANCE_DIR, ldifFile)
+                    ldifLines = []
+                    ldifLines.append('dn: %s' % userDn)
+                    ldifLines.append('changetype: moddn')
+                    ldifLines.append('newRDN: %s' % newDn)
+                    ldifLines.append('deleteOldRDN: 1')
+                    outFile = open(templatePath, "w")
+                    for line in ldifLines:
+                      outFile.write("%s\n" % line)
+                    outFile.close()
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s => %s' % (loop, userDn, newDn)
+                  </message>
+
+                  <!--- Copy file to remote host -->
+                  <message>
+                    'Copy %s to %s on %s' \
+                    % (templateFile,DIRECTORY_INSTANCE_DIR,STAF_REMOTE_HOSTNAME)
+                  </message>
+                  <call function="'copyFile'">
+                    {
+                    'srcfile'    : templatePath ,
+                    'destfile'   : ldifPath ,
+                    'remotehost' : STAF_REMOTE_HOSTNAME
+                    }
+                  </call>
+
+                  <call function="'ldapModifyWithScript'">
+                    {
+                    'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+                    'dsFilename'       : ldifPath
+                    }
+                  </call>
+
+                  <!--- Delete the ldif file used for moddn on remote host -->
+                  <message>
+                    'Delete %s on %s' % (ldifPath, STAF_REMOTE_HOSTNAME)
+                  </message>
+                  <call function="'deleteFile'">
+                    {
+                    'location' : STAF_REMOTE_HOSTNAME ,
+                    'filename' : ldifPath
+                    }
+                  </call>
+                </sequence>
+              </loop>
+
+              <!--- Delete locally the ldif file used for moddn -->
+              <message>
+                'Delete locally %s' % templatePath
+              </message>
+              <call function="'deleteFile'">
                 {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
+                'location' : STAXServiceMachine ,
+                'filename' : templatePath
                 }
               </call>
 
-              <!--- Increment default values -->
+              <message>
+                'snmp_mibvalues: increment the snmp values'
+              </message>
+
               <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfModifyRDNOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfModifyRDNOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
 
           </testcase>
-          
+
           <!--- Activate the verbose mode -->
           <script>
             VERBOSE_MODE = 'True'
           </script>
-          
+
           <call function="'testSuite_Postamble'"/>
 
         </sequence>

--
Gitblit v1.10.0