diff options
author | jonmv <venstad@gmail.com> | 2022-04-22 14:40:12 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-04-22 14:40:12 +0200 |
commit | 67a57bd6ab92fc8328183bb820c22ed69b34414e (patch) | |
tree | fd9cfe57ff882f5df6d9c6b65bfa9019f73ddb46 /controller-api | |
parent | b297af4e25896f90518e24846a6b00cb3eaa3025 (diff) |
Improve job type sort order
Diffstat (limited to 'controller-api')
-rw-r--r-- | controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java index 2e8e086b0f3..9e14c4ae8dd 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java @@ -17,6 +17,8 @@ import static com.yahoo.config.provision.Environment.perf; import static com.yahoo.config.provision.Environment.prod; import static com.yahoo.config.provision.Environment.staging; import static com.yahoo.config.provision.Environment.test; +import static java.util.Comparator.naturalOrder; +import static java.util.stream.Collectors.toUnmodifiableList; /** * Specification for a deployment and/or test job to run: what zone, and whether it is a production test. @@ -135,7 +137,8 @@ public final class JobType implements Comparable<JobType> { return zones.zones().controllerUpgraded().zones().stream() .flatMap(zone -> zone.getEnvironment().isProduction() ? Stream.of(deploymentTo(zone.getId()), productionTestOf(zone.getId())) : Stream.of(deploymentTo(zone.getId()))) - .collect(Collectors.toUnmodifiableList()); + .sorted(naturalOrder()) + .collect(toUnmodifiableList()); } /** A serialized form of this: {@code <environment>.<region>[.test]}; the inverse of {@link #ofSerialized(String)} */ @@ -180,13 +183,12 @@ public final class JobType implements Comparable<JobType> { return zone.environment(); } - private static final Comparator<JobType> comparator = Comparator.comparing(JobType::environment) - .thenComparing(JobType::isDeployment) - .thenComparing(JobType::jobName); - @Override public int compareTo(JobType other) { - return comparator.compare(this, other); + int result; + if (0 != (result = environment().compareTo(other.environment()))) return -result; + if (0 != (result = zone.region().compareTo(other.zone.region()))) return result; + return Boolean.compare(isProductionTest, other.isProductionTest); } @Override |