You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tez.apache.org by bi...@apache.org on 2013/11/10 08:29:12 UTC

git commit: Addendum TEZ-576. Allow inputs in different vertices to have the same name (bikas)

Updated Branches:
  refs/heads/master 13fdd0580 -> e6543235a


Addendum TEZ-576. Allow inputs in different vertices to have the same name (bikas)


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

Branch: refs/heads/master
Commit: e6543235a31d36c7a15430b57cbc42a660821bc5
Parents: 13fdd05
Author: Bikas Saha <bi...@apache.org>
Authored: Sat Nov 9 23:25:58 2013 -0800
Committer: Bikas Saha <bi...@apache.org>
Committed: Sat Nov 9 23:25:58 2013 -0800

----------------------------------------------------------------------
 .../main/java/org/apache/tez/dag/api/DAG.java   | 20 ++++++++++++
 .../java/org/apache/tez/dag/api/Vertex.java     |  6 ++--
 .../org/apache/tez/dag/api/TestDAGVerify.java   | 34 ++++++++++++++++++++
 3 files changed, 58 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/e6543235/tez-api/src/main/java/org/apache/tez/dag/api/DAG.java
----------------------------------------------------------------------
diff --git a/tez-api/src/main/java/org/apache/tez/dag/api/DAG.java b/tez-api/src/main/java/org/apache/tez/dag/api/DAG.java
index 22a9a2e..5b62007 100644
--- a/tez-api/src/main/java/org/apache/tez/dag/api/DAG.java
+++ b/tez-api/src/main/java/org/apache/tez/dag/api/DAG.java
@@ -194,6 +194,26 @@ public class DAG { // FIXME rename to Topology
       outboundSet.add(outputVertex.getVertexName());
     }
 
+    // check input and output names dont collide with vertex names
+    for (Vertex vertex : vertices.values()) {
+      for (RootInputLeafOutput<InputDescriptor> input : vertex.getInputs()) {
+        if (vertexMap.containsKey(input.getName())) {
+          throw new IllegalStateException("Vertex: "
+              + vertex.getVertexName()
+              + " contains an Input with the same name as vertex: "
+              + input.getName());
+        }
+      }
+      for (RootInputLeafOutput<OutputDescriptor> output : vertex.getOutputs()) {
+        if (vertexMap.containsKey(output.getName())) {
+          throw new IllegalStateException("Vertex: "
+              + vertex.getVertexName()
+              + " contains an Output with the same name as vertex: "
+              + output.getName());
+        }
+      }
+    }
+
     // Check for valid InputNames
     for (Entry<Vertex, Set<String>> entry : inboundVertexMap.entrySet()) {
       Vertex vertex = entry.getKey();

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/e6543235/tez-api/src/main/java/org/apache/tez/dag/api/Vertex.java
----------------------------------------------------------------------
diff --git a/tez-api/src/main/java/org/apache/tez/dag/api/Vertex.java b/tez-api/src/main/java/org/apache/tez/dag/api/Vertex.java
index 065d98b..17fa558 100644
--- a/tez-api/src/main/java/org/apache/tez/dag/api/Vertex.java
+++ b/tez-api/src/main/java/org/apache/tez/dag/api/Vertex.java
@@ -40,8 +40,10 @@ public class Vertex { // FIXME rename to Task
   private final Resource taskResource;
   private Map<String, LocalResource> taskLocalResources;
   private Map<String, String> taskEnvironment;
-  private final List<RootInputLeafOutput<InputDescriptor>> additionalInputs = new ArrayList<RootInputLeafOutput<InputDescriptor>>();
-  private final List<RootInputLeafOutput<OutputDescriptor>> additionalOutputs = new ArrayList<RootInputLeafOutput<OutputDescriptor>>();
+  private final List<RootInputLeafOutput<InputDescriptor>> additionalInputs 
+                      = new ArrayList<RootInputLeafOutput<InputDescriptor>>();
+  private final List<RootInputLeafOutput<OutputDescriptor>> additionalOutputs 
+                      = new ArrayList<RootInputLeafOutput<OutputDescriptor>>();
 
   private final List<Vertex> inputVertices = new ArrayList<Vertex>();
   private final List<Vertex> outputVertices = new ArrayList<Vertex>();

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/e6543235/tez-api/src/test/java/org/apache/tez/dag/api/TestDAGVerify.java
----------------------------------------------------------------------
diff --git a/tez-api/src/test/java/org/apache/tez/dag/api/TestDAGVerify.java b/tez-api/src/test/java/org/apache/tez/dag/api/TestDAGVerify.java
index 81718bc..b8a5e84 100644
--- a/tez-api/src/test/java/org/apache/tez/dag/api/TestDAGVerify.java
+++ b/tez-api/src/test/java/org/apache/tez/dag/api/TestDAGVerify.java
@@ -327,6 +327,40 @@ public class TestDAGVerify {
     dag.verify();
   }
   
+  @Test (expected = IllegalStateException.class)
+  public void testOutputAndVertexNameCollision() {
+    Vertex v1 = new Vertex("v1",
+        new ProcessorDescriptor("MapProcessor"),
+        dummyTaskCount, dummyTaskResource);
+    Vertex v2 = new Vertex("v2",
+        new ProcessorDescriptor("MapProcessor"),
+        dummyTaskCount, dummyTaskResource);
+    
+    v1.addOutput("v2", new OutputDescriptor());
+    
+    DAG dag = new DAG("testDag");
+    dag.addVertex(v1);
+    dag.addVertex(v2);
+    dag.verify();
+  }
+  
+  @Test (expected = IllegalStateException.class)
+  public void testInputAndVertexNameCollision() {
+    Vertex v1 = new Vertex("v1",
+        new ProcessorDescriptor("MapProcessor"),
+        dummyTaskCount, dummyTaskResource);
+    Vertex v2 = new Vertex("v2",
+        new ProcessorDescriptor("MapProcessor"),
+        dummyTaskCount, dummyTaskResource);
+    
+    v1.addInput("v2", new InputDescriptor(), null);
+    
+    DAG dag = new DAG("testDag");
+    dag.addVertex(v1);
+    dag.addVertex(v2);
+    dag.verify();
+  }
+
   //  v1  v2
   //   |  |
   //    v3