diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-06-01 01:07:33 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-06-01 01:07:33 +0200 |
commit | f7d0fe5fdfad579e867f01acc1d41b2ec77bd785 (patch) | |
tree | 2c9b2241bf49a01cf84a6fc0e3dd221b08fb30fe /config-application-package | |
parent | 4919fb84be7edc03f7c7feb0080ff0c5f705f654 (diff) |
Separate internal redeploys from application package changes
Separate system internal redeploys from application package
changes such that we can ignore config updates originating
from application package changes if restart on deploy is true,
as the config change will be followed by a restart - but continue
to effect config changes originating from internal system changes
as those will not (and should not) be followed by a restart.
Diffstat (limited to 'config-application-package')
2 files changed, 25 insertions, 9 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java index f48dffecb27..cd13305c009 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java @@ -8,27 +8,37 @@ package com.yahoo.config.model.application.provider; */ public class DeployData { - /* Which user deployed */ + /** Which user deployed */ private final String deployedByUser; - /* Name of application given by user */ + /** Name of application given by user */ private final String applicationName; - /* The absolute path to the directory holding the application */ + /** The absolute path to the directory holding the application */ private final String deployedFromDir; - /* Timestamp when a deployment was made */ + /** Timestamp when a deployment was made */ private final long deployTimestamp; + /** Whether this is an internal redeploy, not caused by an application package change */ + private final boolean internalRedeploy; + /* Application generation. Incremented by one each time an application is deployed. */ private final long generation; private final long currentlyActiveGeneration; - public DeployData(String deployedByUser, String deployedFromDir, String applicationName, Long deployTimestamp, Long generation, long currentlyActiveGeneration) { + public DeployData(String deployedByUser, + String deployedFromDir, + String applicationName, + Long deployTimestamp, + boolean internalRedeploy, + Long generation, + long currentlyActiveGeneration) { this.deployedByUser = deployedByUser; this.deployedFromDir = deployedFromDir; this.applicationName = applicationName; this.deployTimestamp = deployTimestamp; + this.internalRedeploy = internalRedeploy; this.generation = generation; this.currentlyActiveGeneration = currentlyActiveGeneration; } @@ -45,6 +55,8 @@ public class DeployData { return deployTimestamp; } + public boolean isInternalRedeploy() { return internalRedeploy; } + public long getGeneration() { return generation; } 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 9bfcd4ecb6d..8fc871a1aa9 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 @@ -113,9 +113,13 @@ public class FilesApplicationPackage implements ApplicationPackage { } private static ApplicationMetaData metaDataFromDeployData(File appDir, DeployData deployData) { - return new ApplicationMetaData(deployData.getDeployedByUser(), deployData.getDeployedFromDir(), - deployData.getDeployTimestamp(), deployData.getApplicationName(), - computeCheckSum(appDir), deployData.getGeneration(), + return new ApplicationMetaData(deployData.getDeployedByUser(), + deployData.getDeployedFromDir(), + deployData.getDeployTimestamp(), + deployData.isInternalRedeploy(), + deployData.getApplicationName(), + computeCheckSum(appDir), + deployData.getGeneration(), deployData.getCurrentlyActiveGeneration()); } @@ -566,7 +570,7 @@ public class FilesApplicationPackage implements ApplicationPackage { } public static ApplicationMetaData readMetaData(File appDir) { - ApplicationMetaData defaultMetaData = new ApplicationMetaData(appDir, "n/a", "n/a", 0l, "", 0l, 0l); + ApplicationMetaData defaultMetaData = new ApplicationMetaData(appDir, "n/a", "n/a", 0l, false, "", 0l, 0l); File metaFile = new File(appDir, META_FILE_NAME); if (!metaFile.exists()) { return defaultMetaData; |