This is an automated email from the ASF dual-hosted git repository.

snemeth pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 2541efa  YARN-10783. Allow definition of auto queue template 
properties in root. Contributed by Andras Gyori
2541efa is described below

commit 2541efa496ba0e7e096ee5ec3c08d64b62036402
Author: Szilard Nemeth <snem...@apache.org>
AuthorDate: Tue May 25 13:55:59 2021 +0200

    YARN-10783. Allow definition of auto queue template properties in root. 
Contributed by Andras Gyori
---
 .../scheduler/capacity/AutoCreatedQueueTemplate.java       | 14 +++++++++++---
 .../scheduler/capacity/TestAutoCreatedQueueTemplate.java   | 11 +++++++++++
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/AutoCreatedQueueTemplate.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/AutoCreatedQueueTemplate.java
index 6c516c0..203ec4d 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/AutoCreatedQueueTemplate.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/AutoCreatedQueueTemplate.java
@@ -29,6 +29,7 @@ import java.util.Map;
 import java.util.Set;
 
 import static 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration.AUTO_QUEUE_CREATION_V2_PREFIX;
+import static 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration.ROOT;
 
 /**
  * A handler for storing and setting auto created queue template settings.
@@ -68,6 +69,10 @@ public class AutoCreatedQueueTemplate {
    */
   public void setTemplateEntriesForChild(Configuration conf,
                                          String childQueuePath) {
+    if (childQueuePath.equals(ROOT)) {
+      return;
+    }
+
     // Get all properties that are explicitly set
     Set<String> alreadySetProps = conf.getPropsWithPrefix(
         
CapacitySchedulerConfiguration.getQueuePrefix(childQueuePath)).keySet();
@@ -94,8 +99,8 @@ public class AutoCreatedQueueTemplate {
     List<String> queuePathParts = new ArrayList<>(Arrays.asList(
         queuePath.split("\\.")));
 
-    if (queuePathParts.size() <= 1) {
-      // This is either root or an empty queue name
+    if (queuePathParts.size() <= 1 && !queuePath.equals(ROOT)) {
+      // This is an invalid queue path
       return;
     }
     int queuePathMaxIndex = queuePathParts.size() - 1;
@@ -106,7 +111,10 @@ public class AutoCreatedQueueTemplate {
     // MAX_WILDCARD_LEVEL will be configurable in the future
     int supportedWildcardLevel = Math.min(queuePathMaxIndex - 1,
         MAX_WILDCARD_LEVEL);
-
+    // Allow root to have template properties
+    if (queuePath.equals(ROOT)) {
+      supportedWildcardLevel = 0;
+    }
 
     // Collect all template entries
     while (wildcardLevel <= supportedWildcardLevel) {
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestAutoCreatedQueueTemplate.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestAutoCreatedQueueTemplate.java
index 1c021f6..2763af0 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestAutoCreatedQueueTemplate.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestAutoCreatedQueueTemplate.java
@@ -109,6 +109,17 @@ public class TestAutoCreatedQueueTemplate {
         newConf.getNonLabeledQueueWeight(TEST_QUEUE_ABC), 10e-6);
   }
 
+  @Test
+  public void testRootTemplate() {
+    conf.set(getTemplateKey("root", "capacity"), "2w");
+
+    AutoCreatedQueueTemplate template =
+        new AutoCreatedQueueTemplate(conf, ROOT);
+    template.setTemplateEntriesForChild(conf, TEST_QUEUE_A);
+    Assert.assertEquals("root property is not set", 2f,
+        conf.getNonLabeledQueueWeight(TEST_QUEUE_A), 10e-6);
+  }
+
   private String getTemplateKey(String queuePath, String entryKey) {
     return CapacitySchedulerConfiguration.getQueuePrefix(queuePath)
         + AutoCreatedQueueTemplate.AUTO_QUEUE_TEMPLATE_PREFIX + entryKey;

---------------------------------------------------------------------
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