summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2023-05-23 13:45:47 +0200
committerGitHub <noreply@github.com>2023-05-23 13:45:47 +0200
commitcdda3f7d16c59c8bd61b8779e15f67cecff3f588 (patch)
tree3bf9426699c16d63353f3e814a680ca14ae54d5c
parent86915619e7e3a55f861bd263c6921fa26f614701 (diff)
parentfc89391783dbff7d462b3cbfd364e5f4b6c953ce (diff)
Merge pull request #27184 from vespa-engine/jonmv/update-equals-for-dep-spec
Update DeploymentSpec hashcode and deployable hashcode
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java27
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java11
2 files changed, 35 insertions, 3 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java b/config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java
index 7464373df9e..bfd39fb66a5 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java
@@ -6,6 +6,7 @@ import java.time.Duration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@@ -87,6 +88,19 @@ public class Bcp {
public static Bcp empty() { return empty; }
@Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Bcp bcp = (Bcp) o;
+ return defaultDeadline.equals(bcp.defaultDeadline) && groups.equals(bcp.groups);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(defaultDeadline, groups);
+ }
+
+ @Override
public String toString() {
if (isEmpty()) return "empty BCP";
return "BCP of " +
@@ -117,6 +131,19 @@ public class Bcp {
public Duration deadline() { return deadline; }
@Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Group group = (Group) o;
+ return members.equals(group.members) && memberRegions.equals(group.memberRegions) && deadline.equals(group.deadline);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(members, memberRegions, deadline);
+ }
+
+ @Override
public String toString() {
return "BCP group of " + members;
}
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java
index bd5056deec6..ac36e8e6c4d 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java
@@ -315,22 +315,27 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps {
steps().equals(other.steps()) &&
athenzService.equals(other.athenzService) &&
notifications.equals(other.notifications) &&
- endpoints.equals(other.endpoints);
+ endpoints.equals(other.endpoints) &&
+ zoneEndpoints.equals(other.zoneEndpoints) &&
+ bcp.equals(other.bcp) &&
+ tags.equals(other.tags);
}
@Override
public int hashCode() {
- return Objects.hash(globalServiceId, upgradePolicy, revisionTarget, upgradeRollout, changeBlockers, steps(), athenzService, notifications, endpoints);
+ return Objects.hash(globalServiceId, upgradePolicy, revisionTarget, upgradeRollout, changeBlockers, steps(), athenzService, notifications, endpoints, zoneEndpoints, bcp, tags);
}
int deployableHashCode() {
List<DeploymentSpec.DeclaredZone> zones = zones().stream().filter(zone -> zone.concerns(prod)).toList();
- Object[] toHash = new Object[zones.size() + 4];
+ Object[] toHash = new Object[zones.size() + 6];
int i = 0;
toHash[i++] = name;
toHash[i++] = endpoints;
+ toHash[i++] = zoneEndpoints;
toHash[i++] = globalServiceId;
toHash[i++] = tags;
+ toHash[i++] = bcp;
for (DeploymentSpec.DeclaredZone zone : zones)
toHash[i++] = Objects.hash(zone, zone.athenzService());