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 ----------------------------------------------------------------------