From: <bsc...@us...> - 2012-06-19 15:08:53
|
Revision: 13584 http://unicore.svn.sourceforge.net/unicore/?rev=13584&view=rev Author: bschuller Date: 2012-06-19 15:08:41 +0000 (Tue, 19 Jun 2012) Log Message: ----------- separate srm and lfc code; add modified dcache client code Modified Paths: -------------- emi/emi-dm/trunk/pom.xml Added Paths: ----------- emi/emi-dm/trunk/lfc/ emi/emi-dm/trunk/lfc/pom.xml emi/emi-dm/trunk/lfc/src/ emi/emi-dm/trunk/lfc/src/main/ emi/emi-dm/trunk/lfc/src/main/java/ emi/emi-dm/trunk/lfc/src/main/java/eu/ emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/ emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/ emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/ emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorage.java emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorageAdapter.java emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorageAdapterFactory.java emi/emi-dm/trunk/lfc/src/test/ emi/emi-dm/trunk/lfc/src/test/java/ emi/emi-dm/trunk/srm/ emi/emi-dm/trunk/srm/pom.xml emi/emi-dm/trunk/srm/src/ emi/emi-dm/trunk/srm/src/main/ emi/emi-dm/trunk/srm/src/main/java/ emi/emi-dm/trunk/srm/src/main/java/eu/ emi/emi-dm/trunk/srm/src/main/java/eu/unicore/ emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/ emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/ emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/EMI_Copier.java emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/EMI_GridftpClient.java emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/EMI_SRMGetClientV2.java emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/EMI_SRMLogger.java emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/EMI_SRMLsClientV2.java emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/EMI_SRMPutClientV2.java emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/SRMStorage.java emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/SRMStorageAdapter.java emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/SRMStorageAdapterFactory.java emi/emi-dm/trunk/srm/src/test/ emi/emi-dm/trunk/srm/src/test/java/ emi/emi-dm/trunk/srm/src/test/java/eu/ emi/emi-dm/trunk/srm/src/test/java/eu/unicore/ emi/emi-dm/trunk/srm/src/test/java/eu/unicore/emi/ emi/emi-dm/trunk/srm/src/test/java/eu/unicore/emi/data/ emi/emi-dm/trunk/srm/src/test/java/eu/unicore/emi/data/srm/ emi/emi-dm/trunk/srm/src/test/java/eu/unicore/emi/data/srm/functional/ emi/emi-dm/trunk/srm/src/test/java/eu/unicore/emi/data/srm/functional/Test1.java emi/emi-dm/trunk/srm/src/test/resources/ emi/emi-dm/trunk/srmclient/ emi/emi-dm/trunk/srmclient/pom.xml emi/emi-dm/trunk/srmclient/src/ emi/emi-dm/trunk/srmclient/src/main/ emi/emi-dm/trunk/srmclient/src/main/java/ emi/emi-dm/trunk/srmclient/src/main/java/diskCacheV111/ emi/emi-dm/trunk/srmclient/src/main/java/diskCacheV111/srm/ emi/emi-dm/trunk/srmclient/src/main/java/diskCacheV111/srm/FileMetaData.java emi/emi-dm/trunk/srmclient/src/main/java/diskCacheV111/srm/IInformationProvider.java emi/emi-dm/trunk/srmclient/src/main/java/diskCacheV111/srm/ISRM.java emi/emi-dm/trunk/srmclient/src/main/java/diskCacheV111/srm/RequestFileStatus.java emi/emi-dm/trunk/srmclient/src/main/java/diskCacheV111/srm/RequestStatus.java emi/emi-dm/trunk/srmclient/src/main/java/diskCacheV111/srm/StorageElementInfo.java emi/emi-dm/trunk/srmclient/src/main/java/gov/ emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/ emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/ emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/ emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/Args.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/Configuration.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/Copier.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/CopyJob.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/CopyJobFileReader.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/DccpArgsConverter.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/KFTPArgsConverter.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/Option.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/OptionParser.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/Report.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMAbortFilesClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMAbortRequestClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMAdvisoryDeleteClientV1.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMBringOnlineClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMCheckPermissionClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMClient.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMCopyClientV1.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMCopyClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMDispatcher.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMExtendFileLifeTimeClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMGetClientV1.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMGetClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMGetFileMetaDataClientV1.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMGetPermissionClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMGetRequestStatusClientV1.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMGetRequestSummaryClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMGetRequestTokensClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMGetSpaceMetaDataClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMGetSpaceTokensClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMLsClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMMkDirClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMMvClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMPingClientV1.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMPingClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMPutClientV1.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMPutClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMReleaseFilesClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMReleaseSpaceClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMReserveSpaceClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMRmClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMRmdirClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMSetPermissionClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMSimpleCopyClient.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMStageClientV1.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMV1CopyJob.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SRMV2CopyJob.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/ShellCommandExecuter.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/SimpleCopyJob.java emi/emi-dm/trunk/srmclient/src/main/java/gov/fnal/srm/util/Version.java emi/emi-dm/trunk/srmclient/src/main/java/org/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/AbstractStorageElement.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/AdvisoryDeleteCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/BadSRMObjectException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/CopyCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/FileMetaData.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/Logger.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/PinCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/PrepareToPutCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/PrepareToPutInSpaceCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/ReleaseSpaceCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/RemoveFileCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/ReserveSpaceCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMAbortedException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMAuthorization.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMAuthorizationException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMDuplicationException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMFileRequestNotFoundException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMInternalErrorException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMInvalidPathException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMInvalidRequestException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMNoFreeSpaceException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMProtocol.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMReleasedException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMTooManyResultsException.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMUser.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SRMUserPersistenceManager.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SrmCancelUseOfSpaceCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SrmReleaseSpaceCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SrmReserveSpaceCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/SrmUseSpaceCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/UnpinCallbacks.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/ConvertUtil.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/PromiscuousHostAuthorization.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/RemoteTurlGetterV1.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/RemoteTurlGetterV2.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/RemoteTurlPutterV1.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/RemoteTurlPutterV2.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/RequestFailedEvent.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/SRMClientV1.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/SRMClientV2.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/TURLsArrivedEvent.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/TURLsGetFailedEvent.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/Transport.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/TransportUtil.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/TurlGetterPutter.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/TurlGetterPutterV1.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/axis/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/axis/FileMetaData.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/axis/ISRM.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/axis/ISRMImpl.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/axis/ISRMStub.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/axis/ISRM_PortType.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/axis/RequestFileStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/axis/RequestStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/axis/SRMServerV1.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/client/axis/SRMServerV1Locator.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/request/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/request/AccessLatency.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/request/FileStorageType.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/request/HashtableRequestCredentialStorage.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/request/OverwriteMode.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/request/RequestCredential.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/request/RequestCredentialStorage.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/request/RequestsPropertyStorage.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/request/RetentionPolicy.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/request/StatusCode.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/security/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/security/DelegationTestClient.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/security/DelegationTestEndServer.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/security/DelegationTestMiddleServer.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/security/SslGsiSocketFactory.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/unixfs/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/unixfs/KAuthFile.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/unixfs/Storage.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/unixfs/UnixfsAuthorization.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/unixfs/UnixfsFileMetaData.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/unixfs/UnixfsUser.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/unixfs/UserAuthBase.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/unixfs/UserAuthRecord.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/unixfs/UserPwdRecord.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/Adler32.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/ArgParser.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/Configuration.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/Constants.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/GridftpClient.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/GridftpList.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/OneToManyMap.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/OptionMap.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/Permissions.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/Pgpass.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/RequestStatusTool.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/SURL.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/ShellCommandExecuter.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/SrmUrl.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/Tools.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/events/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/events/ExistingKeyValueMapAdded.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/events/KeyMapNonLastValueRemoved.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/events/KeyValueMapRemoved.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/events/NewKeyValueMapAdded.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/events/OneToManyMapChangeListener.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/events/OneToManyMapChangeListenerProxy.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/events/OneToManyMapChangeSupport.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/util/events/OneToManyMapEvent.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfAnyURI.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfString.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTBringOnlineRequestFileStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTCopyFileRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTCopyRequestFileStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTExtraInfo.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTGetFileRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTGetRequestFileStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTGroupPermission.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTMetaDataPathDetail.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTMetaDataSpace.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTPermissionReturn.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTPutFileRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTPutRequestFileStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTRequestSummary.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTRequestTokenReturn.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTSURLLifetimeReturnStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTSURLPermissionReturn.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTSURLReturnStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTSupportedTransferProtocol.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfTUserPermission.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ArrayOfUnsignedLong.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/ISRM.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SRMService.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SRMServiceLocator.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmAbortFilesRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmAbortFilesResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmAbortRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmAbortRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmBringOnlineRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmBringOnlineResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmChangeSpaceForFilesRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmChangeSpaceForFilesResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmCheckPermissionRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmCheckPermissionResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmCopyRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmCopyResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmExtendFileLifeTimeInSpaceRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmExtendFileLifeTimeInSpaceResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmExtendFileLifeTimeRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmExtendFileLifeTimeResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetPermissionRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetPermissionResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetRequestSummaryRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetRequestSummaryResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetRequestTokensRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetRequestTokensResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetSpaceMetaDataRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetSpaceMetaDataResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetSpaceTokensRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetSpaceTokensResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetTransferProtocolsRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmGetTransferProtocolsResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmLsRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmLsResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmMkdirRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmMkdirResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmMvRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmMvResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmPingRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmPingResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmPrepareToGetRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmPrepareToGetResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmPrepareToPutRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmPrepareToPutResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmPurgeFromSpaceRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmPurgeFromSpaceResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmPutDoneRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmPutDoneResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmReleaseFilesRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmReleaseFilesResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmReleaseSpaceRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmReleaseSpaceResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmReserveSpaceRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmReserveSpaceResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmResumeRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmResumeRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmRmRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmRmResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmRmdirRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmRmdirResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmSetPermissionRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmSetPermissionResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmSoapBindingImpl.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmSoapBindingStub.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfBringOnlineRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfBringOnlineRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfChangeSpaceForFilesRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfChangeSpaceForFilesRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfCopyRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfCopyRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfGetRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfGetRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfLsRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfLsRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfPutRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfPutRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfReserveSpaceRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfReserveSpaceRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfUpdateSpaceRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmStatusOfUpdateSpaceRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmSuspendRequestRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmSuspendRequestResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmUpdateSpaceRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/SrmUpdateSpaceResponse.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TAccessLatency.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TAccessPattern.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TBringOnlineRequestFileStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TConnectionType.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TCopyFileRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TCopyRequestFileStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TDirOption.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TExtraInfo.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TFileLocality.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TFileStorageType.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TFileType.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TGetFileRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TGetRequestFileStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TGroupPermission.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TMetaDataPathDetail.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TMetaDataSpace.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TOverwriteMode.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TPermissionMode.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TPermissionReturn.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TPermissionType.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TPutFileRequest.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TPutRequestFileStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TRequestSummary.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TRequestTokenReturn.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TRequestType.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TRetentionPolicy.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TRetentionPolicyInfo.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TReturnStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TSURLLifetimeReturnStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TSURLPermissionReturn.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TSURLReturnStatus.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TStatusCode.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TSupportedTransferProtocol.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TTransferParameters.java emi/emi-dm/trunk/srmclient/src/main/java/org/dcache/srm/v2_2/TUserPermission.java emi/emi-dm/trunk/srmclient/src/test/ Added: emi/emi-dm/trunk/lfc/pom.xml =================================================================== --- emi/emi-dm/trunk/lfc/pom.xml (rev 0) +++ emi/emi-dm/trunk/lfc/pom.xml 2012-06-19 15:08:41 UTC (rev 13584) @@ -0,0 +1,75 @@ +<?xml version="1.0"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>eu.emi.data</groupId> + <artifactId>unicore-emi-lfc</artifactId> + <packaging>jar</packaging> + <version>0.1-SNAPSHOT</version> + <name>UNICORE LFC Access</name> + <url>http://www.unicore.eu</url> + <inceptionYear>2011</inceptionYear> + <organization> + <name>EMI</name> + <url>http://www.eu-emi.eu</url> + </organization> + + <parent> + <groupId>eu.unicore</groupId> + <artifactId>unicore-parent-endorsed</artifactId> + <version>1.9</version> + </parent> + + <repositories> + <repository> + <id>unicore.eu</id> + <name>UNICORE repository</name> + <url>http://unicore-dev.zam.kfa-juelich.de/maven</url> + </repository> + <repository> + <id>maatg-fr-snapshots</id> + <name>maatG France Snapshots</name> + <url>http://nexus.maatg.fr/content/repositories/maatg-fr-snapshots</url> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + <repository> + <id>maatg-fr-releases</id> + <name>maatG France Releases</name> + <url>http://nexus.maatg.fr/content/repositories/maatg-fr-releases</url> + </repository> + <repository> + <id>pandora-snapshots</id> + <name>Pandora Snapshots</name> + <url>http://nexus.maatg.fr/content/repositories/pandora-snapshots</url> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + <repository> + <id>pandora-releases</id> + <name>Pandora Releases</name> + <url>http://nexus.maatg.fr/content/repositories/pandora-releases</url> + </repository> + </repositories> + + <dependencies> + <dependency> + <groupId>eu.unicore</groupId> + <artifactId>uas-core</artifactId> + <version>1.5.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>fr.maatg</groupId> + <artifactId>glite.dm</artifactId> + <version>0.3</version> + </dependency> + <dependency> + <groupId>eu.emi.data</groupId> + <artifactId>unicore-emi-srm</artifactId> + <version>0.1-SNAPSHOT</version> + </dependency> + </dependencies> + +</project> Added: emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorage.java =================================================================== --- emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorage.java (rev 0) +++ emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorage.java 2012-06-19 15:08:41 UTC (rev 13584) @@ -0,0 +1,78 @@ +package eu.unicore.emi.data; + +import org.apache.log4j.Logger; + +import de.fzj.unicore.uas.UAS; +import de.fzj.unicore.uas.impl.sms.SMSBaseImpl; +import de.fzj.unicore.uas.xnjs.StorageAdapterFactory; +import de.fzj.unicore.xnjs.io.IStorageAdapter; + +public class LFCStorage extends SMSBaseImpl { + + String vo = "ghep"; + Logger logger = Logger.getLogger(LFCStorage.class); + + @Override + protected String getStorageRoot() { + + // TODO: is this useful? ... + String voName = null; + if (0 < getClient().getVos().length) voName = getClient().getVos()[0]; + else voName = "ghep"; //just for testing + if (null != voName) return "/grid/" + voName + "/"; + else return "/grid/"; + // ... instead of this: ? +// return "/"; + // is this vo stuff necessary at all? + } + + @Override + public IStorageAdapter getStorageAdapter() { + + String lfcHost = null; + int lfcPort = 5010; //lfc standard port + + lfcHost = System.getProperty("sms.lfc.host"); + if (null == lfcHost) lfcHost = UAS.getProperty("sms.lfc.host"); + + logger.debug("~~~~~ " + lfcHost + " = System.getProperty(\"sms.lfc.host\");"); + logger.debug("~~~~~ " + lfcHost + " = UAS.getProperty(\"sms.lfc.host\");"); + + try { + lfcPort = Integer.parseInt(System.getProperty("sms.lfc.port")); + } catch (NumberFormatException e) { + try { + lfcPort = Integer.parseInt(UAS.getProperty("sms.lfc.port")); + } catch (NumberFormatException e1) {} + } + + if (null != lfcHost) { + return new LFCStorageAdapter(getClient(), lfcHost, lfcPort, vo); + } + + return null; + } + + @Override + protected StorageAdapterFactory getStorageAdapterFactory() { + + String lfcHost = null; + int lfcPort = 5010; //lfc standard port + + lfcHost = System.getProperty("sms.lfc.host"); + if (null == lfcHost) lfcHost = UAS.getProperty("sms.lfc.host"); + + try { + lfcPort = Integer.parseInt(System.getProperty("sms.lfc.port")); + } catch (NumberFormatException e) { + try { + lfcPort = Integer.parseInt(UAS.getProperty("sms.lfc.port")); + } catch (NumberFormatException e1) {} + } + + if (null != lfcHost) + return new LFCStorageAdapterFactory(lfcHost, lfcPort, vo); + + return null; + } +} Added: emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorageAdapter.java =================================================================== --- emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorageAdapter.java (rev 0) +++ emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorageAdapter.java 2012-06-19 15:08:41 UTC (rev 13584) @@ -0,0 +1,428 @@ +package eu.unicore.emi.data; + +import de.fzj.unicore.xnjs.ems.ExecutionException; +import de.fzj.unicore.xnjs.io.FileFilter; +import de.fzj.unicore.xnjs.io.IStorageAdapter; +import de.fzj.unicore.xnjs.io.Permissions; +import de.fzj.unicore.xnjs.io.XnjsFile; +import de.fzj.unicore.xnjs.io.XnjsFileImpl; +import de.fzj.unicore.xnjs.io.XnjsStorageInfo; +//import de.fzj.unicore.uas.security.ProxyCertificate; +//import de.fzj.unicore.uas.impl.sms.SMSBaseImpl; +//import de.fzj.unicore.uas.util.LogUtil; +import eu.unicore.security.Client; +//import eu.unicore.security.SecurityTokens; + +import fr.maatg.glite.dm.CNSConnector; +import fr.maatg.glite.dm.connection.ReceiveException; +import fr.maatg.glite.dm.ns.*; +//import fr.maatg.glite.dm.ns.emuns.CNSChecksumType; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.IOException; +import java.util.Calendar; +import java.util.Collection; +import java.util.Iterator; + +import org.apache.log4j.Logger; +import org.globus.gsi.GlobusCredential; +import org.globus.gsi.GlobusCredentialException; +import org.globus.gsi.gssapi.GlobusGSSCredentialImpl; +import org.gridforum.jgss.ExtendedGSSCredential; +//import org.gridforum.jgss.ExtendedGSSManager; +//import org.ietf.jgss.GSSName; +//import sun.security.jgss.GSSManagerImpl; +//import sun.security.jgss.GSSNameImpl; +import org.ietf.jgss.GSSException; + +public class LFCStorageAdapter implements IStorageAdapter { + + private final Client client; + private CNSConnector lfcConnector = null; + private CNSConnection lfcConnection = null; + private ExtendedGSSCredential credential = null; + private final String vo; + private final int lfcPort; + private final String lfcHost; + private static Logger logger = Logger.getLogger(LFCStorageAdapter.class); + + /** + * create a new storage adapter + * + * @param client - the {@link Client} object containing the current request's security info + */ + public LFCStorageAdapter(Client client, String lfcHost, int lfcPort, String vo) { + + this.client = client; + this.lfcHost = lfcHost; + this.lfcPort = lfcPort; + this.vo = vo; + } + + public void sessionStart(String lfcHost, int lfcPort, String vo) throws ExecutionException { + + String proxy = (String) client.getExtraAttributes().get("Proxy"); + byte[] ba = null; + + if (proxy == null) { + + /* only for testing */ + FileInputStream fis = null; + ba = new byte[(int) new File("/tmp/x509up_u1000").length()]; + try { + fis = new FileInputStream("/tmp/x509up_u1000"); + fis.read(ba); + if (fis != null) fis.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } catch (IOException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + finally { + try { + if (fis != null) fis.close(); + } catch (IOException e) {} + } + + if (new String(ba).length() <= 0) throw new ExecutionException("No proxy cert available! Can't execute LFC"); + } + + try { + if (proxy != null) credential = new GlobusGSSCredentialImpl(new GlobusCredential(new ByteArrayInputStream(proxy.getBytes())), ExtendedGSSCredential.INITIATE_AND_ACCEPT); + else if (ba != null) credential = new GlobusGSSCredentialImpl(new GlobusCredential(new ByteArrayInputStream(ba)), ExtendedGSSCredential.INITIATE_AND_ACCEPT); + else throw new ExecutionException("no credential available"); + } + catch (GSSException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } catch (GlobusCredentialException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + + try { + + lfcConnector = CNSConnector.getInstance(lfcHost, lfcPort, vo, credential); + lfcConnection = lfcConnector.getNewConnection(); + } + catch (ReceiveException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + catch (IOException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + + logger.debug("name : " + client.getUserName()); + logger.debug("email: " + client.getUserEmail()); + logger.debug("distinguished name: " + client.getDistinguishedName()); + String[] vos = client.getVos(); + logger.debug("vos : " + vos.length); + + int i; + for (i = 0; i < vos.length; i++) + logger.debug(" " + (i + 1) + ": " + vos[i]); + } + + public void sessionEnd() { + + try {lfcConnection.close();} + catch (IOException e) {e.printStackTrace();} + + try {credential.dispose();} + catch (GSSException e) {e.printStackTrace();} + } + + + @Override + public XnjsFile[] ls(String base, int offset, int limit, boolean filter) + throws ExecutionException { + + logger.debug("offset: " + offset + ", limit: " + limit + ", filter: " + filter); + return ls(base); + } + + @Override + public XnjsFile[] ls(String lfn) throws ExecutionException { + + sessionStart(lfcHost, lfcPort, vo); + Collection<CNSFileReaddir> coll = null; + + try { + + // TODO: followSymbolicLink is not implemented in list yet + coll = lfcConnector.list(lfn, false); + } + catch (IOException e) {e.printStackTrace();} + catch (ReceiveException e) {e.printStackTrace();} + finally { + sessionEnd(); + } + + XnjsFile[] xnjsFiles = new XnjsFileImpl[coll.size()]; + Iterator<CNSFileReaddir> it = coll.iterator(); + int i = 0; + + while (it.hasNext()) { + + CNSFileReaddir cnsFile = it.next(); + XnjsFileImpl xFile = new XnjsFileImpl(); + xFile.setPath(cnsFile.getPath()); + xFile.setSize(cnsFile.getFileSize()); + xFile.setDirectory(cnsFile.isDirectory()); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(cnsFile.lastAccessTime()); + xFile.setLastModified(cal); + + + Permissions permissions = new Permissions(); + short mode = cnsFile.getFileMode(); + + /* TODO + * Hier müssen wir uns eine sinnvolle Behandlung ausdenken, + * lfc/srm/gridftp erlauben unix-like ugo/rwx Rechte, UNICORE kennt nur rwx. + * Selbes Problem bei chmod() + * Lösung: herausfinden, ob der User u/g/o ist + * + if (user == owner) { + if (0 < (mode & 0X000000100)) permissions.setReadable(true); + else permissions.setReadable(false); + if (0 < (mode & 0X000000080)) permissions.setWritable(true); + else permissions.setWritable(false); + if (0 < (mode & 0X000000040)) permissions.setExecutable(true); + else permissions.setExecutable(false); + } + else if (user == group) { + if (0 < (mode & 0X000000020)) permissions.setReadable(true); + else permissions.setReadable(false); + if (0 < (mode & 0X000000010)) permissions.setWritable(true); + else permissions.setWritable(false); + if (0 < (mode & 0X000000008)) permissions.setExecutable(true); + else permissions.setExecutable(false); + } + else { */ + if (0 < (mode & 0X000000004)) permissions.setReadable(true); + else permissions.setReadable(false); + if (0 < (mode & 0X000000002)) permissions.setWritable(true); + else permissions.setWritable(false); + if (0 < (mode & 0X000000001)) permissions.setExecutable(true); + else permissions.setExecutable(false); + //} + xFile.setPermissions(permissions); + + xnjsFiles[i++] = xFile; + } + + return xnjsFiles; + } + + @Override + public void mkdir(String lfn) throws ExecutionException { + + sessionStart(lfcHost, lfcPort, vo); + + try { + + lfcConnector.mkdir(lfn, 0775); + } + catch (IOException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + catch (ReceiveException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + + sessionEnd(); + } + + @Override + public void rename(String source, String target) throws ExecutionException { + + sessionStart(lfcHost, lfcPort, vo); + + try { + + lfcConnector.rename(source, target); + } + catch (IOException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + catch (ReceiveException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + + sessionEnd(); + } + + @Override + public void rmdir(String lfn) throws ExecutionException { + + sessionStart(lfcHost, lfcPort, vo); + + try { + + lfcConnector.deleteDir(lfn); + } + catch (IOException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + catch (ReceiveException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + + sessionEnd(); + } + + @Override + public void rm(String lfn) throws ExecutionException { + + sessionStart(lfcHost, lfcPort, vo); + String[] lfns = {lfn}; + + try { + + lfcConnector.deleteFilesByName(lfns, /*force*/ true); + } + catch (IOException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + catch (ReceiveException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + catch (CNSStatusesException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + + sessionEnd(); + } + + @Override + public InputStream getInputStream(String lfn) + throws ExecutionException { + + logger.debug("~~~~~ lfc get: get " + lfn); + + sessionStart(lfcHost, lfcPort, vo); + Collection<CNSReplica> coll = null; + + try { + + coll = lfcConnector.listReplicas(lfn, null); + } + catch (IOException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + catch (ReceiveException e) { + e.printStackTrace(); + throw new ExecutionException(e); + } + + Iterator<CNSReplica> it = coll.iterator(); + logger.debug("~~~~~ lfc get: cnt: " + coll.size()); + InputStream is = null; + Exception ex = null; + + while (it.hasNext()) { + + CNSReplica replica = it.next(); + logger.debug("~~~~~ lfc get: replica: " + replica.getSfn()); + + if (replica.getSfn().startsWith("srm://")) { + + logger.debug("~~~~~ lfc get: get replica: " + replica.getSfn()); + + try { + is = SRMStorageAdapter.getInputStream(client, replica.getSfn()); + } + catch (ExecutionException e) { + logger.error("~~~~~ lfc get: get replica failed", e); + is = null; + ex = e; + } + } + } + + if (null == is) { + if (null == ex) throw new ExecutionException("get lfc replica failed: no srm replica available"); + else throw new ExecutionException("get lfc replica failed: get srm file failed", ex); + } + + logger.debug("~~~~~ lfc get: done"); + return is; + } + + @Override + public void chmod(String file, Permissions perm) throws ExecutionException { + throw new ExecutionException("lfc chmod not implemented"); + } + + @Override + public void cp(String source, String target) throws ExecutionException { + throw new ExecutionException("lfc copy not implemented"); + } + + @Override + public XnjsFile[] find(String base, FileFilter options, int offset, + int limit) throws ExecutionException { + throw new ExecutionException("lfc find not implemented"); + } + + @Override + public XnjsStorageInfo getAvailableDiskSpace(String path) { + + XnjsStorageInfo info = new XnjsStorageInfo(); + info.setFreeSpace(-1); + info.setTotalSpace(-1); + info.setUsableSpace(-1); + + return info; + } + + @Override + public String getFileSeparator() throws ExecutionException { + + return "/"; + } + + @Override + public String getFileSystemIdentifier() { + + return this.lfcHost; + } + + @Override + public OutputStream getOutputStream(String resource) + throws ExecutionException { + throw new ExecutionException("lfc put not supported"); + } + + @Override + public OutputStream getOutputStream(String resource, boolean append) + throws ExecutionException { + throw new ExecutionException("lfc put not supported"); + } + + @Override + public XnjsFile getProperties(String file) throws ExecutionException { + // TODO Auto-generated method stub + return null; + } +} Added: emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorageAdapterFactory.java =================================================================== --- emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorageAdapterFactory.java (rev 0) +++ emi/emi-dm/trunk/lfc/src/main/java/eu/unicore/emi/data/LFCStorageAdapterFactory.java 2012-06-19 15:08:41 UTC (rev 13584) @@ -0,0 +1,32 @@ +package eu.unicore.emi.data; + +import java.io.IOException; + +import de.fzj.unicore.uas.impl.UASWSResourceImpl; +import de.fzj.unicore.uas.xnjs.StorageAdapterFactory; +import de.fzj.unicore.xnjs.io.IStorageAdapter; +import eu.unicore.security.Client; + +public class LFCStorageAdapterFactory implements StorageAdapterFactory { + + private static final long serialVersionUID = 1L; + private final String lfcHost; + private final int lfcPort; + private final String vo; + + public LFCStorageAdapterFactory(String lfcHost, int lfcPort, String vo) { + + super(); + this.lfcHost = lfcHost; + this.lfcPort = lfcPort; + this.vo = vo; + } + + @Override + public IStorageAdapter createStorageAdapter(UASWSResourceImpl parent) + throws IOException { + + Client client = parent.getClient(); + return new LFCStorageAdapter(client, lfcHost, lfcPort, vo); + } +} Modified: emi/emi-dm/trunk/pom.xml =================================================================== --- emi/emi-dm/trunk/pom.xml 2012-06-19 11:56:39 UTC (rev 13583) +++ emi/emi-dm/trunk/pom.xml 2012-06-19 15:08:41 UTC (rev 13584) @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>eu.emi.data</groupId> <artifactId>unicore-emi-dm</artifactId> - <packaging>jar</packaging> + <packaging>pom</packaging> <version>0.1-SNAPSHOT</version> <name>UNICORE LFC/SRM Integration</name> <url>http://www.unicore.eu</url> @@ -16,9 +16,15 @@ <parent> <groupId>eu.unicore</groupId> <artifactId>unicore-parent-endorsed</artifactId> - <version>1.3</version> + <version>1.9</version> </parent> + <modules> + <module>dcache-srmclient</module> + <module>srm</module> + <module>lfc</module> + </modules> + <repositories> <repository> <id>unicore.eu</id> @@ -53,18 +59,4 @@ </repository> </repositories> - <dependencies> - <dependency> - <groupId>eu.unicore</groupId> - <artifactId>uas-core</artifactId> - <version>1.4.0</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>fr.maatg</groupId> - <artifactId>glite.dm</artifactId> - <version>0.3</version> - </dependency> - </dependencies> - </project> Added: emi/emi-dm/trunk/srm/pom.xml =================================================================== --- emi/emi-dm/trunk/srm/pom.xml (rev 0) +++ emi/emi-dm/trunk/srm/pom.xml 2012-06-19 15:08:41 UTC (rev 13584) @@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>eu.emi.data</groupId> + <artifactId>unicore-emi-srm</artifactId> + <packaging>jar</packaging> + <version>0.1-SNAPSHOT</version> + <name>UNICORE SRM access</name> + <url>http://www.unicore.eu</url> + <inceptionYear>2011</inceptionYear> + <organization> + <name>EMI</name> + <url>http://www.eu-emi.eu</url> + </organization> + + <parent> + <groupId>eu.unicore</groupId> + <artifactId>unicore-parent-endorsed</artifactId> + <version>1.9</version> + </parent> + + <repositories> + <repository> + <id>unicore.eu</id> + <name>UNICORE repository</name> + <url>http://unicore-dev.zam.kfa-juelich.de/maven</url> + </repository> + + </repositories> + + <dependencies> + <dependency> + <groupId>eu.unicore</groupId> + <artifactId>uas-core</artifactId> + <version>1.5.0</version> + <scope>provided</scope> + </dependency> + + <dependency> + <groupId>eu.emi.data</groupId> + <artifactId>dcache-srmclient</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + + </dependencies> + +</project> Added: emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/EMI_Copier.java =================================================================== --- emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/EMI_Copier.java (rev 0) +++ emi/emi-dm/trunk/srm/src/main/java/eu/unicore/emi/data/EMI_Copier.java 2012-06-19 15:08:41 UTC (rev 13584) @@ -0,0 +1,807 @@ +package eu.unicore.emi.data; + +// $Id: Copier.java 14691 2010-10-19 09:01:49Z pmillar $ + +/* +COPYRIGHT STATUS: + Dec 1st 2001, Fermi National Accelerator Laboratory (FNAL) documents and + software are sponsored by the U.S. Department of Energy under Contract No. + DE-AC02-76CH03000. Therefore, the U.S. Government retains a world-wide + non-exclusive, royalty-free license to publish or reproduce these documents + and software for U.S. Government purposes. All documents and software + available from this server are protected under the U.S. and Foreign + Copyright Laws, and FNAL reserves all rights. + + + Distribution of the software available from this server is free of + charge subject to the user following the terms of the Fermitools + Software Legal Information. + + Redistribution and/or modification of the software shall be accompanied + by the Fermitools Software Legal Information (including the copyright + notice). + + The user is asked to feed back problems, benefits, and/or suggestions + about the software to the Fermilab Software Providers. + + + Neither the name of Fermilab, the URA, nor the names of the contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + + + DISCLAIMER OF LIABILITY (BSD): + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL FERMILAB, + OR THE URA, OR THE U.S. DEPARTMENT of ENERGY, OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + Liabilities of the Government: + + This software is provided by URA, independent from its Prime Contract + with the U.S. Department of Energy. URA is acting independently from + the Government and in its own private capacity and is not acting on + behalf of the U.S. Government, nor as its contractor nor its agent. + Correspondingly, it is understood and agreed that the U.S. Government + has no connection to this software and in no manner whatsoever shall + be liable for nor assume any responsibility or obligation for any claim, + cost, or damages arising out of or resulting from the use of the software + available from this server. + + + Export Control: + + All documents and software available from this server are subject to U.S. + export control laws. Anyone downloading information from this server is + obligated to secure any necessary Government licenses before exporting + documents or software obtained from this server. + */ + + +/* + * Copier.java + * + * Created on January 28, 2003, 1:34 PM + */ + +import java.util.HashSet; +import java.net.URL; + +import org.globus.ftp.InputStreamDataSink; +import org.globus.ftp.OutputStreamDataSource; +import org.globus.ftp.exception.ServerException; +import org.globus.util.GlobusURL; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import org.ietf.jgss.GSSCredential; +import org.dcache.srm.Logger; + +import gov.fnal.srm.util.*; + +/** + * + * @author timur + */ + +public class EMI_Copier implements Runnable { + private final HashSet<CopyJob> copy_jobs = new HashSet<CopyJob>(); + private boolean doneAddingJobs; + private boolean stop; + private Thread hook; + private String urlcopy; + private boolean debug = false; + private Configuration configuration; + private boolean completed; + private boolean completed_successfully = true; + private Exception error; + private Logger logger; + private long retry_timeout; + private int retry_num; + private int num_jobs=0; + private int num_completed_successfully =0; + private boolean dryRun; + private InputStreamDataSink dataSink; + private OutputStreamDataSource dataSource; + /* + * changed: raised to class variable + */ + private EMI_GridftpClient client; + + public final void say(String msg) { + if(logger != null) { + logger.log(msg.toString()); + } + } + + public final void dsay(String msg) { + if(logger != null) { + logger.log(msg.toString()); + } + } + + //error say + public final void esay(String err) { + if(logger != null) { + logger.elog(err.toString()); + } + } + public final void esay(Throwable t) { + if(logger != null) { + logger.elog(t.toString()); + } + } + + private class EMI_SRMLogger implements org.dcache.srm.Logger { + + private org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(EMI_Copier.class); + + @Override + public void elog(String arg0) { + logger.error(arg0); + } + + @Override + public void elog(Throwable arg0) { + logger.error("", arg0); + } + + public void elog(String msg, Throwable arg0) { + logger.error(msg, arg0); + } + + @Override + public void log(String arg0) { + logger.info(arg0); + } + } + + /* + * changed: dataSink to constructor + */ + public EMI_Copier(String urlcopy,Configuration configuration, InputStreamDataSink dataSink) { + this(urlcopy, configuration, dataSink, null); + } + + /* + * added 2nd constructor + */ + public EMI_Copier(String urlcopy,Configuration configuration, OutputStreamDataSource dataSource) { + this(urlcopy, configuration, null, dataSource); + } + + /* + * added 3rd constructor + */ + private EMI_Copier(String urlcopy,Configuration configuration, InputStreamDataSink dataSink, OutputStreamDataSource dataSource) { + this.urlcopy = urlcopy; + this.configuration = configuration; + this.retry_num = configuration.getRetry_num(); + this.retry_timeout = configuration.getRetry_timeout(); + this.dryRun = configuration.isDryRun(); + this.dataSink = dataSink; + this.dataSource = dataSource; + this.logger = new EMI_SRMLogger(); + + say("~~~~~ EMI_Copier()"); + } + + public void setDebug(boolean debug) { + this.debug = debug; + } + + public void addCopyJob(CopyJob job) { + + say("~~~~~ addCopyJob()"); + synchronized(copy_jobs) { + copy_jobs.add(job); + num_jobs++; + } + synchronized(this) { + notify(); + } + } + + public void doneAddingJobs() { + say("~~~~~ doneAddingJobs()"); + synchronized(copy_jobs) { + doneAddingJobs = true; + } + synchronized(this) { + notify(); + } + } + + + //this method will wait for all the individual file transfers to complete + //when all transfers are complete, then it will notify all threads. + + public synchronized void waitCompletion() throws Exception { + say("~~~~~ waitCompletion()"); + if(completed) { + if(!completed_successfully) { + throw error; + } + if(num_completed_successfully!=num_jobs) { + throw new Exception("number of jobs = "+num_jobs+ + " successfully completed="+num_completed_successfully); + } + return; + ... [truncated message content] |