From 687b719f67925d0f6cab6b837459adc8e17dbbe9 Mon Sep 17 00:00:00 2001
From: Gary Williams <gary.williams@forgerock.com>
Date: Thu, 01 Sep 2011 09:50:03 +0000
Subject: [PATCH] clean up staging of static data files for functional tests
---
opends/tests/staf-tests/shared/functions/topology.xml | 174 ++++++++++++++++++++++++---------------------------------
1 files changed, 73 insertions(+), 101 deletions(-)
diff --git a/opends/tests/staf-tests/shared/functions/topology.xml b/opends/tests/staf-tests/shared/functions/topology.xml
index f614f29..b4d4a08 100755
--- a/opends/tests/staf-tests/shared/functions/topology.xml
+++ b/opends/tests/staf-tests/shared/functions/topology.xml
@@ -24,7 +24,7 @@
! CDDL HEADER END
!
! Copyright 2007-2010 Sun Microsystems, Inc.
- ! Portions Copyright 2011 ForgeRock AS
+ ! Portions Copyright 2011 ForgeRock AS.
! -->
<stax>
<function name="createTopology">
@@ -205,11 +205,15 @@
<sequence>
<!-- ON LOCAL HOST: get data ready to copy to remote host -->
<script>
+ # This is the original source location of the data files
sourceTestsGroupDir='%s/%s' % (source.data,groupDataDir)
+ # This is where the data files are staged locally before transit to SUT
localTestsGroupDir ='%s/%s' % (local.data, groupDataDir)
+ # This is where the data files are copied to on the remote SUT
remoteTestsGroupDir='%s/%s' % (remote.data,groupDataDir)
</script>
-
+
+ <!-- Check to see if local tests group directory is already created-->
<call function="'GetEntry'">
{ 'location' : STAXServiceMachine,
'entry' : localTestsGroupDir,
@@ -221,94 +225,14 @@
<if expr="RC == 48">
<sequence>
- <!-- Locally copy static data files to temporary staging area -->
- <!-- LDIF (.ldif) test data files -->
- <message>
- 'Copy ldif data files locally from %s to %s.' % \
- (sourceTestsGroupDir,localTestsGroupDir)
- </message>
- <call function="'CopyFolderByExtension'">
- { 'location' : STAXServiceMachine,
- 'srcfolder' : sourceTestsGroupDir,
- 'destfolder' : localTestsGroupDir,
- 'extension' : 'ldif'
- }
- </call>
-
- <if expr="len(fileExtensions) > 0">
- <iterate var="ft" in="fileExtensions">
- <sequence>
- <!-- add file extension test data files -->
- <message>
- 'Copy %s data files locally from %s to %s.' % \
- (ft,sourceTestsGroupDir,localTestsGroupDir)
- </message>
- <call function="'CopyFolderByExtension'">
- { 'location' : STAXServiceMachine,
- 'srcfolder' : sourceTestsGroupDir,
- 'destfolder' : localTestsGroupDir,
- 'extension' : '%s' % ft
- }
- </call>
- </sequence>
- </iterate>
- </if>
-
- <!-- LDIF (.ldif) files for quickinstall -->
+ <!-- Stage static data if remote host is not local (loopback) -->
<script>
- quickStartGroupDir='%s/quickstart' % (source.data)
- quickStartLocalTestsGroupDir='%s/quickstart' % local.data
+ from socket import gethostbyname
</script>
- <message>
- 'Copy quickstart ldif data files locally from %s to %s.' % \
- (quickStartGroupDir,quickStartLocalTestsGroupDir)
- </message>
- <call function="'CopyFolderByExtension'">
- { 'location' : STAXServiceMachine,
- 'srcfolder' : quickStartGroupDir,
- 'destfolder' : quickStartLocalTestsGroupDir,
- 'extension' : 'ldif'
- }
- </call>
-
- <!-- PWD (.pwd) files -->
- <message>
- 'Copy pwd data files locally from %s to %s.' % \
- (sourceTestsGroupDir,localTestsGroupDir)
- </message>
- <call function="'CopyFolderByExtension'">
- { 'location' : STAXServiceMachine,
- 'srcfolder' : sourceTestsGroupDir,
- 'destfolder' : localTestsGroupDir,
- 'extension' : 'pwd'
- }
- </call>
-
- <!-- Archive (.gz) files -->
- <message>
- 'Copy gz data files locally from %s to %s.' % \
- (sourceTestsGroupDir,localTestsGroupDir)
- </message>
- <call function="'CopyFolderByExtension'">
- { 'location' : STAXServiceMachine,
- 'srcfolder' : sourceTestsGroupDir,
- 'destfolder' : localTestsGroupDir,
- 'extension' : 'gz'
- }
- </call>
- <!-- Archive (.ref) files -->
- <message>
- 'Copy ref data files locally from %s to %s.' % \
- (sourceTestsGroupDir,localTestsGroupDir)
- </message>
- <call function="'CopyFolderByExtension'">
- { 'location' : STAXServiceMachine,
- 'srcfolder' : sourceTestsGroupDir,
- 'destfolder' : localTestsGroupDir,
- 'extension' : 'ref'
- }
- </call>
+ <call function="'stageDataFiles'">
+ { 'customFileExtensions' : fileExtensions }
+ </call>
<!-- Archive (ldapjndi/.java) files -->
<script>
@@ -412,20 +336,7 @@
}
</call>
</sequence>
- </if>
-
- <!-- Archive (.security) files -->
- <message>
- 'Copy security data files locally from %s to %s.' % \
- (sourceTestsGroupDir,localTestsGroupDir)
- </message>
- <call function="'CopyFolderByExtension'">
- { 'location' : STAXServiceMachine,
- 'srcfolder' : sourceTestsGroupDir,
- 'destfolder' : localTestsGroupDir,
- 'extension' : 'security'
- }
- </call>
+ </if>
<!-- Archive (snmp/.java) files -->
<script>
@@ -3036,4 +2947,65 @@
</sequence>
</function>
+ <function name="stageDataFiles">
+ <function-prolog>
+ This function stages locally the static data files
+ </function-prolog>
+ <function-map-args>
+ <function-arg-def name="customFileExtensions"
+ type="optional"
+ default="''">
+ <function-arg-description>
+ Non default file extensions for specific tests
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+
+ </function-map-args>
+ <sequence>
+
+ <!-- Locally copy static data files to temporary staging area -->
+ <message>'Staging static data files on local machine.'</message>
+
+ <!-- All LDIF (.ldif) files for quickinstall are needed for each suite -->
+ <script>
+ quickStartGroupDir='%s/quickstart' % (source.data)
+ quickStartLocalTestsGroupDir='%s/quickstart' % local.data
+ </script>
+ <message>
+ 'Copy quickstart ldif data files locally from %s to %s.' % \
+ (quickStartGroupDir,quickStartLocalTestsGroupDir)
+ </message>
+ <call function="'CopyFolderByExtension'">
+ { 'location' : STAXServiceMachine,
+ 'srcfolder' : quickStartGroupDir,
+ 'destfolder' : quickStartLocalTestsGroupDir,
+ 'extension' : 'ldif'
+ }
+ </call>
+
+ <!-- Default static data files -->
+ <script>
+ defaultFileExtensions=["ldif","pwd","gz","ref","security"]
+ </script>
+
+ <iterate var="ft" in="defaultFileExtensions + customFileExtensions">
+ <sequence>
+ <message>
+ 'Copy %s data files locally from %s to %s.' % \
+ (ft,sourceTestsGroupDir,localTestsGroupDir)
+ </message>
+ <call function="'CopyFolderByExtension'">
+ { 'location' : STAXServiceMachine,
+ 'srcfolder' : sourceTestsGroupDir,
+ 'destfolder' : localTestsGroupDir,
+ 'extension' : '%s' % ft
+ }
+ </call>
+ </sequence>
+ </iterate>
+
+ </sequence>
+ </function>
+
</stax>
--
Gitblit v1.10.0