Search in sources :

Example 1 with ArrayOfString

use of org.dcache.srm.v2_2.ArrayOfString in project dcache by dCache.

the class LsFileRequest method convertFileMetaDataToTMetaDataPathDetail.

private TMetaDataPathDetail convertFileMetaDataToTMetaDataPathDetail(final URI path, final FileMetaData fmd, final boolean verbose) throws SRMException {
    TMetaDataPathDetail metaDataPathDetail = new TMetaDataPathDetail();
    metaDataPathDetail.setPath(getPath(path));
    metaDataPathDetail.setLifetimeAssigned(-1);
    metaDataPathDetail.setLifetimeLeft(-1);
    metaDataPathDetail.setSize(new UnsignedLong(fmd.size));
    if (fmd.isDirectory) {
        metaDataPathDetail.setType(TFileType.DIRECTORY);
    } else if (fmd.isLink) {
        metaDataPathDetail.setType(TFileType.LINK);
    } else if (fmd.isRegular) {
        metaDataPathDetail.setType(TFileType.FILE);
    } else {
        LOGGER.debug("file type is Unknown");
    }
    if (verbose) {
        // TODO: this needs to be rewritten to
        // take the ACLs into account.
        TUserPermission userPermission = new TUserPermission();
        userPermission.setUserID(fmd.owner);
        int userPerm = (fmd.permMode >> 6) & 7;
        userPermission.setMode(maskToTPermissionMode(userPerm));
        metaDataPathDetail.setOwnerPermission(userPermission);
        TGroupPermission groupPermission = new TGroupPermission();
        groupPermission.setGroupID(fmd.group);
        int groupPerm = (fmd.permMode >> 3) & 7;
        groupPermission.setMode(maskToTPermissionMode(groupPerm));
        metaDataPathDetail.setGroupPermission(groupPermission);
        metaDataPathDetail.setOtherPermission(maskToTPermissionMode(fmd.permMode & 7));
        GregorianCalendar td = new GregorianCalendar();
        td.setTimeInMillis(fmd.creationTime);
        metaDataPathDetail.setCreatedAtTime(td);
        td = new GregorianCalendar();
        td.setTimeInMillis(fmd.lastModificationTime);
        metaDataPathDetail.setLastModificationTime(td);
        if (fmd.checksumType != null && fmd.checksumValue != null) {
            metaDataPathDetail.setCheckSumType(fmd.checksumType);
            metaDataPathDetail.setCheckSumValue(fmd.checksumValue);
        }
        metaDataPathDetail.setFileStorageType(TFileStorageType.PERMANENT);
        if (!fmd.isPermanent) {
            if (fmd.isPinned) {
                metaDataPathDetail.setFileStorageType(TFileStorageType.DURABLE);
            } else {
                metaDataPathDetail.setFileStorageType(TFileStorageType.VOLATILE);
            }
        }
        metaDataPathDetail.setFileLocality(fmd.locality);
        if (fmd.retentionPolicyInfo != null) {
            TAccessLatency al = fmd.retentionPolicyInfo.getAccessLatency();
            TRetentionPolicy rp = fmd.retentionPolicyInfo.getRetentionPolicy();
            metaDataPathDetail.setRetentionPolicyInfo(new TRetentionPolicyInfo(rp, al));
        }
        if (fmd.spaceTokens != null) {
            if (fmd.spaceTokens.length > 0) {
                ArrayOfString arrayOfSpaceTokens = new ArrayOfString(new String[fmd.spaceTokens.length]);
                for (int st = 0; st < fmd.spaceTokens.length; st++) {
                    arrayOfSpaceTokens.setStringArray(st, String.valueOf(fmd.spaceTokens[st]));
                }
                metaDataPathDetail.setArrayOfSpaceTokens(arrayOfSpaceTokens);
            }
        }
    }
    metaDataPathDetail.setStatus(new TReturnStatus(TStatusCode.SRM_SUCCESS, null));
    return metaDataPathDetail;
}
Also used : TRetentionPolicyInfo(org.dcache.srm.v2_2.TRetentionPolicyInfo) UnsignedLong(org.apache.axis.types.UnsignedLong) TReturnStatus(org.dcache.srm.v2_2.TReturnStatus) ArrayOfTMetaDataPathDetail(org.dcache.srm.v2_2.ArrayOfTMetaDataPathDetail) TMetaDataPathDetail(org.dcache.srm.v2_2.TMetaDataPathDetail) TRetentionPolicy(org.dcache.srm.v2_2.TRetentionPolicy) ArrayOfString(org.dcache.srm.v2_2.ArrayOfString) GregorianCalendar(java.util.GregorianCalendar) TAccessLatency(org.dcache.srm.v2_2.TAccessLatency) TUserPermission(org.dcache.srm.v2_2.TUserPermission) TGroupPermission(org.dcache.srm.v2_2.TGroupPermission)

Example 2 with ArrayOfString

use of org.dcache.srm.v2_2.ArrayOfString in project dcache by dCache.

the class SRMPutClientV2 method start.

@Override
public void start() throws Exception {
    try {
        copier = new Copier(configuration);
        new Thread(copier).start();
        int len = from.length;
        TPutFileRequest[] fileRequests = new TPutFileRequest[len];
        String[] SURLS = new String[len];
        for (int i = 0; i < len; ++i) {
            java.net.URI filesource = from[i];
            int filetype = SRMDispatcher.getUrlType(filesource);
            if ((filetype & SRMDispatcher.FILE_URL) == 0) {
                throw new IOException(" source is not file " + filesource);
            }
            if ((filetype & SRMDispatcher.DIRECTORY_URL) == SRMDispatcher.DIRECTORY_URL) {
                throw new IOException(" source is directory " + filesource);
            }
            if ((filetype & SRMDispatcher.CAN_READ_FILE_URL) == 0) {
                throw new IOException(" source is not readable " + filesource);
            }
            File f = new File(filesource.getPath());
            long filesize = f.length();
            SURLS[i] = to[i].toASCIIString();
            URI uri = new URI(SURLS[i]);
            fileRequests[i] = new TPutFileRequest();
            fileRequests[i].setExpectedFileSize(new UnsignedLong(filesize));
            fileRequests[i].setTargetSURL(uri);
            pendingSurlsToIndex.put(SURLS[i], i);
        }
        hook = new Thread(this);
        Runtime.getRuntime().addShutdownHook(hook);
        SrmPrepareToPutRequest srmPrepareToPutRequest = new SrmPrepareToPutRequest();
        srmPrepareToPutRequest.setUserRequestDescription(configuration.getUserRequestDescription());
        String storagetype = configuration.getStorageType();
        if (storagetype != null) {
            srmPrepareToPutRequest.setDesiredFileStorageType(FileStorageType.fromString(storagetype.toUpperCase()).toTFileStorageType());
        }
        srmPrepareToPutRequest.setDesiredTotalRequestTime((int) configuration.getRequestLifetime());
        srmPrepareToPutRequest.setArrayOfFileRequests(new ArrayOfTPutFileRequest(fileRequests));
        TAccessPattern ap = null;
        if (configuration.getAccessPattern() != null) {
            ap = TAccessPattern.fromString(configuration.getAccessPattern());
        }
        TConnectionType ct = null;
        if (configuration.getConnectionType() != null) {
            ct = TConnectionType.fromString(configuration.getConnectionType());
        }
        ArrayOfString protocolArray = null;
        if (configuration.getProtocols() != null) {
            protocolArray = new ArrayOfString(configuration.getProtocols());
        }
        ArrayOfString arrayOfClientNetworks = null;
        if (configuration.getArrayOfClientNetworks() != null) {
            arrayOfClientNetworks = new ArrayOfString(configuration.getArrayOfClientNetworks());
        }
        if (ap != null || ct != null || arrayOfClientNetworks != null || protocolArray != null) {
            srmPrepareToPutRequest.setTransferParameters(new TTransferParameters(ap, ct, arrayOfClientNetworks, protocolArray));
        }
        TRetentionPolicy rp = configuration.getRetentionPolicy() != null ? RetentionPolicy.fromString(configuration.getRetentionPolicy()).toTRetentionPolicy() : null;
        TAccessLatency al = configuration.getAccessLatency() != null ? AccessLatency.fromString(configuration.getAccessLatency()).toTAccessLatency() : null;
        if ((al != null) && (rp == null)) {
            throw new IllegalArgumentException("if access latency is specified, " + "then retention policy have to be specified as well");
        } else if (rp != null) {
            srmPrepareToPutRequest.setTargetFileRetentionPolicyInfo(new TRetentionPolicyInfo(rp, al));
        }
        if (configuration.getOverwriteMode() != null) {
            srmPrepareToPutRequest.setOverwriteOption(TOverwriteMode.fromString(configuration.getOverwriteMode()));
        }
        if (configuration.getSpaceToken() != null) {
            srmPrepareToPutRequest.setTargetSpaceToken(configuration.getSpaceToken());
        }
        configuration.getStorageSystemInfo().ifPresent(srmPrepareToPutRequest::setStorageSystemInfo);
        response = srm.srmPrepareToPut(srmPrepareToPutRequest);
        if (response == null) {
            throw new IOException(" null response");
        }
        TReturnStatus status = response.getReturnStatus();
        if (status == null) {
            throw new IOException(" null return status");
        }
        TStatusCode statusCode = status.getStatusCode();
        if (statusCode == null) {
            throw new IOException(" null status code");
        }
        if (RequestStatusTool.isFailedRequestStatus(status) && (statusCode != TStatusCode.SRM_FAILURE || response.getArrayOfFileStatuses() == null)) {
            String explanation = status.getExplanation();
            if (explanation != null) {
                throw new IOException("srmPrepareToPut submission failed, unexpected or failed status : " + statusCode + " explanation= " + explanation);
            } else {
                throw new IOException("srmPrepareToPut submission failed, unexpected or failed status : " + statusCode);
            }
        }
        requestToken = response.getRequestToken();
        dsay(" srm returned requestToken = " + requestToken);
        if (response.getArrayOfFileStatuses() == null) {
            throw new IOException("returned PutRequestFileStatuses is an empty array");
        }
        TPutRequestFileStatus[] putRequestFileStatuses = response.getArrayOfFileStatuses().getStatusArray();
        if (putRequestFileStatuses.length != len) {
            throw new IOException("incorrect number of GetRequestFileStatuses" + "in RequestStatus expected " + len + " received " + putRequestFileStatuses.length);
        }
        while (!pendingSurlsToIndex.isEmpty()) {
            long estimatedWaitInSeconds = 5;
            for (TPutRequestFileStatus putRequestFileStatus : putRequestFileStatuses) {
                URI surl = putRequestFileStatus.getSURL();
                if (surl == null) {
                    esay("invalid putRequestFileStatus, surl is null");
                    continue;
                }
                String surl_string = surl.toString();
                if (!pendingSurlsToIndex.containsKey(surl_string)) {
                    esay("invalid putRequestFileStatus, surl = " + surl_string + " not found");
                    continue;
                }
                TReturnStatus fileStatus = putRequestFileStatus.getStatus();
                if (fileStatus == null) {
                    throw new IOException(" null file return status");
                }
                TStatusCode fileStatusCode = fileStatus.getStatusCode();
                if (fileStatusCode == null) {
                    throw new IOException(" null file status code");
                }
                if (RequestStatusTool.isFailedFileRequestStatus(fileStatus)) {
                    String explanation = fileStatus.getExplanation();
                    String error = isNullOrEmpty(explanation) ? fileStatusCode.toString() : fileStatusCode + ": " + explanation;
                    say(error);
                    int indx = pendingSurlsToIndex.remove(surl_string);
                    setReportFailed(from[indx], to[indx], error);
                    continue;
                }
                if (putRequestFileStatus.getTransferURL() != null) {
                    java.net.URI globusTURL = new java.net.URI(putRequestFileStatus.getTransferURL().toString());
                    int indx = pendingSurlsToIndex.remove(surl_string);
                    setReportFailed(from[indx], to[indx], "received TURL, but did not complete transfer");
                    CopyJob job = new SRMV2CopyJob(from[indx], globusTURL, srm, requestToken, logger, to[indx], false, this);
                    copier.addCopyJob(job);
                    continue;
                }
                if (putRequestFileStatus.getEstimatedWaitTime() != null && putRequestFileStatus.getEstimatedWaitTime() < estimatedWaitInSeconds && putRequestFileStatus.getEstimatedWaitTime() >= 1) {
                    estimatedWaitInSeconds = putRequestFileStatus.getEstimatedWaitTime();
                }
            }
            if (pendingSurlsToIndex.isEmpty()) {
                dsay("no more pending transfers, breaking the loop");
                Runtime.getRuntime().removeShutdownHook(hook);
                break;
            }
            // do not wait longer then 60 seconds
            if (estimatedWaitInSeconds > 60) {
                estimatedWaitInSeconds = 60;
            }
            try {
                say("sleeping " + estimatedWaitInSeconds + " seconds ...");
                Thread.sleep(estimatedWaitInSeconds * 1000);
            } catch (InterruptedException ie) {
                logger.elog(ie.toString());
            }
            SrmStatusOfPutRequestRequest srmStatusOfPutRequestRequest = new SrmStatusOfPutRequestRequest();
            srmStatusOfPutRequestRequest.setRequestToken(requestToken);
            // if we do not have completed file requests
            // we want to get status for all files
            // we do not need to specify any surls
            int expectedResponseLength;
            // we do not know what to expect from the server when
            // no surls are specified int the status update request
            // so we always are sending the list of all pending srm urls
            String[] pendingSurlStrings = pendingSurlsToIndex.keySet().toArray(new String[pendingSurlsToIndex.size()]);
            expectedResponseLength = pendingSurlStrings.length;
            URI[] surlArray = new URI[expectedResponseLength];
            for (int i = 0; i < expectedResponseLength; ++i) {
                surlArray[i] = new URI(pendingSurlStrings[i]);
            }
            srmStatusOfPutRequestRequest.setArrayOfTargetSURLs(new ArrayOfAnyURI(surlArray));
            SrmStatusOfPutRequestResponse srmStatusOfPutRequestResponse = srm.srmStatusOfPutRequest(srmStatusOfPutRequestRequest);
            if (srmStatusOfPutRequestResponse == null) {
                throw new IOException(" null srmStatusOfPutRequestResponse");
            }
            if (srmStatusOfPutRequestResponse.getArrayOfFileStatuses() == null) {
                esay("putRequestFileStatuses == null");
                throw new IOException("putRequestFileStatuses == null");
            }
            putRequestFileStatuses = srmStatusOfPutRequestResponse.getArrayOfFileStatuses().getStatusArray();
            if (putRequestFileStatuses.length != expectedResponseLength) {
                esay("incorrect number of RequestFileStatuses");
                throw new IOException("incorrect number of RequestFileStatuses");
            }
            status = srmStatusOfPutRequestResponse.getReturnStatus();
            if (status == null) {
                throw new IOException(" null return status");
            }
            statusCode = status.getStatusCode();
            if (statusCode == null) {
                throw new IOException(" null status code");
            }
            if (RequestStatusTool.isFailedRequestStatus(status)) {
                String error = "srmPrepareToPut update failed, status : " + statusCode + " explanation=" + status.getExplanation();
                esay(error);
                for (int i = 0; i < expectedResponseLength; ++i) {
                    TReturnStatus frstatus = putRequestFileStatuses[i].getStatus();
                    if (frstatus != null) {
                        esay("PutFileRequest[" + putRequestFileStatuses[i].getSURL() + "] status=" + frstatus.getStatusCode() + " explanation=" + frstatus.getExplanation());
                        if (!RequestStatusTool.isTransientStateStatus(frstatus)) {
                            pendingSurlsToIndex.remove(putRequestFileStatuses[i].getSURL().toString());
                        }
                    }
                }
                throw new IOException(error);
            }
        }
    } catch (Exception e) {
        try {
            if (copier != null) {
                dsay("stopping copier" + e);
                copier.stop();
                abortAllPendingFiles();
            }
        } catch (Exception e1) {
            edsay(e1.toString());
        }
        throw e;
    } finally {
        if (copier != null) {
            copier.doneAddingJobs();
            try {
                copier.waitCompletion();
            } catch (Exception e1) {
                edsay(e1.toString());
            }
        }
        report.dumpReport();
        if (!report.everythingAllRight()) {
            report.reportErrors(System.err);
        }
    }
}
Also used : TAccessPattern(org.dcache.srm.v2_2.TAccessPattern) ArrayOfString(org.dcache.srm.v2_2.ArrayOfString) ArrayOfTPutFileRequest(org.dcache.srm.v2_2.ArrayOfTPutFileRequest) TPutFileRequest(org.dcache.srm.v2_2.TPutFileRequest) TTransferParameters(org.dcache.srm.v2_2.TTransferParameters) ArrayOfAnyURI(org.dcache.srm.v2_2.ArrayOfAnyURI) URI(org.apache.axis.types.URI) SrmStatusOfPutRequestRequest(org.dcache.srm.v2_2.SrmStatusOfPutRequestRequest) TRetentionPolicyInfo(org.dcache.srm.v2_2.TRetentionPolicyInfo) TPutRequestFileStatus(org.dcache.srm.v2_2.TPutRequestFileStatus) SrmPrepareToPutRequest(org.dcache.srm.v2_2.SrmPrepareToPutRequest) TConnectionType(org.dcache.srm.v2_2.TConnectionType) UnsignedLong(org.apache.axis.types.UnsignedLong) TReturnStatus(org.dcache.srm.v2_2.TReturnStatus) TRetentionPolicy(org.dcache.srm.v2_2.TRetentionPolicy) SrmStatusOfPutRequestResponse(org.dcache.srm.v2_2.SrmStatusOfPutRequestResponse) IOException(java.io.IOException) ArrayOfTPutFileRequest(org.dcache.srm.v2_2.ArrayOfTPutFileRequest) TStatusCode(org.dcache.srm.v2_2.TStatusCode) IOException(java.io.IOException) ArrayOfString(org.dcache.srm.v2_2.ArrayOfString) TAccessLatency(org.dcache.srm.v2_2.TAccessLatency) File(java.io.File) ArrayOfAnyURI(org.dcache.srm.v2_2.ArrayOfAnyURI)

Example 3 with ArrayOfString

use of org.dcache.srm.v2_2.ArrayOfString in project dcache by dCache.

the class SRMReserveSpaceClientV2 method start.

@Override
public void start() throws Exception {
    checkCredentialValid();
    try {
        TRetentionPolicy rp = configuration.getRetentionPolicy() != null ? RetentionPolicy.fromString(configuration.getRetentionPolicy()).toTRetentionPolicy() : null;
        TAccessLatency al = configuration.getAccessLatency() != null ? AccessLatency.fromString(configuration.getAccessLatency()).toTAccessLatency() : null;
        if ((al != null) && (rp == null)) {
            throw new IllegalArgumentException("if access latency is specified, " + "then retention policy have to be specified as well");
        } else if (rp != null) {
            request.setRetentionPolicyInfo(new TRetentionPolicyInfo(rp, al));
        }
        if (configuration.getDesiredReserveSpaceSize() != null) {
            request.setDesiredSizeOfTotalSpace(new UnsignedLong(configuration.getDesiredReserveSpaceSize().longValue()));
        }
        if (configuration.getGuaranteedReserveSpaceSize() != null) {
            request.setDesiredSizeOfGuaranteedSpace(new UnsignedLong(configuration.getGuaranteedReserveSpaceSize().longValue()));
        }
        request.setUserSpaceTokenDescription(configuration.getSpaceTokenDescription());
        if (configuration.getDesiredLifetime() != null) {
            request.setDesiredLifetimeOfReservedSpace((int) (configuration.getDesiredLifetime().longValue()));
        }
        if (configuration.getArrayOfClientNetworks() != null || configuration.getConnectionType() != null || configuration.getAccessPattern() != null || configuration.getProtocols() != null) {
            TTransferParameters tp = new TTransferParameters();
            if (configuration.getArrayOfClientNetworks() != null) {
                tp.setArrayOfClientNetworks(new ArrayOfString(configuration.getArrayOfClientNetworks()));
            }
            if (configuration.getConnectionType() != null) {
                tp.setConnectionType(TConnectionType.fromString(configuration.getConnectionType()));
            }
            if (configuration.getAccessPattern() != null) {
                tp.setAccessPattern(TAccessPattern.fromString(configuration.getAccessPattern()));
            }
            if (configuration.getProtocols() != null) {
                tp.setArrayOfTransferProtocols(new ArrayOfString(configuration.getProtocols()));
            }
            request.setTransferParameters(tp);
        }
        configuration.getStorageSystemInfo().ifPresent(request::setStorageSystemInfo);
        hook = new Thread(this);
        Runtime.getRuntime().addShutdownHook(hook);
        SrmReserveSpaceResponse response = srm.srmReserveSpace(request);
        if (response == null) {
            throw new IOException(" null SrmReserveSpace");
        }
        TReturnStatus rs = response.getReturnStatus();
        requestToken = response.getRequestToken();
        dsay(" srm returned requestToken = " + requestToken);
        if (rs == null) {
            throw new IOException(" null TReturnStatus ");
        }
        if (RequestStatusTool.isFailedRequestStatus(rs)) {
            throw new IOException("srmReserveSpace submission failed, unexpected or failed return status : " + rs.getStatusCode() + " explanation=" + rs.getExplanation());
        }
        if (response.getSpaceToken() != null) {
            System.out.println("Space token =" + response.getSpaceToken());
            logger.log("lifetime = " + response.getLifetimeOfReservedSpace());
            if (response.getRetentionPolicyInfo() != null) {
                logger.log("access latency = " + response.getRetentionPolicyInfo().getAccessLatency());
                logger.log("retention policy = " + response.getRetentionPolicyInfo().getRetentionPolicy());
            }
            logger.log("guaranteed size = " + response.getSizeOfGuaranteedReservedSpace());
            logger.log("total size = " + response.getSizeOfTotalReservedSpace());
        } else {
            while (true) {
                long estimatedWaitInSeconds = 5;
                if (estimatedWaitInSeconds > 60) {
                    estimatedWaitInSeconds = 60;
                }
                try {
                    say("sleeping " + estimatedWaitInSeconds + " seconds ...");
                    Thread.sleep(estimatedWaitInSeconds * 1000);
                } catch (InterruptedException ie) {
                    System.out.println("Interrupted, quitting");
                    if (requestToken != null) {
                        abortRequest();
                    }
                    System.exit(1);
                }
                // 
                // check our request
                // 
                SrmStatusOfReserveSpaceRequestRequest req = new SrmStatusOfReserveSpaceRequestRequest();
                req.setRequestToken(requestToken);
                req.setAuthorizationID(request.getAuthorizationID());
                SrmStatusOfReserveSpaceRequestResponse statusOfReserveSpaceRequestResponse = srm.srmStatusOfReserveSpaceRequest(req);
                if (statusOfReserveSpaceRequestResponse == null) {
                    throw new IOException(" null statusOfReserveSpaceRequestResponse");
                }
                TReturnStatus status = statusOfReserveSpaceRequestResponse.getReturnStatus();
                if (status == null) {
                    throw new IOException(" null return status");
                }
                if (status.getStatusCode() == null) {
                    throw new IOException(" null status code");
                }
                if (RequestStatusTool.isFailedRequestStatus(status)) {
                    logger.log("status: code=" + status.getStatusCode() + " explanantion=" + status.getExplanation());
                    throw new IOException("SrmStatusOfReserveSpaceRequest unexpected or failed status : " + status.getStatusCode() + " explanation=" + status.getExplanation());
                }
                if (status.getStatusCode() == TStatusCode.SRM_SUCCESS || status.getStatusCode() == TStatusCode.SRM_SPACE_AVAILABLE || status.getStatusCode() == TStatusCode.SRM_LOWER_SPACE_GRANTED) {
                    System.out.println("Space token =" + statusOfReserveSpaceRequestResponse.getSpaceToken());
                    logger.log("lifetime = " + statusOfReserveSpaceRequestResponse.getLifetimeOfReservedSpace());
                    logger.log("access latency = " + statusOfReserveSpaceRequestResponse.getRetentionPolicyInfo().getAccessLatency());
                    logger.log("retention policy = " + statusOfReserveSpaceRequestResponse.getRetentionPolicyInfo().getRetentionPolicy());
                    logger.log("guaranteed size = " + statusOfReserveSpaceRequestResponse.getSizeOfGuaranteedReservedSpace());
                    logger.log("total size = " + statusOfReserveSpaceRequestResponse.getSizeOfTotalReservedSpace());
                    break;
                }
                if (statusOfReserveSpaceRequestResponse.getEstimatedProcessingTime() != null && statusOfReserveSpaceRequestResponse.getEstimatedProcessingTime() < estimatedWaitInSeconds && statusOfReserveSpaceRequestResponse.getEstimatedProcessingTime() >= 1) {
                    estimatedWaitInSeconds = statusOfReserveSpaceRequestResponse.getEstimatedProcessingTime();
                }
            }
        }
        Runtime.getRuntime().removeShutdownHook(hook);
    } catch (Exception e) {
        try {
            if (requestToken != null) {
                abortRequest();
            }
        } catch (Exception e1) {
            edsay(e1.toString());
        }
        throw e;
    }
}
Also used : UnsignedLong(org.apache.axis.types.UnsignedLong) TReturnStatus(org.dcache.srm.v2_2.TReturnStatus) TRetentionPolicy(org.dcache.srm.v2_2.TRetentionPolicy) IOException(java.io.IOException) TTransferParameters(org.dcache.srm.v2_2.TTransferParameters) IOException(java.io.IOException) TRetentionPolicyInfo(org.dcache.srm.v2_2.TRetentionPolicyInfo) SrmReserveSpaceResponse(org.dcache.srm.v2_2.SrmReserveSpaceResponse) ArrayOfString(org.dcache.srm.v2_2.ArrayOfString) SrmStatusOfReserveSpaceRequestRequest(org.dcache.srm.v2_2.SrmStatusOfReserveSpaceRequestRequest) TAccessLatency(org.dcache.srm.v2_2.TAccessLatency) SrmStatusOfReserveSpaceRequestResponse(org.dcache.srm.v2_2.SrmStatusOfReserveSpaceRequestResponse)

Example 4 with ArrayOfString

use of org.dcache.srm.v2_2.ArrayOfString in project dcache by dCache.

the class AxisSrmFileSystem method getSpaceTokens.

@Nonnull
@Override
public String[] getSpaceTokens(String userSpaceTokenDescription) throws RemoteException, SRMException {
    SrmGetSpaceTokensResponse response = srm.srmGetSpaceTokens(new SrmGetSpaceTokensRequest(userSpaceTokenDescription, null));
    checkSuccess(response.getReturnStatus());
    ArrayOfString arrayOfSpaceTokens = response.getArrayOfSpaceTokens();
    return (arrayOfSpaceTokens != null) ? arrayOfSpaceTokens.getStringArray() : new String[0];
}
Also used : ArrayOfString(org.dcache.srm.v2_2.ArrayOfString) SrmGetSpaceTokensResponse(org.dcache.srm.v2_2.SrmGetSpaceTokensResponse) SrmGetSpaceTokensRequest(org.dcache.srm.v2_2.SrmGetSpaceTokensRequest) Nonnull(javax.annotation.Nonnull)

Example 5 with ArrayOfString

use of org.dcache.srm.v2_2.ArrayOfString in project dcache by dCache.

the class AxisSrmFileSystem method getSpaceMetaData.

@Nonnull
@Override
public TMetaDataSpace[] getSpaceMetaData(String... spaceTokens) throws RemoteException, SRMException {
    checkArgument(spaceTokens.length > 0);
    SrmGetSpaceMetaDataResponse response = srm.srmGetSpaceMetaData(new SrmGetSpaceMetaDataRequest(null, new ArrayOfString(spaceTokens)));
    TMetaDataSpace[] spaceDataArray = response.getArrayOfSpaceDetails().getSpaceDataArray();
    if (spaceDataArray == null || spaceDataArray.length == 0) {
        checkSuccess(response.getReturnStatus(), TStatusCode.SRM_SUCCESS, TStatusCode.SRM_PARTIAL_SUCCESS);
        throw new SrmProtocolException("Server reply lacks space meta data.");
    } else {
        checkSuccess(response.getReturnStatus(), TStatusCode.SRM_SUCCESS, TStatusCode.SRM_PARTIAL_SUCCESS, TStatusCode.SRM_FAILURE);
    }
    return spaceDataArray;
}
Also used : ArrayOfString(org.dcache.srm.v2_2.ArrayOfString) SrmGetSpaceMetaDataRequest(org.dcache.srm.v2_2.SrmGetSpaceMetaDataRequest) TMetaDataSpace(org.dcache.srm.v2_2.TMetaDataSpace) SrmGetSpaceMetaDataResponse(org.dcache.srm.v2_2.SrmGetSpaceMetaDataResponse) Nonnull(javax.annotation.Nonnull)

Aggregations

ArrayOfString (org.dcache.srm.v2_2.ArrayOfString)12 IOException (java.io.IOException)8 TReturnStatus (org.dcache.srm.v2_2.TReturnStatus)8 TRetentionPolicyInfo (org.dcache.srm.v2_2.TRetentionPolicyInfo)7 TTransferParameters (org.dcache.srm.v2_2.TTransferParameters)6 URI (org.apache.axis.types.URI)5 ArrayOfAnyURI (org.dcache.srm.v2_2.ArrayOfAnyURI)5 TAccessLatency (org.dcache.srm.v2_2.TAccessLatency)5 TRetentionPolicy (org.dcache.srm.v2_2.TRetentionPolicy)5 UnsignedLong (org.apache.axis.types.UnsignedLong)3 ArrayOfTGetFileRequest (org.dcache.srm.v2_2.ArrayOfTGetFileRequest)3 TAccessPattern (org.dcache.srm.v2_2.TAccessPattern)3 TConnectionType (org.dcache.srm.v2_2.TConnectionType)3 TGetFileRequest (org.dcache.srm.v2_2.TGetFileRequest)3 TStatusCode (org.dcache.srm.v2_2.TStatusCode)3 Nonnull (javax.annotation.Nonnull)2 SRMException (org.dcache.srm.SRMException)2 ArrayOfTPutFileRequest (org.dcache.srm.v2_2.ArrayOfTPutFileRequest)2 SrmGetSpaceMetaDataRequest (org.dcache.srm.v2_2.SrmGetSpaceMetaDataRequest)2 SrmGetSpaceMetaDataResponse (org.dcache.srm.v2_2.SrmGetSpaceMetaDataResponse)2