@Override public Set<String> getNodeLabelsForQueue() { // if queue's label is *, queue can access any labels. Instead of // considering all labels in cluster, only those labels which are // use some resource of this queue can be considered. Set<String> nodeLabels = new HashSet<String>(); if (this.getAccessibleNodeLabels() != null && this.getAccessibleNodeLabels() .contains(RMNodeLabelsManager.ANY)) { nodeLabels.addAll(Sets.union(this.getQueueCapacities().getNodePartitionsSet(), this.getQueueResourceUsage().getNodePartitionsSet())); } else { nodeLabels.addAll(this.getAccessibleNodeLabels()); } // Add NO_LABEL also to this list as NO_LABEL also can be granted with // resource in many general cases. if (!nodeLabels.contains(RMNodeLabelsManager.NO_LABEL)) { nodeLabels.add(RMNodeLabelsManager.NO_LABEL); } return nodeLabels; }
&& !parent.getAccessibleNodeLabels().contains(RMNodeLabelsManager.ANY)) { if (this.getAccessibleNodeLabels().contains(RMNodeLabelsManager.ANY)) { throw new IOException("Parent's accessible queue is not ANY(*), " + "but child's accessible queue is *"); } else { Set<String> diff = Sets.difference(this.getAccessibleNodeLabels(), parent.getAccessibleNodeLabels()); if (!diff.isEmpty()) {
&& !parent.getAccessibleNodeLabels().contains(RMNodeLabelsManager.ANY)) { if (this.getAccessibleNodeLabels().contains(RMNodeLabelsManager.ANY)) { throw new IOException("Parent's accessible queue is not ANY(*), " + "but child's accessible queue is *"); } else { Set<String> diff = Sets.difference(this.getAccessibleNodeLabels(), parent.getAccessibleNodeLabels()); if (!diff.isEmpty()) {
.getAccessibleNodeLabels().contains(RMNodeLabelsManager.ANY)) { if (this.getAccessibleNodeLabels().contains( RMNodeLabelsManager.ANY)) { throw new IOException("Parent's accessible queue is not ANY(*), " + "but child's accessible queue is *"); } else{ Set<String> diff = Sets.difference(this.getAccessibleNodeLabels(), parent.getAccessibleNodeLabels()); if (!diff.isEmpty()) {