private List<AgentStatusRepresentation> waitForAgentsToStart(List<String> instanceIds) { for (int loop = 0; true; loop++) { try { URI uri = uriBuilderFrom(coordinatorUri).replacePath("v1/admin/agent").build(); Request request = RequestBuilder.prepareGet().setUri(uri).build(); List<AgentStatusRepresentation> agents = client.execute(request, createJsonResponseHandler(AGENTS_CODEC)); Map<String, AgentStatusRepresentation> runningAgents = newHashMap(); for (AgentStatusRepresentation agent : agents) { if (agent.getState() == AgentLifecycleState.ONLINE) { runningAgents.put(agent.getInstanceId(), agent); } } if (runningAgents.keySet().containsAll(instanceIds)) { WaitUtils.clearWaitMessage(); runningAgents.keySet().retainAll(instanceIds); return ImmutableList.copyOf(runningAgents.values()); } } catch (Exception ignored) { } WaitUtils.wait(loop); } }