Skip to content

Commit 1ddcbda

Browse files
authored
Merge pull request #34239 from vespa-engine/evgiz/add-deployment-spec-concerned-environments
Add deployment spec concerned environments
2 parents e00d4ab + 25edffd commit 1ddcbda

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

config-model-api/abi-spec.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,7 @@
514514
"public boolean isEmpty()",
515515
"public java.util.Optional majorVersion()",
516516
"public java.util.List steps()",
517+
"public java.util.Set concernedEnvironments()",
517518
"public java.util.Optional athenzDomain()",
518519
"public java.util.Optional athenzService()",
519520
"public java.util.Optional athenzService(com.yahoo.config.provision.InstanceName, com.yahoo.config.provision.Environment, com.yahoo.config.provision.RegionName)",
@@ -1918,4 +1919,4 @@
19181919
"public final java.lang.String serviceName"
19191920
]
19201921
}
1921-
}
1922+
}

config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,16 @@
1919
import java.io.Reader;
2020
import java.time.Duration;
2121
import java.util.Arrays;
22+
import java.util.Collection;
2223
import java.util.Collections;
2324
import java.util.Comparator;
2425
import java.util.List;
2526
import java.util.Map;
2627
import java.util.Objects;
2728
import java.util.Optional;
29+
import java.util.Set;
2830
import java.util.StringJoiner;
31+
import java.util.stream.Collectors;
2932
import java.util.stream.Stream;
3033

3134
import static java.util.stream.Collectors.joining;
@@ -179,6 +182,14 @@ private void validateApplicationEndpoints() {
179182
/** Returns the deployment steps of this in the order they will be performed */
180183
public List<Step> steps() { return steps; }
181184

185+
/** Returns the set of unique environments concerned by this deployment spec */
186+
public Set<Environment> concernedEnvironments() {
187+
return steps.stream().map(Step::zones)
188+
.flatMap(Collection::stream)
189+
.map(DeclaredZone::environment)
190+
.collect(Collectors.toSet());
191+
}
192+
182193
/** Returns the Athenz domain set on the root tag, if any */
183194
public Optional<AthenzDomain> athenzDomain() { return athenzDomain; }
184195

0 commit comments

Comments
 (0)