<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<!DOCTYPE stax SYSTEM "../stax.dtd">
|
<!--
|
! CDDL HEADER START
|
!
|
! The contents of this file are subject to the terms of the
|
! Common Development and Distribution License, Version 1.0 only
|
! (the "License"). You may not use this file except in compliance
|
! with the License.
|
!
|
! You can obtain a copy of the license at
|
! trunk/opends/resource/legal-notices/OpenDS.LICENSE
|
! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
|
! See the License for the specific language governing permissions
|
! and limitations under the License.
|
!
|
! When distributing Covered Code, include this CDDL HEADER in each
|
! file and include the License file at
|
! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
|
! add the following below this CDDL HEADER, with the fields enclosed
|
! by brackets "[]" replaced with your own identifying information:
|
! Portions Copyright [yyyy] [name of copyright owner]
|
!
|
! CDDL HEADER END
|
!
|
! Copyright 2007-2009 Sun Microsystems, Inc.
|
! Portions Copyright 2011-2012 ForgeRock AS.
|
! -->
|
<stax>
|
<function name="copyFile" scope="local">
|
<function-prolog>
|
This function copies a source file to destination file to host
|
</function-prolog>
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="remotehost" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
The name of remote host (default localhost)
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="srcfile" type="required">
|
<function-arg-description>
|
The name of the source file
|
</function-arg-description>
|
<function-arg-property name="type" value="filename"/>
|
</function-arg-def>
|
<function-arg-def name="destfile" type="required">
|
<function-arg-description>
|
The name of the destination file
|
</function-arg-description>
|
<function-arg-property name="type" value="filename"/>
|
</function-arg-def>
|
</function-map-args>
|
<sequence>
|
<script>
|
myLocation=location
|
</script>
|
<message>
|
'Copy file %s:%s to %s:%s.' \
|
% (myLocation,srcfile,remotehost,destfile)
|
</message>
|
|
<script>
|
destfolder = os.path.dirname(destfile)
|
</script>
|
|
<message>
|
'Checking for parent folder %s on host %s.' % (destfolder,remotehost)
|
</message>
|
|
<call function="'createFolder'">
|
{ 'location' : remotehost,
|
'foldername' : '%s' % destfolder
|
}
|
</call>
|
|
<stafcmd name="'STAF Command: Copy File'">
|
<location>'%s' % myLocation</location>
|
<service>'fs'</service>
|
<request>
|
'COPY FILE %s TOFILE %s TOMACHINE %s' % (srcfile,destfile,remotehost)
|
</request>
|
</stafcmd>
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
<call function="'checkRC'">
|
{ 'returncode' : cmdRC ,
|
'result' : cmdResult }
|
</call>
|
<return>[cmdRC,cmdResult]</return>
|
</sequence>
|
</function>
|
|
<function name="CopyFolderByExtension">
|
<function-prolog>
|
Copies files by extension from a source to destination folder on host
|
</function-prolog>
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="remotehost" type="optional" default="location">
|
<function-arg-description>
|
The name of remote host (default same as location)
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="srcfolder" type="required">
|
<function-arg-description>
|
The name of the source folder
|
</function-arg-description>
|
<function-arg-property name="type" value="foldername"/>
|
</function-arg-def>
|
<function-arg-def name="destfolder" type="required">
|
<function-arg-description>
|
The name of the destination file
|
</function-arg-description>
|
<function-arg-property name="type" value="foldername"/>
|
</function-arg-def>
|
<function-arg-def name="extension" type="optional" default="'txt'">
|
<function-arg-description>
|
The name of the file extension (default txt)
|
</function-arg-description>
|
<function-arg-property name="type" value="file extension"/>
|
</function-arg-def>
|
</function-map-args>
|
<sequence>
|
<message>
|
'Copy all %s Files from %s:%s to %s:%s.' \
|
% (extension,location,srcfolder,remotehost,destfolder)
|
</message>
|
<stafcmd name="'STAF Command: Copy all %s Files.' % (extension)">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>
|
'COPY DIRECTORY %s TODIRECTORY %s TOMACHINE %s EXT %s RECURSE' \
|
% (srcfolder,destfolder,remotehost,extension)
|
</request>
|
</stafcmd>
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
<call function="'checkRC'">
|
{ 'returncode' : cmdRC ,
|
'result' : cmdResult }
|
</call>
|
<return>cmdRC</return>
|
</sequence>
|
</function>
|
|
<function name="copyFolder">
|
<function-prolog>
|
Copies folder from a source to destination folder on host
|
</function-prolog>
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="remotehost" type="optional" default="location">
|
<function-arg-description>
|
The name of remote host (default same as location)
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="srcfolder" type="required">
|
<function-arg-description>
|
The name of the source folder
|
</function-arg-description>
|
<function-arg-property name="type" value="foldername"/>
|
</function-arg-def>
|
<function-arg-def name="destfolder" type="required">
|
<function-arg-description>
|
The name of the destination file
|
</function-arg-description>
|
<function-arg-property name="type" value="foldername"/>
|
</function-arg-def>
|
</function-map-args>
|
<sequence>
|
<message>
|
'Copy folder %s:%s to %s:%s.' \
|
% (location,srcfolder,remotehost,destfolder)
|
</message>
|
<stafcmd name="'STAF Command: Copy %s folder to %s.' % (srcfolder,destfolder)">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>'COPY DIRECTORY %s TODIRECTORY %s TOMACHINE %s RECURSE' % (srcfolder,destfolder,remotehost) </request>
|
</stafcmd>
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
<call function="'checkRC'">
|
{ 'returncode' : cmdRC ,
|
'result' : cmdResult }
|
</call>
|
<return>cmdRC</return>
|
</sequence>
|
</function>
|
|
<function name="zipUpFile">
|
<function-prolog>
|
This function zips up a folder
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="zipfile" type="required">
|
<function-arg-description>
|
Name of the file to place zip file contents
|
</function-arg-description>
|
<function-arg-property name="type" value="filename"/>
|
</function-arg-def>
|
<function-arg-def name="folder" type="required">
|
<function-arg-description>
|
Name of destination folder to place zip file contents
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
<function-arg-def name="relativeto" type="required">
|
<function-arg-description>
|
Folder that the zip archive is relative to
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
|
<stafcmd name="'STAF Command: Zip Up Folder'">
|
<location>'%s' % location</location>
|
<service>'zip'</service>
|
<request>
|
'ADD ZIPFILE %s DIRECTORY %s RECURSE RELATIVETO %s' % (zipfile,folder,relativeto)
|
</request>
|
</stafcmd>
|
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
|
<call function="'checkRC'">
|
{ 'returncode' : cmdRC ,
|
'result' : cmdResult }
|
</call>
|
<return>cmdRC</return>
|
</sequence>
|
</function>
|
|
<function name="unZipFile">
|
<function-prolog>
|
This function unzips a compressed zip archive
|
</function-prolog>
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="zipfile" type="required">
|
<function-arg-description>
|
Name of the file to place zip file contents
|
</function-arg-description>
|
<function-arg-property name="type" value="filename"/>
|
</function-arg-def>
|
<function-arg-def name="file" type="optional" default="None">
|
<function-arg-description>
|
Name of file to unzip
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
<function-arg-def name="directory" type="optional" default="None">
|
<function-arg-description>
|
Name of directory to unzip
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
<function-arg-def name="unzipdir" type="required">
|
<function-arg-description>
|
Name of destination folder to place zip file contents
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
<script>
|
if file:
|
file='FILE %s' % file
|
else:
|
file=''
|
|
if directory:
|
dir='DIRECTORY %s' % directory
|
else:
|
dir=''
|
</script>
|
|
<stafcmd name="'STAF Command: Unzip File'">
|
<location>'%s' % location</location>
|
<service>'zip'</service>
|
<request>
|
'UNZIP ZIPFILE %s TODIRECTORY %s %s %s RESTOREPERMISSION REPLACE' % (zipfile,unzipdir,file,dir)
|
</request>
|
</stafcmd>
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
<call function="'checkRC'">
|
{ 'returncode' : cmdRC ,
|
'result' : cmdResult }
|
</call>
|
<return>cmdRC</return>
|
</sequence>
|
</function>
|
|
<function name="deleteFile">
|
<function-prolog>
|
This function deletes a file
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="filename" type="required">
|
<function-arg-description>
|
Name of file to be deleted
|
</function-arg-description>
|
<function-arg-property name="type" value="filename"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
<stafcmd name="'STAF Command: Delete Existing File'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>
|
'GET ENTRY %s TYPE' % (filename)
|
</request>
|
</stafcmd>
|
|
<if expr="RC == 48">
|
<sequence>
|
<message log="1">
|
'Success: File does not exist, dont delete it.'
|
</message>
|
<return>0</return>
|
</sequence>
|
<else>
|
<sequence>
|
<message log="1">
|
'Success: File does exists, will delete it'
|
</message>
|
</sequence>
|
</else>
|
</if>
|
|
<stafcmd name="'STAF Command: Delete Existing File'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>
|
'DELETE ENTRY %s CONFIRM' % filename
|
</request>
|
</stafcmd>
|
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
|
<call function="'checkRC'">
|
{ 'returncode' : cmdRC ,
|
'result' : cmdResult }
|
</call>
|
<return>cmdRC</return>
|
</sequence>
|
</function>
|
|
<function name="deleteFolder">
|
<function-prolog>
|
This function recursively deletes a folder
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="foldername" type="required">
|
<function-arg-description>
|
Name of folder to be deleted
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
|
<stafcmd name="'STAF Command: Get Folder Attributes'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>'GET ENTRY %s TYPE' % foldername</request>
|
</stafcmd>
|
|
<if expr="RC == 48">
|
<sequence>
|
<message log="1">
|
'Folder %s does not exist, do not delete it.' % foldername
|
</message>
|
<return>0</return>
|
</sequence>
|
<else>
|
<sequence>
|
<message log="1">
|
'Folder %s exists, will delete it and all contents.' % foldername
|
</message>
|
</sequence>
|
</else>
|
</if>
|
<stafcmd name="'STAF Command: Recursively Delete Folder'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>
|
'DELETE ENTRY %s RECURSE IGNOREERRORS CONFIRM' % (foldername)
|
</request>
|
</stafcmd>
|
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
|
<call function="'checkRC'">
|
{ 'returncode' : cmdRC ,
|
'result' : cmdResult }
|
</call>
|
|
<return>cmdRC</return>
|
|
</sequence>
|
|
</function>
|
|
<function name="createFolder">
|
|
<function-prolog>
|
This function creates a folder
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="foldername" type="required">
|
<function-arg-description>
|
Name of folder to be created
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
|
<message>
|
'Creating folder %s on %s' % (foldername,location)
|
</message>
|
|
<stafcmd name="'STAF Command: Create Folder'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>
|
'CREATE DIRECTORY %s FULLPATH' % foldername
|
</request>
|
</stafcmd>
|
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
|
<call function="'checkRC'">
|
{ 'returncode' : cmdRC ,
|
'result' : cmdResult }
|
</call>
|
|
<return>cmdRC</return>
|
|
</sequence>
|
|
</function>
|
|
<function name="createMultiFolders" scope="local">
|
|
<function-prolog>
|
This function creates multiple folders
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="folderslist" type="required">
|
<function-arg-description>
|
Name of folder to be created
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
|
<iterate var="folderToCreate" in="folderslist">
|
|
<sequence>
|
<message>'Check if folder exists already.'</message>
|
|
<call function="'GetEntry'">
|
{
|
'location' : location,
|
'entry' : folderToCreate,
|
'attribute' : 'TYPE'
|
}
|
</call>
|
|
<if expr="RC == 48">
|
<sequence>
|
|
<message>
|
'Folder %s does not exists, create folder' % folderToCreate
|
</message>
|
|
<call function="'createFolder'">
|
{ 'location' : location,
|
'foldername' : folderToCreate
|
}
|
</call>
|
</sequence>
|
</if>
|
</sequence>
|
</iterate>
|
|
</sequence>
|
|
</function>
|
|
<function name="queryLogs">
|
|
<function-prolog>
|
Queries the staf logs from startfrom point
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="logname" type="required">
|
<function-arg-description>
|
Name of file to be deleted
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
<function-arg-def name="startfrom" type="required">
|
<function-arg-description>
|
Name of file to be deleted
|
</function-arg-description>
|
<function-arg-property name="type" value="timestamp"/>
|
</function-arg-def>
|
<function-arg-def name="endat" type="required">
|
<function-arg-description>
|
Name of file to be deleted
|
</function-arg-description>
|
<function-arg-property name="type" value="timestamp"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
|
<block name="'Query Logs'">
|
<timer duration="'60s'">
|
<stafcmd name="'STAF Command: Log Query for Test Case Log.'">
|
<location>'%s' % location</location>
|
<service>'log'</service>
|
<request>'QUERY ALL MACHINE %s LOGNAME %s FROM %s TO %s' % (location,logname,startfrom,endat)</request>
|
</stafcmd>
|
</timer>
|
</block>
|
|
</sequence>
|
|
</function>
|
|
<function name="SetVar">
|
|
<function-prolog>
|
Sets a variable in the staf var service
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="type" type="required">
|
<function-arg-description>
|
Name of file to be deleted
|
</function-arg-description>
|
<function-arg-property name="type" value="variable"/>
|
</function-arg-def>
|
<function-arg-def name="variable" type="required">
|
<function-arg-description>
|
Name of file to be deleted
|
</function-arg-description>
|
<function-arg-property name="type" value="variable"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
|
<message>'Set %s Variable %s' % (type,variable)</message>
|
|
<stafcmd name="'STAF Command: Set Var.'">
|
<location>'%s' % location</location>
|
<service>'var'</service>
|
<request>'SET %s VAR %s' % (type,variable)</request>
|
</stafcmd>
|
|
</sequence>
|
|
</function>
|
|
<function name="GetVar">
|
|
<function-prolog>
|
Gets a variable in the staf var service
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="type" type="required">
|
<function-arg-description>
|
Type of variable
|
</function-arg-description>
|
<function-arg-property name="type" value="variable"/>
|
</function-arg-def>
|
<function-arg-def name="variable" type="required">
|
<function-arg-description>
|
Name of variable
|
</function-arg-description>
|
<function-arg-property name="type" value="variable"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
|
<message>'Get %s Variable %s' % (type,variable)</message>
|
|
<stafcmd name="'STAF Command: Get Var.'">
|
<location>'%s' % location</location>
|
<service>'var'</service>
|
<request>'GET %s VAR %s' % (type,variable)</request>
|
</stafcmd>
|
|
</sequence>
|
|
</function>
|
|
<function name="ResolveVar">
|
|
<function-prolog>
|
Resolve a variable in the staf var service
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="type" type="required">
|
<function-arg-description>
|
Type of string to be resolved
|
</function-arg-description>
|
<function-arg-property name="type" value="variable"/>
|
</function-arg-def>
|
<function-arg-def name="name" type="required">
|
<function-arg-description>
|
Name of string to be resolved
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
|
<message>'Resolve %s Variable %s' % (type, name)</message>
|
|
<stafcmd name="'STAF Command: Resolve Var.'">
|
<location>'%s' % location</location>
|
<service>'var'</service>
|
<request>'RESOLVE %s {%s}' % (type, name)</request>
|
</stafcmd>
|
|
</sequence>
|
|
</function>
|
|
<function name="GetEntry">
|
|
<function-prolog>
|
Retrieves an attribute of a file system entry
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="entry" type="required">
|
<function-arg-description>
|
Name of entry to retrieve attributes
|
</function-arg-description>
|
<function-arg-property name="type" value="variable"/>
|
</function-arg-def>
|
<function-arg-def name="attribute" type="required">
|
<function-arg-description>
|
Type of attributes to be retrieved
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
|
<message>'Retrieve attribute %s for %s.' % (attribute,entry)</message>
|
|
<stafcmd name="'STAF Command: Get Entries Attributes'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>'GET ENTRY %s %s' % (entry,attribute)</request>
|
</stafcmd>
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
<return>[cmdRC,cmdResult]</return>
|
</sequence>
|
|
</function>
|
|
|
<!-- List a folder -->
|
<function name="listFolder">
|
<function-prolog>
|
This function lists a folder
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="foldername" type="required">
|
<function-arg-description>
|
Name of folder to be list
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
<function-arg-def name="filename" type="required">
|
<function-arg-description>
|
Name of file to be list
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
<stafcmd name="'STAF Command: list Folder Attributes'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>' LIST DIRECTORY %s NAME %s LONG ' % (foldername,filename)</request>
|
</stafcmd>
|
<if expr="RC != 0">
|
<sequence>
|
<message log="1">
|
'Folder does not exist.'
|
</message>
|
<return>0</return>
|
</sequence>
|
</if>
|
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
|
<call function="'checkRC'">
|
{ 'returncode' : cmdRC ,
|
'result' : cmdResult }
|
</call>
|
|
<return>cmdRC</return>
|
</sequence>
|
|
</function>
|
|
<!-- List a folder by extension -->
|
<function name="listFolderByExtension" scope="local">
|
<function-prolog>
|
This function lists a folder by extension
|
</function-prolog>
|
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="foldername" type="required">
|
<function-arg-description>
|
Name of folder to be list
|
</function-arg-description>
|
<function-arg-property name="type" value="filepath"/>
|
</function-arg-def>
|
<function-arg-def name="extension" type="required">
|
<function-arg-description>
|
he name of the file extension (default txt)
|
</function-arg-description>
|
<function-arg-property name="type" value="file extension"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
<stafcmd name="'STAF Command: list folder by extension'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>' LIST DIRECTORY %s EXT %s RECURSE' % (foldername,extension)</request>
|
</stafcmd>
|
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
|
<if expr="cmdRC != 0">
|
<sequence>
|
<script>
|
cmdResult = 'Folder does not exist.'
|
</script>
|
</sequence>
|
</if>
|
|
<call function="'checkRC'">
|
{
|
'returncode' : cmdRC ,
|
'result' : cmdResult
|
}
|
</call>
|
|
<return>cmdResult</return>
|
</sequence>
|
</function>
|
|
<function name="getFile">
|
<function-prolog>
|
This function get the contents of a file
|
</function-prolog>
|
<function-map-args>
|
<function-arg-def name="location" type="optional" default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="filename" type="required">
|
<function-arg-description>
|
The name of the file
|
</function-arg-description>
|
<function-arg-property name="type" value="filename"/>
|
</function-arg-def>
|
<function-arg-def name="type" type="optional" default="'text'">
|
<function-arg-description>
|
The type of the file
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
<function-arg-def name="format" type="optional" default="'native'">
|
<function-arg-description>
|
The format of the file
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
</function-map-args>
|
<sequence>
|
<stafcmd name="'STAF Command: Get File'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>
|
'GET FILE %s %s FORMAT %s' % (filename,type,format)
|
</request>
|
</stafcmd>
|
<script>
|
cmdRC=RC
|
cmdResult=STAFResult
|
</script>
|
<return>[cmdRC,cmdResult]</return>
|
</sequence>
|
</function>
|
|
<!-- Send event -->
|
<function name="SendEvent" scope="local">
|
<function-prolog>
|
Send event.
|
</function-prolog>
|
<function-map-args>
|
<function-arg-def name="location"
|
type="optional"
|
default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="name" type="required">
|
<function-arg-description>
|
Name of event to send
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
<message>'Send Event %s on %s' % (name, location)</message>
|
|
<stafcmd name="'STAF Command: Send Event.'">
|
<location>'%s' % location</location>
|
<service>'sem'</service>
|
<request>'PULSE EVENT %s' % name</request>
|
</stafcmd>
|
</sequence>
|
</function>
|
|
<!-- Wait event -->
|
<function name="WaitEvent" scope="local">
|
<function-prolog>
|
Wait event.
|
</function-prolog>
|
<function-map-args>
|
<function-arg-def name="location"
|
type="optional"
|
default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="name" type="required">
|
<function-arg-description>
|
Name of event to wait
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
<message>'Wait Event %s on %s' % (name, location)</message>
|
|
<stafcmd name="'STAF Command: Wait Event.'">
|
<location>'%s' % location</location>
|
<service>'sem'</service>
|
<request>'WAIT EVENT %s' % name</request>
|
</stafcmd>
|
</sequence>
|
</function>
|
|
<!-- Delete event -->
|
<function name="DeleteEvent" scope="local">
|
<function-prolog>
|
Delete event.
|
</function-prolog>
|
<function-map-args>
|
<function-arg-def name="location"
|
type="optional"
|
default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="name" type="required">
|
<function-arg-description>
|
Name of event to delete
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
<message>'Delete Event %s on %s' % (name, location)</message>
|
<stafcmd name="'STAF Command: Delete Event.'">
|
<location>'%s' % location</location>
|
<service>'sem'</service>
|
<request>'DELETE EVENT %s' % name</request>
|
</stafcmd>
|
</sequence>
|
</function>
|
|
<!-- Add STAF Java Service -->
|
<function name="addSTAFJavaService" scope="local">
|
<function-prolog>
|
Add STAF Java Service.
|
</function-prolog>
|
<function-map-args>
|
<function-arg-def name="location"
|
type="optional"
|
default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="serviceName" type="required">
|
<function-arg-description>
|
Name of the service to add
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
<function-arg-def name="serviceJar" type="required">
|
<function-arg-description>
|
Jar of the service to add
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
<function-arg-def name="JVM" type="optional" default="True">
|
<function-arg-description>
|
JVM path
|
</function-arg-description>
|
<function-arg-property name="type" value="enum"/>
|
</function-arg-def>
|
<function-arg-def name="J2" type="optional">
|
<function-arg-description>
|
JVM options
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
|
<message>
|
'Check if STAF Java Service %s is already started on %s' \
|
% (serviceName, location)
|
</message>
|
<stafcmd name="'STAF Command: Check STAF Java Service.'">
|
<location>'%s' % location</location>
|
<service>'service'</service>
|
<request>'query service %s' % serviceName</request>
|
</stafcmd>
|
<if expr="RC == 48">
|
<sequence>
|
<script>
|
cmdOptions = 'ADD SERVICE %s LIBRARY JSTAF' % serviceName
|
cmdOptions += ' EXECUTE %s' % serviceJar
|
|
if JVM:
|
cmdOptions += ' OPTION JVMNAME=%sJVM-%s' % (serviceName,location)
|
|
if location == STAXServiceMachine:
|
cmdOptions += ' OPTION JVM=%s/bin/java' % LOCAL_JAVA_HOME
|
else:
|
cmdOptions += ' OPTION JVM=%s/bin/java' % JAVA_HOME
|
|
if J2:
|
cmdOptions += ' OPTION J2="%s"' % J2
|
</script>
|
|
<message>
|
'Add STAF Java Service %s on %s' % (serviceName, location)
|
</message>
|
<message>'service %s' % cmdOptions</message>
|
<stafcmd name="'STAF Command: Add STAF Java Service.'">
|
<location>'%s' % location</location>
|
<service>'service'</service>
|
<request>'%s' % cmdOptions</request>
|
</stafcmd>
|
</sequence>
|
<else>
|
<message>
|
'STAF Java Service %s is already started on %s' \
|
% (serviceName, location)
|
</message>
|
</else>
|
</if>
|
</sequence>
|
</function>
|
|
<!-- Remove STAF Java Service -->
|
<function name="removeSTAFJavaService" scope="local">
|
<function-prolog>
|
Remove STAF Java Service.
|
</function-prolog>
|
<function-map-args>
|
<function-arg-def name="location"
|
type="optional"
|
default="STAXServiceMachine">
|
<function-arg-description>
|
Location of target host
|
</function-arg-description>
|
<function-arg-property name="type" value="hostname"/>
|
</function-arg-def>
|
<function-arg-def name="serviceName" type="required">
|
<function-arg-description>
|
Name of the service to add
|
</function-arg-description>
|
<function-arg-property name="type" value="string"/>
|
</function-arg-def>
|
</function-map-args>
|
|
<sequence>
|
<script>
|
cmdOptions = 'REMOVE SERVICE %s ' % serviceName
|
</script>
|
|
<message>
|
'Remove STAF Java Service %s on %s' % (serviceName, location)
|
</message>
|
<stafcmd name="'STAF Command: Remove STAF Java Service.'">
|
<location>'%s' % location</location>
|
<service>'service'</service>
|
<request>'%s' % cmdOptions</request>
|
</stafcmd>
|
</sequence>
|
</function>
|
</stax>
|