public String getRestRepoRemoteStatus(ProxyRepository repository, Request request, Response response) throws ResourceException { Form form = request.getResourceRef().getQueryAsForm(); boolean forceCheck = form.getFirst("forceCheck") != null; RemoteStatus rs = repository.getRemoteStatus(new ResourceStoreRequest(RepositoryItemUid.PATH_ROOT), forceCheck); if (RemoteStatus.UNKNOWN.equals(rs)) { // set status to ACCEPTED, since we have incomplete info response.setStatus(Status.SUCCESS_ACCEPTED); } return rs == null ? null : rs.toString() + (rs.getReason() == null ? "" : ":" + rs.getReason()); }
public String getRestRepoRemoteStatus( ProxyRepository repository, Request request, Response response ) throws ResourceException { Form form = request.getResourceRef().getQueryAsForm(); boolean forceCheck = form.getFirst( "forceCheck" ) != null; RemoteStatus rs = repository.getRemoteStatus( new ResourceStoreRequest( RepositoryItemUid.PATH_ROOT ), forceCheck ); if ( RemoteStatus.UNKNOWN.equals( rs ) ) { // set status to ACCEPTED, since we have incomplete info response.setStatus( Status.SUCCESS_ACCEPTED ); } return rs == null ? null : rs.toString(); }
private void setRemoteStatus( RemoteStatus remoteStatus, Throwable cause ) { this.remoteStatus = remoteStatus; // UNKNOWN does not count if ( RemoteStatus.AVAILABLE.equals( remoteStatus ) || RemoteStatus.UNAVAILABLE.equals( remoteStatus ) ) { this.remoteStatusUpdated = System.currentTimeMillis(); } }
public RemoteStatus getRemoteStatus( ResourceStoreRequest request, boolean forceCheck ) { // if the last known status is old, simply reset it if ( forceCheck || System.currentTimeMillis() - remoteStatusUpdated > REMOTE_STATUS_RETAIN_TIME ) { remoteStatus = RemoteStatus.UNKNOWN; } if ( getProxyMode() != null && RemoteStatus.UNKNOWN.equals( remoteStatus ) && !_remoteStatusChecking ) { // check for thread and go check it _remoteStatusChecking = true; poolManager.getRepositoryThreadPool( this ).submit( new RemoteStatusUpdateCallable( request ) ); } return remoteStatus; }