You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mr...@apache.org on 2017/10/30 22:36:03 UTC

[37/56] [abbrv] ambari git commit: AMBARI-22312 - Downgrade From HDP 2.6 to 2.5 Leaves 2.6 Hosts as CURRENT Instead of INSTALLED (jonathanhurley)

AMBARI-22312 - Downgrade From HDP 2.6 to 2.5 Leaves 2.6 Hosts as CURRENT Instead of INSTALLED (jonathanhurley)


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

Branch: refs/heads/branch-feature-AMBARI-14714
Commit: 83e8b67223cc35134476adf7c79e365c74b808d4
Parents: d1d118d
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Wed Oct 25 20:06:55 2017 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Wed Oct 25 20:06:55 2017 -0400

----------------------------------------------------------------------
 .../AmbariManagementControllerImpl.java         | 13 +++--
 .../upgrades/FinalizeUpgradeAction.java         | 54 ++++++++++----------
 2 files changed, 36 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/83e8b672/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index 1b1f524..380e1b4 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -909,9 +909,16 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
 
     StackId stackId = null;
     if (null != service) {
-      Service svc = cluster.getService(service);
-      stackId = svc.getDesiredStackId();
-    } else {
+      try {
+        Service svc = cluster.getService(service);
+        stackId = svc.getDesiredStackId();
+      } catch (AmbariException ambariException) {
+        LOG.warn("Adding configurations for {} even though its parent service {} is not installed",
+            configType, service);
+      }
+    }
+
+    if (null == stackId) {
       stackId = cluster.getDesiredStackVersion();
     }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/83e8b672/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
index 87ea1fc..755f28e 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
@@ -200,7 +200,7 @@ public class FinalizeUpgradeAction extends AbstractUpgradeServerAction {
 
       // move host versions from CURRENT to INSTALLED if their repos are no
       // longer used
-      finalizeHostRepositoryVersions(cluster);
+      finalizeHostVersionsNotDesired(cluster);
 
       if (upgradeContext.getOrchestrationType() == RepositoryType.STANDARD) {
         outSB.append(String.format("Finalizing the version for cluster %s.\n", cluster.getClusterName()));
@@ -280,38 +280,36 @@ public class FinalizeUpgradeAction extends AbstractUpgradeServerAction {
         throw new AmbariException(messageBuff.toString());
       }
 
+      finalizeHostVersionsNotDesired(cluster);
 
-      if (upgradeContext.isPatchRevert()) {
-        finalizeHostRepositoryVersions(cluster);
-      } else {
-        // for every repository being downgraded to, ensure the host versions are correct
-        Map<String, RepositoryVersionEntity> targetVersionsByService = upgradeContext.getTargetVersions();
-        Set<RepositoryVersionEntity> targetRepositoryVersions = new HashSet<>();
-        for (String service : targetVersionsByService.keySet()) {
-          targetRepositoryVersions.add(targetVersionsByService.get(service));
-        }
+      // for every repository being downgraded to, ensure the host versions are correct
+      Map<String, RepositoryVersionEntity> targetVersionsByService = upgradeContext.getTargetVersions();
+      Set<RepositoryVersionEntity> targetRepositoryVersions = new HashSet<>();
+      for (String service : targetVersionsByService.keySet()) {
+        targetRepositoryVersions.add(targetVersionsByService.get(service));
+      }
 
-        for (RepositoryVersionEntity targetRepositoryVersion : targetRepositoryVersions) {
-          // find host versions
-          List<HostVersionEntity> hostVersions = hostVersionDAO.findHostVersionByClusterAndRepository(
-              cluster.getClusterId(), targetRepositoryVersion);
+      // move host versions in the downgrade back to CURRENT if they are not
+      for (RepositoryVersionEntity targetRepositoryVersion : targetRepositoryVersions) {
+        // find host versions
+        List<HostVersionEntity> hostVersions = hostVersionDAO.findHostVersionByClusterAndRepository(
+            cluster.getClusterId(), targetRepositoryVersion);
 
-          outSB.append(String.format("Finalizing %d host(s) back to %s", hostVersions.size(),
-              targetRepositoryVersion.getVersion())).append(System.lineSeparator());
+        outSB.append(String.format("Finalizing %d host(s) back to %s", hostVersions.size(),
+            targetRepositoryVersion.getVersion())).append(System.lineSeparator());
 
-          for (HostVersionEntity hostVersion : hostVersions) {
-            if (hostVersion.getState() != RepositoryVersionState.CURRENT) {
-              hostVersion.setState(RepositoryVersionState.CURRENT);
-              hostVersionDAO.merge(hostVersion);
-            }
+        for (HostVersionEntity hostVersion : hostVersions) {
+          if (hostVersion.getState() != RepositoryVersionState.CURRENT) {
+            hostVersion.setState(RepositoryVersionState.CURRENT);
+            hostVersionDAO.merge(hostVersion);
+          }
 
-            List<HostComponentStateEntity> hostComponentStates = hostComponentStateDAO.findByHost(
-                hostVersion.getHostName());
+          List<HostComponentStateEntity> hostComponentStates = hostComponentStateDAO.findByHost(
+              hostVersion.getHostName());
 
-            for (HostComponentStateEntity hostComponentState : hostComponentStates) {
-              hostComponentState.setUpgradeState(UpgradeState.NONE);
-              hostComponentStateDAO.merge(hostComponentState);
-            }
+          for (HostComponentStateEntity hostComponentState : hostComponentStates) {
+            hostComponentState.setUpgradeState(UpgradeState.NONE);
+            hostComponentStateDAO.merge(hostComponentState);
           }
         }
       }
@@ -406,7 +404,7 @@ public class FinalizeUpgradeAction extends AbstractUpgradeServerAction {
    * @param cluster
    * @throws AmbariException
    */
-  private void finalizeHostRepositoryVersions(Cluster cluster) throws AmbariException {
+  private void finalizeHostVersionsNotDesired(Cluster cluster) throws AmbariException {
     // create a set of all of the repos that the services are on
     Set<RepositoryVersionEntity> desiredRepoVersions = new HashSet<>();
     Set<String> serviceNames = cluster.getServices().keySet();