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 f75219b0add..4d4ad5d957e 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 @@ -116,7 +116,7 @@ public class AdminService extends CompositeService implements private YarnAuthorizationProvider authorizer; - private final RecordFactory recordFactory = + private final RecordFactory recordFactory = RecordFactoryProvider.getRecordFactory(null); private UserGroupInformation daemonUser; @@ -399,11 +399,11 @@ public synchronized HAServiceStatus getServiceStatus() throws IOException { @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); @@ -414,22 +414,22 @@ public RefreshQueuesResponse refreshQueues(RefreshQueuesRequest request) 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 = @@ -446,11 +446,11 @@ public RefreshNodesResponse refreshNodes(RefreshNodesRequest request) 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); } } @@ -458,10 +458,11 @@ public RefreshNodesResponse refreshNodes(RefreshNodesRequest request) 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 @@ -472,8 +473,8 @@ public RefreshSuperUserGroupsConfigurationResponse refreshSuperUserGroupsConfigu RMServerUtils.processRMProxyUsersConf(conf); ProxyUsers.refreshSuperUserGroupsConfiguration(conf); RMAuditLogger.logSuccess(user.getShortUserName(), - argName, "AdminService"); - + operation, "AdminService"); + return recordFactory.newRecordInstance( RefreshSuperUserGroupsConfigurationResponse.class); } @@ -482,16 +483,17 @@ public RefreshSuperUserGroupsConfigurationResponse refreshSuperUserGroupsConfigu 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); @@ -505,18 +507,18 @@ public RefreshAdminAclsResponse refreshAdminAcls( 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); @@ -526,18 +528,18 @@ private RefreshAdminAclsResponse refreshAdminAcls(boolean checkRMHAState) 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 = @@ -551,7 +553,8 @@ public RefreshServiceAclsResponse refreshServiceAcls( rmContext.getResourceTrackerService().refreshServiceAcls( conf, policyProvider); - RMAuditLogger.logSuccess(user.getShortUserName(), argName, "AdminService"); + RMAuditLogger.logSuccess(user.getShortUserName(), operation, + "AdminService"); return recordFactory.newRecordInstance(RefreshServiceAclsResponse.class); } @@ -571,14 +574,14 @@ public String[] getGroupsForUser(String user) throws IOException { @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) { @@ -591,7 +594,7 @@ public UpdateNodeResourceResponse updateNodeResource( + "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 @@ -601,7 +604,7 @@ public UpdateNodeResourceResponse updateNodeResource( 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; @@ -615,10 +618,10 @@ public UpdateNodeResourceResponse updateNodeResource( } } if (allSuccess) { - RMAuditLogger.logSuccess(user.getShortUserName(), argName, + RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); } - UpdateNodeResourceResponse response = + UpdateNodeResourceResponse response = UpdateNodeResourceResponse.newInstance(); return response; } @@ -627,11 +630,11 @@ public UpdateNodeResourceResponse updateNodeResource( 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); @@ -662,11 +665,11 @@ public RefreshNodesResourcesResponse refreshNodesResources( // 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); } } @@ -719,28 +722,28 @@ public Server getServer() { @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); @@ -762,7 +765,7 @@ public RemoveFromClusterNodeLabelsResponse removeFromClusterNodeLabels( @Override public ReplaceLabelsOnNodeResponse replaceLabelsOnNode( ReplaceLabelsOnNodeRequest request) throws YarnException, IOException { - String operation = "replaceLabelsOnNode"; + final String operation = "replaceLabelsOnNode"; final String msg = "set node to labels."; try { @@ -810,15 +813,16 @@ private YarnException logAndWrapException(Exception exception, String user, 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); @@ -829,11 +833,11 @@ public CheckForDecommissioningNodesResponse checkForDecommissioningNodes( 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), @@ -842,11 +846,11 @@ public RefreshClusterMaxPriorityResponse refreshClusterMaxPriority( 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); } }