summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-01-11 14:15:53 +0100
committerMartin Polden <mpolden@mpolden.no>2019-01-11 14:15:53 +0100
commitb54f7fceccb90ad25c6a9b8ac462a41d754b607e (patch)
treedf87bafbb856f7949698ab82693caccbb2e06b79 /node-repository
parent91e630155515d7ba98cf3983ae694ea206ec3870 (diff)
Sort IP addresses when serializing
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/IP.java8
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java3
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 --------------------------------------------------