You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by sz...@apache.org on 2015/12/01 23:37:37 UTC
[20/46] hadoop git commit: YARN-4384. updateNodeResource CLI should
not accept negative values for resource. (Junping Du via wangda)
YARN-4384. updateNodeResource CLI should not accept negative values for resource. (Junping Du via wangda)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/23c625ec
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/23c625ec
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/23c625ec
Branch: refs/heads/HDFS-1312
Commit: 23c625ec571b01c0a2811728608890da38f86890
Parents: 78ec38b
Author: Wangda Tan <wa...@apache.org>
Authored: Tue Nov 24 16:35:56 2015 -0800
Committer: Wangda Tan <wa...@apache.org>
Committed: Tue Nov 24 16:35:56 2015 -0800
----------------------------------------------------------------------
hadoop-yarn-project/CHANGES.txt | 3 +++
.../org/apache/hadoop/yarn/client/cli/RMAdminCLI.java | 11 +++++++++++
.../apache/hadoop/yarn/client/cli/TestRMAdminCLI.java | 14 ++++++++++++++
3 files changed, 28 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/23c625ec/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index 155d5c9..e036335 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -1069,6 +1069,9 @@ Release 2.8.0 - UNRELEASED
YARN-4387. Fix typo in FairScheduler log message. (Xin Wang via ozawa)
+ YARN-4384. updateNodeResource CLI should not accept negative values for resource.
+ (Junping Du via wangda)
+
Release 2.7.3 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/23c625ec/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java
index 21ba7a8..a5e53e4 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java
@@ -418,11 +418,17 @@ public class RMAdminCLI extends HAAdmin {
private int updateNodeResource(String nodeIdStr, int memSize,
int cores, int overCommitTimeout) throws IOException, YarnException {
+ // check resource value first
+ if (invalidResourceValue(memSize, cores)) {
+ throw new IllegalArgumentException("Invalid resource value: " + "(" +
+ memSize + "," + cores + ") for updateNodeResource.");
+ }
// Refresh the nodes
ResourceManagerAdministrationProtocol adminProtocol = createAdminProtocol();
UpdateNodeResourceRequest request =
recordFactory.newRecordInstance(UpdateNodeResourceRequest.class);
NodeId nodeId = ConverterUtils.toNodeId(nodeIdStr);
+
Resource resource = Resources.createResource(memSize, cores);
Map<NodeId, ResourceOption> resourceMap =
new HashMap<NodeId, ResourceOption>();
@@ -433,6 +439,11 @@ public class RMAdminCLI extends HAAdmin {
return 0;
}
+ // complain negative value for cpu or memory.
+ private boolean invalidResourceValue(int memValue, int coreValue) {
+ return (memValue < 0) || (coreValue < 0);
+ }
+
private int getGroups(String[] usernames) throws IOException {
// Get groups users belongs to
ResourceManagerAdministrationProtocol adminProtocol = createAdminProtocol();
http://git-wip-us.apache.org/repos/asf/hadoop/blob/23c625ec/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java
index 085cf02..f01441d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java
@@ -219,6 +219,20 @@ public class TestRMAdminCLI {
}
@Test(timeout=500)
+ public void testUpdateNodeResourceWithInvalidValue() throws Exception {
+ String nodeIdStr = "0.0.0.0:0";
+ int memSize = -2048;
+ int cores = 2;
+ String[] args = { "-updateNodeResource", nodeIdStr,
+ Integer.toString(memSize), Integer.toString(cores) };
+ // execution of command line is expected to be failed
+ assertEquals(-1, rmAdminCLI.run(args));
+ // verify admin protocol never calls.
+ verify(admin,times(0)).updateNodeResource(
+ any(UpdateNodeResourceRequest.class));
+ }
+
+ @Test(timeout=500)
public void testRefreshNodes() throws Exception {
String[] args = { "-refreshNodes" };
assertEquals(0, rmAdminCLI.run(args));