YARN-5559. Analyse 2.8.0/3.0.0 jdiff reports and fix any issues. Contributed by Akira Ajisaka & Wangda Tan
(cherry picked from commit 43ebff2e35
)
This commit is contained in:
parent
49f9e7cf71
commit
802a1fb2fc
|
@ -18,7 +18,9 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Evolving;
|
import org.apache.hadoop.classification.InterfaceStability.Evolving;
|
||||||
|
@ -28,18 +30,48 @@ import org.apache.hadoop.yarn.util.Records;
|
||||||
@Public
|
@Public
|
||||||
@Evolving
|
@Evolving
|
||||||
public abstract class GetClusterNodeLabelsResponse {
|
public abstract class GetClusterNodeLabelsResponse {
|
||||||
public static GetClusterNodeLabelsResponse newInstance(List<NodeLabel> labels) {
|
/**
|
||||||
GetClusterNodeLabelsResponse request =
|
* Creates a new instance.
|
||||||
Records.newRecord(GetClusterNodeLabelsResponse.class);
|
*
|
||||||
request.setNodeLabels(labels);
|
* @param labels Node labels
|
||||||
return request;
|
* @return response
|
||||||
|
* @deprecated Use {@link #newInstance(List)} instead.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static GetClusterNodeLabelsResponse newInstance(Set<String> labels) {
|
||||||
|
List<NodeLabel> list = new ArrayList<>();
|
||||||
|
for (String label : labels) {
|
||||||
|
list.add(NodeLabel.newInstance(label));
|
||||||
|
}
|
||||||
|
return newInstance(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Public
|
public static GetClusterNodeLabelsResponse newInstance(List<NodeLabel> labels) {
|
||||||
@Evolving
|
GetClusterNodeLabelsResponse response =
|
||||||
public abstract void setNodeLabels(List<NodeLabel> labels);
|
Records.newRecord(GetClusterNodeLabelsResponse.class);
|
||||||
|
response.setNodeLabelList(labels);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
@Public
|
public abstract void setNodeLabelList(List<NodeLabel> labels);
|
||||||
@Evolving
|
|
||||||
public abstract List<NodeLabel> getNodeLabels();
|
public abstract List<NodeLabel> getNodeLabelList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set node labels to the response.
|
||||||
|
*
|
||||||
|
* @param labels Node labels
|
||||||
|
* @deprecated Use {@link #setNodeLabelList(List)} instead.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public abstract void setNodeLabels(Set<String> labels);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get node labels of the response.
|
||||||
|
*
|
||||||
|
* @return Node labels
|
||||||
|
* @deprecated Use {@link #getNodeLabelList()} instead.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public abstract Set<String> getNodeLabels();
|
||||||
}
|
}
|
||||||
|
|
|
@ -874,7 +874,7 @@ public class YarnClientImpl extends YarnClient {
|
||||||
@Override
|
@Override
|
||||||
public List<NodeLabel> getClusterNodeLabels() throws YarnException, IOException {
|
public List<NodeLabel> getClusterNodeLabels() throws YarnException, IOException {
|
||||||
return rmClient.getClusterNodeLabels(
|
return rmClient.getClusterNodeLabels(
|
||||||
GetClusterNodeLabelsRequest.newInstance()).getNodeLabels();
|
GetClusterNodeLabelsRequest.newInstance()).getNodeLabelList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords.impl.pb;
|
package org.apache.hadoop.yarn.api.protocolrecords.impl.pb;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodeLabelsResponse;
|
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodeLabelsResponse;
|
||||||
import org.apache.hadoop.yarn.api.records.NodeLabel;
|
import org.apache.hadoop.yarn.api.records.NodeLabel;
|
||||||
|
@ -46,7 +48,7 @@ public class GetClusterNodeLabelsResponsePBImpl extends
|
||||||
viaProto = true;
|
viaProto = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GetClusterNodeLabelsResponseProto getProto() {
|
public synchronized GetClusterNodeLabelsResponseProto getProto() {
|
||||||
mergeLocalToProto();
|
mergeLocalToProto();
|
||||||
proto = viaProto ? proto : builder.build();
|
proto = viaProto ? proto : builder.build();
|
||||||
viaProto = true;
|
viaProto = true;
|
||||||
|
@ -101,14 +103,43 @@ public class GetClusterNodeLabelsResponsePBImpl extends
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setNodeLabels(List<NodeLabel> updatedNodeLabels) {
|
public synchronized void setNodeLabelList(List<NodeLabel> nodeLabels) {
|
||||||
maybeInitBuilder();
|
maybeInitBuilder();
|
||||||
this.updatedNodeLabels = new ArrayList<>();
|
this.updatedNodeLabels = new ArrayList<>();
|
||||||
if (updatedNodeLabels == null) {
|
if (nodeLabels == null) {
|
||||||
builder.clearNodeLabels();
|
builder.clearNodeLabels();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.updatedNodeLabels.addAll(updatedNodeLabels);
|
this.updatedNodeLabels.addAll(nodeLabels);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use {@link #getNodeLabelList()} instead.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Deprecated
|
||||||
|
public synchronized Set<String> getNodeLabels() {
|
||||||
|
Set<String> set = new HashSet<>();
|
||||||
|
List<NodeLabel> labelList = getNodeLabelList();
|
||||||
|
if (labelList != null) {
|
||||||
|
for (NodeLabel label : labelList) {
|
||||||
|
set.add(label.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return set;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use {@link #setNodeLabelList(List)} instead.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Deprecated
|
||||||
|
public void setNodeLabels(Set<String> labels) {
|
||||||
|
List<NodeLabel> list = new ArrayList<>();
|
||||||
|
for (String s : labels) {
|
||||||
|
list.add(NodeLabel.newInstance(s));
|
||||||
|
}
|
||||||
|
setNodeLabelList(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initLocalNodeLabels() {
|
private void initLocalNodeLabels() {
|
||||||
|
@ -121,7 +152,7 @@ public class GetClusterNodeLabelsResponsePBImpl extends
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<NodeLabel> getNodeLabels() {
|
public synchronized List<NodeLabel> getNodeLabelList() {
|
||||||
if (this.updatedNodeLabels != null) {
|
if (this.updatedNodeLabels != null) {
|
||||||
return this.updatedNodeLabels;
|
return this.updatedNodeLabels;
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,6 +71,31 @@ public class ContainerTokenIdentifier extends TokenIdentifier {
|
||||||
CommonNodeLabelsManager.NO_LABEL, ContainerType.TASK);
|
CommonNodeLabelsManager.NO_LABEL, ContainerType.TASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a instance.
|
||||||
|
*
|
||||||
|
* @param appSubmitter appSubmitter
|
||||||
|
* @param containerID container ID
|
||||||
|
* @param creationTime creation time
|
||||||
|
* @param expiryTimeStamp expiry timestamp
|
||||||
|
* @param hostName hostname
|
||||||
|
* @param logAggregationContext log aggregation context
|
||||||
|
* @param masterKeyId master key ID
|
||||||
|
* @param priority priority
|
||||||
|
* @param r resource needed by the container
|
||||||
|
* @param rmIdentifier ResourceManager identifier
|
||||||
|
* @deprecated Use one of the other constructors instead.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public ContainerTokenIdentifier(ContainerId containerID, String hostName,
|
||||||
|
String appSubmitter, Resource r, long expiryTimeStamp, int masterKeyId,
|
||||||
|
long rmIdentifier, Priority priority, long creationTime,
|
||||||
|
LogAggregationContext logAggregationContext) {
|
||||||
|
this(containerID, hostName, appSubmitter, r, expiryTimeStamp, masterKeyId,
|
||||||
|
rmIdentifier, priority, creationTime, logAggregationContext,
|
||||||
|
CommonNodeLabelsManager.NO_LABEL);
|
||||||
|
}
|
||||||
|
|
||||||
public ContainerTokenIdentifier(ContainerId containerID, String hostName,
|
public ContainerTokenIdentifier(ContainerId containerID, String hostName,
|
||||||
String appSubmitter, Resource r, long expiryTimeStamp, int masterKeyId,
|
String appSubmitter, Resource r, long expiryTimeStamp, int masterKeyId,
|
||||||
long rmIdentifier, Priority priority, long creationTime,
|
long rmIdentifier, Priority priority, long creationTime,
|
||||||
|
|
|
@ -20,7 +20,6 @@ package org.apache.hadoop.yarn.state;
|
||||||
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Evolving;
|
import org.apache.hadoop.classification.InterfaceStability.Evolving;
|
||||||
import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The exception that happens when you call invalid state transition.
|
* The exception that happens when you call invalid state transition.
|
||||||
|
@ -28,24 +27,13 @@ import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Evolving
|
@Evolving
|
||||||
public class InvalidStateTransitionException extends YarnRuntimeException {
|
@SuppressWarnings("deprecation")
|
||||||
|
public class InvalidStateTransitionException extends
|
||||||
|
InvalidStateTransitonException {
|
||||||
|
|
||||||
private static final long serialVersionUID = -6188669113571351684L;
|
private static final long serialVersionUID = 8610511635996283691L;
|
||||||
private Enum<?> currentState;
|
|
||||||
private Enum<?> event;
|
|
||||||
|
|
||||||
public InvalidStateTransitionException(Enum<?> currentState, Enum<?> event) {
|
public InvalidStateTransitionException(Enum<?> currentState, Enum<?> event) {
|
||||||
super("Invalid event: " + event + " at " + currentState);
|
super(currentState, event);
|
||||||
this.currentState = currentState;
|
|
||||||
this.event = event;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Enum<?> getCurrentState() {
|
|
||||||
return currentState;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Enum<?> getEvent() {
|
|
||||||
return event;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,20 +20,31 @@ package org.apache.hadoop.yarn.state;
|
||||||
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Evolving;
|
import org.apache.hadoop.classification.InterfaceStability.Evolving;
|
||||||
|
import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
|
||||||
|
|
||||||
/** @deprecated Use {@link InvalidStateTransitionException} instead. */
|
/** @deprecated Use {@link InvalidStateTransitionException} instead. */
|
||||||
|
|
||||||
@Public
|
@Public
|
||||||
@Evolving
|
@Evolving
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public class InvalidStateTransitonException extends
|
public class InvalidStateTransitonException extends YarnRuntimeException {
|
||||||
InvalidStateTransitionException {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 8610511635996283691L;
|
private static final long serialVersionUID = -6188669113571351684L;
|
||||||
|
private Enum<?> currentState;
|
||||||
|
private Enum<?> event;
|
||||||
|
|
||||||
public InvalidStateTransitonException(Enum<?> currentState, Enum<?> event) {
|
public InvalidStateTransitonException(Enum<?> currentState, Enum<?> event) {
|
||||||
super(currentState, event);
|
super("Invalid event: " + event + " at " + currentState);
|
||||||
|
this.currentState = currentState;
|
||||||
|
this.event = event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Enum<?> getCurrentState() {
|
||||||
|
return currentState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Enum<?> getEvent() {
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1504,7 +1504,7 @@ public class TestClientRMService {
|
||||||
// Get node labels collection
|
// Get node labels collection
|
||||||
GetClusterNodeLabelsResponse response = client
|
GetClusterNodeLabelsResponse response = client
|
||||||
.getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
|
.getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
|
||||||
Assert.assertTrue(response.getNodeLabels().containsAll(
|
Assert.assertTrue(response.getNodeLabelList().containsAll(
|
||||||
Arrays.asList(labelX, labelY)));
|
Arrays.asList(labelX, labelY)));
|
||||||
|
|
||||||
// Get node labels mapping
|
// Get node labels mapping
|
||||||
|
@ -1575,7 +1575,7 @@ public class TestClientRMService {
|
||||||
// Get node labels collection
|
// Get node labels collection
|
||||||
GetClusterNodeLabelsResponse response = client
|
GetClusterNodeLabelsResponse response = client
|
||||||
.getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
|
.getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
|
||||||
Assert.assertTrue(response.getNodeLabels().containsAll(
|
Assert.assertTrue(response.getNodeLabelList().containsAll(
|
||||||
Arrays.asList(labelX, labelY, labelZ)));
|
Arrays.asList(labelX, labelY, labelZ)));
|
||||||
|
|
||||||
// Get labels to nodes mapping
|
// Get labels to nodes mapping
|
||||||
|
|
Loading…
Reference in New Issue