diff options
author | Martin Polden <mpolden@mpolden.no> | 2021-03-19 14:35:05 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2021-03-19 14:35:05 +0100 |
commit | 3cf0ec7c225e3b52460921fb5adf1569f04faa9b (patch) | |
tree | 294ddba0289ca5ac37004b77768a70faa3bcbf52 /controller-server | |
parent | e99fbb9596991f1a84179c8f75c8805bc14f6ba8 (diff) |
Implement equals/hashCode in Deployment
Diffstat (limited to 'controller-server')
5 files changed, 68 insertions, 8 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Deployment.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Deployment.java index 2078b2dfd45..3d17a7f8681 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Deployment.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Deployment.java @@ -72,6 +72,25 @@ public class Deployment { } @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Deployment that = (Deployment) o; + return zone.equals(that.zone) && + applicationVersion.equals(that.applicationVersion) && + version.equals(that.version) && + deployTime.equals(that.deployTime) && + metrics.equals(that.metrics) && + activity.equals(that.activity) && + quota.equals(that.quota); + } + + @Override + public int hashCode() { + return Objects.hash(zone, applicationVersion, version, deployTime, metrics, activity, quota); + } + + @Override public String toString() { return "deployment to " + zone + " of " + applicationVersion + " on version " + version + " at " + deployTime; } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentActivity.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentActivity.java index 03c08509a5e..71f0d64c43a 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentActivity.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentActivity.java @@ -61,6 +61,19 @@ public class DeploymentActivity { activeRate(metrics.writesPerSecond(), lastWritesPerSecond)); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DeploymentActivity that = (DeploymentActivity) o; + return lastQueried.equals(that.lastQueried) && lastWritten.equals(that.lastWritten) && lastQueriesPerSecond.equals(that.lastQueriesPerSecond) && lastWritesPerSecond.equals(that.lastWritesPerSecond); + } + + @Override + public int hashCode() { + return Objects.hash(lastQueried, lastWritten, lastQueriesPerSecond, lastWritesPerSecond); + } + public static DeploymentActivity create(Optional<Instant> queriedAt, Optional<Instant> writtenAt, OptionalDouble lastQueriesPerSecond, OptionalDouble lastWritesPerSecond) { if (queriedAt.isEmpty() && writtenAt.isEmpty()) { diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentMetrics.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentMetrics.java index 7a50184e7a4..094cb9a19b0 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentMetrics.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentMetrics.java @@ -111,6 +111,25 @@ public class DeploymentMetrics { writeLatencyMills, instant, warnings); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DeploymentMetrics that = (DeploymentMetrics) o; + return Double.compare(that.queriesPerSecond, queriesPerSecond) == 0 && + Double.compare(that.writesPerSecond, writesPerSecond) == 0 && + Double.compare(that.documentCount, documentCount) == 0 && + Double.compare(that.queryLatencyMillis, queryLatencyMillis) == 0 && + Double.compare(that.writeLatencyMills, writeLatencyMills) == 0 && + instant.equals(that.instant) && + warnings.equals(that.warnings); + } + + @Override + public int hashCode() { + return Objects.hash(queriesPerSecond, writesPerSecond, documentCount, queryLatencyMillis, writeLatencyMills, instant, warnings); + } + /** Types of deployment warnings. We currently have only one */ public enum Warning { all diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/QuotaUsage.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/QuotaUsage.java index 13384b63c84..1e070d5a66b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/QuotaUsage.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/QuotaUsage.java @@ -1,12 +1,14 @@ // Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.application; +import java.util.Objects; import java.util.OptionalDouble; /** * @author ogronnesby */ public class QuotaUsage { + public static final QuotaUsage none = new QuotaUsage(0.0); private final double rate; @@ -39,6 +41,19 @@ public class QuotaUsage { } @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + QuotaUsage that = (QuotaUsage) o; + return Double.compare(that.rate, rate) == 0; + } + + @Override + public int hashCode() { + return Objects.hash(rate); + } + + @Override public String toString() { return "QuotaUsage{" + "rate=" + rate + diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java index 3bb7cea04e1..2dcf012ac6d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java @@ -161,14 +161,8 @@ public class ApplicationSerializerTest { assertEquals(RotationStatus.EMPTY, serialized.require(id3.instance()).rotationStatus()); assertEquals(2, serialized.require(id1.instance()).deployments().size()); - assertEquals(original.require(id1.instance()).deployments().get(zone1).applicationVersion(), serialized.require(id1.instance()).deployments().get(zone1).applicationVersion()); - assertEquals(original.require(id1.instance()).deployments().get(zone2).applicationVersion(), serialized.require(id1.instance()).deployments().get(zone2).applicationVersion()); - assertEquals(original.require(id1.instance()).deployments().get(zone1).version(), serialized.require(id1.instance()).deployments().get(zone1).version()); - assertEquals(original.require(id1.instance()).deployments().get(zone2).version(), serialized.require(id1.instance()).deployments().get(zone2).version()); - assertEquals(original.require(id1.instance()).deployments().get(zone1).at(), serialized.require(id1.instance()).deployments().get(zone1).at()); - assertEquals(original.require(id1.instance()).deployments().get(zone2).at(), serialized.require(id1.instance()).deployments().get(zone2).at()); - assertEquals(original.require(id1.instance()).deployments().get(zone2).activity().lastQueried().get(), serialized.require(id1.instance()).deployments().get(zone2).activity().lastQueried().get()); - assertEquals(original.require(id1.instance()).deployments().get(zone2).activity().lastWritten().get(), serialized.require(id1.instance()).deployments().get(zone2).activity().lastWritten().get()); + assertEquals(original.require(id1.instance()).deployments().get(zone1), serialized.require(id1.instance()).deployments().get(zone1)); + assertEquals(original.require(id1.instance()).deployments().get(zone2), serialized.require(id1.instance()).deployments().get(zone2)); assertEquals(original.require(id1.instance()).jobPause(JobType.systemTest), serialized.require(id1.instance()).jobPause(JobType.systemTest)); |