DPM SRMv2 Status
Overview
This page describes status of the DPM's 1.4.5 and 1.5.7 SRMv2 interfaces. Tests were performed by the s2 test client. Please visit s2 homepage at http://s-2.sourceforge.net. README files in s2 'testing/srm2/*' directories and coments within '*.s2' give more information describing the tests.
Basic tests
This section shows a commented output (srm2_basic.log) of running
make test
in the s2 'testing/scripts/srm2/basic' directory.
DPM 1.4.5
srmAbortFiles: KO: SRM_NOT_SUPPORTED srmAbortRequest: OK: SRM_FAILURE srmChangeFileStorageType: KO: SRM_NOT_SUPPORTED srmCheckPermission: KO: SRM_SUCCESS^1 srmCompactSpace: KO: SRM_NOT_SUPPORTED srmCopy: KO: SRM_REQUEST_QUEUED^2 srmExtendFileLifeTime: OK: SRM_SUCCESS srmGetRequestID: OK: SRM_SUCCESS srmGetRequestSummary: OK: SRM_SUCCESS srmGetSpaceMetadata: OK: SRM_SUCCESS srmGetSpaceToken: OK: SRM_SUCCESS srmLs: KO: SRM_NOT_SUPPORTED srmMkdir: OK: SRM_SUCCESS srmMv: OK: SRM_SUCCESS srmPrepareToGet: OK: SRM_REQUEST_QUEUED srmPrepareToPut: OK: SRM_REQUEST_QUEUED srmPutDone: OK: SRM_SUCCESS srmReassignToUser: KO: SRM_NOT_SUPPORTED srmReleaseFiles: OK: SRM_SUCCESS srmReleaseSpace: OK: SRM_SUCCESS srmRemoveFiles: KO: SRM_NOT_SUPPORTED srmReserveSpace: OK: SRM_SUCCESS srmResumeRequest: KO: srmRmdir: OK: SRM_SUCCESS srmRm: OK: SRM_SUCCESS srmSetPermission: KO: SRM_INVALID_REQUEST^3 srmStatusOfCopyRequest: OK: SRM_DONE srmStatusOfGetRequest: OK: SRM_DONE srmStatusOfPutRequest: OK: SRM_DONE^3 srmSuspendRequest: KO: SRM_NOT_SUPPORTED srmUpdateSpace: OK: SRM_SUCCESS
Legend: ======= ^1 however, no permissions are returned in the response => SRM_NOT_SUPPORTED ^2 files are not actually copied (srmStatusOfGetRequest returns SRM_INVALID_PATH) => SRM_NOT_SUPPORTED ^3 "certain" requests can crash SRMv2 => DoS
Note SRM_SUCCESS/SRM_REQUEST_QUEUED/SRM_DONE doesn't necessarily imply that a given function works as tests were very basic, and more thorough testing is necessary. Some methods methods have a database race condition. Author has been notified, said he understood the problem and fix was on the way.
DPM 1.5.7
srmAbortFiles: OK: SRM_SUCCESS srmAbortRequest: OK: SRM_SUCCESS srmChangeFileStorageType: KO: SRM_NOT_SUPPORTED srmCheckPermission: OK: SRM_SUCCESS srmCompactSpace: KO: SRM_NOT_SUPPORTED srmCopy: KO: SRM_REQUEST_QUEUED request type mismatch srmExtendFileLifeTime: OK: SRM_SUCCESS srmGetRequestID: OK: SRM_SUCCESS srmGetRequestSummary: OK: SRM_SUCCESS srmGetSpaceMetadata: OK: SRM_SUCCESS srmGetSpaceToken: OK: SRM_SUCCESS srmLs: KO: SRM_NOT_SUPPORTED filtering by fileStorageType is not supported srmMkdir: OK: SRM_SUCCESS srmMv: OK: SRM_SUCCESS srmPrepareToGet: OK: SRM_REQUEST_QUEUED srmPrepareToPut: OK: SRM_REQUEST_QUEUED srmPutDone: OK: SRM_SUCCESS srmReassignToUser: KO: SRM_NOT_SUPPORTED srmReleaseFiles: KO: SRM_INVALID_REQUEST Unknown request token^1 srmReleaseSpace: OK: SRM_SUCCESS srmRemoveFiles: KO: SRM_NOT_SUPPORTED srmReserveSpace: OK: SRM_SUCCESS srmResumeRequest: KO: srmRmdir: OK: SRM_SUCCESS srmRm: OK: SRM_SUCCESS ; removed file couldn't be retrieved srmSetPermission: KO: SRM_INVALID_REQUEST srmStatusOfCopyRequest: KO: SRM_INVALID_REQUEST request type mismatch srmStatusOfGetRequest: OK: SRM_DONE srmStatusOfPutRequest: OK: SRM_DONE srmSuspendRequest: KO: SRM_NOT_SUPPORTED srmUpdateSpace: OK: SRM_SUCCESS
Legend: ======= ^1 note that the race condition hasn't been quite fixed yet, however, it doesn't seem to occur as often as in 1.4.5
Higher-level tests
This section has some comments on running running some higher-level SRMv2 tests by
make test
in the s2 'testing/scripts/srm2/usecase' directory. For more information, please run the tests and/or read the <TEST>.s2 scripts. Note that the results were exactly the same for DPM 1.4.5 and 1.5.7.
<TEST> | Description | SRMv2 functions used | Result |
---|---|---|---|
Pin01 |
1) put a file on the server; 2) use srmExtendFileLifeTime to try to extend the pin time for the file; 3) use srmReleaseFiles to remove one file; 4) try to extend the pins again (this should result in failure). |
srmPrepareToPut srmStatusOfPutRequest srmPutDone srmExtendFileLifeTime srmReleaseFiles |
OK, but could extend lifetime of a file which has already been released! |
PutGet01 |
transfer of a file to/from SRM server |
srmPrepareToGet srmPrepareToPut srmPutDone srmStatusOfGetRequest srmStatusOfPutRequest |
OK |
PutGet02 |
transfer of two files in one go to/from SRM server |
srmPrepareToGet srmPrepareToPut srmPutDone srmStatusOfGetRequest srmStatusOfPutRequest |
OK |
Rmdir01 |
1) create a new directory; 2) put a file into the newly created directory; 3) try to remove the entire directory non-recursively (should fail); 4) try to fetch the file (should succeed); 5) try to remove the entire directory recursively (should succeed); 6) try to fetch the file (should fail); |
srmMkdir srmRmdir srmPrepareToGet srmPrepareToPut srmPutDone srmStatusOfGetRequest srmStatusOfPutRequest |
OK, but recursive removal of a directory is not supported |
Space01 |
1) call srmReserveSpace with a unique space token tag and defined size; 2) use srmGetSpaceToken to get the space token from the tag; 3) call srmGetSpaceMetadata to make sure the right amount of space was allocated 4) call srmUpdateSpace increasing the lifetime and size; 5) call srmGetSpaceMetadata again to check the update worked |
srmReserveSpace srmGetSpaceToken srmGetSpaceMetaData srmUpdateSpace |
OK |