private void getCompute(Operation op, String hostLink, Consumer<ComputeState> consumer) { Operation.createGet(this, hostLink).setCompletion((o, e) -> { if (e != null) { op.fail(e); return; } consumer.accept(o.getBody(ComputeState.class)); }).sendWith(this); } }
private Operation buildCreateResourceGroupOperation(ResourceGroupState state) { return Operation.createPost(getHost(), ResourceGroupService.FACTORY_LINK) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE) .setReferer(getHost().getUri()) .setBody(state); }
/** * Now that the connection is open (and if using HTTP/2, settings have been negotiated), send * the request. */ private void sendAfterConnect(Operation request) { if (request.getStatusCode() < Operation.STATUS_CODE_FAILURE_THRESHOLD) { request.complete(); } else { request.fail(request.getStatusCode()); } }
private void registerClientCredIfNeeded(AuthCredentialsServiceState caCred, String caCert, String caKey, Operation startOp) { Operation.createGet(this, ManagementUriParts.AUTH_CREDENTIALS_CLIENT_LINK) .setCompletion((o, e) -> { if (e != null) { registerClientCred(caCert, caKey, startOp); return; } startOp.complete(); }) .sendWith(this); }
@Override public void handleStart(Operation post) { if (!post.hasBody()) { post.fail(new IllegalArgumentException("body is required")); return; } TenantState newState = post.getBody(TenantState.class); if (newState.id == null || newState.id.isEmpty()) { newState.id = UUID.randomUUID().toString(); } post.setBody(newState).complete(); }
private DeferredResult<Operation> patchContainerState(ContainerState cs) { Operation operation = Operation.createPatch(host, UriUtils.buildUriPath(cs.documentSelfLink)) .setBody(cs) .setReferer(host.getUri()) .setCompletion((o, ex) -> { if (ex != null) { logger.warning(String.format("Error patching container state [%s]. Error: [%s]", cs.documentSelfLink, ex.getMessage())); } }); return host.sendWithDeferredResult(operation); } }
private void sendHostServiceRequest(Object body, URI adapterReference) { sendRequest(Operation.createPatch(adapterReference).setBody(body) .setCompletion((o, e) -> { if (e != null) { failTask(e); return; } })); }
private Operation createServicePatch(Operation op) { return Operation.createPatch(op.getUri()) .setReferer(host.getUri()) .forceRemote() .setBody(op.getBody(MinimalTestServiceState.class)); } }
public <T extends ServiceDocument> T verifyPost(Class<T> documentType, String factoryLink, T state, int expectedStatusCode) { URI uri = UriUtils.buildUri(this, factoryLink); Operation op = Operation.createPost(uri).setBody(state); Operation response = this.sender.sendAndWait(op); String message = String.format("Status code expected: %s, actual: %s", expectedStatusCode, response.getStatusCode()); assertEquals(message, expectedStatusCode, response.getStatusCode()); return response.hasBody() ? response.getBody(documentType) : null; }
@Override public void handlePatch(Operation patch) { LocalPrincipalState currentState = getState(patch); LocalPrincipalState patchState = patch.getBody(LocalPrincipalState.class); try { validatePrincipalPatch(patchState, currentState); PropertyUtils.mergeServiceDocuments(currentState, patchState); patch.complete(); } catch (Exception ex) { patch.fail(ex); } }
private void sendSelfPatch(State state, String contextId, CompletionHandler handler) { this.sendRequest(Operation .createPatch(getUri()) .forceRemote() .setBody(state) .setReferer(getUri()) .setContextId(contextId) .setCompletion(handler)); } }
private void checkDerivedSelfLinkWhenProvidedSelfLinkIsJustASuffix(TestRequestSender sender) throws Throwable { SomeDocument doc = new SomeDocument(); doc.documentSelfLink = "freddy-x1"; Operation o = sender.sendAndWait(Operation.createPost(this.factoryUri) .setBody(doc)); String selfLink = o.getBody(SomeDocument.class).documentSelfLink; URI opUri = o.getUri(); String expectedPath = "/subpath/fff/freddy-x1"; assertEquals(expectedPath, selfLink); assertEquals(UriUtils.buildUri(this.host, expectedPath), opUri); }
private void failTask(Throwable e, Operation directOp, CompletionHandler c) { QueryTask t = new QueryTask(); // self patch to failure t.taskInfo.stage = TaskStage.FAILED; t.taskInfo.failure = Utils.toServiceErrorResponse(e); if (directOp != null) { directOp.setBody(t).fail(e); return; } sendRequest(Operation.createPatch(getUri()).setBody(t).setCompletion(c)); }
private void performAndVerify304Response(String servicePath, Action action, boolean isRemote) { NotModifiedOwnerSelectedService.State dummyBody = new NotModifiedOwnerSelectedService.State(); Operation op = Operation.createGet(this.host, servicePath).setBody(dummyBody); op.setAction(action); if (isRemote) { op.forceRemote(); } Operation resultOp = this.sender.sendAndWait(op); assertNull(resultOp.getBodyRaw()); assertEquals(isRemote, resultOp.isRemote()); assertEquals(STATUS_CODE_NOT_MODIFIED, resultOp.getStatusCode()); }
public static Operation patchNicDescriptionOperation(ServiceHost host, String staticIp, String nicDescLink) { NetworkInterfaceDescription patch = new NetworkInterfaceDescription(); patch.assignment = IpAssignment.STATIC; patch.address = staticIp; return Operation.createPatch(host, nicDescLink) .setBody(patch) .setReferer(host.getUri()); }
@Test public void testAuthentication() throws Throwable { String headerVal = BasicAuthenticationUtils.constructBasicAuth(USER_JANE_EMAIL, USER_JANE_EMAIL); URI authServiceUri = UriUtils.buildUri(this.host, BasicAuthenticationService.SELF_LINK); TestRequestSender sender = new TestRequestSender(this.host); Operation returnOp = sender.sendAndWait((Operation .createPost(authServiceUri) .setBody(new Object()) .addRequestHeader(Operation.AUTHORIZATION_HEADER, headerVal))); assertTrue(returnOp.getStatusCode() == Operation.STATUS_CODE_OK); }
private void idempotentPostReturnsUpdatedOpBody(TestRequestSender sender) throws Throwable { SomeDocument doc = new SomeDocument(); doc.documentSelfLink = "/subpath/fff/apple"; doc.value = 2; sender.sendAndWait(Operation.createPost(this.factoryUri).setBody(doc)); Operation o = sender.sendAndWait(Operation.createPost(this.factoryUri).setBody(doc)); SomeDocument doc2 = o.getBody(SomeDocument.class); assertNotNull(doc2); assertEquals(4, doc2.value); }
private void sendEnhanceRequest(Object body, EndpointAllocationTaskState currentState) { sendRequest(Operation.createPatch(currentState.adapterReference).setBody(body) .setCompletion((o, e) -> { if (e != null) { logWarning( "PATCH to endpoint config adapter service %s, failed: %s", o.getUri(), e.toString()); sendFailurePatch(this, currentState, e); return; } })); }
private void handleDocumentTemplateRequest(Operation op) { if (op.getAction() != Action.GET) { op.fail(new NotActiveException()); return; } ServiceDocument template = this.parent.getDocumentTemplate(); String serializedTemplate = Utils.toJsonHtml(template); op.setBody(serializedTemplate).complete(); }