summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-03-19 14:35:05 +0100
committerMartin Polden <mpolden@mpolden.no>2021-03-19 14:35:05 +0100
commit3cf0ec7c225e3b52460921fb5adf1569f04faa9b (patch)
tree294ddba0289ca5ac37004b77768a70faa3bcbf52 /controller-server
parente99fbb9596991f1a84179c8f75c8805bc14f6ba8 (diff)
Implement equals/hashCode in Deployment
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Deployment.java19
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentActivity.java13
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentMetrics.java19
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/QuotaUsage.java15
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java10
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));