summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2019-02-01 10:59:07 +0100
committerGitHub <noreply@github.com>2019-02-01 10:59:07 +0100
commit809e726cb714fd357eec4de4553e0b5d331423ba (patch)
tree8418cd318e05ba8e605a8ffaed21acf2fc647e95
parentf8c80ad311b6136711d2925bb751a55fe1cf75bb (diff)
parent74cfd1f7eef8a9eb78fbf8f049b4df27713e3831 (diff)
Merge pull request #8326 from vespa-engine/jvenstad/upgrade-within-majors-in-dev
Upgrade in dev/perf when old session is on same major MERGEOK
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java6
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java13
2 files changed, 10 insertions, 9 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 16244dd62f3..6aa5ad81309 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
@@ -707,13 +707,13 @@ 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 sessionVersion, boolean bootstrap) {
- // TODO jvenstad: Re-enable when 7 is forced, or replace with more proper mechanism, using deployment orchestration.
- /*if ( environment.isManuallyDeployed()
+ if ( environment.isManuallyDeployed()
+ && sessionVersion.getMajor() == Vtag.currentVersion.getMajor()
&& ! "hosted-vespa".equals(application.tenant().value()) // Never change version of system applications
&& ! application.instance().isTester() // Never upgrade tester containers
&& ! bootstrap) { // Do not use current version when bootstrapping config server
return Vtag.currentVersion;
- }*/
+ }
return sessionVersion;
}
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 467f4cc84e8..ad25777cdf8 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
@@ -171,7 +171,8 @@ public class ApplicationRepositoryTest {
ApplicationId regularApp = ApplicationId.from("tenant1", "application1", "default");
ApplicationId systemApp = ApplicationId.from("hosted-vespa", "routing", "default");
ApplicationId testerApp = ApplicationId.from("tenant1", "application1", "default-t");
- Version sessionVersion = Version.fromString("5.0");
+ Version sessionVersion = new Version(Vtag.currentVersion.getMajor(), 0);
+ Version oldSessionVersion = Version.fromString("5.0");
// Always use session version for system application
assertEquals(sessionVersion, ApplicationRepository.decideVersion(systemApp, Environment.prod, sessionVersion, false));
@@ -183,14 +184,14 @@ public class ApplicationRepositoryTest {
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
+ // Target for regular application depends on environment and major compatibility
assertEquals(sessionVersion, ApplicationRepository.decideVersion(regularApp, Environment.prod, sessionVersion, false));
- assertEquals(sessionVersion, ApplicationRepository.decideVersion(regularApp, Environment.dev, sessionVersion, false));
- // assertEquals(Vtag.currentVersion, ApplicationRepository.decideVersion(regularApp, Environment.dev, sessionVersion, false));
+ assertEquals(Vtag.currentVersion, ApplicationRepository.decideVersion(regularApp, Environment.dev, sessionVersion, false));
+ assertEquals(oldSessionVersion, ApplicationRepository.decideVersion(regularApp, Environment.dev, oldSessionVersion, false));
+
// If bootstrap, version should be target version
assertEquals(sessionVersion, ApplicationRepository.decideVersion(regularApp, Environment.dev, sessionVersion, true));
- assertEquals(sessionVersion, ApplicationRepository.decideVersion(regularApp, Environment.perf, sessionVersion, false));
- // assertEquals(Vtag.currentVersion, ApplicationRepository.decideVersion(regularApp, Environment.perf, sessionVersion, false));
+ assertEquals(Vtag.currentVersion, ApplicationRepository.decideVersion(regularApp, Environment.perf, sessionVersion, false));
}
@Test