From fb3a5a7ff610bb4aa6649bb4531d99405bf0ebcf Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Tue, 27 Apr 2010 20:56:50 +0000
Subject: [PATCH] Fixing several issues with the Control Panel, the QuickSetup, Core server and Replication. Also improves unit, functional tests. More specifically this commit resolves the following open issues: 4385 - NPE when using ExtensibleMatch filter without a matching rule 4521 - dynamic lookup in attribut selection when selecting the sort order attribut while defining VLV index 4531 - Control Panel creates virtual static groups using groupOfURLs as objectclass 4533 - NullPointerException when configuring replication between 2 OpenDS 4539 - DSML Gateway - jaxb.properties Exception

---
 opendj-sdk/opends/tests/staf-tests/shared/functions/environment.xml |  128 +++++++++++++++++++++++++++++-------------
 1 files changed, 87 insertions(+), 41 deletions(-)

diff --git a/opendj-sdk/opends/tests/staf-tests/shared/functions/environment.xml b/opendj-sdk/opends/tests/staf-tests/shared/functions/environment.xml
index 71b860f..29d5b62 100755
--- a/opendj-sdk/opends/tests/staf-tests/shared/functions/environment.xml
+++ b/opendj-sdk/opends/tests/staf-tests/shared/functions/environment.xml
@@ -23,7 +23,7 @@
  !
  ! CDDL HEADER END
  !
- !      Copyright 2007-2009 Sun Microsystems, Inc.
+ !      Copyright 2007-2010 Sun Microsystems, Inc.
  ! -->
 <stax>
   
@@ -130,38 +130,6 @@
     </function-prolog>
     
     <sequence>
-
-      <!-- fixMe: this needs some cleanup -->
-      <script>
-        STAXLogMessage = 1 
-        OPENDS_BINPATH ='%s/%s/bin' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
-        if is_windows_platform(STAF_REMOTE_HOSTNAME):
-          fileExt='.bat'
-          scriptExt='.bat'
-          fileFolder='bat'
-          pathSeparator=';'
-          newLine='\r\n'
-        else:
-          fileExt=''
-          scriptExt='.sh'
-          fileFolder='bin'
-          pathSeparator=':'
-          newLine='\n'
-      </script>
-
-      <!-- Default LDAP Server Object -->
-      <script>
-        server=directory_server()
-        server.location   = STAF_REMOTE_HOSTNAME
-        server.host       = DIRECTORY_INSTANCE_HOST
-        server.port       = DIRECTORY_INSTANCE_PORT
-        server.adminport  = DIRECTORY_INSTANCE_ADMIN_PORT
-        server.dn         = DIRECTORY_INSTANCE_DN
-        server.password   = DIRECTORY_INSTANCE_PSWD
-        server.suffix     = DIRECTORY_INSTANCE_SFX
-        server.backend    = DIRECTORY_INSTANCE_BE
-      </script>
-      
       <!-- Default LDAP Server Object -->
       <script>
         server=directory_server()
@@ -180,10 +148,31 @@
       
       <!-- Initialize any global variables -->
       <script>
-        CurrentTestPath={}
-        DSInfoServersDict={}
         True = 1
         False = 0
+
+        STAXLogMessage = 1
+        if is_windows_platform(STAF_REMOTE_HOSTNAME):
+          fileExt='.bat'
+          scriptExt='.bat'
+          fileFolder='bat'
+          pathSeparator=';'
+          newLine='\r\n'
+        else:
+          fileExt=''
+          scriptExt='.sh'
+          fileFolder='bin'
+          pathSeparator=':'
+          newLine='\n'
+
+        if DIRECTORY_INSTANCE_BIN != DIRECTORY_INSTANCE_DIR:
+          IPS_PKG = True
+        else:
+          IPS_PKG = False
+
+        CurrentTestPath={}
+        DSInfoServersDict={}
+
         # threshold set so that functions such as getFile may not cause staf
         # process to run out of memory (value in bytes)
         MAX_READABLE_SIZE = 104800
@@ -202,21 +191,70 @@
         MultimasterSync = 'Multimaster Synchronization'
         MultimasterType = 'multimaster'
 
-        # Replication execution mode variables: if not defined, set random value
-        import random
+        # Replication execution mode variables: if not defined, set "random"
+        # values:
+        #   (day of the month % 4) == 0 --> (split servers, eclmode n/a)
+        #   (day of the month % 4) == 1 --> (don't split, opends eclmode)
+        #   (day of the month % 4) == 2 --> (don't split, draft eclmode)
+        #   (day of the month % 4) == 3 --> (don't split, eclmode n/a)
+        import time
+        monthday          = time.localtime()[2]
+        rewriteConfigFile = False
         
         if REPLICATION_SPLIT_SERVERS == '':
-          REPLICATION_SPLIT_SERVERS = random.choice(['true', 'false'])
+          rewriteConfigFile = True
+          oldSplitConfig    = """REPLICATION_SPLIT_SERVERS     = ''"""
+          if monthday % 4 == 0:
+            REPLICATION_SPLIT_SERVERS = 'true'
+          else:
+            REPLICATION_SPLIT_SERVERS = 'false'        
+          newSplitConfig    = """REPLICATION_SPLIT_SERVERS     = '%s'""" % \
+                              REPLICATION_SPLIT_SERVERS
+        else:
+          newSplitConfig    = """'REPLICATION_SPLIT_SERVERS     = '%s'""" % \
+                              REPLICATION_SPLIT_SERVERS
+          oldSplitConfig    = newSplitConfig
         
         if REPLICATION_ECL_MODE == '':
-          REPLICATION_ECL_MODE = random.choice(['opends', 'draft'])
+          rewriteConfigFile = True
+          oldEclmodeConfig = """REPLICATION_ECL_MODE          = ''"""
+          if monthday % 4 == 1:
+            REPLICATION_ECL_MODE = 'opends'
+          elif monthday % 4 == 2:
+            REPLICATION_ECL_MODE = 'draft'
+          else:
+            REPLICATION_ECL_MODE = 'n/a'
+          newEclmodeConfig  = """REPLICATION_ECL_MODE          = '%s'""" % \
+                              REPLICATION_ECL_MODE
+        else:
+          newEclmodeConfig  = """REPLICATION_ECL_MODE          = '%s'""" % \
+                              REPLICATION_ECL_MODE
+          oldEclmodeConfig  = newEclmodeConfig 
+
+        
+        # Rewrite the randomly chosen variables in config.py file
+        if rewriteConfigFile == True :
+          import re
+          splitRegEx   = re.compile(oldSplitConfig)
+          eclmodeRegEx = re.compile(oldEclmodeConfig)
+
+          configFile   = STAXJobScriptFiles[0]
+          configInput  = open(configFile, 'r')
+          c0           = configInput.read()
+          c1           = splitRegEx.sub(newSplitConfig, c0)
+          content      = eclmodeRegEx.sub(newEclmodeConfig, c1)
+          configInput.close()
+        
+          configOutput = open(configFile,'w')
+          configOutput.write(content)
+          configOutput.close()
 
         # Create staf objects
         LOCAL_STAF_ROOT  = test_env.staf(STAF_LOCAL_HOSTNAME).root
         REMOTE_STAF_ROOT = test_env.staf(STAF_REMOTE_HOSTNAME).root
       </script>
 
-  </sequence>     
+    </sequence>     
   </function>
 
   <function name="GetDirectoryServerInformation">
@@ -466,7 +504,7 @@
 
       <call function="'SetFolders'">
         { 'sourceDir'  : '%s' % TESTS_ROOT,
-          'localDir'  : '%s/%s-jvm%s' % (LOGS_ROOT,logsOS,logsJvm),
+          'localDir'  : '%s' % LOGS_ROOT,
           'remoteDir' : DIRECTORY_INSTANCE_DIR }
       </call>
             
@@ -493,6 +531,14 @@
         'destfile'   : '%s/opends_logo_sm.png' % logs.reports
         }
       </call>
+
+      <message>'Copy xsl files under %s' % logs.reports</message>
+      <call function="'copyFile'">
+        {
+        'srcfile'    : '%s/gen-groups-report.xsl' % TESTS_XSL_DIR,
+        'destfile'   : '%s/gen-groups-report.xsl' % logs.reports
+        }
+      </call>
     </sequence>  
     
   </function>  

--
Gitblit v1.10.0