summaryrefslogtreecommitdiffstats
path: root/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java')
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java20
1 files changed, 20 insertions, 0 deletions
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 e701f3903cb..677933f3b85 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
@@ -9,14 +9,21 @@ import com.yahoo.config.provision.RegionName;
import java.time.Duration;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
+import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import static com.yahoo.config.provision.Environment.prod;
+import static java.util.stream.Collectors.toList;
+import static java.util.stream.Collectors.toSet;
+
/**
* The deployment spec for an application instance
*
@@ -224,6 +231,19 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps {
return Objects.hash(globalServiceId, upgradePolicy, revisionTarget, upgradeRollout, changeBlockers, steps(), athenzService, notifications, endpoints);
}
+ int deployableHashCode() {
+ List<DeploymentSpec.DeclaredZone> zones = zones().stream().filter(zone -> zone.concerns(prod)).collect(toList());
+ Object[] toHash = new Object[zones.size() + 3];
+ int i = 0;
+ toHash[i++] = name;
+ toHash[i++] = endpoints;
+ toHash[i++] = globalServiceId;
+ for (DeploymentSpec.DeclaredZone zone : zones)
+ toHash[i++] = Objects.hash(zone, zone.athenzService());
+
+ return Arrays.hashCode(toHash);
+ }
+
@Override
public String toString() {
return "instance '" + name + "'";