/** * The default expiration time for all Task Services. */ public static long getDefaultTaskExpirationTimeInMicros() { return getExpirationTimeFromNowInMicros(EXPIRATION_MICROS); }
private void prepareRequest(Operation op, boolean longRunningRequest) { op.forceRemote(); if (op.getExpirationMicrosUtc() == 0L) { long timeout; if (longRunningRequest) { timeout = TimeUnit.SECONDS .toMicros(ClosureProps.DOCKER_IMAGE_REQUEST_TIMEOUT_SECONDS); } else { timeout = ServiceHost.ServiceHostState.DEFAULT_OPERATION_TIMEOUT_MICROS; } op.setExpiration(ServiceUtils.getExpirationTimeFromNowInMicros(timeout)); } }
/** * Common settings on all outgoing requests to the docker server */ protected void prepareRequest(Operation op, boolean longRunningRequest) { op.setReferer(host.getPublicUri()) .addRequestHeader(Operation.REQUEST_AUTH_TOKEN_HEADER, "") .forceRemote(); if (op.getExpirationMicrosUtc() == 0) { long timeout = longRunningRequest ? TimeUnit.SECONDS.toMicros(DOCKER_IMAGE_REQUEST_TIMEOUT_SECONDS) : TimeUnit.SECONDS.toMicros(DOCKER_REQUEST_TIMEOUT_SECONDS); op.setExpiration(ServiceUtils.getExpirationTimeFromNowInMicros(timeout)); } }
@Override public void handlePatch(Operation patch) { DockerImage requestedImageState = patch.getBody(DockerImage.class); DockerImage currentImageState = this.getState(patch); if (requestedImageState.taskInfo != null) { currentImageState.taskInfo = requestedImageState.taskInfo; } if (TaskState.isFailed(currentImageState.taskInfo)) { if (currentImageState.documentExpirationTimeMicros <= 0) { currentImageState.documentExpirationTimeMicros = ServiceUtils .getExpirationTimeFromNowInMicros(TimeUnit .SECONDS.toMicros(ClosureProps.KEEP_FAILED_BUILDS_TIMEOUT_SECONDS)); } } else { currentImageState.lastAccessedTimeMillis = System.currentTimeMillis(); currentImageState.documentExpirationTimeMicros = requestedImageState.documentExpirationTimeMicros; currentImageState.imageDetails = requestedImageState.imageDetails; } this.setState(patch, currentImageState); patch.complete(); }
public void ping(KubernetesContext context, CompletionHandler completionHandler) { URI uri = UriUtils.buildUri(context.host.address + KubernetesHostConstants.KUBERNETES_HOST_HEALTH_PATH); Operation op = Operation .createGet(uri) .setCompletion(completionHandler); prepareRequest(op, context); op.setExpiration(ServiceUtils.getExpirationTimeFromNowInMicros( TimeUnit.SECONDS.toMicros(10))); serviceClient.send(op); }
private void checkDockerHost(DockerImage imageRequest) { if (imageRequest.taskInfo == null || TaskState.isInProgress(imageRequest.taskInfo)) { return; } ExecutionDriver executionDriver = driverRegistry.getDriver(); logFine("Verifying image: %s link: %s", imageRequest.name, imageRequest .documentSelfLink); executionDriver.inspectImage(imageRequest.name, imageRequest.computeStateLink, (error) -> { logWarning("Unable to check docker image: %s on host: %s. Reason: %s", imageRequest.name, imageRequest.computeStateLink, error.getMessage()); imageRequest.documentExpirationTimeMicros = ServiceUtils .getExpirationTimeFromNowInMicros(TimeUnit .MILLISECONDS.toMicros(1)); imageRequest.imageDetails = JsonNull.INSTANCE; sendSelfPatch(imageRequest); }); }
validateStateOnStart(state); state.documentExpirationTimeMicros = ServiceUtils .getExpirationTimeFromNowInMicros( EXPIRATION_INTERVAL_HOURS); post.setBody(state).complete();
private void prepareRequest(Operation op, KubernetesContext context) { String authorizationHeaderValue = AuthUtils.createAuthorizationHeader(context.credentials); if (authorizationHeaderValue != null) { op.addRequestHeader(Operation.AUTHORIZATION_HEADER, authorizationHeaderValue); } createOrUpdateTargetSsl(context); op.setReferer(host.getPublicUri()); op.forceRemote(); setConnectionTag(context.credentials, op); if (op.getExpirationMicrosUtc() == 0) { long timeout = TimeUnit.SECONDS.toMicros(REQUEST_TIMEOUT_SECONDS); op.setExpiration(ServiceUtils.getExpirationTimeFromNowInMicros(timeout)); } }
/** * Self-update with status done and sets expiration time. */ private void markDone(String statusMessage) { ExtensibilitySubscriptionCallback patch = new ExtensibilitySubscriptionCallback(); patch.status = ExtensibilitySubscriptionCallback.Status.DONE; patch.errorMessage = statusMessage; patch.documentExpirationTimeMicros = ServiceUtils.getExpirationTimeFromNowInMicros( TimeUnit.MINUTES.toMicros(PROCESSED_NOTIFICATION_EXPIRE_TIME)); sendRequest(Operation.createPatch(getUri()) .setBody(patch) .setCompletion((o, e) -> { if (e != null && !(e instanceof ServiceNotFoundException)) { logSevere("Self patch [%s] failed: %s", getSelfLink(), Utils.toString(e)); } })); }
op.setExpiration(ServiceUtils.getExpirationTimeFromNowInMicros( TimeUnit.SECONDS.toMicros(10)));
private void calculateActualRequestedResources(RequestBrokerState state, SubStage next) { if (isPKSClusterType(state)) { proceedTo(next, s -> { s.actualResourceCount = state.resourceCount; s.documentExpirationTimeMicros = getExpirationTimeFromNowInMicros( EXPIRATION_MICROS * 2); }); return; } if (isProvisionOperation(state)) { if (isContainerType(state)) { getContainerDescription(state, (cd) -> { proceedTo(next, s -> { s.actualResourceCount = getRequestContainerResourceCount(state, cd); updateRequestTrackerName(state, cd.name); }); }); } else { proceedTo(next, s -> s.actualResourceCount = state.resourceCount); } } else { proceedTo(next, s -> s.actualResourceCount = state.resourceCount); } }
fetchOp.setExpiration(ServiceUtils.getExpirationTimeFromNowInMicros( getHost().getOperationTimeoutMicros())) .setReferer(UriUtils.buildUri(getHost().getPublicUri(), SELF_LINK))
op.setExpiration(ServiceUtils.getExpirationTimeFromNowInMicros( TimeUnit.MILLISECONDS.toMicros(getTimeoutMillis(healthConfig))));
@Test public void testQueryTaskDeleted() throws Throwable { final String queryTaskDocumentSelfLink = UriUtils.buildUriPath( ServiceUriPaths.CORE_QUERY_TASKS, "/testQueryTaskResultLimit"); final String queryTaskLink = queryTaskDocumentSelfLink + 1; QuerySpecification qs = new QuerySpecification(); qs.query = Query.Builder.create().addKindFieldClause(ContainerDescription.class).build(); QueryTask qt = QueryTask.create(qs); qt.documentSelfLink = queryTaskLink; int fiveSec = 5000000; qt.documentExpirationTimeMicros = ServiceUtils.getExpirationTimeFromNowInMicros(fiveSec); final AtomicReference<QueryTask> q = new AtomicReference<>(); host.testStart(1); new ServiceDocumentQuery<>(host, ContainerDescription.class) .query(qt, handler(false, q, qt.documentSelfLink)); host.testWait(); qt = q.getAndSet(null); //validate query task exists assertNotNull(qt); // validate query task is deleted waitFor(() -> { QueryTask queryTask = getDocumentNoWait(QueryTask.class, queryTaskLink); return queryTask == null; }); }