Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -624,23 +624,20 @@ public static TezCountersProto convertTezCountersToProto(
}

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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ public VertexStatus(VertexStatusProtoOrBuilder proxy) {
this.proxy = proxy;
}

public String getId() {
return proxy.getId();
}

public State getState() {
return getState(proxy.getState());
}
Expand Down
9 changes: 5 additions & 4 deletions tez-api/src/main/proto/DAGApiRecords.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,10 @@
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;
Expand Down Expand Up @@ -235,6 +237,23 @@ public void testAclConversions() {
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()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ private void setUpData(){
.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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,18 @@
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 {

public VertexStatusBuilder() {
super(VertexStatusProto.newBuilder());
}

public void setId(TezVertexID vertexId) {
getBuilder().setId(vertexId.toString());
}

public void setState(VertexState state) {
getBuilder().setState(getProtoState(state));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1536,6 +1536,7 @@ public VertexStatusBuilder getVertexStatus(
this.readLock.lock();
try {
VertexStatusBuilder status = new VertexStatusBuilder();
status.setId(getVertexId());
status.setState(getInternalState());
status.setDiagnostics(diagnostics);
status.setProgress(getVertexProgress());
Expand Down