Ejemplo n.º 1
0
  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);
    }
  }