Repository: hadoop
Updated Branches:
  refs/heads/trunk 7c13872cb -> 745f64012


YARN-8843. updateNodeResource does not support units for memory. Contributed by 
Manikandan R.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/745f6401
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/745f6401
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/745f6401

Branch: refs/heads/trunk
Commit: 745f64012a2a912d5f0a36bbda89dc638e1715cb
Parents: 7c13872
Author: Inigo Goiri <inigo...@apache.org>
Authored: Mon Oct 8 10:05:18 2018 -0700
Committer: Inigo Goiri <inigo...@apache.org>
Committed: Mon Oct 8 10:05:18 2018 -0700

----------------------------------------------------------------------
 .../java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java  | 9 ++++++++-
 .../org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java   | 7 ++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/745f6401/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 a24c398..068eaa8 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
@@ -77,6 +77,7 @@ import 
org.apache.hadoop.yarn.server.api.protocolrecords.RemoveFromClusterNodeLa
 import 
org.apache.hadoop.yarn.server.api.protocolrecords.ReplaceLabelsOnNodeRequest;
 import 
org.apache.hadoop.yarn.server.api.protocolrecords.UpdateNodeResourceRequest;
 import org.apache.hadoop.yarn.util.ConverterUtils;
+import org.apache.hadoop.yarn.util.UnitsConversionUtil;
 import org.apache.hadoop.yarn.util.resource.ResourceUtils;
 import org.apache.hadoop.yarn.util.resource.Resources;
 
@@ -930,8 +931,14 @@ public class RMAdminCLI extends HAAdmin {
         if (resourceTypesFromRM.containsKey(resName)) {
           String[] resourceValue = ResourceUtils.parseResourceValue(resValue);
           if (resourceValue.length == 2) {
+            long value = Long.parseLong(resourceValue[1]);
+            if (!resourceTypesFromRM.get(resName).getUnits()
+                .equals(resourceValue[0])) {
+              value = UnitsConversionUtil.convert(resourceValue[0],
+                  resourceTypesFromRM.get(resName).getUnits(), value);
+            }
             ResourceInformation ri = ResourceInformation.newInstance(resName,
-                resourceValue[0], Long.parseLong(resourceValue[1]));
+                resourceValue[0], value);
             resource.setResourceInformation(resName, ri);
           } else {
             throw new IllegalArgumentException("Invalid resource value: " +

http://git-wip-us.apache.org/repos/asf/hadoop/blob/745f6401/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 1f4b493..4d0aea2 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
@@ -325,7 +325,7 @@ public class TestRMAdminCLI {
   public void testUpdateNodeResourceTypes() throws Exception {
     String nodeIdStr = "0.0.0.0:0";
     String resourceTypes =
-        "memory-mb=1024Mi,vcores=1,resource1=3Gi,resource2=2m";
+        "memory-mb=1Gi,vcores=1,resource1=3Gi,resource2=2m";
     String[] args = {"-updateNodeResource", nodeIdStr, resourceTypes};
     assertEquals(0, rmAdminCLI.run(args));
     ArgumentCaptor<UpdateNodeResourceRequest> argument =
@@ -342,6 +342,11 @@ public class TestRMAdminCLI {
         ResourceInformation.newInstance("resource2", "m", 2));
 
     ResourceOption resource = resourceMap.get(nodeId);
+    // Ensure memory-mb has been converted to "Mi"
+    assertEquals(1024,
+        resource.getResource().getResourceInformation("memory-mb").getValue());
+    assertEquals("Mi",
+        resource.getResource().getResourceInformation("memory-mb").getUnits());
     assertNotNull("resource for " + nodeIdStr + " shouldn't be null.",
         resource);
     assertEquals("resource value for " + nodeIdStr + " is not as expected.",


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to