@Override public RefreshNodesResponse refreshNodes(RefreshNodesRequest request) throws YarnException, StandbyException { final String operation = "refreshNodes"; final String msg = "refresh nodes."; UserGroupInformation user = checkAcls("refreshNodes"); checkRMStatus(user.getShortUserName(), operation, msg); try { Configuration conf = getConfiguration(new Configuration(false), YarnConfiguration.YARN_SITE_CONFIGURATION_FILE); switch (request.getDecommissionType()) { case NORMAL: rm.getRMContext().getNodesListManager().refreshNodes(conf); break; case GRACEFUL: rm.getRMContext().getNodesListManager().refreshNodesGracefully( conf, request.getDecommissionTimeout()); break; case FORCEFUL: rm.getRMContext().getNodesListManager().refreshNodesForcefully(); break; } RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); return recordFactory.newRecordInstance(RefreshNodesResponse.class); } catch (IOException ioe) { throw logAndWrapException(ioe, user.getShortUserName(), operation, msg); } }