Merge r1503353 from trunk to branch-2 for YARN-654. AMRMClient: Perform sanity checks for parameters of public methods (Xuan Gong via bikas)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1503354 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5699dbc35f
commit
dc8ad1213b
|
@ -672,6 +672,9 @@ Release 2.1.0-beta - 2013-07-02
|
||||||
YARN-763. AMRMClientAsync should stop heartbeating after receiving
|
YARN-763. AMRMClientAsync should stop heartbeating after receiving
|
||||||
shutdown from RM (Xuan Gong via bikas)
|
shutdown from RM (Xuan Gong via bikas)
|
||||||
|
|
||||||
|
YARN-654. AMRMClient: Perform sanity checks for parameters of public
|
||||||
|
methods (Xuan Gong via bikas)"
|
||||||
|
|
||||||
BREAKDOWN OF HADOOP-8562 SUBTASKS AND RELATED JIRAS
|
BREAKDOWN OF HADOOP-8562 SUBTASKS AND RELATED JIRAS
|
||||||
|
|
||||||
YARN-158. Yarn creating package-info.java must not depend on sh.
|
YARN-158. Yarn creating package-info.java must not depend on sh.
|
||||||
|
|
|
@ -36,8 +36,8 @@ import org.apache.hadoop.yarn.api.records.Priority;
|
||||||
import org.apache.hadoop.yarn.api.records.Resource;
|
import org.apache.hadoop.yarn.api.records.Resource;
|
||||||
import org.apache.hadoop.yarn.client.api.impl.AMRMClientImpl;
|
import org.apache.hadoop.yarn.client.api.impl.AMRMClientImpl;
|
||||||
import org.apache.hadoop.yarn.exceptions.YarnException;
|
import org.apache.hadoop.yarn.exceptions.YarnException;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
|
|
||||||
@InterfaceAudience.Public
|
@InterfaceAudience.Public
|
||||||
@InterfaceStability.Stable
|
@InterfaceStability.Stable
|
||||||
|
@ -57,6 +57,8 @@ public abstract class AMRMClient<T extends AMRMClient.ContainerRequest> extends
|
||||||
@Public
|
@Public
|
||||||
public static <T extends ContainerRequest> AMRMClient<T> createAMRMClient(
|
public static <T extends ContainerRequest> AMRMClient<T> createAMRMClient(
|
||||||
ApplicationAttemptId appAttemptId) {
|
ApplicationAttemptId appAttemptId) {
|
||||||
|
Preconditions.checkArgument(appAttemptId != null,
|
||||||
|
"ApplicationAttempId should not be null");
|
||||||
AMRMClient<T> client = new AMRMClientImpl<T>(appAttemptId);
|
AMRMClient<T> client = new AMRMClientImpl<T>(appAttemptId);
|
||||||
return client;
|
return client;
|
||||||
}
|
}
|
||||||
|
@ -95,6 +97,13 @@ public abstract class AMRMClient<T extends AMRMClient.ContainerRequest> extends
|
||||||
|
|
||||||
public ContainerRequest(Resource capability, String[] nodes,
|
public ContainerRequest(Resource capability, String[] nodes,
|
||||||
String[] racks, Priority priority, int containerCount) {
|
String[] racks, Priority priority, int containerCount) {
|
||||||
|
Preconditions.checkArgument(capability != null,
|
||||||
|
"The Resource to be requested for each container " +
|
||||||
|
"should not be null ");
|
||||||
|
Preconditions.checkArgument(priority != null,
|
||||||
|
"The priority at which to request containers should not be null ");
|
||||||
|
Preconditions.checkArgument(containerCount > 0,
|
||||||
|
"The number of containers to request should larger than 0");
|
||||||
this.capability = capability;
|
this.capability = capability;
|
||||||
this.nodes = (nodes != null ? ImmutableList.copyOf(nodes) : null);
|
this.nodes = (nodes != null ? ImmutableList.copyOf(nodes) : null);
|
||||||
this.racks = (racks != null ? ImmutableList.copyOf(racks) : null);
|
this.racks = (racks != null ? ImmutableList.copyOf(racks) : null);
|
||||||
|
|
|
@ -68,8 +68,7 @@ import org.apache.hadoop.yarn.util.RackResolver;
|
||||||
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
// TODO check inputs for null etc. YARN-654
|
|
||||||
|
|
||||||
@Private
|
@Private
|
||||||
@Unstable
|
@Unstable
|
||||||
|
@ -204,6 +203,10 @@ public class AMRMClientImpl<T extends ContainerRequest> extends AMRMClient<T> {
|
||||||
public RegisterApplicationMasterResponse registerApplicationMaster(
|
public RegisterApplicationMasterResponse registerApplicationMaster(
|
||||||
String appHostName, int appHostPort, String appTrackingUrl)
|
String appHostName, int appHostPort, String appTrackingUrl)
|
||||||
throws YarnException, IOException {
|
throws YarnException, IOException {
|
||||||
|
Preconditions.checkArgument(appHostName != null,
|
||||||
|
"The host name should not be null");
|
||||||
|
Preconditions.checkArgument(appHostPort >= 0,
|
||||||
|
"Port number of the host should not be negative");
|
||||||
// do this only once ???
|
// do this only once ???
|
||||||
RegisterApplicationMasterRequest request = recordFactory
|
RegisterApplicationMasterRequest request = recordFactory
|
||||||
.newRecordInstance(RegisterApplicationMasterRequest.class);
|
.newRecordInstance(RegisterApplicationMasterRequest.class);
|
||||||
|
@ -223,6 +226,8 @@ public class AMRMClientImpl<T extends ContainerRequest> extends AMRMClient<T> {
|
||||||
@Override
|
@Override
|
||||||
public AllocateResponse allocate(float progressIndicator)
|
public AllocateResponse allocate(float progressIndicator)
|
||||||
throws YarnException, IOException {
|
throws YarnException, IOException {
|
||||||
|
Preconditions.checkArgument(progressIndicator > 0,
|
||||||
|
"Progress indicator should not be negative");
|
||||||
AllocateResponse allocateResponse = null;
|
AllocateResponse allocateResponse = null;
|
||||||
ArrayList<ResourceRequest> askList = null;
|
ArrayList<ResourceRequest> askList = null;
|
||||||
ArrayList<ContainerId> releaseList = null;
|
ArrayList<ContainerId> releaseList = null;
|
||||||
|
@ -302,6 +307,8 @@ public class AMRMClientImpl<T extends ContainerRequest> extends AMRMClient<T> {
|
||||||
public void unregisterApplicationMaster(FinalApplicationStatus appStatus,
|
public void unregisterApplicationMaster(FinalApplicationStatus appStatus,
|
||||||
String appMessage, String appTrackingUrl) throws YarnException,
|
String appMessage, String appTrackingUrl) throws YarnException,
|
||||||
IOException {
|
IOException {
|
||||||
|
Preconditions.checkArgument(appStatus != null,
|
||||||
|
"AppStatus should not be null.");
|
||||||
FinishApplicationMasterRequest request = recordFactory
|
FinishApplicationMasterRequest request = recordFactory
|
||||||
.newRecordInstance(FinishApplicationMasterRequest.class);
|
.newRecordInstance(FinishApplicationMasterRequest.class);
|
||||||
request.setAppAttemptId(appAttemptId);
|
request.setAppAttemptId(appAttemptId);
|
||||||
|
@ -317,6 +324,8 @@ public class AMRMClientImpl<T extends ContainerRequest> extends AMRMClient<T> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void addContainerRequest(T req) {
|
public synchronized void addContainerRequest(T req) {
|
||||||
|
Preconditions.checkArgument(req != null,
|
||||||
|
"Resource request can not be null.");
|
||||||
Set<String> allRacks = new HashSet<String>();
|
Set<String> allRacks = new HashSet<String>();
|
||||||
if (req.getRacks() != null) {
|
if (req.getRacks() != null) {
|
||||||
allRacks.addAll(req.getRacks());
|
allRacks.addAll(req.getRacks());
|
||||||
|
@ -355,6 +364,8 @@ public class AMRMClientImpl<T extends ContainerRequest> extends AMRMClient<T> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void removeContainerRequest(T req) {
|
public synchronized void removeContainerRequest(T req) {
|
||||||
|
Preconditions.checkArgument(req != null,
|
||||||
|
"Resource request can not be null.");
|
||||||
Set<String> allRacks = new HashSet<String>();
|
Set<String> allRacks = new HashSet<String>();
|
||||||
if (req.getRacks() != null) {
|
if (req.getRacks() != null) {
|
||||||
allRacks.addAll(req.getRacks());
|
allRacks.addAll(req.getRacks());
|
||||||
|
@ -380,6 +391,8 @@ public class AMRMClientImpl<T extends ContainerRequest> extends AMRMClient<T> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void releaseAssignedContainer(ContainerId containerId) {
|
public synchronized void releaseAssignedContainer(ContainerId containerId) {
|
||||||
|
Preconditions.checkArgument(containerId != null,
|
||||||
|
"ContainerId can not be null.");
|
||||||
release.add(containerId);
|
release.add(containerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -398,6 +411,10 @@ public class AMRMClientImpl<T extends ContainerRequest> extends AMRMClient<T> {
|
||||||
Priority priority,
|
Priority priority,
|
||||||
String resourceName,
|
String resourceName,
|
||||||
Resource capability) {
|
Resource capability) {
|
||||||
|
Preconditions.checkArgument(capability != null,
|
||||||
|
"The Resource to be requested should not be null ");
|
||||||
|
Preconditions.checkArgument(priority != null,
|
||||||
|
"The priority at which to request containers should not be null ");
|
||||||
List<LinkedHashSet<T>> list = new LinkedList<LinkedHashSet<T>>();
|
List<LinkedHashSet<T>> list = new LinkedList<LinkedHashSet<T>>();
|
||||||
Map<String, TreeMap<Resource, ResourceRequestInfo>> remoteRequests =
|
Map<String, TreeMap<Resource, ResourceRequestInfo>> remoteRequests =
|
||||||
this.remoteRequestsTable.get(priority);
|
this.remoteRequestsTable.get(priority);
|
||||||
|
|
Loading…
Reference in New Issue