You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2015/04/23 01:29:00 UTC

ambari git commit: AMBARI-10671. Verify upgrades across stacks use correct Upgrade Pack (ncole)

Repository: ambari
Updated Branches:
  refs/heads/trunk e4976458f -> 387ca9df4


AMBARI-10671. Verify upgrades across stacks use correct Upgrade Pack (ncole)


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

Branch: refs/heads/trunk
Commit: 387ca9df4a90d2d28467631dfd565c17324484d2
Parents: e497645
Author: Nate Cole <nc...@hortonworks.com>
Authored: Wed Apr 22 16:58:16 2015 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Wed Apr 22 19:28:39 2015 -0400

----------------------------------------------------------------------
 .../internal/UpgradeResourceProvider.java       | 24 ++++++++++++++++----
 .../internal/UpgradeResourceProviderTest.java   | 20 ++++++----------
 .../stacks/HDP/2.2.0/upgrades/upgrade_test.xml  |  2 +-
 3 files changed, 27 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/387ca9df/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
index 409b343..82b7307 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
@@ -18,7 +18,6 @@
 package org.apache.ambari.server.controller.internal;
 
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.HOOKS_FOLDER;
-import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.JDK_LOCATION;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.SERVICE_PACKAGE_FOLDER;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.VERSION;
 
@@ -417,7 +416,9 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
     }
 
     Cluster cluster = getManagementController().getClusters().getCluster(clusterName);
-    StackId stack = cluster.getDesiredStackVersion();
+
+    // !!! find upgrade packs based on current stack.  This is where to upgrade from.
+    StackId stack = cluster.getCurrentStackVersion();
 
     String repoVersion = version;
 
@@ -428,16 +429,29 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
     RepositoryVersionEntity versionEntity = s_repoVersionDAO.findMaxByVersion(repoVersion);
 
     if (null == versionEntity) {
-      throw new AmbariException(String.format("Version %s for stack %s was not found",
-          repoVersion, stack.getStackVersion()));
+      throw new AmbariException(String.format("Repository version %s was not found",
+          repoVersion));
     }
 
     Map<String, UpgradePack> packs = s_metaProvider.get().getUpgradePacks(
-        versionEntity.getStackName(), versionEntity.getStackVersion());
+        stack.getStackName(), stack.getStackVersion());
 
     UpgradePack up = packs.get(versionEntity.getUpgradePackage());
 
     if (null == up) {
+      // !!! in case there is an upgrade pack that doesn't match the name
+      String repoStackId = versionEntity.getStackId().getStackId();
+      for (UpgradePack upgradePack : packs.values()) {
+        if (null != upgradePack.getTargetStack() &&
+            upgradePack.getTargetStack().equals(repoStackId)) {
+          up = upgradePack;
+          break;
+        }
+      }
+    }
+
+
+    if (null == up) {
       throw new AmbariException(String.format(
           "Unable to perform %s.  Could not locate upgrade pack %s for version %s",
           direction.getText(false),

http://git-wip-us.apache.org/repos/asf/ambari/blob/387ca9df/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
index eeb8e75..5de2eac 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
@@ -620,19 +620,6 @@ public class UpgradeResourceProviderTest {
   public void testCreateCrossStackUpgrade() throws Exception {
     Cluster cluster = clusters.getCluster("c1");
 
-    // add a single ZK server
-//    Service service = cluster.addService("HDFS");
-//    service.setDesiredStackVersion(cluster.getDesiredStackVersion());
-//    service.persist();
-//
-//    ServiceComponent component = service.addServiceComponent("NAMENODE");
-//    ServiceComponentHost sch = component.addServiceComponentHost("h1");
-//    sch.setVersion("2.2.2.1");
-//
-//    component = service.addServiceComponent("HDFS_CLIENT");
-//    sch = component.addServiceComponentHost("h1");
-//    sch.setVersion("2.2.2.1");
-
     Config config = new ConfigImpl("zoo.cfg");
     config.setProperties(new HashMap<String, String>() {{
       put("a", "b");
@@ -657,9 +644,16 @@ public class UpgradeResourceProviderTest {
 
     UpgradeEntity upgrade = upgrades.get(0);
     assertEquals(3, upgrade.getUpgradeGroups().size());
+
     UpgradeGroupEntity group = upgrade.getUpgradeGroups().get(2);
     assertEquals(2, group.getItems().size());
 
+    group = upgrade.getUpgradeGroups().get(0);
+    assertEquals(2, group.getItems().size());
+    UpgradeItemEntity item = group.getItems().get(1);
+    assertEquals("Value is set for the source stack upgrade pack",
+        "Foo", item.getText());
+
     assertTrue(cluster.getDesiredConfigs().containsKey("zoo.cfg"));
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/387ca9df/ambari-server/src/test/resources/stacks/HDP/2.2.0/upgrades/upgrade_test.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/stacks/HDP/2.2.0/upgrades/upgrade_test.xml b/ambari-server/src/test/resources/stacks/HDP/2.2.0/upgrades/upgrade_test.xml
index 088d15f..08e69d7 100644
--- a/ambari-server/src/test/resources/stacks/HDP/2.2.0/upgrades/upgrade_test.xml
+++ b/ambari-server/src/test/resources/stacks/HDP/2.2.0/upgrades/upgrade_test.xml
@@ -37,7 +37,7 @@
       </execute-stage>
       <execute-stage title="Confirm 2">
         <task xsi:type="manual">
-          <message>Foo</message>
+          <message>Goo</message>
         </task>
       </execute-stage>
     </group>