@Override public void execute(Commander commander) throws Exception { List<CoordinatorStatusRepresentation> coordinators = commander.provisionCoordinators(coordinatorConfig, count, instanceType, availabilityZone, ami, keyPair, securityGroup, provisioningScriptsArtifact, !noWait); // add the new coordinators to the config String coordinatorProperty = "environment." + environmentRef + ".coordinator"; for (CoordinatorStatusRepresentation coordinator : coordinators) { URI uri = coordinator.getExternalUri(); if (uri != null) { config.add(coordinatorProperty, uri.toASCIIString()); } } config.save(); displayCoordinators(coordinators); }
@Override public void execute(Commander commander) throws Exception { List<CoordinatorStatusRepresentation> coordinators = commander.provisionCoordinators(coordinatorConfig, count, instanceType, availabilityZone, ami, keyPair, securityGroup, !noWait); // add the new coordinators to the config String coordinatorProperty = "environment." + environmentRef + ".coordinator"; for (CoordinatorStatusRepresentation coordinator : coordinators) { URI uri = coordinator.getExternalUri(); if (uri != null) { config.add(coordinatorProperty, uri.toASCIIString()); } } config.save(); displayCoordinators(coordinators); }
@Override public Instance apply(String coordinatorUri) { URI uri = UriBuilder.fromUri(coordinatorUri).path("/v1/coordinator").build(); Request request = Builder.prepareGet() .setUri(uri) .build(); String hostAndPort = uri.getHost() + ":" + uri.getPort(); try { CoordinatorStatusRepresentation coordinator = httpClient.execute(request, createJsonResponseHandler(coordinatorCodec)); return new Instance(coordinator.getInstanceId(), firstNonNull(coordinator.getInstanceType(), "unknown"), coordinator.getLocation(), coordinator.getSelf(), coordinator.getExternalUri()); } catch (Exception e) { return new Instance(hostAndPort, "unknown", null, uri, uri); } } }));
@Test public void testGetCoordinatorsDefault() { URI requestUri = URI.create("http://localhost/v1/admin/coordinator"); Response response = resource.getAllCoordinators(MockUriInfo.from(requestUri)); assertEquals(response.getStatus(), Response.Status.OK.getStatusCode()); assertNull(response.getMetadata().get("Content-Type")); // content type is set by jersey based on @Produces Iterable<CoordinatorStatusRepresentation> coordinators = (Iterable<CoordinatorStatusRepresentation>) response.getEntity(); assertEquals(Iterables.size(coordinators), 1); CoordinatorStatusRepresentation actual = coordinators.iterator().next(); assertEquals(actual.getCoordinatorId(), coordinatorStatus.getCoordinatorId()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE); assertEquals(actual.getInstanceId(), coordinatorStatus.getInstanceId()); assertEquals(actual.getLocation(), coordinatorStatus.getLocation()); assertEquals(actual.getInstanceType(), coordinatorStatus.getInstanceType()); assertEquals(actual.getSelf(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri()); }
@Test public void testGetCoordinatorsDefault() { URI requestUri = URI.create("http://localhost/v1/admin/coordinator"); Response response = resource.getAllCoordinators(MockUriInfo.from(requestUri)); assertEquals(response.getStatus(), Response.Status.OK.getStatusCode()); assertNull(response.getMetadata().get("Content-Type")); // content type is set by jersey based on @Produces Iterable<CoordinatorStatusRepresentation> coordinators = (Iterable<CoordinatorStatusRepresentation>) response.getEntity(); assertEquals(Iterables.size(coordinators), 1); CoordinatorStatusRepresentation actual = coordinators.iterator().next(); assertEquals(actual.getCoordinatorId(), coordinatorStatus.getCoordinatorId()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE); assertEquals(actual.getInstanceId(), coordinatorStatus.getInstanceId()); assertEquals(actual.getLocation(), coordinatorStatus.getLocation()); assertEquals(actual.getInstanceType(), coordinatorStatus.getInstanceType()); assertEquals(actual.getSelf(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri()); }
assertEquals(actual.getInstanceType(), instanceType); assertEquals(actual.getSelf(), internalUri); assertEquals(actual.getExternalUri(), externalUri);
assertEquals(actual.getInstanceType(), instanceType); assertEquals(actual.getSelf(), internalUri); assertEquals(actual.getExternalUri(), externalUri);
assertEquals(actual.getInstanceType(), instanceType); assertEquals(actual.getSelf(), internalUri); assertEquals(actual.getExternalUri(), externalUri);
assertNull(coordinators.get(0).getCoordinatorId()); assertNull(coordinators.get(0).getSelf()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinators.get(0).getState(), CoordinatorLifecycleState.PROVISIONING); assertEquals(actual.getCoordinatorId(), coordinatorStatus.getCoordinatorId()); assertEquals(actual.getSelf(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE);
assertNull(coordinators.get(0).getCoordinatorId()); assertNull(coordinators.get(0).getSelf()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinators.get(0).getState(), CoordinatorLifecycleState.PROVISIONING); assertEquals(actual.getCoordinatorId(), coordinatorStatus.getCoordinatorId()); assertEquals(actual.getSelf(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE);
assertEquals(actual.getInstanceType(), instanceType); assertEquals(actual.getSelf(), internalUri); assertEquals(actual.getExternalUri(), externalUri);
assertNull(coordinators.get(0).getCoordinatorId()); assertNull(coordinators.get(0).getSelf()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinators.get(0).getState(), CoordinatorLifecycleState.PROVISIONING); assertEquals(actual.getCoordinatorId(), expectedCoordinatorStatus.getCoordinatorId()); assertEquals(actual.getSelf(), expectedCoordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), expectedCoordinatorStatus.getExternalUri()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE);
assertNull(coordinators.get(0).getCoordinatorId()); assertNull(coordinators.get(0).getSelf()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinators.get(0).getState(), CoordinatorLifecycleState.PROVISIONING); assertEquals(actual.getCoordinatorId(), expectedCoordinatorStatus.getCoordinatorId()); assertEquals(actual.getSelf(), expectedCoordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), expectedCoordinatorStatus.getExternalUri()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE);
return coordinatorStatus.getSelf(); case externalUri: return coordinatorStatus.getExternalUri(); default: return null;
assertNull(coordinators.get(0).getCoordinatorId()); assertNull(coordinators.get(0).getSelf()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinators.get(0).getState(), CoordinatorLifecycleState.PROVISIONING); assertEquals(actual.getCoordinatorId(), coordinatorServer.getCoordinator().status().getCoordinatorId()); assertEquals(actual.getSelf(), coordinatorServer.getInstance().getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorServer.getInstance().getExternalUri()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE);
return coordinatorStatus.getSelf(); case externalUri: return coordinatorStatus.getExternalUri(); default: return null;
@Test public void testGetAllCoordinatorsSingle() throws Exception { // directly add a new coordinator and start it List<Instance> instances = provisioner.provisionCoordinators("coordinator:config:1", 1, "instance-type", null, null, null, null, null); assertEquals(instances.size(), 1); CoordinatorServer coordinatorServer = provisioner.getCoordinator(instances.get(0).getInstanceId()); coordinatorServer.start(); coordinator.updateAllCoordinatorsAndWait(); // verify coordinator appears Request request = Request.Builder.prepareGet() .setUri(coordinatorUriBuilder().appendPath("/v1/admin/coordinator").build()) .build(); List<CoordinatorStatusRepresentation> coordinators = httpClient.execute(request, createJsonResponseHandler(coordinatorStatusesCodec, Status.OK.getStatusCode())); CoordinatorStatusRepresentation actual = getNonMainCoordinator(coordinators); assertEquals(actual.getCoordinatorId(), coordinatorServer.getCoordinator().status().getCoordinatorId()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE); assertEquals(actual.getInstanceId(), coordinatorServer.getInstance().getInstanceId()); assertEquals(actual.getLocation(), coordinatorServer.getInstance().getLocation()); assertEquals(actual.getInstanceType(), coordinatorServer.getInstance().getInstanceType()); assertEquals(actual.getSelf(), coordinatorServer.getInstance().getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorServer.getInstance().getExternalUri()); }