diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java index 36c60987933..74362ff4528 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java @@ -115,7 +115,7 @@ public class AdminService extends CompositeService implements private YarnAuthorizationProvider authorizer; - private final RecordFactory recordFactory = + private final RecordFactory recordFactory = RecordFactoryProvider.getRecordFactory(null); private UserGroupInformation daemonUser; @@ -382,11 +382,11 @@ public class AdminService extends CompositeService implements @Override public RefreshQueuesResponse refreshQueues(RefreshQueuesRequest request) throws YarnException, StandbyException { - String argName = "refreshQueues"; + final String operation = "refreshQueues"; final String msg = "refresh queues."; - UserGroupInformation user = checkAcls(argName); + UserGroupInformation user = checkAcls(operation); - checkRMStatus(user.getShortUserName(), argName, msg); + checkRMStatus(user.getShortUserName(), operation, msg); RefreshQueuesResponse response = recordFactory.newRecordInstance(RefreshQueuesResponse.class); @@ -397,22 +397,22 @@ public class AdminService extends CompositeService implements if (rSystem != null) { rSystem.reinitialize(getConfig(), rmContext); } - RMAuditLogger.logSuccess(user.getShortUserName(), argName, + RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); return response; } catch (IOException ioe) { - throw logAndWrapException(ioe, user.getShortUserName(), argName, msg); + throw logAndWrapException(ioe, user.getShortUserName(), operation, msg); } } @Override public RefreshNodesResponse refreshNodes(RefreshNodesRequest request) throws YarnException, StandbyException { - String argName = "refreshNodes"; + final String operation = "refreshNodes"; final String msg = "refresh nodes."; UserGroupInformation user = checkAcls("refreshNodes"); - checkRMStatus(user.getShortUserName(), argName, msg); + checkRMStatus(user.getShortUserName(), operation, msg); try { Configuration conf = @@ -429,11 +429,11 @@ public class AdminService extends CompositeService implements rmContext.getNodesListManager().refreshNodesForcefully(); break; } - RMAuditLogger.logSuccess(user.getShortUserName(), argName, + RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); return recordFactory.newRecordInstance(RefreshNodesResponse.class); } catch (IOException ioe) { - throw logAndWrapException(ioe, user.getShortUserName(), argName, msg); + throw logAndWrapException(ioe, user.getShortUserName(), operation, msg); } } @@ -441,10 +441,11 @@ public class AdminService extends CompositeService implements public RefreshSuperUserGroupsConfigurationResponse refreshSuperUserGroupsConfiguration( RefreshSuperUserGroupsConfigurationRequest request) throws YarnException, IOException { - String argName = "refreshSuperUserGroupsConfiguration"; - UserGroupInformation user = checkAcls(argName); + final String operation = "refreshSuperUserGroupsConfiguration"; + UserGroupInformation user = checkAcls(operation); - checkRMStatus(user.getShortUserName(), argName, "refresh super-user-groups."); + checkRMStatus(user.getShortUserName(), operation, + "refresh super-user-groups."); // Accept hadoop common configs in core-site.xml as well as RM specific // configurations in yarn-site.xml @@ -455,8 +456,8 @@ public class AdminService extends CompositeService implements RMServerUtils.processRMProxyUsersConf(conf); ProxyUsers.refreshSuperUserGroupsConfiguration(conf); RMAuditLogger.logSuccess(user.getShortUserName(), - argName, "AdminService"); - + operation, "AdminService"); + return recordFactory.newRecordInstance( RefreshSuperUserGroupsConfigurationResponse.class); } @@ -465,16 +466,17 @@ public class AdminService extends CompositeService implements public RefreshUserToGroupsMappingsResponse refreshUserToGroupsMappings( RefreshUserToGroupsMappingsRequest request) throws YarnException, IOException { - String argName = "refreshUserToGroupsMappings"; - UserGroupInformation user = checkAcls(argName); + final String operation = "refreshUserToGroupsMappings"; + UserGroupInformation user = checkAcls(operation); - checkRMStatus(user.getShortUserName(), argName, "refresh user-groups."); + checkRMStatus(user.getShortUserName(), operation, "refresh user-groups."); Groups.getUserToGroupsMappingService( getConfiguration(new Configuration(false), YarnConfiguration.CORE_SITE_CONFIGURATION_FILE)).refresh(); - RMAuditLogger.logSuccess(user.getShortUserName(), argName, "AdminService"); + RMAuditLogger.logSuccess(user.getShortUserName(), operation, + "AdminService"); return recordFactory.newRecordInstance( RefreshUserToGroupsMappingsResponse.class); @@ -488,18 +490,18 @@ public class AdminService extends CompositeService implements private RefreshAdminAclsResponse refreshAdminAcls(boolean checkRMHAState) throws YarnException, IOException { - String argName = "refreshAdminAcls"; - UserGroupInformation user = checkAcls(argName); + final String operation = "refreshAdminAcls"; + UserGroupInformation user = checkAcls(operation); if (checkRMHAState) { - checkRMStatus(user.getShortUserName(), argName, "refresh Admin ACLs."); + checkRMStatus(user.getShortUserName(), operation, "refresh Admin ACLs."); } Configuration conf = getConfiguration(new Configuration(false), YarnConfiguration.YARN_SITE_CONFIGURATION_FILE); authorizer.setAdmins(getAdminAclList(conf), UserGroupInformation .getCurrentUser()); - RMAuditLogger.logSuccess(user.getShortUserName(), argName, + RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); return recordFactory.newRecordInstance(RefreshAdminAclsResponse.class); @@ -509,18 +511,18 @@ public class AdminService extends CompositeService implements public RefreshServiceAclsResponse refreshServiceAcls( RefreshServiceAclsRequest request) throws YarnException, IOException { if (!getConfig().getBoolean( - CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHORIZATION, + CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHORIZATION, false)) { throw RPCUtil.getRemoteException( - new IOException("Service Authorization (" + - CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHORIZATION + + new IOException("Service Authorization (" + + CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHORIZATION + ") not enabled.")); } - String argName = "refreshServiceAcls"; - UserGroupInformation user = checkAcls(argName); + final String operation = "refreshServiceAcls"; + UserGroupInformation user = checkAcls(operation); - checkRMStatus(user.getShortUserName(), argName, "refresh Service ACLs."); + checkRMStatus(user.getShortUserName(), operation, "refresh Service ACLs."); PolicyProvider policyProvider = RMPolicyProvider.getInstance(); Configuration conf = @@ -534,7 +536,8 @@ public class AdminService extends CompositeService implements rmContext.getResourceTrackerService().refreshServiceAcls( conf, policyProvider); - RMAuditLogger.logSuccess(user.getShortUserName(), argName, "AdminService"); + RMAuditLogger.logSuccess(user.getShortUserName(), operation, + "AdminService"); return recordFactory.newRecordInstance(RefreshServiceAclsResponse.class); } @@ -554,14 +557,14 @@ public class AdminService extends CompositeService implements @Override public UpdateNodeResourceResponse updateNodeResource( UpdateNodeResourceRequest request) throws YarnException, IOException { - String argName = "updateNodeResource"; - UserGroupInformation user = checkAcls(argName); - - checkRMStatus(user.getShortUserName(), argName, "update node resource."); - + final String operation = "updateNodeResource"; + UserGroupInformation user = checkAcls(operation); + + checkRMStatus(user.getShortUserName(), operation, "update node resource."); + Map nodeResourceMap = request.getNodeResourceMap(); Set nodeIds = nodeResourceMap.keySet(); - // verify nodes are all valid first. + // verify nodes are all valid first. // if any invalid nodes, throw exception instead of partially updating // valid nodes. for (NodeId nodeId : nodeIds) { @@ -574,7 +577,7 @@ public class AdminService extends CompositeService implements + "on an unrecognized node: " + nodeId); } } - + // do resource update on each node. // Notice: it is still possible to have invalid NodeIDs as nodes decommission // may happen just at the same time. This time, only log and skip absent @@ -584,7 +587,7 @@ public class AdminService extends CompositeService implements ResourceOption newResourceOption = entry.getValue(); NodeId nodeId = entry.getKey(); RMNode node = this.rmContext.getRMNodes().get(nodeId); - + if (node == null) { LOG.warn("Resource update get failed on an unrecognized node: " + nodeId); allSuccess = false; @@ -598,10 +601,10 @@ public class AdminService extends CompositeService implements } } if (allSuccess) { - RMAuditLogger.logSuccess(user.getShortUserName(), argName, + RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); } - UpdateNodeResourceResponse response = + UpdateNodeResourceResponse response = UpdateNodeResourceResponse.newInstance(); return response; } @@ -610,11 +613,11 @@ public class AdminService extends CompositeService implements public RefreshNodesResourcesResponse refreshNodesResources( RefreshNodesResourcesRequest request) throws YarnException, StandbyException { - String argName = "refreshNodesResources"; - UserGroupInformation user = checkAcls(argName); + final String operation = "refreshNodesResources"; + UserGroupInformation user = checkAcls(operation); final String msg = "refresh nodes."; - checkRMStatus(user.getShortUserName(), argName, msg); + checkRMStatus(user.getShortUserName(), operation, msg); RefreshNodesResourcesResponse response = recordFactory.newRecordInstance(RefreshNodesResourcesResponse.class); @@ -645,11 +648,11 @@ public class AdminService extends CompositeService implements // refresh dynamic resource in ResourceTrackerService this.rmContext.getResourceTrackerService(). updateDynamicResourceConfiguration(newConf); - RMAuditLogger.logSuccess(user.getShortUserName(), argName, + RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); return response; } catch (IOException ioe) { - throw logAndWrapException(ioe, user.getShortUserName(), argName, msg); + throw logAndWrapException(ioe, user.getShortUserName(), operation, msg); } } @@ -698,28 +701,28 @@ public class AdminService extends CompositeService implements @Override public AddToClusterNodeLabelsResponse addToClusterNodeLabels(AddToClusterNodeLabelsRequest request) throws YarnException, IOException { - String argName = "addToClusterNodeLabels"; + final String operation = "addToClusterNodeLabels"; final String msg = "add labels."; - UserGroupInformation user = checkAcls(argName); + UserGroupInformation user = checkAcls(operation); - checkRMStatus(user.getShortUserName(), argName, msg); + checkRMStatus(user.getShortUserName(), operation, msg); AddToClusterNodeLabelsResponse response = recordFactory.newRecordInstance(AddToClusterNodeLabelsResponse.class); try { rmContext.getNodeLabelManager().addToCluserNodeLabels(request.getNodeLabels()); RMAuditLogger - .logSuccess(user.getShortUserName(), argName, "AdminService"); + .logSuccess(user.getShortUserName(), operation, "AdminService"); return response; } catch (IOException ioe) { - throw logAndWrapException(ioe, user.getShortUserName(), argName, msg); + throw logAndWrapException(ioe, user.getShortUserName(), operation, msg); } } @Override public RemoveFromClusterNodeLabelsResponse removeFromClusterNodeLabels( RemoveFromClusterNodeLabelsRequest request) throws YarnException, IOException { - String operation = "removeFromClusterNodeLabels"; + final String operation = "removeFromClusterNodeLabels"; final String msg = "remove labels."; UserGroupInformation user = checkAcls(operation); @@ -741,7 +744,7 @@ public class AdminService extends CompositeService implements @Override public ReplaceLabelsOnNodeResponse replaceLabelsOnNode( ReplaceLabelsOnNodeRequest request) throws YarnException, IOException { - String operation = "replaceLabelsOnNode"; + final String operation = "replaceLabelsOnNode"; final String msg = "set node to labels."; try { @@ -789,15 +792,16 @@ public class AdminService extends CompositeService implements public CheckForDecommissioningNodesResponse checkForDecommissioningNodes( CheckForDecommissioningNodesRequest checkForDecommissioningNodesRequest) throws IOException, YarnException { - String argName = "checkForDecommissioningNodes"; + final String operation = "checkForDecommissioningNodes"; final String msg = "check for decommissioning nodes."; UserGroupInformation user = checkAcls("checkForDecommissioningNodes"); - checkRMStatus(user.getShortUserName(), argName, msg); + checkRMStatus(user.getShortUserName(), operation, msg); Set decommissioningNodes = rmContext.getNodesListManager() .checkForDecommissioningNodes(); - RMAuditLogger.logSuccess(user.getShortUserName(), argName, "AdminService"); + RMAuditLogger.logSuccess(user.getShortUserName(), operation, + "AdminService"); CheckForDecommissioningNodesResponse response = recordFactory .newRecordInstance(CheckForDecommissioningNodesResponse.class); response.setDecommissioningNodes(decommissioningNodes); @@ -808,11 +812,11 @@ public class AdminService extends CompositeService implements public RefreshClusterMaxPriorityResponse refreshClusterMaxPriority( RefreshClusterMaxPriorityRequest request) throws YarnException, IOException { - String argName = "refreshClusterMaxPriority"; - String msg = "refresh cluster max priority"; - UserGroupInformation user = checkAcls(argName); + final String operation = "refreshClusterMaxPriority"; + final String msg = "refresh cluster max priority"; + UserGroupInformation user = checkAcls(operation); - checkRMStatus(user.getShortUserName(), argName, msg); + checkRMStatus(user.getShortUserName(), operation, msg); try { Configuration conf = getConfiguration(new Configuration(false), @@ -821,11 +825,11 @@ public class AdminService extends CompositeService implements rmContext.getScheduler().setClusterMaxPriority(conf); RMAuditLogger - .logSuccess(user.getShortUserName(), argName, "AdminService"); + .logSuccess(user.getShortUserName(), operation, "AdminService"); return recordFactory .newRecordInstance(RefreshClusterMaxPriorityResponse.class); } catch (YarnException e) { - throw logAndWrapException(e, user.getShortUserName(), argName, msg); + throw logAndWrapException(e, user.getShortUserName(), operation, msg); } }