summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-10-04 15:03:23 +0200
committerJon Bratseth <bratseth@verizonmedia.com>2019-10-04 15:03:23 +0200
commit5188586ce3314efd0fffd52a62403e1b371890dd (patch)
treee5b43fe64cb851b240c78e5cca9809c8450c82af /config-model
parent2f95c6b456c6fe12b0f488394439193103c6e1f2 (diff)
Avoid deprecated methods
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidator.java40
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidator.java40
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java10
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidatorTest.java (renamed from config-model/src/test/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidatorTest.java)4
5 files changed, 48 insertions, 48 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidator.java
deleted file mode 100644
index 7757a8d4748..00000000000
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.model.application.validation;
-
-import com.yahoo.config.application.api.DeploymentSpec;
-import com.yahoo.config.model.deploy.DeployState;
-import com.yahoo.vespa.model.VespaModel;
-import com.yahoo.vespa.model.container.ContainerCluster;
-import com.yahoo.vespa.model.container.ContainerModel;
-
-import java.io.Reader;
-import java.util.Optional;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-/**
- * Validates that deployment file (deployment.xml) has valid values (for now
- * only global-service-id is validated)
- *
- * @author hmusum
- */
-public class DeploymentFileValidator extends Validator {
-
- @Override
- public void validate(VespaModel model, DeployState deployState) {
- Optional<Reader> deployment = deployState.getApplicationPackage().getDeployment();
-
- if (deployment.isPresent()) {
- Reader deploymentReader = deployment.get();
- DeploymentSpec deploymentSpec = DeploymentSpec.fromXml(deploymentReader);
- final Optional<String> globalServiceId = deploymentSpec.globalServiceId();
- if (globalServiceId.isPresent()) {
- Set<ContainerCluster> containerClusters = model.getRoot().configModelRepo().getModels(ContainerModel.class).stream().
- map(ContainerModel::getCluster).filter(cc -> cc.getName().equals(globalServiceId.get())).collect(Collectors.toSet());
- if (containerClusters.size() != 1) {
- throw new IllegalArgumentException("global-service-id '" + globalServiceId.get() + "' specified in deployment.xml does not match any container cluster id");
- }
- }
- }
- }
-}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidator.java
new file mode 100644
index 00000000000..ac38336a405
--- /dev/null
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidator.java
@@ -0,0 +1,40 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.model.application.validation;
+
+import com.yahoo.config.application.api.DeploymentInstanceSpec;
+import com.yahoo.config.application.api.DeploymentSpec;
+import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.vespa.model.VespaModel;
+import com.yahoo.vespa.model.container.ContainerModel;
+
+import java.io.Reader;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * Validates that deployment spec (deployment.xml) has valid values (for now
+ * only global-service-id is validated)
+ *
+ * @author hmusum
+ * @author bratseth
+ */
+public class DeploymentSpecValidator extends Validator {
+
+ @Override
+ public void validate(VespaModel model, DeployState deployState) {
+ Optional<Reader> deployment = deployState.getApplicationPackage().getDeployment();
+ if ( deployment.isEmpty()) return;
+
+ Reader deploymentReader = deployment.get();
+ DeploymentSpec deploymentSpec = DeploymentSpec.fromXml(deploymentReader);
+ List<ContainerModel> containers = model.getRoot().configModelRepo().getModels(ContainerModel.class);
+ for (DeploymentInstanceSpec instance : deploymentSpec.instances()) {
+ instance.globalServiceId().ifPresent(globalServiceId -> {
+ if ( containers.stream().noneMatch(container -> container.getCluster().getName().equals(globalServiceId)))
+ throw new IllegalArgumentException("The global-service-id in " + instance + ", '" + globalServiceId +
+ "' specified in deployment.xml does not match any container cluster id");
+ });
+ }
+ }
+
+}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java
index 042c7cc867c..7d0d068f9d6 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java
@@ -53,7 +53,7 @@ public class Validation {
new StreamingValidator().validate(model, deployState);
new RankSetupValidator(validationParameters.ignoreValidationErrors()).validate(model, deployState);
new NoPrefixForIndexes().validate(model, deployState);
- new DeploymentFileValidator().validate(model, deployState);
+ new DeploymentSpecValidator().validate(model, deployState);
new RankingConstantsValidator().validate(model, deployState);
new SecretStoreValidator().validate(model, deployState);
new TlsSecretsValidator().validate(model, deployState);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index f4c7f49a9a0..caf84d88cf4 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -197,7 +197,6 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
addClientProviders(deployState, spec, cluster);
addServerProviders(deployState, spec, cluster);
-
addAthensCopperArgos(cluster, context); // Must be added after nodes.
}
@@ -228,14 +227,15 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
}
private void addRotationProperties(ApplicationContainerCluster cluster, Zone zone, Set<Rotation> rotations, Set<ContainerEndpoint> endpoints, DeploymentSpec spec) {
+ Optional<String> globalServiceId = spec.requireInstance(app.getApplicationId().instance()).globalServiceId();
cluster.getContainers().forEach(container -> {
- setRotations(container, rotations, endpoints, spec.globalServiceId(), cluster.getName());
+ setRotations(container, rotations, endpoints, globalServiceId, cluster.getName());
container.setProp("activeRotation", Boolean.toString(zoneHasActiveRotation(zone, spec)));
});
}
private boolean zoneHasActiveRotation(Zone zone, DeploymentSpec spec) {
- return spec.zones().stream()
+ return spec.requireInstance(app.getApplicationId().instance()).zones().stream()
.anyMatch(declaredZone -> declaredZone.deploysTo(zone.environment(), Optional.of(zone.region())) &&
declaredZone.active());
}
@@ -893,8 +893,8 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
Zone zone,
DeploymentSpec spec) {
spec.athenzDomain().ifPresent(domain -> {
- AthenzService service = spec.athenzService(zone.environment(), zone.region())
- .orElseThrow(() -> new RuntimeException("Missing Athenz service configuration"));
+ AthenzService service = spec.requireInstance(app.getApplicationId().instance()).athenzService(zone.environment(), zone.region())
+ .orElseThrow(() -> new RuntimeException("Missing Athenz service configuration in instance '" + app.getApplicationId().instance() + "'"));
String zoneDnsSuffix = zone.environment().value() + "-" + zone.region().value() + "." + athenzDnsSuffix;
IdentityProvider identityProvider = new IdentityProvider(domain, service, getLoadBalancerName(loadBalancerName, configServerSpecs), ztsUrl, zoneDnsSuffix, zone);
cluster.addComponent(identityProvider);
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidatorTest.java
index 5fc3f815b09..c6d56455d44 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/DeploymentFileValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidatorTest.java
@@ -18,7 +18,7 @@ import static org.junit.Assert.fail;
/**
* @author hmusum
*/
-public class DeploymentFileValidatorTest {
+public class DeploymentSpecValidatorTest {
@Test
public void testDeploymentWithNonExistentGlobalId() throws IOException, SAXException {
@@ -58,7 +58,7 @@ public class DeploymentFileValidatorTest {
try {
final DeployState deployState = builder.build();
VespaModel model = new VespaModel(new NullConfigModelRegistry(), deployState);
- new DeploymentFileValidator().validate(model, deployState);
+ new DeploymentSpecValidator().validate(model, deployState);
fail("Did not get expected exception");
} catch (IllegalArgumentException e) {
assertThat(e.getMessage(), containsString("specified in deployment.xml does not match any container cluster id"));