You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tez.apache.org by ab...@apache.org on 2021/04/15 06:05:14 UTC
[tez] branch branch-0.9 updated: TEZ-4279: Add vertexId into vertex
status for dag clients (#101) (Laszlo Bodor reviewed by Ashutosh Chauhan)
This is an automated email from the ASF dual-hosted git repository.
abstractdog pushed a commit to branch branch-0.9
in repository https://gitbox.apache.org/repos/asf/tez.git
The following commit(s) were added to refs/heads/branch-0.9 by this push:
new ebc8581 TEZ-4279: Add vertexId into vertex status for dag clients (#101) (Laszlo Bodor reviewed by Ashutosh Chauhan)
ebc8581 is described below
commit ebc85811f9cd14eee812e0ec53e4d777b6997bce
Author: Bodor Laszlo <bo...@gmail.com>
AuthorDate: Thu Apr 15 07:58:33 2021 +0200
TEZ-4279: Add vertexId into vertex status for dag clients (#101) (Laszlo Bodor reviewed by Ashutosh Chauhan)
---
.../org/apache/tez/dag/api/DagTypeConverters.java | 19 ++++++++-----------
.../org/apache/tez/dag/api/client/VertexStatus.java | 4 ++++
tez-api/src/main/proto/DAGApiRecords.proto | 9 +++++----
.../org/apache/tez/dag/api/TestDagTypeConverters.java | 19 +++++++++++++++++++
.../apache/tez/dag/api/client/rpc/TestDAGClient.java | 1 +
.../tez/dag/api/client/VertexStatusBuilder.java | 5 +++++
.../org/apache/tez/dag/app/dag/impl/VertexImpl.java | 1 +
7 files changed, 43 insertions(+), 15 deletions(-)
diff --git a/tez-api/src/main/java/org/apache/tez/dag/api/DagTypeConverters.java b/tez-api/src/main/java/org/apache/tez/dag/api/DagTypeConverters.java
index acc5f12..5a2cb64 100644
--- a/tez-api/src/main/java/org/apache/tez/dag/api/DagTypeConverters.java
+++ b/tez-api/src/main/java/org/apache/tez/dag/api/DagTypeConverters.java
@@ -624,23 +624,20 @@ public class DagTypeConverters {
}
public static DAGProtos.StatusGetOptsProto convertStatusGetOptsToProto(
- StatusGetOpts statusGetOpts) {
+ StatusGetOpts statusGetOpts) {
switch (statusGetOpts) {
- case GET_COUNTERS:
- return DAGProtos.StatusGetOptsProto.GET_COUNTERS;
+ case GET_COUNTERS:
+ return DAGProtos.StatusGetOptsProto.GET_COUNTERS;
}
- throw new TezUncheckedException("Could not convert StatusGetOpts to"
- + " proto");
+ throw new TezUncheckedException("Could not convert StatusGetOpts to" + " proto");
}
- public static StatusGetOpts convertStatusGetOptsFromProto(
- DAGProtos.StatusGetOptsProto proto) {
+ public static StatusGetOpts convertStatusGetOptsFromProto(DAGProtos.StatusGetOptsProto proto) {
switch (proto) {
- case GET_COUNTERS:
- return StatusGetOpts.GET_COUNTERS;
+ case GET_COUNTERS:
+ return StatusGetOpts.GET_COUNTERS;
}
- throw new TezUncheckedException("Could not convert to StatusGetOpts from"
- + " proto");
+ throw new TezUncheckedException("Could not convert to StatusGetOpts from" + " proto");
}
public static List<DAGProtos.StatusGetOptsProto> convertStatusGetOptsToProto(
diff --git a/tez-api/src/main/java/org/apache/tez/dag/api/client/VertexStatus.java b/tez-api/src/main/java/org/apache/tez/dag/api/client/VertexStatus.java
index dfb9bbe..9efb12d 100644
--- a/tez-api/src/main/java/org/apache/tez/dag/api/client/VertexStatus.java
+++ b/tez-api/src/main/java/org/apache/tez/dag/api/client/VertexStatus.java
@@ -59,6 +59,10 @@ public class VertexStatus {
this.proxy = proxy;
}
+ public String getId() {
+ return proxy.getId();
+ }
+
public State getState() {
return getState(proxy.getState());
}
diff --git a/tez-api/src/main/proto/DAGApiRecords.proto b/tez-api/src/main/proto/DAGApiRecords.proto
index 34c369d..4c8c7f6 100644
--- a/tez-api/src/main/proto/DAGApiRecords.proto
+++ b/tez-api/src/main/proto/DAGApiRecords.proto
@@ -245,10 +245,11 @@ enum VertexStatusStateProto {
}
message VertexStatusProto {
- optional VertexStatusStateProto state = 1;
- repeated string diagnostics = 2;
- optional ProgressProto progress = 3;
- optional TezCountersProto vertexCounters = 4;
+ required string id = 1;
+ optional VertexStatusStateProto state = 2;
+ repeated string diagnostics = 3;
+ optional ProgressProto progress = 4;
+ optional TezCountersProto vertexCounters = 5;
}
enum DAGStatusStateProto {
diff --git a/tez-api/src/test/java/org/apache/tez/dag/api/TestDagTypeConverters.java b/tez-api/src/test/java/org/apache/tez/dag/api/TestDagTypeConverters.java
index 265fce9..edb7fd8 100644
--- a/tez-api/src/test/java/org/apache/tez/dag/api/TestDagTypeConverters.java
+++ b/tez-api/src/test/java/org/apache/tez/dag/api/TestDagTypeConverters.java
@@ -34,8 +34,10 @@ import org.apache.hadoop.yarn.util.ConverterUtils;
import org.apache.tez.common.TezCommonUtils;
import org.apache.tez.common.security.DAGAccessControls;
import org.apache.tez.dag.api.Vertex.VertexExecutionContext;
+import org.apache.tez.dag.api.client.StatusGetOpts;
import org.apache.tez.dag.api.records.DAGProtos.ACLInfo;
import org.apache.tez.dag.api.records.DAGProtos.AMPluginDescriptorProto;
+import org.apache.tez.dag.api.records.DAGProtos.StatusGetOptsProto;
import org.apache.tez.dag.api.records.DAGProtos.TezEntityDescriptorProto;
import org.apache.tez.dag.api.records.DAGProtos.TezNamedEntityDescriptorProto;
import org.apache.tez.dag.api.records.DAGProtos.VertexExecutionContextProto;
@@ -235,6 +237,23 @@ public class TestDagTypeConverters {
assertSame(DagTypeConverters.convertDAGAccessControlsFromProto(aclInfo), aclInfo);
}
+ /*
+ * This unit test can catch if a StatusGetOpts <-> StatusGetOptsProto value is not defined at any
+ * side.
+ */
+ @Test
+ public void testConvertStatusGetOptsToProtoCoverage() {
+ StatusGetOpts[] opts = StatusGetOpts.values();
+ for (StatusGetOpts opt : opts) {
+ DagTypeConverters.convertStatusGetOptsToProto(opt);
+ }
+
+ StatusGetOptsProto[] optProtos = StatusGetOptsProto.values();
+ for (StatusGetOptsProto proto : optProtos) {
+ DagTypeConverters.convertStatusGetOptsFromProto(proto);
+ }
+ }
+
private void assertSame(DAGAccessControls dagAccessControls, ACLInfo aclInfo) {
assertEquals(dagAccessControls.getUsersWithViewACLs(),
Sets.newHashSet(aclInfo.getUsersWithViewAccessList()));
diff --git a/tez-api/src/test/java/org/apache/tez/dag/api/client/rpc/TestDAGClient.java b/tez-api/src/test/java/org/apache/tez/dag/api/client/rpc/TestDAGClient.java
index c323fb0..5d6a5df 100644
--- a/tez-api/src/test/java/org/apache/tez/dag/api/client/rpc/TestDAGClient.java
+++ b/tez-api/src/test/java/org/apache/tez/dag/api/client/rpc/TestDAGClient.java
@@ -152,6 +152,7 @@ public class TestDAGClient {
.build();
vertexStatusProtoWithoutCounters = VertexStatusProto.newBuilder()
+ .setId("vertex_1")
.addDiagnostics("V_Diagnostics_0")
.setProgress(vertexProgressProto)
.setState(VertexStatusStateProto.VERTEX_SUCCEEDED) // make sure the waitForCompletion be able to finish
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/api/client/VertexStatusBuilder.java b/tez-dag/src/main/java/org/apache/tez/dag/api/client/VertexStatusBuilder.java
index 4de321c..0304fc9 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/api/client/VertexStatusBuilder.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/api/client/VertexStatusBuilder.java
@@ -28,6 +28,7 @@ import org.apache.tez.dag.api.records.DAGProtos.VertexStatusProto.Builder;
import org.apache.tez.dag.api.records.DAGProtos.VertexStatusStateProto;
import org.apache.tez.dag.api.TezUncheckedException;
import org.apache.tez.dag.app.dag.VertexState;
+import org.apache.tez.dag.records.TezVertexID;
public class VertexStatusBuilder extends VertexStatus {
@@ -35,6 +36,10 @@ public class VertexStatusBuilder extends VertexStatus {
super(VertexStatusProto.newBuilder());
}
+ public void setId(TezVertexID vertexId) {
+ getBuilder().setId(vertexId.toString());
+ }
+
public void setState(VertexState state) {
getBuilder().setState(getProtoState(state));
}
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexImpl.java b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexImpl.java
index 47a0caf..dc10738 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexImpl.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexImpl.java
@@ -1535,6 +1535,7 @@ public class VertexImpl implements org.apache.tez.dag.app.dag.Vertex, EventHandl
this.readLock.lock();
try {
VertexStatusBuilder status = new VertexStatusBuilder();
+ status.setId(getVertexId());
status.setState(getInternalState());
status.setDiagnostics(diagnostics);
status.setProgress(getVertexProgress());