private void setQueueAcls( Map<String, Map<AccessType, AccessControlList>> queueAcls) throws IOException { authorizer.setPermission(allocsLoader.getDefaultPermissions(), UserGroupInformation.getCurrentUser()); List<Permission> permissions = new ArrayList<>(); for (Entry<String, Map<AccessType, AccessControlList>> queueAcl : queueAcls .entrySet()) { permissions.add(new Permission(new PrivilegedEntity(EntityType.QUEUE, queueAcl.getKey()), queueAcl.getValue())); } authorizer.setPermission(permissions, UserGroupInformation.getCurrentUser()); }
@Override public void onReload(AllocationConfiguration queueInfo) throws IOException { // Commit the reload; also create any queue defined in the alloc file // if it does not already exist, so it can be displayed on the web UI. Set<String> removedStaticQueues = getRemovedStaticQueues(queueInfo); writeLock.lock(); try { if (queueInfo == null) { authorizer.setPermission(allocsLoader.getDefaultPermissions(), UserGroupInformation.getCurrentUser()); } else { allocConf = queueInfo; setQueueAcls(allocConf.getQueueAcls()); allocConf.getDefaultSchedulingPolicy().initialize(getContext()); queueMgr.updateAllocationConfiguration(allocConf); queueMgr.setQueuesToDynamic(removedStaticQueues); applyChildDefaults(); maxRunningEnforcer.updateRunnabilityOnReload(); } } finally { writeLock.unlock(); } }