aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java9
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java11
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java24
3 files changed, 26 insertions, 18 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java b/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java
index 42333ea7662..7b99b19a9af 100644
--- a/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java
+++ b/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java
@@ -43,15 +43,6 @@ public class XmlPreProcessor {
private final Tags tags;
private final List<PreProcessor> chain;
- // TODO: Remove after November 2022
- public XmlPreProcessor(File applicationDir,
- File xmlInput,
- InstanceName instance,
- Environment environment,
- RegionName region) throws IOException {
- this(applicationDir, new FileReader(xmlInput), instance, environment, region, Tags.empty());
- }
-
public XmlPreProcessor(File applicationDir,
File xmlInput,
InstanceName instance,
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
index e61ea01a99a..2d91f811e8b 100644
--- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
+++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
@@ -11,7 +11,10 @@ import com.yahoo.config.application.api.ApplicationMetaData;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.application.api.ComponentInfo;
import com.yahoo.config.application.api.DeployLogger;
+import com.yahoo.config.application.api.DeploymentInstanceSpec;
+import com.yahoo.config.application.api.DeploymentSpec;
import com.yahoo.config.application.api.UnparsedConfigDefinition;
+import com.yahoo.config.application.api.xml.DeploymentSpecXmlReader;
import com.yahoo.config.codegen.DefParser;
import com.yahoo.config.model.application.AbstractApplicationPackage;
import com.yahoo.config.provision.ApplicationId;
@@ -582,12 +585,16 @@ public class FilesApplicationPackage extends AbstractApplicationPackage {
private void preprocessXML(File destination, File inputXml, Zone zone) throws IOException {
if ( ! inputXml.exists()) return;
try {
+ InstanceName instance = metaData.getApplicationId().instance();
Document document = new XmlPreProcessor(appDir,
inputXml,
- metaData.getApplicationId().instance(),
+ instance,
zone.environment(),
zone.region(),
- metaData.getTags())
+ getDeployment().map(new DeploymentSpecXmlReader(false)::read)
+ .flatMap(spec -> spec.instance(instance))
+ .map(DeploymentInstanceSpec::tags)
+ .orElse(Tags.empty()))
.run();
try (FileOutputStream outputStream = new FileOutputStream(destination)) {
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
index 6589d9d721a..7629fdd8bfd 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
@@ -11,7 +11,9 @@ import com.yahoo.config.application.XmlPreProcessor;
import com.yahoo.config.application.api.ApplicationMetaData;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.application.api.DeployLogger;
+import com.yahoo.config.application.api.DeploymentInstanceSpec;
import com.yahoo.config.application.api.FileRegistry;
+import com.yahoo.config.application.api.xml.DeploymentSpecXmlReader;
import com.yahoo.config.model.api.ConfigDefinitionRepo;
import com.yahoo.config.model.api.ContainerEndpoint;
import com.yahoo.config.model.api.EndpointCertificateMetadata;
@@ -24,6 +26,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.AthenzDomain;
import com.yahoo.config.provision.CloudAccount;
import com.yahoo.config.provision.DockerImage;
+import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.Tags;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.jdisc.secretstore.SecretStore;
@@ -267,11 +270,17 @@ public class SessionPreparer {
File hostsXml = applicationPackage.getFileReference(Path.fromString("hosts.xml"));
// Validate after doing our own preprocessing on these two files
- if(servicesXml.exists()) {
- vespaPreprocess(applicationPackageDir.getAbsoluteFile(), servicesXml, applicationPackage.getMetaData());
+ ApplicationMetaData meta = applicationPackage.getMetaData();
+ InstanceName instance = meta.getApplicationId().instance();
+ Tags tags = applicationPackage.getDeployment().map(new DeploymentSpecXmlReader(false)::read)
+ .flatMap(spec -> spec.instance(instance))
+ .map(DeploymentInstanceSpec::tags)
+ .orElse(Tags.empty());
+ if (servicesXml.exists()) {
+ vespaPreprocess(applicationPackageDir.getAbsoluteFile(), servicesXml, meta, tags);
}
- if(hostsXml.exists()) {
- vespaPreprocess(applicationPackageDir.getAbsoluteFile(), hostsXml, applicationPackage.getMetaData());
+ if (hostsXml.exists()) {
+ vespaPreprocess(applicationPackageDir.getAbsoluteFile(), hostsXml, meta, tags);
}
if (zone.system().isPublic()) {
@@ -315,14 +324,15 @@ public class SessionPreparer {
}
}
- void vespaPreprocess(File appDir, File inputXml, ApplicationMetaData metaData) {
+ void vespaPreprocess(File appDir, File inputXml, ApplicationMetaData metaData, Tags tags) {
try {
+ InstanceName instance = metaData.getApplicationId().instance();
new XmlPreProcessor(appDir,
inputXml,
- metaData.getApplicationId().instance(),
+ instance,
zone.environment(),
zone.region(),
- metaData.getTags())
+ tags)
.run();
} catch (ParserConfigurationException | IOException | SAXException | TransformerException e) {
throw new RuntimeException(e);