private List<CoordinatorStatusRepresentation> waitForCoordinatorsToStart(List<String> instanceIds) { for (int loop = 0; true; loop++) { try { URI uri = uriBuilderFrom(coordinatorUri).replacePath("v1/admin/coordinator").build(); Request request = Request.Builder.prepareGet() .setUri(uri) .build(); List<CoordinatorStatusRepresentation> coordinators = client.execute(request, createJsonResponseHandler(COORDINATORS_CODEC)); Map<String, CoordinatorStatusRepresentation> runningCoordinators = newHashMap(); for (CoordinatorStatusRepresentation coordinator : coordinators) { if (coordinator.getState() == CoordinatorLifecycleState.ONLINE) { runningCoordinators.put(coordinator.getInstanceId(), coordinator); } } if (runningCoordinators.keySet().containsAll(instanceIds)) { WaitUtils.clearWaitMessage(); runningCoordinators.keySet().retainAll(instanceIds); return ImmutableList.copyOf(runningCoordinators.values()); } } catch (Exception ignored) { } WaitUtils.wait(loop); } }
private List<CoordinatorStatusRepresentation> waitForCoordinatorsToStart(List<String> instanceIds) { for (int loop = 0; true; loop++) { try { URI uri = uriBuilderFrom(coordinatorUri).replacePath("v1/admin/coordinator").build(); Request request = Request.Builder.prepareGet() .setUri(uri) .build(); List<CoordinatorStatusRepresentation> coordinators = client.execute(request, createJsonResponseHandler(COORDINATORS_CODEC)); Map<String, CoordinatorStatusRepresentation> runningCoordinators = newHashMap(); for (CoordinatorStatusRepresentation coordinator : coordinators) { if (coordinator.getState() == CoordinatorLifecycleState.ONLINE) { runningCoordinators.put(coordinator.getInstanceId(), coordinator); } } if (runningCoordinators.keySet().containsAll(instanceIds)) { WaitUtils.clearWaitMessage(); runningCoordinators.keySet().retainAll(instanceIds); return ImmutableList.copyOf(runningCoordinators.values()); } } catch (Exception ignored) { } WaitUtils.wait(loop); } }
@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.getState(), CoordinatorLifecycleState.ONLINE); assertEquals(actual.getInstanceId(), instanceId); assertEquals(actual.getLocation(), location);
assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE); assertEquals(actual.getInstanceId(), instanceId); assertEquals(actual.getLocation(), location);
assertNull(coordinators.get(0).getSelf()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinators.get(0).getState(), CoordinatorLifecycleState.PROVISIONING); assertEquals(actual.getSelf(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE);
assertNull(coordinators.get(0).getSelf()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinators.get(0).getState(), CoordinatorLifecycleState.PROVISIONING); assertEquals(actual.getSelf(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE);
assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE); assertEquals(actual.getInstanceId(), instanceId); assertEquals(actual.getLocation(), location);
assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE); assertEquals(actual.getInstanceId(), instanceId); assertEquals(actual.getLocation(), location);
assertNull(coordinators.get(0).getSelf()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinators.get(0).getState(), CoordinatorLifecycleState.PROVISIONING); assertEquals(actual.getSelf(), expectedCoordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), expectedCoordinatorStatus.getExternalUri()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE);
assertNull(coordinators.get(0).getSelf()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinators.get(0).getState(), CoordinatorLifecycleState.PROVISIONING); assertEquals(actual.getSelf(), expectedCoordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), expectedCoordinatorStatus.getExternalUri()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE);
return coordinatorStatus.getExternalHost(); case status: return coordinatorStatus.getState(); case location: return coordinatorStatus.getLocation();
assertNull(coordinators.get(0).getSelf()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinators.get(0).getState(), CoordinatorLifecycleState.PROVISIONING); assertEquals(actual.getSelf(), coordinatorServer.getInstance().getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorServer.getInstance().getExternalUri()); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE);
return coordinatorStatus.getExternalHost(); case status: return coordinatorStatus.getState(); case location: return coordinatorStatus.getLocation();
@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()); }