diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-09-06 09:26:19 +0200 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-09-10 11:17:22 +0200 |
commit | 2fa6e7bf394d85aad43629742dcb1fb328172202 (patch) | |
tree | c1b50a07c525c98ce47564ae22b4f4fa83d52a23 /configserver | |
parent | e77990f8f3ebd5b73d4b7f3a51e90105244df4eb (diff) |
Keep session version also for tester containers, in dev.
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java | 11 | ||||
-rw-r--r-- | configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java | 24 |
2 files changed, 21 insertions, 14 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index a8b4844ca43..053a36dfe75 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -691,13 +691,14 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye } /** Returns version to use when deploying application in given environment */ - static Version decideVersion(ApplicationId application, Environment environment, Version targetVersion, boolean bootstrap) { - if (environment.isManuallyDeployed() && - !"hosted-vespa".equals(application.tenant().value()) && // Never change version of system applications - !bootstrap) { // Do not use current version when bootstrapping config server + static Version decideVersion(ApplicationId application, Environment environment, Version sessionVersion, boolean bootstrap) { + if ( environment.isManuallyDeployed() + && ! "hosted-vespa".equals(application.tenant().value()) // Never change version of system applications + && ! application.instance().value().endsWith("-t") // Never upgrade tester containers + && ! bootstrap) { // Do not use current version when bootstrapping config server return Vtag.currentVersion; } - return targetVersion; + return sessionVersion; } public Slime createDeployLog() { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java index d9a653a1dc2..a5e76262f48 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java @@ -135,19 +135,25 @@ public class ApplicationRepositoryTest { public void decideVersion() { ApplicationId regularApp = ApplicationId.from("tenant1", "application1", "default"); ApplicationId systemApp = ApplicationId.from("hosted-vespa", "routing", "default"); - Version targetVersion = Version.fromString("5.0"); + ApplicationId testerApp = ApplicationId.from("tenant1", "application1", "default-t"); + Version sessionVersion = Version.fromString("5.0"); - // Always use target for system application - assertEquals(targetVersion, ApplicationRepository.decideVersion(systemApp, Environment.prod, targetVersion, false)); - assertEquals(targetVersion, ApplicationRepository.decideVersion(systemApp, Environment.dev, targetVersion, false)); - assertEquals(targetVersion, ApplicationRepository.decideVersion(systemApp, Environment.perf, targetVersion, false)); + // Always use session version for system application + assertEquals(sessionVersion, ApplicationRepository.decideVersion(systemApp, Environment.prod, sessionVersion, false)); + assertEquals(sessionVersion, ApplicationRepository.decideVersion(systemApp, Environment.dev, sessionVersion, false)); + assertEquals(sessionVersion, ApplicationRepository.decideVersion(systemApp, Environment.perf, sessionVersion, false)); + + // Always use session version for tester application + assertEquals(sessionVersion, ApplicationRepository.decideVersion(testerApp, Environment.prod, sessionVersion, false)); + assertEquals(sessionVersion, ApplicationRepository.decideVersion(testerApp, Environment.dev, sessionVersion, false)); + assertEquals(sessionVersion, ApplicationRepository.decideVersion(testerApp, Environment.perf, sessionVersion, false)); // Target for regular application depends on environment - assertEquals(targetVersion, ApplicationRepository.decideVersion(regularApp, Environment.prod, targetVersion, false)); - assertEquals(Vtag.currentVersion, ApplicationRepository.decideVersion(regularApp, Environment.dev, targetVersion, false)); + assertEquals(sessionVersion, ApplicationRepository.decideVersion(regularApp, Environment.prod, sessionVersion, false)); + assertEquals(Vtag.currentVersion, ApplicationRepository.decideVersion(regularApp, Environment.dev, sessionVersion, false)); // If bootstrap, version should be target version - assertEquals(targetVersion, ApplicationRepository.decideVersion(regularApp, Environment.dev, targetVersion, true)); - assertEquals(Vtag.currentVersion, ApplicationRepository.decideVersion(regularApp, Environment.perf, targetVersion, false)); + assertEquals(sessionVersion, ApplicationRepository.decideVersion(regularApp, Environment.dev, sessionVersion, true)); + assertEquals(Vtag.currentVersion, ApplicationRepository.decideVersion(regularApp, Environment.perf, sessionVersion, false)); } @Test |