aboutsummaryrefslogtreecommitdiffstats
path: root/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-02-21 21:55:10 +0100
committerJon Marius Venstad <venstad@gmail.com>2022-02-22 12:20:27 +0100
commit2aa8213873330a461e9b49ae257d01eb08648495 (patch)
treef56c05271df57e0d06add5ced348b970f11cd08a /config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java
parent96916710a1b46cbed64f15345e56a3a68df235f5 (diff)
Do not roll out new application package with pure deployment orchestration changes
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 + "'";