diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2021-09-13 15:08:15 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2021-09-13 15:08:15 +0200 |
commit | a55f846636764f181c1fcc84f4b9d8e78cee5563 (patch) | |
tree | c2e332a948a8b04b785bc37098a158706b389f60 /node-admin | |
parent | 0dc087bae60085918bd4a01c9fdd68d1ca540f20 (diff) |
Handle null
Diffstat (limited to 'node-admin')
2 files changed, 13 insertions, 12 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java index 0ea9be96fd7..abc779d8a9a 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java @@ -151,6 +151,10 @@ public class RealNodeRepository implements NodeRepository { Optional<NodeMembership> membership = Optional.ofNullable(node.membership) .map(m -> new NodeMembership(m.clusterType, m.clusterId, m.group, m.index, m.retired)); NodeReports reports = NodeReports.fromMap(Optional.ofNullable(node.reports).orElseGet(Map::of)); + List<Event> events = node.history.stream() + .map(event -> new Event(event.agent, event.event, Optional.ofNullable(event.at).map(Instant::ofEpochMilli).orElse(Instant.EPOCH))) + .collect(Collectors.toUnmodifiableList()); + return new NodeSpec( node.hostname, Optional.ofNullable(node.openStackId), @@ -178,7 +182,7 @@ public class RealNodeRepository implements NodeRepository { node.ipAddresses, node.additionalIpAddresses, reports, - node.history.stream().map(event -> new Event(event.agent, event.event, Instant.ofEpochMilli(event.at))).collect(Collectors.toUnmodifiableList()), + events, Optional.ofNullable(node.parentHostname), Optional.ofNullable(node.archiveUri).map(URI::create), Optional.ofNullable(node.exclusiveTo).map(ApplicationId::fromSerializedForm)); diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java index 40d83e6e3fc..4282c67b4cd 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java @@ -202,18 +202,15 @@ public class NodeRepositoryNode { } } + @JsonIgnoreProperties(ignoreUnknown = true) + @JsonInclude(JsonInclude.Include.NON_NULL) public static class Event { - public final String agent; - public final String event; - public final long at; - - public Event(@JsonProperty(value = "agent", required = true) String agent, - @JsonProperty(value = "event", required = true) String event, - @JsonProperty(value = "at", required = true) Long at) { - this.agent = agent; - this.event = event; - this.at = at; - } + @JsonProperty + public String event; + @JsonProperty + public String agent; + @JsonProperty + public Long at; @Override public String toString() { |