Return-Path: X-Original-To: apmail-hadoop-common-commits-archive@www.apache.org Delivered-To: apmail-hadoop-common-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4EBD6181AD for ; Tue, 1 Dec 2015 22:37:59 +0000 (UTC) Received: (qmail 6129 invoked by uid 500); 1 Dec 2015 22:37:20 -0000 Delivered-To: apmail-hadoop-common-commits-archive@hadoop.apache.org Received: (qmail 5613 invoked by uid 500); 1 Dec 2015 22:37:19 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-dev@hadoop.apache.org Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 4639 invoked by uid 99); 1 Dec 2015 22:37:19 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Dec 2015 22:37:19 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 0B205E2C5E; Tue, 1 Dec 2015 22:37:19 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: szetszwo@apache.org To: common-commits@hadoop.apache.org Date: Tue, 01 Dec 2015 22:37:37 -0000 Message-Id: <2b0d2076e12b4c8d96e92c1584b08c56@git.apache.org> In-Reply-To: <78146cb6c18c4535bdd371119eaaf7e9@git.apache.org> References: <78146cb6c18c4535bdd371119eaaf7e9@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [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 Authored: Tue Nov 24 16:35:56 2015 -0800 Committer: Wangda Tan 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 resourceMap = new HashMap(); @@ -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));