|
|  |
Brokerinfo-access Guide
1. THE COMMAND LINE INTERFACE
The glite-brokerinfo is the command line tool to "read" the BrokerInfo file.
The glite-brokerinfo command is installed on UI and WN machines. It is normally located in:
/opt/glite/bin/glite-brokerinfo
If this command is called from the shell prompt without specifying any arguments, a message is
returned:
[user@UI] # /opt/glite/bin/glite-brokerinfo
/opt/glite/bin/glite-brokerinfo: please specify a function with parameters
use /opt/glite/bin/glite-brokerinfo --help for functions and parameters list
With the
--help
option, users can get the list of the available flags, functions and arguments:
[user@UI] # glite-brokerinfo --help
Use: # glite-brokerinfo [-v] [-f filename] function [parameter] [parameter] ...
-v : for verbose, formatted output
-f : for specify a brokerinfo file
supported funtions are:
./glite-brokerinfo getDataAccessProtocol
./glite-brokerinfo getInputData
./glite-brokerinfo getCE
./glite-brokerinfo getSEs
./glite-brokerinfo getCloseSEs
./glite-brokerinfo getSEMountPoint <SE>
./glite-brokerinfo getSEFreeSpace <SE>
./glite-brokerinfo getLFN2SFN <PFN>
./glite-brokerinfo getSEProtocols <SE>
./glite-brokerinfo getSEPort <SE> <Protocol>
./glite-brokerinfo getVirtualOrganization
Therefore two possible flags (-v and -f) can be used:
-v : for a verbose, formatted output. The interface gives various information like:
the API function name and namespace, the API returned value (namespace_SUCCESS
or namespace_FAILED) and, of course, the desired output value.
There are basically two ways for parsing elements from a BrokerInfo file.
The first one is directly from the job, and therefore from the WN where the job is running.
The second one is from the UI, and therefore after job execution, after having retrieved the
BrokerInfo file.
To use the glite-brokerinfo command, the GLITE_WMS_RB_BROKERINFO must be defined (unless the
option -f is used): it should refer to the pathname of the BrokerInfo file.
If is not defined the interface will give back an error message.
It is not necessary to set this variable in the worker node, since it is
automatically defined by the "system".
2. BRIEF DESCRIPTION OF ARGUMENTS
DataAccessProtocol = {proto1, proto2, &, protop} is the list of protocols that the
application is able to speak (this is the value specified as DataAccessProtocol in
the JDL expression).
InputData is the list of physical file names specified in the InputData attribute of
the JDL expression.
Then, for each logical file name specified in the InputData attribute, the list of
all correspondent physical file names is specified: LFNs specifies the list of
LFNs specified in the InputData attribute, while PFNs is a list of list:
the first list represents the physical file names associated to the first
logical file specified in the LFNs list, the second list corresponds to the
second LFN, etc.
Then the list SEs is specified: these are Storage Elements storing files specified
in the PFNs and/or LFN2PFN lists.
For each of these storage elements, a list of supported protocols (attribute SEProtocols),
and, for each protocol, the correspondent port number (attribute SEPorts) are then provided.
CloseSEs = {SE1, SE2, &, SEn} defines the list
of Storage Elements close to the Computing Element where the job has been submitted.
Each storage element is identified by the correspondent full host name.
For each of these Storage Elements,
the mount point to that Storage Element from the Computing Element where the job has been dispatched
(if there is local access ) is specified: the first element of the list is the mount point for the
first SE specified in the CloseSEs list, the second element corresponds to
the second element of the CloseSEs list, etc.
VirtualOrganization is the list of Virtual Organization to which the user belongs.