You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ey...@apache.org on 2018/05/16 16:41:42 UTC
hadoop git commit: YARN-8300. Fixed NPE in
DefaultUpgradeComponentsFinder. Contributed by Suma Shivaprasad
Repository: hadoop
Updated Branches:
refs/heads/trunk 6b67161ca -> 91357c22e
YARN-8300. Fixed NPE in DefaultUpgradeComponentsFinder.
Contributed by Suma Shivaprasad
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/91357c22
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/91357c22
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/91357c22
Branch: refs/heads/trunk
Commit: 91357c22ef0fb89652dd2898cf488b47234452ce
Parents: 6b67161
Author: Eric Yang <ey...@apache.org>
Authored: Wed May 16 12:38:26 2018 -0400
Committer: Eric Yang <ey...@apache.org>
Committed: Wed May 16 12:38:26 2018 -0400
----------------------------------------------------------------------
.../yarn/service/UpgradeComponentsFinder.java | 104 ++++++++++---------
.../TestDefaultUpgradeComponentsFinder.java | 30 +++++-
2 files changed, 84 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/91357c22/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/UpgradeComponentsFinder.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/UpgradeComponentsFinder.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/UpgradeComponentsFinder.java
index d6663ec..19ff6db 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/UpgradeComponentsFinder.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/UpgradeComponentsFinder.java
@@ -100,55 +100,63 @@ public interface UpgradeComponentsFinder {
targetDef.getComponents().forEach(component -> {
Component currentComp = currentDef.getComponent(component.getName());
- if (!Objects.equals(currentComp.getName(), component.getName())) {
+ if (currentComp != null) {
+ if (!Objects.equals(currentComp.getName(), component.getName())) {
+ throw new UnsupportedOperationException(
+ "changes to component name not supported by upgrade");
+ }
+
+ if (!Objects.equals(currentComp.getDependencies(),
+ component.getDependencies())) {
+ throw new UnsupportedOperationException(
+ "changes to component dependencies not supported by upgrade");
+ }
+
+ if (!Objects.equals(currentComp.getReadinessCheck(),
+ component.getReadinessCheck())) {
+ throw new UnsupportedOperationException(
+ "changes to component readiness check not supported by "
+ + "upgrade");
+ }
+
+ if (!Objects.equals(currentComp.getResource(),
+ component.getResource())) {
+
+ throw new UnsupportedOperationException(
+ "changes to component resource not supported by upgrade");
+ }
+
+ if (!Objects.equals(currentComp.getRunPrivilegedContainer(),
+ component.getRunPrivilegedContainer())) {
+ throw new UnsupportedOperationException(
+ "changes to run privileged container not supported by upgrade");
+ }
+
+ if (!Objects.equals(currentComp.getPlacementPolicy(),
+ component.getPlacementPolicy())) {
+ throw new UnsupportedOperationException(
+ "changes to component placement policy not supported by "
+ + "upgrade");
+ }
+
+ if (!Objects.equals(currentComp.getQuicklinks(),
+ component.getQuicklinks())) {
+ throw new UnsupportedOperationException(
+ "changes to component quick links not supported by upgrade");
+ }
+
+ if (!Objects.equals(currentComp.getArtifact(),
+ component.getArtifact()) || !Objects.equals(
+ currentComp.getLaunchCommand(), component.getLaunchCommand())
+ || !Objects.equals(currentComp.getConfiguration(),
+ component.getConfiguration())) {
+ targetComps.add(component);
+ }
+ } else{
throw new UnsupportedOperationException(
- "changes to component name not supported by upgrade");
- }
-
- if (!Objects.equals(currentComp.getDependencies(),
- component.getDependencies())) {
- throw new UnsupportedOperationException(
- "changes to component dependencies not supported by upgrade");
- }
-
- if (!Objects.equals(currentComp.getReadinessCheck(),
- component.getReadinessCheck())) {
- throw new UnsupportedOperationException(
- "changes to component readiness check not supported by upgrade");
- }
-
- if (!Objects.equals(currentComp.getResource(),
- component.getResource())) {
- throw new UnsupportedOperationException(
- "changes to component resource not supported by upgrade");
- }
-
-
- if (!Objects.equals(currentComp.getRunPrivilegedContainer(),
- component.getRunPrivilegedContainer())) {
- throw new UnsupportedOperationException(
- "changes to run privileged container not supported by upgrade");
- }
-
- if (!Objects.equals(currentComp.getPlacementPolicy(),
- component.getPlacementPolicy())) {
- throw new UnsupportedOperationException(
- "changes to component placement policy not supported by upgrade");
- }
-
- if (!Objects.equals(currentComp.getQuicklinks(),
- component.getQuicklinks())) {
- throw new UnsupportedOperationException(
- "changes to component quick links not supported by upgrade");
- }
-
- if (!Objects.equals(currentComp.getArtifact(),
- component.getArtifact()) ||
- !Objects.equals(currentComp.getLaunchCommand(),
- component.getLaunchCommand()) ||
- !Objects.equals(currentComp.getConfiguration(),
- component.getConfiguration())) {
- targetComps.add(component);
+ "addition/deletion of components not supported by upgrade. "
+ + "Could not find component " + component.getName() + " in "
+ + "current service definition.");
}
});
return targetComps;
http://git-wip-us.apache.org/repos/asf/hadoop/blob/91357c22/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/TestDefaultUpgradeComponentsFinder.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/TestDefaultUpgradeComponentsFinder.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/TestDefaultUpgradeComponentsFinder.java
index 086fdbe..b0a01b3 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/TestDefaultUpgradeComponentsFinder.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/TestDefaultUpgradeComponentsFinder.java
@@ -23,8 +23,11 @@ import org.junit.Assert;
import org.junit.Test;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import static org.junit.Assert.assertEquals;
+
/**
* Tests for {@link UpgradeComponentsFinder.DefaultUpgradeComponentsFinder}.
*/
@@ -40,12 +43,35 @@ public class TestDefaultUpgradeComponentsFinder {
targetDef.getComponents().forEach(x -> x.setArtifact(
TestServiceManager.createTestArtifact("v1")));
- Assert.assertEquals("all components need upgrade",
+ assertEquals("all components need upgrade",
targetDef.getComponents(), finder.findTargetComponentSpecs(currentDef,
targetDef));
}
@Test
+ public void testServiceUpgradeWithNewComponentAddition() {
+ Service currentDef = ServiceTestUtils.createExampleApplication();
+ Service targetDef = ServiceTestUtils.createExampleApplication();
+ Iterator<Component> targetComponentsIter =
+ targetDef.getComponents().iterator();
+ Component firstComponent = targetComponentsIter.next();
+ firstComponent.setName("newComponentA");
+
+ try {
+ finder.findTargetComponentSpecs(currentDef, targetDef);
+ Assert.fail("Expected error since component does not exist in service "
+ + "definition");
+ } catch (UnsupportedOperationException usoe) {
+ assertEquals(
+ "addition/deletion of components not supported by upgrade. Could "
+ + "not find component newComponentA in current service "
+ + "definition.",
+ usoe.getMessage());
+ //Expected
+ }
+ }
+
+ @Test
public void testComponentArtifactChange() {
Service currentDef = TestServiceManager.createBaseDef("test");
Service targetDef = TestServiceManager.createBaseDef("test");
@@ -56,7 +82,7 @@ public class TestDefaultUpgradeComponentsFinder {
List<Component> expected = new ArrayList<>();
expected.add(targetDef.getComponents().get(0));
- Assert.assertEquals("single components needs upgrade",
+ assertEquals("single components needs upgrade",
expected, finder.findTargetComponentSpecs(currentDef,
targetDef));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org