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 2018/07/06 17:57:06 UTC
[ambari] branch branch-feature-AMBARI-14714 updated: [AMBARI-22994]
Completely Remove Upgrade Pack Target Information (#1698)
This is an automated email from the ASF dual-hosted git repository.
ncole pushed a commit to branch branch-feature-AMBARI-14714
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/branch-feature-AMBARI-14714 by this push:
new 9630684 [AMBARI-22994] Completely Remove Upgrade Pack Target Information (#1698)
9630684 is described below
commit 96306845470b47c6cb1818577a8a1f536848dc78
Author: ncole <nc...@hortonworks.com>
AuthorDate: Fri Jul 6 13:57:02 2018 -0400
[AMBARI-22994] Completely Remove Upgrade Pack Target Information (#1698)
---
.../apache/ambari/server/state/UpgradeHelper.java | 78 +---------------------
.../ambari/server/state/stack/UpgradePack.java | 29 --------
.../stack/upgrade/RepositoryVersionHelper.java | 42 ------------
ambari-server/src/main/resources/upgrade-pack.xsd | 2 -
.../checks/HostsMasterMaintenanceCheckTest.java | 3 -
.../PreUpgradeCheckResourceProviderTest.java | 4 --
.../mpacks-v2/upgrade-packs/upgrade-basic.xml | 2 -
7 files changed, 1 insertion(+), 159 deletions(-)
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
index ea559bc..1367e3f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
@@ -200,9 +200,6 @@ public class UpgradeHelper {
@Inject
private Provider<AmbariMetaInfo> m_ambariMetaInfoProvider;
- @Inject
- private Provider<Clusters> m_clusters;
-
/**
* Used to update the configuration properties.
*/
@@ -234,80 +231,6 @@ public class UpgradeHelper {
private StackDAO m_stackDAO;
/**
- * Get right Upgrade Pack, depends on stack, direction and upgrade type
- * information
- *
- * @param clusterName
- * The name of the cluster
- * @param sourceStackId
- * the "from" stack for this upgrade/downgrade
- * @param targetStackId
- * the "to" stack for this upgrade/downgrade
- * @param direction
- * {@code Direction} of the upgrade
- * @param upgradeType
- * The {@code UpgradeType}
- * @param preferredUpgradePackName
- * For unit test, need to prefer an upgrade pack since multiple
- * matches can be found.
- * @return {@code UpgradeType} object
- * @throws AmbariException
- */
- public UpgradePack suggestUpgradePack(String clusterName,
- StackId sourceStackId, StackId targetStackId, Direction direction, UpgradeType upgradeType,
- String preferredUpgradePackName) throws AmbariException {
-
- // Find upgrade packs based on current stack. This is where to upgrade from
- Cluster cluster = m_clusters.get().getCluster(clusterName);
- StackId currentStack = cluster.getCurrentStackVersion();
-
- StackId stackForUpgradePack = targetStackId;
-
- if (direction.isDowngrade()) {
- stackForUpgradePack = sourceStackId;
- }
-
- Map<String, UpgradePack> packs = m_ambariMetaInfoProvider.get().getUpgradePacks(
- currentStack.getStackName(), currentStack.getStackVersion());
-
- UpgradePack pack = null;
-
- if (StringUtils.isNotEmpty(preferredUpgradePackName) && packs.containsKey(preferredUpgradePackName)) {
- pack = packs.get(preferredUpgradePackName);
-
- LOG.warn("Upgrade pack '{}' not found for stack {}", preferredUpgradePackName, currentStack);
- }
-
- // Best-attempt at picking an upgrade pack assuming within the same stack whose target stack version matches.
- // If multiple candidates are found, raise an exception.
- if (null == pack) {
- for (UpgradePack upgradePack : packs.values()) {
- if (null != upgradePack.getTargetStack()
- && StringUtils.equals(upgradePack.getTargetStack(), stackForUpgradePack.getStackId())
- && upgradeType == upgradePack.getType()) {
- if (null == pack) {
- // Pick the pack.
- pack = upgradePack;
- } else {
- throw new AmbariException(
- String.format(
- "Unable to perform %s. Found multiple upgrade packs for type %s and stack %s",
- direction.getText(false), upgradeType.toString(), stackForUpgradePack));
- }
- }
- }
- }
-
- if (null == pack) {
- throw new AmbariException(
- String.format("Unable to perform %s. Could not locate %s upgrade pack for stack %s",
- direction.getText(false), upgradeType.toString(), stackForUpgradePack));
- }
-
- return pack;
- }
-
- /**
* Generates a list of UpgradeGroupHolder items that are used to execute either
* an upgrade or a downgrade. Each lifecycle is processed one-by-one from the upgrade packs
*
@@ -349,6 +272,7 @@ public class UpgradeHelper {
throw new IllegalArgumentException(e);
}
});
+
}
return groups;
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/UpgradePack.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/UpgradePack.java
index 8286c70..62759f5 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/UpgradePack.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/UpgradePack.java
@@ -24,7 +24,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.xml.bind.Unmarshaller;
@@ -67,12 +66,6 @@ public class UpgradePack {
*/
private String name;
- @XmlElement(name="target")
- private String target;
-
- @XmlElement(name="target-stack")
- private String targetStack;
-
@XmlElement(name="lifecycle")
public List<Lifecycle> lifecycles;
@@ -126,12 +119,6 @@ public class UpgradePack {
public void setName(String name) {
this.name = name;
}
- /**
- * @return the target version for the upgrade pack
- */
- public String getTarget() {
- return target;
- }
/**
* @return the type of upgrade, e.g., "ROLLING" or "NON_ROLLING"
@@ -175,13 +162,6 @@ public class UpgradePack {
}
/**
- * @return the target stack, or {@code null} if the upgrade is within the same stack
- */
- public String getTargetStack() {
- return targetStack;
- }
-
- /**
* Used to get all groups defined for an upgrade. This method is deprecated as orchestration
* will change to per-lifecycle. At the time of writing, keep this for compilation purposes.
* @return
@@ -245,15 +225,6 @@ public class UpgradePack {
return downgradeAllowed;
}
- public boolean canBeApplied(String targetVersion){
- // check that upgrade pack can be applied to selected stack
- // converting 2.2.*.* -> 2\.2(\.\d+)?(\.\d+)?(-\d+)?
- String regexPattern = getTarget().replaceAll("\\.", "\\\\."); // . -> \.
- regexPattern = regexPattern.replaceAll("\\\\\\.\\*", "(\\\\\\.\\\\d+)?"); // \.* -> (\.\d+)?
- regexPattern = regexPattern.concat("(-\\d+)?");
- return Pattern.matches(regexPattern, targetVersion);
- }
-
/**
* Calculates the group orders when performing a rolling downgrade
* <ul>
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/RepositoryVersionHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/RepositoryVersionHelper.java
index d451b4c..0fab3c5 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/RepositoryVersionHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/RepositoryVersionHelper.java
@@ -20,7 +20,6 @@ package org.apache.ambari.server.state.stack.upgrade;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import java.util.Map;
import java.util.Map.Entry;
import org.apache.ambari.annotations.Experimental;
@@ -42,9 +41,6 @@ import org.apache.ambari.server.state.Mpack;
import org.apache.ambari.server.state.RepositoryInfo;
import org.apache.ambari.server.state.ServiceComponent;
import org.apache.ambari.server.state.ServiceGroup;
-import org.apache.ambari.server.state.stack.OsFamily;
-import org.apache.ambari.server.state.stack.UpgradePack;
-import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -68,14 +64,8 @@ public class RepositoryVersionHelper {
private Gson gson;
@Inject
- private Provider<AmbariMetaInfo> ami;
-
- @Inject
private Provider<Configuration> configuration;
- @Inject
- private Provider<OsFamily> os_family;
-
@Inject Provider<Clusters> clusters;
/**
@@ -113,38 +103,6 @@ public class RepositoryVersionHelper {
}
/**
- * Scans the given stack for upgrade packages which can be applied to update the cluster to given repository version.
- *
- * @param stackName stack name
- * @param stackVersion stack version
- * @param repositoryVersion target repository version
- * @param upgradeType if not {@code null} null, will only return upgrade packs whose type matches.
- * @return upgrade pack name
- * @throws AmbariException if no upgrade packs suit the requirements
- */
- public String getUpgradePackageName(String stackName, String stackVersion, String repositoryVersion, UpgradeType upgradeType) throws AmbariException {
- final Map<String, UpgradePack> upgradePacks = ami.get().getUpgradePacks(stackName, stackVersion);
- for (UpgradePack upgradePack : upgradePacks.values()) {
- final String upgradePackName = upgradePack.getName();
-
- if (null != upgradeType && upgradePack.getType() != upgradeType) {
- continue;
- }
-
- // check that upgrade pack has <target> node
- if (StringUtils.isBlank(upgradePack.getTarget())) {
- LOG.error("Upgrade pack " + upgradePackName + " is corrupted, it should contain <target> node");
- continue;
- }
- if (upgradePack.canBeApplied(repositoryVersion)) {
- return upgradePackName;
- }
- }
- throw new AmbariException("There were no suitable upgrade packs for stack " + stackName + " " + stackVersion +
- ((null != upgradeType) ? " and upgrade type " + upgradeType : ""));
- }
-
- /**
* Return repositories available for target os version on host based on the
* mpack and host family.
*
diff --git a/ambari-server/src/main/resources/upgrade-pack.xsd b/ambari-server/src/main/resources/upgrade-pack.xsd
index 27baeaf..007d0f8 100644
--- a/ambari-server/src/main/resources/upgrade-pack.xsd
+++ b/ambari-server/src/main/resources/upgrade-pack.xsd
@@ -404,8 +404,6 @@
<xs:complexType>
<xs:sequence>
- <xs:element name="target" type="xs:string" />
- <xs:element name="target-stack" type="xs:string" />
<xs:element name="downgrade-allowed" minOccurs="0" type="xs:boolean" />
<xs:element name="type" type="upgrade-kind-type" />
<xs:element name="prerequisite-checks" type="prerequisite-check-type" minOccurs="0" />
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
index 16b09b2..cbaefac 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
@@ -35,7 +35,6 @@ import org.apache.ambari.server.state.stack.PrereqCheckStatus;
import org.apache.ambari.server.state.stack.UpgradeCheckResult;
import org.apache.ambari.server.state.stack.UpgradePack;
import org.apache.ambari.server.state.stack.upgrade.RepositoryVersionHelper;
-import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
@@ -114,7 +113,6 @@ public class HostsMasterMaintenanceCheckTest {
Mockito.when(cluster.getClusterId()).thenReturn(1L);
Mockito.when(clusters.getCluster("cluster")).thenReturn(cluster);
Mockito.when(cluster.getDesiredStackVersion()).thenReturn(new StackId("HDP", "1.0"));
- Mockito.when(repositoryVersionHelper.getUpgradePackageName(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), (UpgradeType) Mockito.anyObject())).thenReturn(null);
UpgradePlanEntity upgradePlan = Mockito.mock(UpgradePlanEntity.class);
PrereqCheckRequest checkRequest = new PrereqCheckRequest(upgradePlan);
@@ -122,7 +120,6 @@ public class HostsMasterMaintenanceCheckTest {
UpgradeCheckResult result = hostsMasterMaintenanceCheck.perform(checkRequest);
Assert.assertEquals(PrereqCheckStatus.FAIL, result.getStatus());
- Mockito.when(repositoryVersionHelper.getUpgradePackageName(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), (UpgradeType) Mockito.anyObject())).thenReturn(upgradePackName);
Mockito.when(ambariMetaInfo.getUpgradePacks(Mockito.anyString(), Mockito.anyString())).thenReturn(new HashMap<>());
checkRequest = new PrereqCheckRequest(upgradePlan);
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProviderTest.java
index e054947..d0116ad 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProviderTest.java
@@ -63,7 +63,6 @@ import org.apache.ambari.server.state.stack.PrereqCheckStatus;
import org.apache.ambari.server.state.stack.PrereqCheckType;
import org.apache.ambari.server.state.stack.UpgradePack;
import org.apache.ambari.server.state.stack.UpgradePack.PrerequisiteCheckConfig;
-import org.apache.ambari.server.state.stack.upgrade.Direction;
import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
import org.junit.Assert;
import org.junit.Ignore;
@@ -122,14 +121,11 @@ public class PreUpgradeCheckResourceProviderTest {
expect(targetStackId.getStackName()).andReturn("Stack100").anyTimes();
expect(targetStackId.getStackVersion()).andReturn("1.1").anyTimes();
- expect(upgradeHelper.suggestUpgradePack("Cluster100", currentStackId, targetStackId, Direction.UPGRADE, UpgradeType.EXPRESS, "upgrade_pack11")).andReturn(upgradePack);
-
List<ClusterCheck> upgradeChecksToRun = new LinkedList<>();
List<String> prerequisiteChecks = new LinkedList<>();
prerequisiteChecks.add("org.apache.ambari.server.sample.checks.SampleServiceCheck");
expect(upgradePack.getPrerequisiteCheckConfig()).andReturn(config);
expect(upgradePack.getPrerequisiteChecks()).andReturn(prerequisiteChecks).anyTimes();
- expect(upgradePack.getTarget()).andReturn("1.1.*.*").anyTimes();
expect(ambariMetaInfo.getServices("Stack100", "1.0")).andReturn(allServiceInfoMap).anyTimes();
String checks = ClassLoader.getSystemClassLoader().getResource("checks").getPath();
diff --git a/ambari-server/src/test/resources/mpacks-v2/upgrade-packs/upgrade-basic.xml b/ambari-server/src/test/resources/mpacks-v2/upgrade-packs/upgrade-basic.xml
index c1ee1dd..9147df2 100644
--- a/ambari-server/src/test/resources/mpacks-v2/upgrade-packs/upgrade-basic.xml
+++ b/ambari-server/src/test/resources/mpacks-v2/upgrade-packs/upgrade-basic.xml
@@ -17,8 +17,6 @@
-->
<upgrade xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="upgrade-pack.xsd">
- <target>2.6.*.*</target>
- <target-stack>HDP-2.6</target-stack>
<type>rolling</type>
<prerequisite-checks>