public String apply(CoordinatorStatus input) { return input.getCoordinatorId(); } };
@Override public boolean apply(@Nullable CoordinatorStatus coordinatorStatus) { return uuid.equals(coordinatorStatus.getCoordinatorId()); } }
private List<ListenableFuture<?>> updateAllCoordinators() { Set<String> instanceIds = newHashSet(); for (Instance instance : this.provisioner.listCoordinators()) { instanceIds.add(instance.getInstanceId()); // skip this server since it is automatically managed if (instance.getInstanceId().equals(this.coordinatorStatus.getInstanceId())) { continue; } RemoteCoordinator remoteCoordinator = remoteCoordinatorFactory.createRemoteCoordinator(instance, instance.getInternalUri() != null ? CoordinatorLifecycleState.ONLINE : CoordinatorLifecycleState.OFFLINE); RemoteCoordinator existing = coordinators.putIfAbsent(instance.getInstanceId(), remoteCoordinator); if (existing != null) { existing.setInternalUri(instance.getInternalUri()); } } // add provisioning coordinators to provisioner list for (RemoteCoordinator remoteCoordinator : coordinators.values()) { if (remoteCoordinator.status().getState() == CoordinatorLifecycleState.PROVISIONING) { instanceIds.add(coordinatorStatus.getCoordinatorId()); } } // remove any coordinators in the provisioner list coordinators.keySet().retainAll(instanceIds); List<ListenableFuture<?>> futures = new ArrayList<>(); for (RemoteCoordinator remoteCoordinator : coordinators.values()) { futures.add(remoteCoordinator.updateStatus()); } return futures; }
public CoordinatorStatusRepresentation create(CoordinatorStatus status) { return new CoordinatorStatusRepresentation( status.getCoordinatorId(), safeTruncate(status.getCoordinatorId(), shortIdPrefixSize), status.getInstanceId(), status.getState(), status.getInternalUri(), status.getExternalUri(), status.getLocation(), trimLeadingSegments(status.getLocation(), '/', commonLocationParts), status.getInstanceType(), status.getVersion()); } }
@Test public void testGetCoordinatorsDefault() throws Exception { // update the coordinator and verify assertEquals(coordinator.getCoordinators().size(), 1); CoordinatorStatus actual = coordinator.getCoordinators().get(0); 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.getInternalUri(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri()); }
@Test public void testStatus() throws Exception { CoordinatorStatus actual = coordinator.status(); 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.getInternalUri(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri()); }
@Test public void testGetCoordinatorsDefault() throws Exception { // update the coordinator and verify assertEquals(coordinator.getCoordinators().size(), 1); CoordinatorStatus actual = coordinator.getCoordinators().get(0); 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.getInternalUri(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri()); }
@Test public void testStatus() throws Exception { CoordinatorStatus actual = coordinator.status(); 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.getInternalUri(), 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()); }
@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.getCoordinatorId(), coordinatorId); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE); assertEquals(actual.getInstanceId(), instanceId);
assertEquals(actual.getCoordinatorId(), coordinatorId); assertEquals(actual.getState(), CoordinatorLifecycleState.ONLINE); assertEquals(actual.getInstanceId(), instanceId);
assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertEquals(coordinator.getCoordinator(instanceId).getCoordinatorId(), coordinatorStatus.getCoordinatorId()); assertEquals(coordinator.getCoordinator(instanceId).getInternalUri(), coordinatorStatus.getInternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getExternalUri(), coordinatorStatus.getExternalUri()); assertEquals(actual.getInstanceType(), instanceType); assertEquals(actual.getLocation(), location); assertEquals(actual.getCoordinatorId(), coordinatorStatus.getCoordinatorId()); assertEquals(actual.getSelf(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri());
assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertEquals(coordinator.getCoordinator(instanceId).getCoordinatorId(), coordinatorStatus.getCoordinatorId()); assertEquals(coordinator.getCoordinator(instanceId).getInternalUri(), coordinatorStatus.getInternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getExternalUri(), coordinatorStatus.getExternalUri()); assertEquals(actual.getInstanceType(), instanceType); assertEquals(actual.getLocation(), location); assertEquals(actual.getCoordinatorId(), coordinatorStatus.getCoordinatorId()); assertEquals(actual.getSelf(), coordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorStatus.getExternalUri());
assertNotNull(location); assertEquals(coordinators.get(0).getInstanceType(), instanceType); assertNull(coordinators.get(0).getCoordinatorId()); assertNull(coordinators.get(0).getInternalUri()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertNull(coordinator.getCoordinator(instanceId).getCoordinatorId()); assertNull(coordinator.getCoordinator(instanceId).getInternalUri()); assertNull(coordinator.getCoordinator(instanceId).getExternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertNull(coordinator.getCoordinator(instanceId).getCoordinatorId()); assertNull(coordinator.getCoordinator(instanceId).getInternalUri()); assertNull(coordinator.getCoordinator(instanceId).getExternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertEquals(coordinator.getCoordinator(instanceId).getCoordinatorId(), expectedCoordinatorStatus.getCoordinatorId()); assertEquals(coordinator.getCoordinator(instanceId).getInternalUri(), expectedCoordinatorStatus.getInternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getExternalUri(), expectedCoordinatorStatus.getExternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertEquals(coordinator.getCoordinator(instanceId).getCoordinatorId(), expectedCoordinatorStatus.getCoordinatorId()); assertEquals(coordinator.getCoordinator(instanceId).getInternalUri(), expectedCoordinatorStatus.getInternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getExternalUri(), expectedCoordinatorStatus.getExternalUri());
assertNotNull(location); assertEquals(coordinators.get(0).getInstanceType(), instanceType); assertNull(coordinators.get(0).getCoordinatorId()); assertNull(coordinators.get(0).getInternalUri()); assertNull(coordinators.get(0).getExternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertNull(coordinator.getCoordinator(instanceId).getCoordinatorId()); assertNull(coordinator.getCoordinator(instanceId).getInternalUri()); assertNull(coordinator.getCoordinator(instanceId).getExternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertNull(coordinator.getCoordinator(instanceId).getCoordinatorId()); assertNull(coordinator.getCoordinator(instanceId).getInternalUri()); assertNull(coordinator.getCoordinator(instanceId).getExternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertEquals(coordinator.getCoordinator(instanceId).getCoordinatorId(), expectedCoordinatorStatus.getCoordinatorId()); assertEquals(coordinator.getCoordinator(instanceId).getInternalUri(), expectedCoordinatorStatus.getInternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getExternalUri(), expectedCoordinatorStatus.getExternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertEquals(coordinator.getCoordinator(instanceId).getCoordinatorId(), expectedCoordinatorStatus.getCoordinatorId()); assertEquals(coordinator.getCoordinator(instanceId).getInternalUri(), expectedCoordinatorStatus.getInternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getExternalUri(), expectedCoordinatorStatus.getExternalUri());
assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertEquals(coordinator.getCoordinator(instanceId).getCoordinatorId(), expectedCoordinatorStatus.getCoordinatorId()); assertEquals(coordinator.getCoordinator(instanceId).getInternalUri(), expectedCoordinatorStatus.getInternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getExternalUri(), expectedCoordinatorStatus.getExternalUri()); assertEquals(actual.getInstanceType(), instanceType); assertEquals(actual.getLocation(), location); assertEquals(actual.getCoordinatorId(), expectedCoordinatorStatus.getCoordinatorId()); assertEquals(actual.getSelf(), expectedCoordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), expectedCoordinatorStatus.getExternalUri());
assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertEquals(coordinator.getCoordinator(instanceId).getCoordinatorId(), expectedCoordinatorStatus.getCoordinatorId()); assertEquals(coordinator.getCoordinator(instanceId).getInternalUri(), expectedCoordinatorStatus.getInternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getExternalUri(), expectedCoordinatorStatus.getExternalUri()); assertEquals(actual.getInstanceType(), instanceType); assertEquals(actual.getLocation(), location); assertEquals(actual.getCoordinatorId(), expectedCoordinatorStatus.getCoordinatorId()); assertEquals(actual.getSelf(), expectedCoordinatorStatus.getInternalUri()); assertEquals(actual.getExternalUri(), expectedCoordinatorStatus.getExternalUri());
assertEquals(coordinator.getCoordinator(instanceId).getInstanceType(), instanceType); assertEquals(coordinator.getCoordinator(instanceId).getLocation(), location); assertEquals(coordinator.getCoordinator(instanceId).getCoordinatorId(), coordinatorServer.getCoordinator().status().getCoordinatorId()); assertEquals(coordinator.getCoordinator(instanceId).getInternalUri(), coordinatorServer.getInstance().getInternalUri()); assertEquals(coordinator.getCoordinator(instanceId).getExternalUri(), coordinatorServer.getInstance().getExternalUri()); assertEquals(actual.getInstanceType(), instanceType); assertEquals(actual.getLocation(), location); assertEquals(actual.getCoordinatorId(), coordinatorServer.getCoordinator().status().getCoordinatorId()); assertEquals(actual.getSelf(), coordinatorServer.getInstance().getInternalUri()); assertEquals(actual.getExternalUri(), coordinatorServer.getInstance().getExternalUri());
@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()); }