http://git-wip-us.apache.org/repos/asf/ambari/blob/e7399fe9/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
----------------------------------------------------------------------
diff --cc 
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
index d6f9fe6,f2fd9ac..b0c28d1
--- 
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
@@@ -431,7 -430,7 +431,7 @@@ public class ClusterStackVersionResourc
              RepositoryVersionState.INSTALLING);
  
          RequestStageContainer installRequest = createOrchestration(cluster, 
stackId, hosts,
--            repoVersionEnt, propertyMap);
++            repoVersionEnt, desiredVersionDefinition, propertyMap);
  
          response = installRequest.getRequestStatusResponse();
        }
@@@ -484,7 -483,7 +484,7 @@@
  
    @Transactional
    RequestStageContainer createOrchestration(Cluster cluster, StackId stackId,
--      List<Host> hosts, RepositoryVersionEntity repoVersionEnt, Map<String, 
Object> propertyMap)
++      List<Host> hosts, RepositoryVersionEntity repoVersionEnt, 
VersionDefinitionXml desiredVersionDefinition, Map<String, Object> propertyMap)
        throws AmbariException, SystemException {
      final AmbariManagementController managementController = 
getManagementController();
      final AmbariMetaInfo ami = managementController.getAmbariMetaInfo();
@@@ -628,9 -624,17 +628,18 @@@
      if (servicesOnHost.isEmpty()) {
        return null;
      }
 +
      List<String> blacklistedPackagePrefixes = 
configuration.getRollingUpgradeSkipPackagesPrefixes();
      for (String serviceName : servicesOnHost) {
+       try{
+         if(ami.isServiceRemovedInStack(stackId.getStackName(), 
stackId.getStackVersion(), serviceName)){
+           LOG.info(String.format("%s has been removed from stack %s-%s. Skip 
calculating its installation packages", stackId.getStackName(), 
stackId.getStackVersion(), serviceName));
+           continue; //No need to calculate install packages for removed 
services
+         }
+       } catch (AmbariException e1) {
+         throw new SystemException(String.format("Cannot obtain stack 
information for %s-%s", stackId.getStackName(), stackId.getStackVersion()), e1);
+       }
+ 
        ServiceInfo info;
        try {
          info = ami.getService(stackId.getStackName(), 
stackId.getStackVersion(), serviceName);

http://git-wip-us.apache.org/repos/asf/ambari/blob/e7399fe9/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ambari/blob/e7399fe9/ambari-server/src/test/java/org/apache/ambari/server/checks/AbstractCheckDescriptorTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ambari/blob/e7399fe9/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ambari/blob/e7399fe9/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ComponentVersionCheckActionTest.java
----------------------------------------------------------------------

Reply via email to