@Override public boolean sshAgent(AgentFilter agentFilter, String command) { URI uri = agentFilter.toUri(uriBuilderFrom(coordinatorUri).replacePath("v1/admin/agent")); Request request = RequestBuilder.prepareGet().setUri(uri).build(); List<AgentStatusRepresentation> agents = client.execute(request, createJsonResponseHandler(AGENTS_CODEC)); if (agents.isEmpty()) { return false; } Exec.execRemote(agents.get(0).getExternalHost(), command); return true; }
@Override public CommanderResponse<List<AgentStatusRepresentation>> showAgents(AgentFilter agentFilter) { URI uri = agentFilter.toUri(uriBuilderFrom(coordinatorUri).replacePath("v1/admin/agent")); Request request = RequestBuilder.prepareGet().setUri(uri).build(); JsonResponse<List<AgentStatusRepresentation>> response = client.execute(request, createFullJsonResponseHandler(AGENTS_CODEC)); if (response.getStatusCode() != 200) { throw new RuntimeException(response.getStatusMessage()); } return CommanderResponse.createCommanderResponse( response.getHeader(GALAXY_AGENTS_VERSION_HEADER), response.getValue()); }
@Override public List<SlotStatusRepresentation> install( AgentFilter agentFilter, int count, Assignment assignment, String expectedVersion) { URI uri = agentFilter.toUri( uriBuilderFrom(coordinatorUri) .replacePath("/v1/slot") .addParameter("limit", String.valueOf(count))); RequestBuilder requestBuilder = RequestBuilder.preparePost() .setUri(uri) .setHeader("Content-Type", "application/json") .setBodyGenerator( jsonBodyGenerator(ASSIGNMENT_CODEC, AssignmentRepresentation.from(assignment))); if (expectedVersion != null) { requestBuilder.setHeader(GALAXY_SLOTS_VERSION_HEADER, expectedVersion); } List<SlotStatusRepresentation> slots = client.execute(requestBuilder.build(), createJsonResponseHandler(SLOTS_CODEC)); return slots; }