You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2015/07/15 21:43:01 UTC

ambari git commit: AMBARI-12425. Manual Stack Upgrade - Unable to set current after upgrade from 2.2 -> 2.3 (dlysnichenko)

Repository: ambari
Updated Branches:
  refs/heads/branch-2.1 a6633c080 -> 8bc45af45


AMBARI-12425. Manual Stack Upgrade - Unable to set current after upgrade from 2.2 -> 2.3 (dlysnichenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/8bc45af4
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/8bc45af4
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/8bc45af4

Branch: refs/heads/branch-2.1
Commit: 8bc45af45598d92c729f6154e4b7e473c3c73441
Parents: a6633c0
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Wed Jul 15 22:42:19 2015 +0300
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Wed Jul 15 22:42:19 2015 +0300

----------------------------------------------------------------------
 .../internal/ClusterStackVersionResourceProvider.java   | 12 +++++++++++-
 .../ClusterStackVersionResourceProviderTest.java        |  4 ++++
 2 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/8bc45af4/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
index 03b98af..8f50004 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
@@ -61,6 +61,7 @@ import org.apache.ambari.server.orm.dao.ClusterDAO;
 import org.apache.ambari.server.orm.dao.ClusterVersionDAO;
 import org.apache.ambari.server.orm.dao.HostVersionDAO;
 import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
+import org.apache.ambari.server.orm.dao.StackDAO;
 import org.apache.ambari.server.orm.entities.ClusterEntity;
 import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
 import org.apache.ambari.server.orm.entities.HostEntity;
@@ -146,6 +147,9 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
   private static HostVersionDAO hostVersionDAO;
 
   @Inject
+  private static StackDAO stackDAO;
+
+  @Inject
   private static RepositoryVersionDAO repositoryVersionDAO;
 
   @Inject
@@ -529,6 +533,13 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
       LOG.info("Initiating finalization for manual upgrade to version {} for cluster {}",
               desiredRepoVersion, clName);
 
+      // First, set desired cluster stack version to enable cross-stack upgrade
+      StackId stackId = rve.getStackId();
+      ClusterEntity cluster = clusterDAO.findByName(clName);
+      StackEntity stackEntity = stackDAO.find(stackId.getStackName(), stackId.getStackVersion());
+      cluster.setDesiredStack(stackEntity);
+      clusterDAO.merge(cluster);
+
       Map<String, String> args = new HashMap<String, String>();
       if (newStateStr.equals(RepositoryVersionState.CURRENT.toString())) {
         // Finalize upgrade workflow
@@ -543,7 +554,6 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
       }
 
       // Get a host name to populate the hostrolecommand table's hostEntity.
-      ClusterEntity cluster = clusterDAO.findByName(clName);
       String defaultHostName = null;
       List<HostEntity> hosts = new ArrayList(cluster.getHostEntities());
       if (hosts != null && !hosts.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/8bc45af4/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
index db3eca7..1dfa2fb 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
@@ -91,6 +91,7 @@ import com.google.inject.Injector;
 import com.google.inject.persist.PersistService;
 import com.google.inject.util.Modules;
 
+
 /**
  * ClusterStackVersionResourceProvider tests.
  */
@@ -340,6 +341,8 @@ public class ClusterStackVersionResourceProviderTest {
 
     RepositoryVersionEntity repoVersion = new RepositoryVersionEntity();
     repoVersion.setOperatingSystems(operatingSystemsJson);
+    StackEntity newDesiredStack = stackDAO.find("HDP", "2.0.1");
+    repoVersion.setStack(newDesiredStack);
 
     final ServiceOsSpecific.Package hivePackage = new ServiceOsSpecific.Package();
     hivePackage.setName("hive");
@@ -427,6 +430,7 @@ public class ClusterStackVersionResourceProviderTest {
 
     // verify
     verify(managementController, response);
+    Assert.assertEquals(clusterEntity.getDesiredStack(), newDesiredStack);
   }