Repository: ambari
Updated Branches:
  refs/heads/branch-dev-patch-upgrade c8edd3c8a -> c0cee00e3


AMBARI-18432. Re-enable orchestration to use VDF (ncole)


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

Branch: refs/heads/branch-dev-patch-upgrade
Commit: c0cee00e32a5c05431b5ba072859a540ef42dcc4
Parents: c8edd3c
Author: Nate Cole <nc...@hortonworks.com>
Authored: Wed Sep 21 11:51:02 2016 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Wed Sep 21 11:51:02 2016 -0400

----------------------------------------------------------------------
 .../ClusterStackVersionResourceProvider.java        |  9 +++++++--
 .../internal/UpgradeResourceProvider.java           | 16 +++++++++++++---
 .../ClusterStackVersionResourceProviderTest.java    |  2 --
 .../ambari/server/state/UpgradeHelperTest.java      |  3 +++
 4 files changed, 23 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/c0cee00e/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 4e9fd6b..20d3609 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
@@ -77,6 +77,7 @@ import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.ComponentInfo;
 import org.apache.ambari.server.state.Host;
 import org.apache.ambari.server.state.MaintenanceState;
+import org.apache.ambari.server.state.RepositoryType;
 import org.apache.ambari.server.state.RepositoryVersionState;
 import org.apache.ambari.server.state.ServiceComponentHost;
 import org.apache.ambari.server.state.ServiceInfo;
@@ -498,8 +499,11 @@ public class ClusterStackVersionResourceProvider extends 
AbstractControllerResou
       // determine services for the repo
       Set<String> serviceNames = new HashSet<>();
 
-      // !!! TODO for patch upgrades, we need to limit the serviceNames to 
those
-      // that are detailed for the repository
+      // !!! limit the serviceNames to those that are detailed for the 
repository.
+      // TODO packages don't have component granularity
+      if (RepositoryType.STANDARD != repoVersionEnt.getType()) {
+        
serviceNames.addAll(desiredVersionDefinition.getAvailableServiceNames());
+      }
 
       // Populate with commands for host
       for (int i = 0; i < maxTasks && hostIterator.hasNext(); i++) {
@@ -597,6 +601,7 @@ public class ClusterStackVersionResourceProvider extends 
AbstractControllerResou
     if (servicesOnHost.isEmpty()) {
       return null;
     }
+
     List<String> blacklistedPackagePrefixes = 
configuration.getRollingUpgradeSkipPackagesPrefixes();
     for (String serviceName : servicesOnHost) {
       ServiceInfo info;

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0cee00e/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 d37e32b..15caa69 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
@@ -89,6 +89,7 @@ import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.Config;
 import org.apache.ambari.server.state.ConfigHelper;
 import org.apache.ambari.server.state.DesiredConfig;
+import org.apache.ambari.server.state.RepositoryType;
 import org.apache.ambari.server.state.Service;
 import org.apache.ambari.server.state.ServiceComponent;
 import org.apache.ambari.server.state.ServiceInfo;
@@ -97,6 +98,7 @@ import org.apache.ambari.server.state.StackInfo;
 import org.apache.ambari.server.state.UpgradeContext;
 import org.apache.ambari.server.state.UpgradeHelper;
 import org.apache.ambari.server.state.UpgradeHelper.UpgradeGroupHolder;
+import org.apache.ambari.server.state.repository.VersionDefinitionXml;
 import org.apache.ambari.server.state.stack.ConfigUpgradePack;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.UpgradePack;
@@ -806,9 +808,17 @@ public class UpgradeResourceProvider extends 
AbstractControllerResourceProvider
         RepositoryVersionEntity targetRepositoryVersion = 
s_repoVersionDAO.findByStackNameAndVersion(
             sourceStackId.getStackName(), version);
 
-        // !!! TODO check the repo_version for patch-ness and restrict the 
context
-        // to those services that require it.  Consult the version definition 
and add the
-        // service names to supportedServices
+        // !!! Consult the version definition and add the service names to 
supportedServices
+        if (targetRepositoryVersion.getType() != RepositoryType.STANDARD) {
+          try {
+            VersionDefinitionXml vdf = 
targetRepositoryVersion.getRepositoryXml();
+            supportedServices.addAll(vdf.getAvailableServiceNames());
+          } catch (Exception e) {
+            String msg = String.format("Could not parse version definition for 
%s.  Upgrade will not proceed.", version);
+            LOG.error(msg, e);
+            throw new AmbariException(msg);
+          }
+        }
 
         targetStackId = targetRepositoryVersion.getStackId();
         break;

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0cee00e/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 9837b0f..d71f516 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
@@ -109,7 +109,6 @@ import org.easymock.IAnswer;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
@@ -390,7 +389,6 @@ public class ClusterStackVersionResourceProviderTest {
   }
 
   @Experimental(feature=ExperimentalFeature.PATCH_UPGRADES)
-  @Ignore
   public void testCreateResourcesForPatch() throws Exception {
     Resource.Type type = Resource.Type.ClusterStackVersion;
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0cee00e/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
index c2e1f75..9e1562d 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
@@ -36,6 +36,8 @@ import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.ambari.annotations.Experimental;
+import org.apache.ambari.annotations.ExperimentalFeature;
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
 import org.apache.ambari.server.controller.AmbariManagementController;
@@ -251,6 +253,7 @@ public class UpgradeHelperTest {
     ambariMetaInfo.init();
   }
 
+  @Experimental(feature=ExperimentalFeature.PATCH_UPGRADES)
   @Test
   public void testPartialUpgradeOrchestration() throws Exception {
     Map<String, UpgradePack> upgrades = ambariMetaInfo.getUpgradePacks("foo", 
"bar");

Reply via email to