@Override public void handlePost(Operation post) { post.addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE); super.handlePost(post); }
private Collection<Operation> createPostOperations(State currentState, Map<URI, Operation> failedOps, Map<Operation, Object> posts) { return failedOps.values().stream() .map(o -> { Object newBody = posts.get(o); return createPost(o.getUri(), currentState) .setBodyNoCloning(newBody) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FROM_MIGRATION_TASK) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE); }) .collect(Collectors.toList()); }
private Collection<Operation> createDeleteOperations(State currentState, Collection<URI> uris) { return uris.stream().map(u -> createDelete(u, currentState) .addRequestHeader(Operation.REPLICATION_QUORUM_HEADER, Operation.REPLICATION_QUORUM_HEADER_VALUE_ALL) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FROM_MIGRATION_TASK)) .collect(Collectors.toList()); }
void prepareForwardRequest(Operation fwdOp) { fwdOp.toggleOption(OperationOption.FORWARDED, true); fwdOp.addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORWARDED); fwdOp.setConnectionTag(ServiceClient.CONNECTION_TAG_FORWARDING); fwdOp.toggleOption(NodeSelectorService.FORWARDING_OPERATION_OPTION, true); }
public static void prepareForwardRequest(Operation fwdOp) { fwdOp.toggleOption(OperationOption.FORWARDED, true); fwdOp.addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORWARDED); fwdOp.setConnectionTag(ServiceClient.CONNECTION_TAG_FORWARDING); fwdOp.toggleOption(NodeSelectorService.FORWARDING_OPERATION_OPTION, true); }
private void selfDeleteDueToFailure(Operation o, Throwable e) { if (getHost().isStopping()) { return; } logSevere("%s to %s failed with %s :", o.getAction(), o.getUri(), e.toString()); // self DELETE. The client, if they implemented handleRequest on the service instance // will be able to tell something went wrong sendRequest(Operation.createDelete(getUri()) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_NOTIFICATION) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_SKIPPED_NOTIFICATIONS)); } }
private void stopServiceAndClearFromCache(Service s, ServiceDocument state) { // Issue DELETE to stop the service and clear it from cache Operation deleteExp = Operation.createDelete(this.host, s.getSelfLink()) .setBody(state) .disableFailureLogging(true) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_NO_INDEX_UPDATE) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_NO_FORWARDING) .setReferer(this.host.getUri()); this.host.sendRequest(deleteExp); }
private Operation createCaCredentials(String caCert, String caKey) { AuthCredentialsServiceState authCredentials = new AuthCredentialsServiceState(); authCredentials.documentSelfLink = ManagementUriParts.AUTH_CREDENTIALS_CA_LINK; authCredentials.type = AuthCredentialsType.PublicKeyCA.name(); authCredentials.userEmail = "core"; authCredentials.publicKey = caCert; authCredentials.privateKey = caKey; return Operation.createPost(this, AuthCredentialsService.FACTORY_LINK) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE) .setBody(authCredentials); }
private Operation buildCreateResourceGroupOperation(ResourceGroupState state) { return Operation.createPost(getHost(), ResourceGroupService.FACTORY_LINK) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE) .setReferer(getHost().getUri()) .setBody(state); }
private Operation buildCreateRoleOperation(RoleState state) { return Operation.createPost(getHost(), RoleService.FACTORY_LINK) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE) .setReferer(getHost().getUri()) .setBody(state); }
private void doPost(VerificationHost h, ExampleServiceState doc, Consumer<Throwable> callback) { h.send(Operation .createPost(this.factoryUri) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE) .setBody(doc) .setCompletion((o, e) -> { if (e != null) { callback.accept(e); } else { callback.accept(null); } })); }
@Override public void handlePut(Operation put) { State newState = getBody(put); // update linked state with requested body, so response body is the one from request setState(put, newState); // Specify this pragma NOT to update state(not increment version in server side) put.addPragmaDirective(Operation.PRAGMA_DIRECTIVE_STATE_NOT_MODIFIED); put.complete(); } }
private void sendSynchRequest(URI parentUri, String documentSelfLink, CompletionHandler ch) { ServiceDocument synchState = new ServiceDocument(); synchState.documentSelfLink = documentSelfLink; Operation synchOp = Operation .createPost(this.host, parentUri.getPath()) .setBody(synchState) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_SYNCH_OWNER) .setReferer(this.host.getUri()) .setExpiration(Utils.fromNowMicrosUtc(NodeGroupService.PEER_REQUEST_TIMEOUT_MICROS)) .setCompletion((o, e) -> ch.handle(o, e)); this.host.handleRequest(null, synchOp); }
@Override public void handlePut(Operation put) { State newState = getBody(put); // update linked state with requested body, so response body is the one from request setState(put, newState); // Specify this pragma NOT to update state(not increment version in server side) put.addPragmaDirective(Operation.PRAGMA_DIRECTIVE_STATE_NOT_MODIFIED); put.complete(); } }
private void listHostNetworks(NetworkListCallback body, Operation.CompletionHandler c) { AdapterRequest request = new AdapterRequest(); request.operationTypeId = ContainerHostOperationType.LIST_NETWORKS.id; request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); request.resourceReference = UriUtils.buildUri(getHost(), body.containerHostLink); sendRequest(Operation .createPatch(body.hostAdapterReference) .setBodyNoCloning(request) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_QUEUE_FOR_SERVICE_AVAILABILITY) .setCompletion(c)); }
private void listHostContainers(ContainerListCallback body, Operation.CompletionHandler c) { String containerHostLink = body.containerHostLink; AdapterRequest request = new AdapterRequest(); request.operationTypeId = ContainerHostOperationType.LIST_CONTAINERS.id; request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); request.resourceReference = UriUtils.buildUri(getHost(), containerHostLink); sendRequest(Operation .createPatch(body.hostAdapterReference) .setBodyNoCloning(request) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_QUEUE_FOR_SERVICE_AVAILABILITY) .setCompletion(c)); }
@Override public DeferredResult<Principal> createPrincipal(Operation op, Principal principal) { LocalPrincipalState stateToCreate = fromPrincipalToLocalPrincipal(principal); stateToCreate.documentSelfLink = encode(principal.id); Operation post = Operation.createPost(service, LocalPrincipalFactoryService.SELF_LINK) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE) .setBody(stateToCreate); service.setAuthorizationContext(post, service.getSystemAuthorizationContext()); return service.sendWithDeferredResult(post, LocalPrincipalState.class) .thenApply((s) -> fromLocalPrincipalToPrincipal(s)); }
@Override public DeferredResult<Principal> updatePrincipal(Operation op, Principal principal) { LocalPrincipalState stateToPatch = fromPrincipalToLocalPrincipal(principal); Operation patch = Operation.createPatch(service, UriUtils.buildUriPath(LocalPrincipalFactoryService.SELF_LINK, encode(stateToPatch.id))) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE) .setBody(stateToPatch); service.setAuthorizationContext(patch, service.getSystemAuthorizationContext()); return service.sendWithDeferredResult(patch, LocalPrincipalState.class) .thenApply((s) -> fromLocalPrincipalToPrincipal(s)); }
private void subscribeToService(URI uri, ServiceSubscriber sr) { if (sr.usePublicUri) { sr = Utils.clone(sr); sr.reference = UriUtils.buildPublicUri(this.host, sr.reference.getPath()); } URI subUri = UriUtils.buildSubscriptionUri(uri); this.host.send(Operation.createPost(subUri) .setCompletion(this.host.getCompletion()) .setReferer(this.host.getReferer()) .setBody(sr) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_QUEUE_FOR_SERVICE_AVAILABILITY)); }
private void subscribeToService(URI uri, ServiceSubscriber sr) { if (sr.usePublicUri) { sr = Utils.clone(sr); sr.reference = UriUtils.buildPublicUri(this.host, sr.reference.getPath()); } URI subUri = UriUtils.buildSubscriptionUri(uri); this.host.send(Operation.createPost(subUri) .setCompletion(this.host.getCompletion()) .setReferer(this.host.getReferer()) .setBody(sr) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_QUEUE_FOR_SERVICE_AVAILABILITY)); }