SRM-UTIL

SRM-Client Tools

User�s Guide

 

Feb. 13, 2009

 

Alex Sim, Vijaya Natarajan, Junmin Gu, Arie Shoshani
Lawrence Berkeley National Laboratory

http://datagrid.lbl.gov/bestman
[email protected]


Table of contents

 

Copyright Notice. 3

1������ Introduction. 4

2������ Requirements. 4

3������ Installation. 4

4������ Configuration, configuration options, configuration file and notes. 4

5������ SRM-UTIL.. 4

5.1������� Usage. 4

5.2������� Options. 4

5.3������� Notes. 6

5.4������� Input file format. 6

5.5������� Examples. 7

5.5.1�������� Ping an SRM server. 7

5.5.2�������� Retrieve a list of supported file transfer protocols. 7

5.5.3�������� Retrieve permission information on a file. 7

5.5.4�������� Set permission information on a file. 7

5.5.5�������� Check permission information on a file. 8

6������ Exit codes. 8

7������ Troubleshooting. 9

8������ See Also. 9

 


Copyright Notice

 

BeStMan Copyright (c) 2007,2008,2009, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy).� All rights reserved.

 

If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Technology Transfer Department at [email protected] and [email protected].

 

NOTICE.� This software was developed under partial funding from the U.S. Department of Energy.� As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, prepare derivative works, and perform publicly and display publicly.� Beginning five (5) years after the date permission to assert copyright is obtained from the U.S. Department of Energy, and subject to any subsequent five (5) year renewals, the U.S. Government is granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, prepare derivative works, distribute copies to the public, perform publicly and display publicly, and to permit others to do so.

 

For the end user license agreement file for BeStMan for non-commercial research use, go to http://datagrid.lbl.gov/bestman/license-nc.html.

For the end user license agreement file for BeStMan for commercial research use, go to http://datagrid.lbl.gov/bestman/license-c.html.


1         Introduction

SRM client tools are full implementations of SRM v2.2 as generic SRM v2.2 clients, developed by Lawrence Berkeley National Laboratory. They have been tested for all current SRM v2.2 implementations such as BeStMan, CASTOR, dCache, DPM, SRM/iRODS-SRB and StoRM. They are continuously being tested for compatibility and interoperability.

It�s a java implementation that would run on any OS platforms, and currently supports gsiftp, http, https and ftp as its file transfer protocols.

It requires the minimal administrative efforts on the deployment and maintenance.

SRM v2.2 specification can be found on http://sdm.lbl.gov/srm-wg/doc/SRM.v2.2.html.
SRM client downloads and instructions can be found on http://datagrid.lbl.gov/bestman.

2         Requirements

         SUN Java 1.5.0_12 or IBM Java 1.5 or higher versions such as 1.6.0_07.

         Valid user grid proxy

3         Installation

         Refer to SRM Client User�s Guide.

4         Configuration, configuration options, configuration file and notes

         Refer to SRM Client User�s Guide.

5         SRM-UTIL

srm-util requests to manage permissions or to retrieve supported transfer protocols.

5.1       Usage

         srm-util� <source_url>� [command line options]

         srm-util� -f <input_file> [command line options]

5.2       Options

         Command line options take priority from the options from conf file.

         Options in the following table are in alphabetical order

-authid <string>

         Authorization� ID to be used in SRM for the request

-checkpermission

         Specifies to check the permission info

-conf <path>

         Path to the configuration file.

         Command line options will override the options from conf file

-connectiontimeout <int>

         Specifies time in seconds to wait for soap or gsi connection before timing out.

         Default=1800

-debug

         Specifies debugging output

         Default=false

-delegation <true|false>

         Force proxy delegation.

         When not provided, srm client makes no delegation by default, and automatically handles proxy delegation based on the source URLs.

         When -delegation is provided, it overrides the automatic handling and forces the user choice.

-f <path>

         Path to the xml input file containing the source url information for requests with more than one file

         Refer to the format and an example in 6.3

-getpermission

         Specifies to retrieve the permission info

-grouppermissions <group:mode>

         Specifies group permission mode

         Mode is specified by none|x|w|wx|r|rx|rw|rwx

         Comma separated list

         E.g. group1:rw,group2:r,group3:r

-help

         Show the help message

-log <path>

         Specifies path to log file

         Default=./srmclient-event-date-random.log

-otherpermission <none|x|w|wx|r|rx|rw|rwx>

         Specifies other permission mode

-ownerpermission <none|x|w|wx|r|rx|rw|rwx>

         Specifies owner permission mode

-permissiontype <add|remove|change>

         Specifies permission type to request

-ping

         Retrieves ping info

-proxyfile <path>

         Path to user grid proxy

-quiet

         Suppress output in the console.

         This option writes the output to the log file.

-s <source_url>

         Source URL

-serviceurl <ws_endpoint>

         Full web service endpoint

         Required when source url or target url does not contain web service endpoint information

-setpermission

         Specifies to set the permissions on SURLs

         Used with -permissiontype and -ownerpermission,
-userpermissions, -grouppermissions or -otherpermission

-statusmaxtime <int>

         Max time before status checks get timed out, in seconds

         Default=600

-statuswaittime <int>

         Wait time delay between status check, in seconds

         Default=30

-storageinfo

         extra storage access information

         Default=false

         For BeStMan supporting MSS, a formatted input separated by comma is used with following keywords when necessary:
for:<source|target|sourcetarget>,login:<string>,passwd:<string>,
projectid:<string>,readpasswd:<string>,writepasswd<string>

-transferprotocols

         Retrieves the list of supported transfer protocols

-usercert <path>

         Path to user grid certificate

-userkey <path>

         Path to user grid certificate key

-userpermissions <user:mode>

         Specifies user permission mode

         Mode is specified by none|x|w|wx|r|rx|rw|rwx

         Comma separated list

         E.g. user1:rw,user2:r,user3:r

 

5.3       Notes

         srm client makes no proxy delegation by default, and automatically handles proxy delegation based on the source urls. A user can override the automatic handling by providing an option �-delegation� (or �-delegation true�) to force the delegation, and �-delegation false� to force no delegation. �-debug� option would show how the delegation is done on the output.

 

5.4       Input file format

<?xml version="1.0" encoding="UTF-8"?>

<request>

� <file>

��� <sourceurl>Source_URL</sourceurl>

� </file>

</request>

 

         Example 1

<?xml version="1.0" encoding="UTF-8"?>

<request>

� <file>

��� <sourceurl>srm://bestman.lbl.gov:8443/srm/v2/server?SFN=/mydir/mypath/myfile</sourceurl>

� </file>

</request>

 

5.5       Examples

5.5.1        Ping an SRM server

1.      srm-util� srm://host:port/wsept� -ping
This command pings the SRM server. Click here for the sample output.

1.1.    srm-util� srm://bestman.lbl.gov:8443/srm/v2/server� -ping

5.5.2        Retrieve a list of supported file transfer protocols

1.      srm-util� srm://host:port/wsept �-transferprotocols

This command retrieves a list of file transfer protocols that SRM supports. Click here for the sample output.

1.1.   srm-util� srm://bestman.lbl.gov:8443/srm/v2/server -transferprotocols

5.5.3       Retrieve permission information on a file

1.       srm-util� -s srm://host:port/wsept\?SFN=/source_filepath -getpermission

This command retrieves the permission information on the SURL. Click here for the sample output.

1.1.   srm-util� \
���������� -s srm://bestman.lbl.gov:8443/srm/v2/server\?SFN=/srmcache/guest/test.data� \
��������� �-getpermission

 

5.5.4       Set permission information on a file

1.       srm-util� -s srm://host:port/wsept\?SFN=/source_filepath� \
��������������� -setpermission� -permissiontype <type> \
����� ����������-userpermissions <user:mode> \
��������������� -grouppermissions <group:mode> \
��������������� -otherpermission <mode>

This command requests to set the permission information on the SURL. Click here for the sample output.

1.1.   srm-util� srm://bestman.lbl.gov:8443/srm/v2/server\?SFN=/srmcache/guest/test.data� \
�������������� -setpermission -permissiontype add \
��������������� -userpermissions �user1:rw,user2:r,user3:r�

1.2.   srm-util� srm://bestman.lbl.gov:8443/srm/v2/server\?SFN=/srmcache/guest/test.data� \
�������������� -setpermission -permissiontype add \
��������������� -grouppermissions �group1:rw,group2:r�

1.3.   srm-util� srm://bestman.lbl.gov:8443/srm/v2/server\?SFN=/srmcache/guest/test.data� \
�������������� -setpermission -permissiontype add \
��������������� -otherpermission r

1.4.   srm-util� srm://bestman.lbl.gov:8443/srm/v2/server\?SFN=/srmcache/guest/test.data� \
�������������� -setpermission -permissiontype add \
��������� ������-userpermissions �user1:rw,user2:r,user3:r� \
��������������� -grouppermissions �group1:rw,group2:r� \
��������������� -otherpermission r

1.5.   srm-util� srm://bestman.lbl.gov:8443/srm/v2/server\?SFN=/srmcache/guest/test.data� \
�������������� -setpermission -permissiontype change \
��������������� -userpermissions �user1:r� \
��������������� -grouppermissions �group1:r� \
��������������� -otherpermission none

5.5.5       Check permission information on a file

1.       srm-util� -s srm://host:port/wsept\?SFN=/source_filepath� \
��������������� -checkpermission�

This command requests to check the permission information on the SURL for the client. Click here for the sample output.

1.1.   srm-util� srm://bestman.lbl.gov:8443/srm/v2/server\?SFN=/srmcache/guest/test.data� \
�������������� -checkpermission

 

6         Exit codes

When SRM client commands exit, they have exit codes as following:

0

SRM_SUCCESS

51

SRM_FAILURE

52

SRM_AUTHENTICATION_FAILURE

53

SRM_AUTHORIZATION_FAILURE

54

SRM_INVALID_REQUEST

55

SRM_INVALID_PATH

56

SRM_FILE_LIFETIME_EXPIRED

57

SRM_SPACE_LIFETIME_EXPIRED

58

SRM_EXCEED_ALLOCATION

59

SRM_NO_USER_SPACE

60

SRM_NO_FREE_SPACE

61

SRM_DUPLICATION_ERROR

62

SRM_NON_EMPTY_DIRECTORY

63

SRM_TOO_MANY_RESULTS

64

SRM_INTERNAL_ERROR

65

SRM_FATAL_INTERNAL_ERROR

66

SRM_NOT_SUPPORTED

67

SRM_REQUEST_QUEUED

68

SRM_REQUEST_INPROGRESS

69

SRM_REQUEST_SUSPENDED

70

SRM_ABORTED

71

SRM_RELEASED

72

SRM_FILE_PINNED

73

SRM_FILE_IN_CACHE

74

SRM_SPACE_AVAILABLE

75

SRM_LOWER_SPACE_GRANTED

76

SRM_DONE

77

SRM_PARTIAL_SUCCESS

78

SRM_REQUEST_TIMED_OUT

79

SRM_LAST_COPY

80

SRM_FILE_BUSY

81

SRM_FILE_LOST

82

SRM_FILE_UNAVAILABLE

83

SRM_UNKNOWN_ERROR

90

Connection refused

91

GSI mapping not found

92

General unpredictable exception

93

Input error

94

Other error, not reached SRM yet

100

SRM returned no status, but it is a failure

 

7         Troubleshooting

         None reported

8         See Also

srm-copy