summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-05-23 13:34:21 +0200
committerjonmv <venstad@gmail.com>2023-05-23 13:34:21 +0200
commitfc89391783dbff7d462b3cbfd364e5f4b6c953ce (patch)
tree1b649e65dee862373a568e494d18a6d35e99e9e0
parent23128f585da2b38d33978c14e80662a183fbe725 (diff)
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());