diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-01-11 14:15:53 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-01-11 14:15:53 +0100 |
commit | b54f7fceccb90ad25c6a9b8ac462a41d754b607e (patch) | |
tree | df87bafbb856f7949698ab82693caccbb2e06b79 /node-repository | |
parent | 91e630155515d7ba98cf3983ae694ea206ec3870 (diff) |
Sort IP addresses when serializing
Diffstat (limited to 'node-repository')
3 files changed, 8 insertions, 7 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java index 7e518ee1728..442013b8a6a 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java @@ -1,7 +1,7 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision; -import com.google.common.collect.ImmutableSortedSet; +import com.google.common.collect.ImmutableSet; import com.google.common.net.InetAddresses; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterMembership; @@ -77,7 +77,7 @@ public final class Node { Objects.requireNonNull(history, "A null node history is not permitted"); Objects.requireNonNull(type, "A null node type is not permitted"); - this.ipAddresses = ImmutableSortedSet.copyOf(IP.naturalOrder, ipAddresses); + this.ipAddresses = ImmutableSet.copyOf(ipAddresses); this.ipAddressPool = new IP.AddressPool(this, ipAddressPool); this.hostname = hostname; this.parentHostname = parentHostname; diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/IP.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/IP.java index 074a20fc82d..fbc358893e1 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/IP.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/IP.java @@ -1,7 +1,7 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.node; -import com.google.common.collect.ImmutableSortedSet; +import com.google.common.collect.ImmutableSet; import com.google.common.net.InetAddresses; import com.google.common.primitives.UnsignedBytes; import com.yahoo.vespa.hosted.provision.Node; @@ -59,7 +59,7 @@ public class IP { public AddressPool(Node owner, Set<String> addresses) { this.owner = Objects.requireNonNull(owner, "owner must be non-null"); - this.addresses = ImmutableSortedSet.copyOf(naturalOrder, requireAddresses(addresses)); + this.addresses = ImmutableSet.copyOf(requireAddresses(addresses)); } /** @@ -200,9 +200,9 @@ public class IP { /** All IP addresses in this */ public Set<String> addresses() { - ImmutableSortedSet.Builder<String> builder = ImmutableSortedSet.orderedBy(naturalOrder); - builder.add(ipv6Address); + ImmutableSet.Builder<String> builder = ImmutableSet.builder(); ipv4Address.ifPresent(builder::add); + builder.add(ipv6Address); return builder.build(); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java index 1c640a6f074..f96ecc0431a 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java @@ -21,6 +21,7 @@ import com.yahoo.vespa.hosted.provision.node.Agent; import com.yahoo.vespa.hosted.provision.node.Allocation; import com.yahoo.vespa.hosted.provision.node.Generation; import com.yahoo.vespa.hosted.provision.node.History; +import com.yahoo.vespa.hosted.provision.node.IP; import com.yahoo.vespa.hosted.provision.node.Status; import java.io.IOException; @@ -141,7 +142,7 @@ public class NodeSerializer { } private void toSlime(Set<String> ipAddresses, Cursor array) { - ipAddresses.forEach(array::addString); + ipAddresses.stream().sorted(IP.naturalOrder).forEach(array::addString); } // ---------------- Deserialization -------------------------------------------------- |