summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-01-14 12:56:59 +0100
committerMartin Polden <mpolden@mpolden.no>2019-01-14 13:00:47 +0100
commitda315252927ba47ac5d43bdd569c9677fd3408ee (patch)
treee459d2c8002ab04785387801cd8866ffaf50349c
parent7f38b0d10b80fa67d83e36bc737573408de6c289 (diff)
Order reals by hostname
Previous order was non-deterministic and failed on 7 branch.
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancer.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/Real.java7
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/load-balancers.json10
3 files changed, 12 insertions, 8 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancer.java
index 4ac3a839ae1..e59e17815bf 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancer.java
@@ -1,7 +1,6 @@
// 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.lb;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.Ordering;
import com.yahoo.config.provision.HostName;
import com.yahoo.vespa.hosted.provision.maintenance.LoadBalancerExpirer;
@@ -26,7 +25,7 @@ public class LoadBalancer {
this.id = Objects.requireNonNull(id, "id must be non-null");
this.hostname = Objects.requireNonNull(hostname, "hostname must be non-null");
this.ports = Ordering.natural().immutableSortedCopy(requirePorts(ports));
- this.reals = ImmutableList.copyOf(Objects.requireNonNull(reals, "targets must be non-null"));
+ this.reals = Ordering.natural().immutableSortedCopy(Objects.requireNonNull(reals, "targets must be non-null"));
this.inactive = inactive;
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/Real.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/Real.java
index 784d58f103e..b0f8cb7195c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/Real.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/Real.java
@@ -11,7 +11,7 @@ import java.util.Objects;
*
* @author mpolden
*/
-public class Real {
+public class Real implements Comparable<Real> {
private static int defaultPort = 4443;
@@ -77,4 +77,9 @@ public class Real {
}
}
+ @Override
+ public int compareTo(Real that) {
+ return hostname.compareTo(that.hostname());
+ }
+
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/load-balancers.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/load-balancers.json
index c882f7652d8..f20eee059ef 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/load-balancers.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/load-balancers.json
@@ -12,27 +12,27 @@
],
"reals": [
{
- "hostname": "dockerhost4.yahoo.com",
+ "hostname": "dockerhost1.yahoo.com",
"ipAddress": "127.0.0.1",
"port": 4443
},
{
- "hostname": "dockerhost5.yahoo.com",
+ "hostname": "dockerhost2.yahoo.com",
"ipAddress": "127.0.0.1",
"port": 4443
},
{
- "hostname": "dockerhost2.yahoo.com",
+ "hostname": "dockerhost3.yahoo.com",
"ipAddress": "127.0.0.1",
"port": 4443
},
{
- "hostname": "dockerhost3.yahoo.com",
+ "hostname": "dockerhost4.yahoo.com",
"ipAddress": "127.0.0.1",
"port": 4443
},
{
- "hostname": "dockerhost1.yahoo.com",
+ "hostname": "dockerhost5.yahoo.com",
"ipAddress": "127.0.0.1",
"port": 4443
}