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 sn...@apache.org on 2020/08/29 13:25:16 UTC
[hadoop] branch trunk updated: YARN-10409. Improve
MockQueueHierarchyBuilder to detect queue ambiguity. Contributed by Gergely
Pollak
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 a888d58 YARN-10409. Improve MockQueueHierarchyBuilder to detect queue ambiguity. Contributed by Gergely Pollak
a888d58 is described below
commit a888d580d8ab5bcab522613fbbe24e2d94aa20ff
Author: Szilard Nemeth <sn...@apache.org>
AuthorDate: Sat Aug 29 15:24:50 2020 +0200
YARN-10409. Improve MockQueueHierarchyBuilder to detect queue ambiguity. Contributed by Gergely Pollak
---
.../placement/MockQueueHierarchyBuilder.java | 18 ++++++++++++++++++
.../placement/TestUserGroupMappingPlacementRule.java | 4 ++--
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/MockQueueHierarchyBuilder.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/MockQueueHierarchyBuilder.java
index e2e6ad2..c08c80a 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/MockQueueHierarchyBuilder.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/MockQueueHierarchyBuilder.java
@@ -19,11 +19,13 @@
package org.apache.hadoop.yarn.server.resourcemanager.placement;
import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
import org.apache.commons.compress.utils.Lists;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.*;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -33,6 +35,8 @@ class MockQueueHierarchyBuilder {
private static final String QUEUE_SEP = ".";
private List<String> queuePaths = Lists.newArrayList();
private List<String> managedParentQueues = Lists.newArrayList();
+ private Set<String> ambiguous = Sets.newHashSet();
+ private Map<String, String> shortNameMapping = Maps.newHashMap();
private CapacitySchedulerQueueManager queueManager;
public static MockQueueHierarchyBuilder create() {
@@ -75,6 +79,14 @@ class MockQueueHierarchyBuilder {
for (String queuePath : queuePaths) {
addQueues(queues, queuePath);
}
+
+ ambiguous.forEach(queue -> {
+ if (queue.equals("root")) {
+ return;
+ }
+ when(queueManager.isAmbiguous(queue)).thenReturn(true);
+ when(queueManager.getQueue(queue)).thenReturn(null);
+ });
}
private void addQueues(Map<String, AbstractCSQueue> queues,
@@ -89,6 +101,12 @@ class MockQueueHierarchyBuilder {
currentQueuePath += currentQueuePath.equals("") ?
queueName : QUEUE_SEP + queueName;
+ if (shortNameMapping.containsKey(queueName) &&
+ !shortNameMapping.get(queueName).equals(currentQueuePath)) {
+ ambiguous.add(queueName);
+ }
+ shortNameMapping.put(queueName, currentQueuePath);
+
if (managedParentQueues.contains(parentPath) && !isLeaf) {
throw new IllegalStateException("Cannot add a queue under " +
"managed parent");
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/TestUserGroupMappingPlacementRule.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/TestUserGroupMappingPlacementRule.java
index 0b0a195..6cd1d52 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/TestUserGroupMappingPlacementRule.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/TestUserGroupMappingPlacementRule.java
@@ -84,7 +84,6 @@ public class TestUserGroupMappingPlacementRule {
.build();
when(queueManager.getQueue(isNull())).thenReturn(null);
- when(queueManager.isAmbiguous("primarygrouponly")).thenReturn(true);
rule.setQueueManager(queueManager);
ApplicationSubmissionContext asc = Records.newRecord(
ApplicationSubmissionContext.class);
@@ -349,7 +348,7 @@ public class TestUserGroupMappingPlacementRule {
.build());
}
- @Test(expected = YarnException.class)
+ @Test
public void testUserMappingToNestedUserPrimaryGroupWithAmbiguousQueues()
throws YarnException {
// u:%user:%user, submitter nosecondarygroupuser, queue is ambiguous
@@ -362,6 +361,7 @@ public class TestUserGroupMappingPlacementRule {
.parentQueue("%primary_group")
.build())
.inputUser("nosecondarygroupuser")
+ .expectedQueue("default")
.build());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org