LeafQueue extends AbstractCSQueue { @Override public void submitApplicationAttempt(FiCaSchedulerApp application, String userName) { submitApplicationAttempt(application, userName, false); } @SuppressWarnings({ "unchecked", "rawtypes" })  LeafQueue(CapacitySchedulerContext cs,
      String queueName, CSQueue parent, CSQueue old);  LeafQueue(CapacitySchedulerContext cs,
      CapacitySchedulerConfiguration configuration,
      String queueName, CSQueue parent, CSQueue old); @Private float getMinimumAllocationFactor(); @Private float getMaxAMResourcePerQueuePercent(); int getMaxApplications(); int getMaxApplicationsPerUser(); UsersManager getUsersManager(); @Override AbstractUsersManager getAbstractUsersManager(); @Override List<CSQueue> getChildQueues(); @Override int getNumApplications(); int getNumPendingApplications(); int getNumActiveApplications(); @Private int getNumPendingApplications(String user); @Private int getNumActiveApplications(String user); @Private int getUserLimit(); @Private float getUserLimitFactor(); @Override QueueInfo getQueueInfo(
      boolean includeChildQueues, boolean recursive); @Override List<QueueUserACLInfo> getQueueUserAclInfo(UserGroupInformation user); String toString(); @VisibleForTesting User getUser(String userName); @Private List<AppPriorityACLGroup> getPriorityACLs(); @Override void reinitialize(
      CSQueue newlyParsedQueue, Resource clusterResource); @Override void submitApplicationAttempt(FiCaSchedulerApp application,
      String userName); @Override void submitApplicationAttempt(FiCaSchedulerApp application,
      String userName, boolean isMoveApp); @Override void submitApplication(ApplicationId applicationId, String userName,
      String queue); void validateSubmitApplication(ApplicationId applicationId,
      String userName, String queue); Resource getAMResourceLimit(); Resource getAMResourceLimitPerPartition(String nodePartition); @VisibleForTesting Resource calculateAndGetAMResourceLimit(); @VisibleForTesting Resource getUserAMResourceLimit(); Resource getUserAMResourceLimitPerPartition(
      String nodePartition, String userName); Resource calculateAndGetAMResourceLimitPerPartition(
      String nodePartition); @Override void finishApplication(ApplicationId application, String user); @Override void finishApplicationAttempt(FiCaSchedulerApp application, String queue); @Override CSAssignment assignContainers(Resource clusterResource,
      CandidateNodeSet<FiCaSchedulerNode> candidates,
      ResourceLimits currentResourceLimits, SchedulingMode schedulingMode); @Override boolean accept(Resource cluster,
      ResourceCommitRequest<FiCaSchedulerApp, FiCaSchedulerNode> request); void apply(Resource cluster,
      ResourceCommitRequest<FiCaSchedulerApp, FiCaSchedulerNode> request); @Lock(NoLock.class) int getNodeLocalityDelay(); @Lock(NoLock.class) int getRackLocalityAdditionalDelay(); @Lock(NoLock.class) boolean getRackLocalityFullReset(); Resource getResourceLimitForActiveUsers(String userName,
      Resource clusterResource, String nodePartition,
      SchedulingMode schedulingMode); Resource getResourceLimitForAllUsers(String userName,
      Resource clusterResource, String nodePartition,
      SchedulingMode schedulingMode); void recalculateQueueUsageRatio(Resource clusterResource,
      String nodePartition); @Override void completedContainer(Resource clusterResource, 
      FiCaSchedulerApp application, FiCaSchedulerNode node, RMContainer rmContainer, 
      ContainerStatus containerStatus, RMContainerEventType event, CSQueue childQueue,
      boolean sortQueues); @Override void updateClusterResource(Resource clusterResource,
      ResourceLimits currentResourceLimits); @Override void incUsedResource(String nodeLabel, Resource resourceToInc,
      SchedulerApplicationAttempt application); @Override void decUsedResource(String nodeLabel, Resource resourceToDec,
      SchedulerApplicationAttempt application); void incAMUsedResource(String nodeLabel, Resource resourceToInc,
      SchedulerApplicationAttempt application); void decAMUsedResource(String nodeLabel, Resource resourceToDec,
      SchedulerApplicationAttempt application); @Override void recoverContainer(Resource clusterResource,
      SchedulerApplicationAttempt attempt, RMContainer rmContainer); Collection<FiCaSchedulerApp> getPendingApplications(); Collection<FiCaSchedulerApp> getApplications(); Collection<FiCaSchedulerApp> getAllApplications(); Resource getTotalPendingResourcesConsideringUserLimit(
      Resource clusterResources, String partition,
      boolean deductReservedFromPending); @Override void collectSchedulerApplications(
      Collection<ApplicationAttemptId> apps); @Override void attachContainer(Resource clusterResource,
      FiCaSchedulerApp application, RMContainer rmContainer); @Override void detachContainer(Resource clusterResource,
      FiCaSchedulerApp application, RMContainer rmContainer); Map<String, TreeSet<RMContainer>> getIgnoreExclusivityRMContainers(); void setCapacity(float capacity); void setCapacity(String nodeLabel, float capacity); void setAbsoluteCapacity(float absoluteCapacity); void setAbsoluteCapacity(String nodeLabel, float absoluteCapacity); void setMaxApplicationsPerUser(int maxApplicationsPerUser); void setMaxApplications(int maxApplications); void setMaxAMResourcePerQueuePercent(
      float maxAMResourcePerQueuePercent); OrderingPolicy<FiCaSchedulerApp> getOrderingPolicy(); @Override Priority getDefaultApplicationPriority(); void updateApplicationPriority(SchedulerApplication<FiCaSchedulerApp> app,
      Priority newAppPriority); OrderingPolicy<FiCaSchedulerApp> getPendingAppsOrderingPolicy(); @Override void stopQueue(); Set<String> getAllUsers();  }
@Test public void testUserQueueAcl() throws Exception { LeafQueue d = stubLeafQueue((LeafQueue) queues.get(D)); final String user_d = "user_d"; final ApplicationAttemptId appAttemptId_0 = TestUtils .getMockApplicationAttemptId(0, 1); FiCaSchedulerApp app_0 = new FiCaSchedulerApp(appAttemptId_0, user_d, d, null, spyRMContext); d.submitApplicationAttempt(app_0, user_d); final ApplicationAttemptId appAttemptId_1 = TestUtils .getMockApplicationAttemptId(0, 2); FiCaSchedulerApp app_1 = new FiCaSchedulerApp(appAttemptId_1, user_d, d, null, spyRMContext); d.submitApplicationAttempt(app_1, user_d); }