From 905fe0fc8dfb4a79d75896db210abefe3da3e87a Mon Sep 17 00:00:00 2001
From: mkeyes <mkeyes@localhost>
Date: Fri, 22 Jun 2007 18:43:07 +0000
Subject: [PATCH] Four lib task functions are modified to only check whether a task is done if the task was successfully scheduled.
---
opends/tests/functional-tests/shared/functions/dsadm.xml | 309 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 274 insertions(+), 35 deletions(-)
diff --git a/opends/tests/functional-tests/shared/functions/dsadm.xml b/opends/tests/functional-tests/shared/functions/dsadm.xml
index 28f46d9..58a354f 100755
--- a/opends/tests/functional-tests/shared/functions/dsadm.xml
+++ b/opends/tests/functional-tests/shared/functions/dsadm.xml
@@ -1310,14 +1310,18 @@
</call>
<!-- Check that the ldap task is completed -->
- <call function="'CheckLdapTask'">
- { 'location' : myLocation,
- 'dsTaskDn' : taskDN,
- 'dsHost' : dsInstanceHost,
- 'dsPort' : dsInstancePort,
- 'dsBindDn' : dsInstanceDn,
- 'dsBindPswd' : dsInstancePswd }
- </call>
+ <if expr="STAFCmdRC == 0">
+ <sequence>
+ <call function="'CheckLdapTask'">
+ { 'location' : myLocation,
+ 'dsTaskDn' : taskDN,
+ 'dsHost' : dsInstanceHost,
+ 'dsPort' : dsInstancePort,
+ 'dsBindDn' : dsInstanceDn,
+ 'dsBindPswd' : dsInstancePswd }
+ </call>
+ </sequence>
+ </if>
</sequence>
@@ -1781,15 +1785,18 @@
</call>
<!-- Check that the task is completed -->
- <call function="'CheckLdapTask'">
- { 'location' : myLocation,
- 'dsTaskDn' : taskDN,
- 'dsHost' : dsInstanceHost,
- 'dsPort' : dsInstancePort,
- 'dsBindDn' : dsInstanceDn,
- 'dsBindPswd' : dsInstancePswd }
- </call>
-
+ <if expr="STAFCmdRC == 0">
+ <sequence>
+ <call function="'CheckLdapTask'">
+ { 'location' : myLocation,
+ 'dsTaskDn' : taskDN,
+ 'dsHost' : dsInstanceHost,
+ 'dsPort' : dsInstancePort,
+ 'dsBindDn' : dsInstanceDn,
+ 'dsBindPswd' : dsInstancePswd }
+ </call>
+ </sequence>
+ </if>
</sequence>
</function>
@@ -2032,15 +2039,18 @@
</call>
<!-- Check that the ldap task is completed -->
- <call function="'CheckLdapTask'">
- { 'location' : myLocation,
- 'dsTaskDn' : taskDN,
- 'dsHost' : dsInstanceHost,
- 'dsPort' : dsInstancePort,
- 'dsBindDn' : dsInstanceDn,
- 'dsBindPswd' : dsInstancePswd }
- </call>
-
+ <if expr="STAFCmdRC == 0">
+ <sequence>
+ <call function="'CheckLdapTask'">
+ { 'location' : myLocation,
+ 'dsTaskDn' : taskDN,
+ 'dsHost' : dsInstanceHost,
+ 'dsPort' : dsInstancePort,
+ 'dsBindDn' : dsInstanceDn,
+ 'dsBindPswd' : dsInstancePswd }
+ </call>
+ </sequence>
+ </if>
</sequence>
</function>
@@ -2235,19 +2245,248 @@
</call>
<!-- Check that the ldap task is completed -->
- <call function="'CheckLdapTask'">
- { 'location' : myLocation,
- 'dsTaskDn' : taskDN,
- 'dsHost' : dsInstanceHost,
- 'dsPort' : dsInstancePort,
- 'dsBindDn' : dsInstanceDn,
- 'dsBindPswd' : dsInstancePswd }
- </call>
-
+ <if expr="STAFCmdRC == 0">
+ <sequence>
+ <call function="'CheckLdapTask'">
+ { 'location' : myLocation,
+ 'dsTaskDn' : taskDN,
+ 'dsHost' : dsInstanceHost,
+ 'dsPort' : dsInstancePort,
+ 'dsBindDn' : dsInstanceDn,
+ 'dsBindPswd' : dsInstancePswd }
+ </call>
+ </sequence>
+ </if>
</sequence>
</function>
+ <!-- Shutdown Task Function -->
+ <function name="shutdownTask">
+ <function-prolog>
+ This function performs an on line export task for shutdown of the directory
+ </function-prolog>
+ <function-map-args>
+ <function-arg-def name="location" type="optional" default="'%s' % 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="pathname"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstanceHost" type="optional">
+ <function-arg-description>
+ Directory server host name
+ </function-arg-description>
+ <function-arg-property name="type" value="integer"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstancePort" type="optional">
+ <function-arg-description>
+ Directory server port number
+ </function-arg-description>
+ <function-arg-property name="type" value="integer"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstanceDn" type="optional">
+ <function-arg-description>
+ Bind DN
+ </function-arg-description>
+ <function-arg-property name="type" value="dn"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstancePswd" type="optional">
+ <function-arg-description>
+ Bind password
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ <function-arg-def name="taskID" type="optional">
+ <function-arg-description>
+ The identifier for the task
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ </function-map-args>
+
+ <sequence>
+
+ <!-- Local variables -->
+ <script>
+ myLocation=location
+ taskLdifFile='shutdown-task.ldif'
+ taskLdif='%s/../%s/%s' % (dsPath,relativeDataDir,taskLdifFile)
+ tmpTaskLdif='%s/%s' % (logsTempDir,taskLdifFile)
+ taskDN='ds-task-id=%s,cn=Scheduled Tasks,cn=Tasks' % taskID
+ </script>
+
+
+ <!-- Build the shutdown task configuration object -->
+ <script>
+ ldifLines=[]
+ ldifLines.append('dn: %s' % taskDN)
+ ldifLines.append('objectclass: top')
+ ldifLines.append('objectclass: ds-task')
+ ldifLines.append('objectclass: ds-task-shutdown')
+ ldifLines.append('ds-task-class-name: org.opends.server.tasks.ShutdownTask')
+ ldifLines.append('ds-task-id: %s' % taskID)
+ </script>
+
+ <!-- Write out the shutdown-task ldif -->
+ <script>
+ outfile = open(tmpTaskLdif,"w")
+
+ for line in ldifLines:
+ outfile.write("%s\n" % line)
+
+ outfile.close()
+ </script>
+
+ <!-- Copy the shutdown-task ldif to remote host -->
+ <message>'Copy shutdown task ldif (%s) to %s' % (tmpTaskLdif,taskLdif)</message>
+ <call function="'copyFile'">
+ { 'location' : STAXServiceMachine,
+ 'srcfile' : tmpTaskLdif,
+ 'destfile' : taskLdif,
+ 'remotehost' : myLocation }
+ </call>
+
+ <!-- Start the task using ldap task interface -->
+ <call function="'StartLdapTask'">
+ { 'location' : myLocation,
+ 'taskLabel' : 'Online Export Task',
+ 'dsHost' : dsInstanceHost,
+ 'dsPort' : dsInstancePort,
+ 'dsBindDn' : dsInstanceDn,
+ 'dsBindPswd' : dsInstancePswd,
+ 'dsTaskLdif' : taskLdif }
+ </call>
+
+ <return>STAFCmdRC</return>
+
+ </sequence>
+ </function>
+
+ <!-- Restart Task Function -->
+ <function name="restartTask">
+ <function-prolog>
+ This function performs an on line export task for restart of the directory
+ </function-prolog>
+ <function-map-args>
+ <function-arg-def name="location" type="optional" default="'%s' % 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="pathname"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstanceHost" type="optional">
+ <function-arg-description>
+ Directory server host name
+ </function-arg-description>
+ <function-arg-property name="type" value="integer"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstancePort" type="optional">
+ <function-arg-description>
+ Directory server port number
+ </function-arg-description>
+ <function-arg-property name="type" value="integer"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstanceDn" type="optional">
+ <function-arg-description>
+ Bind DN
+ </function-arg-description>
+ <function-arg-property name="type" value="dn"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstancePswd" type="optional">
+ <function-arg-description>
+ Bind password
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ <function-arg-def name="taskID" type="optional">
+ <function-arg-description>
+ The identifier for the task
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ </function-map-args>
+
+ <sequence>
+
+ <!-- Local variables -->
+ <script>
+ myLocation=location
+ taskLdifFile='restart-task.ldif'
+ taskLdif='%s/../%s/%s' % (dsPath,relativeDataDir,taskLdifFile)
+ tmpTaskLdif='%s/%s' % (logsTempDir,taskLdifFile)
+ taskDN='ds-task-id=%s,cn=Scheduled Tasks,cn=Tasks' % taskID
+ </script>
+
+ <!-- Build the restart task configuration object -->
+ <script>
+ ldifLines=[]
+ ldifLines.append('dn: %s' % taskDN)
+ ldifLines.append('objectclass: top')
+ ldifLines.append('objectclass: ds-task')
+ ldifLines.append('objectclass: ds-task-shutdown')
+ ldifLines.append('ds-task-class-name: org.opends.server.tasks.ShutdownTask')
+ ldifLines.append('ds-task-restart-server: true')
+ ldifLines.append('ds-task-id: %s' % taskID)
+ </script>
+
+ <!-- Write out the restart-task ldif -->
+ <script>
+ outfile = open(tmpTaskLdif,"w")
+
+ for line in ldifLines:
+ outfile.write("%s\n" % line)
+
+ outfile.close()
+ </script>
+
+ <!-- Copy the restart-task ldif to remote host -->
+ <message>'Copy restart task ldif (%s) to %s' % (tmpTaskLdif,taskLdif)</message>
+ <call function="'copyFile'">
+ { 'location' : STAXServiceMachine,
+ 'srcfile' : tmpTaskLdif,
+ 'destfile' : taskLdif,
+ 'remotehost' : myLocation }
+ </call>
+
+ <!-- Start the task using ldap task interface -->
+ <call function="'StartLdapTask'">
+ { 'location' : myLocation,
+ 'taskLabel' : 'Online Export Task',
+ 'dsHost' : dsInstanceHost,
+ 'dsPort' : dsInstancePort,
+ 'dsBindDn' : dsInstanceDn,
+ 'dsBindPswd' : dsInstancePswd,
+ 'dsTaskLdif' : taskLdif }
+ </call>
+
+ <!--- Check that DS started -->
+ <if expr="STAFCmdRC == 0">
+ <sequence>
+ <call function="'isAlive'">
+ { 'noOfLoops' : 5 ,
+ 'noOfMilliSeconds' : 2000 }
+ </call>
+ </sequence>
+ </if>
+
+ <return>STAFCmdRC</return>
+
+ </sequence>
+ </function>
+
<!-- Add Schema Task Function -->
<function name="addSchemaTask">
--
Gitblit v1.10.0