@Override public void writeExternal(ObjectOutput out) throws IOException { out.writeInt(type.ordinal()); out.writeUTF(name); out.writeUTF(host); out.writeInt(port); out.writeLong(startedAt); }
@Override public void readExternal(ObjectInput in) throws IOException { this.type = Type.values()[in.readInt()]; this.name = in.readUTF(); this.host = in.readUTF(); this.port = in.readInt(); this.startedAt = in.readLong(); }
private static System.Node toNode(NodeHealth nodeHealth, System.Node.Builder nodeBuilder, System.Cause.Builder causeBuilder) { nodeBuilder.clear(); nodeBuilder.setHealth(System.Health.valueOf(nodeHealth.getStatus().name())); nodeHealth.getCauses().forEach(str -> nodeBuilder.addCauses(toCause(str, causeBuilder))); NodeDetails details = nodeHealth.getDetails(); nodeBuilder .setType(System.NodeType.valueOf(details.getType().name())) .setName(details.getName()) .setHost(details.getHost()) .setPort(details.getPort()) .setStartedAt(formatDateTime(details.getStartedAt())); return nodeBuilder.build(); }
@Test public void response_contains_information_of_nodes_when_clustered() { authenticateWithRandomMethod(); NodeHealth nodeHealth = randomNodeHealth(); when(webServer.isStandalone()).thenReturn(false); when(healthChecker.checkCluster()).thenReturn(new ClusterHealth(GREEN, singleton(nodeHealth))); System.HealthResponse response = underTest.newRequest().executeProtobuf(System.HealthResponse.class); assertThat(response.getNodes().getNodesList()) .hasSize(1); System.Node node = response.getNodes().getNodesList().iterator().next(); assertThat(node.getHealth().name()).isEqualTo(nodeHealth.getStatus().name()); assertThat(node.getCausesList()) .extracting(System.Cause::getMessage) .containsOnly(nodeHealth.getCauses().stream().toArray(String[]::new)); assertThat(node.getName()).isEqualTo(nodeHealth.getDetails().getName()); assertThat(node.getHost()).isEqualTo(nodeHealth.getDetails().getHost()); assertThat(node.getPort()).isEqualTo(nodeHealth.getDetails().getPort()); assertThat(node.getStartedAt()).isEqualTo(formatDateTime(nodeHealth.getDetails().getStartedAt())); assertThat(node.getType().name()).isEqualTo(nodeHealth.getDetails().getType().name()); }
private static System.Node toNode(NodeHealth nodeHealth, System.Node.Builder nodeBuilder, System.Cause.Builder causeBuilder) { nodeBuilder.clear(); nodeBuilder.setHealth(System.Health.valueOf(nodeHealth.getStatus().name())); nodeHealth.getCauses().forEach(str -> nodeBuilder.addCauses(toCause(str, causeBuilder))); NodeDetails details = nodeHealth.getDetails(); nodeBuilder .setType(System.NodeType.valueOf(details.getType().name())) .setName(details.getName()) .setHost(details.getHost()) .setPort(details.getPort()) .setStartedAt(formatDateTime(details.getStartedAt())); return nodeBuilder.build(); }
private String printStatusesAndTypes(@Nullable Set<NodeHealth> nodeHealths) { if (nodeHealths == null) { return "<null>"; } return nodeHealths.stream() // sort by type then status for debugging convenience .sorted(Comparator.<NodeHealth>comparingInt(s1 -> s1.getDetails().getType().ordinal()) .thenComparingInt(s -> s.getStatus().ordinal())) .map(s -> ImmutableList.of(s.getDetails().getType().name(), s.getStatus().name())) .map(String::valueOf) .collect(Collectors.joining(",")); }