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);
}