public AgentStatusRepresentation create(AgentStatus status) { Builder<SlotStatusRepresentation> builder = ImmutableList.builder(); for (SlotStatus slot : status.getSlotStatuses()) { builder.add(SlotStatusRepresentation.from(slot, Integer.MAX_VALUE, repository)); } return new AgentStatusRepresentation( status.getAgentId(), safeTruncate(status.getAgentId(), shortIdPrefixSize), status.getInstanceId(), status.getState(), status.getInternalUri(), status.getExternalUri(), status.getLocation(), trimLeadingSegments(status.getLocation(), '/', commonLocationParts), status.getInstanceType(), builder.build(), status.getResources(), status.getVersion()); } }
@Override public void updateStatus() { URI internalUri = agentStatus.getInternalUri(); if (internalUri != null) { try { Request request = RequestBuilder.prepareGet() .setUri(uriBuilderFrom(internalUri).replacePath("/v1/agent/").build()) .build(); AgentStatusRepresentation agentStatusRepresentation = httpClient.execute(request, createJsonResponseHandler(agentStatusCodec)); agentStatus = agentStatusRepresentation.toAgentStatus(agentStatus.getInstanceId(), agentStatus.getInstanceType()); return; } catch (Exception ignored) { } } // error talking to agent -- mark agent offline if (agentStatus.getState() != PROVISIONING) { agentStatus = agentStatus.changeState(OFFLINE); agentStatus = agentStatus.changeAllSlotsState(SlotLifecycleState.UNKNOWN); } }