diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GPGPolicyFacade.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GPGPolicyFacade.java index 4c61a147171131..9a9de440466cfe 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GPGPolicyFacade.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GPGPolicyFacade.java @@ -95,6 +95,7 @@ public GPGPolicyFacade(FederationStateStoreFacade stateStore, * * @param queueName the name of the queue we want the policy manager for. * @return the policy manager responsible for the queue policy. + * @throws YarnException exceptions from yarn servers. */ public FederationPolicyManager getPolicyManager(String queueName) throws YarnException { @@ -155,6 +156,7 @@ public FederationPolicyManager getPolicyManager(String queueName) * @param policyManager The policy manager we want to update into the state * store. It contains policy information as well as * the queue name we will update for. + * @throws YarnException exceptions from yarn servers. */ public void setPolicyManager(FederationPolicyManager policyManager) throws YarnException { diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GPGUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GPGUtils.java index 429bec46e825b9..636ce92500a125 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GPGUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GPGUtils.java @@ -25,7 +25,6 @@ import javax.servlet.http.HttpServletResponse; import javax.ws.rs.core.MediaType; -import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.yarn.exceptions.YarnRuntimeException; import com.sun.jersey.api.client.Client; @@ -45,10 +44,15 @@ private GPGUtils() { } /** - * Performs an invocation of the the remote RMWebService. + * Performs an invocation of the remote RMWebService. + * + * @param Generic T. + * @param webAddr WebAddress. + * @param path url path. + * @param returnType return type. + * @return response entity. */ - public static T invokeRMWebService(Configuration conf, String webAddr, - String path, final Class returnType) { + public static T invokeRMWebService(String webAddr, String path, final Class returnType) { Client client = Client.create(); T obj = null; @@ -66,6 +70,9 @@ public static T invokeRMWebService(Configuration conf, String webAddr, /** * Creates a uniform weighting of 1.0 for each sub cluster. + * + * @param ids subClusterId set + * @return weight of subCluster. */ public static Map createUniformWeights( Set ids) { @@ -76,5 +83,4 @@ public static Map createUniformWeights( } return weights; } - } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/GlobalPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/GlobalPolicy.java index 38d762dad2d2b0..c6d6558dbec1e4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/GlobalPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/GlobalPolicy.java @@ -50,6 +50,8 @@ public Configuration getConf() { * Delegating this responsibility to the PolicyGenerator enables us to avoid * duplicate calls to the same * endpoints as the GlobalPolicy is invoked * once per queue. + * + * @return a map of the object type and RM path. */ protected Map registerPaths() { // Default register nothing diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/PolicyGenerator.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/PolicyGenerator.java index c1d49515adb583..27f2b910ebbfd6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/PolicyGenerator.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/PolicyGenerator.java @@ -62,11 +62,14 @@ public class PolicyGenerator implements Runnable, Configurable { // Global policy instance @VisibleForTesting - protected GlobalPolicy policy; + private GlobalPolicy policy; /** * The PolicyGenerator periodically reads SubCluster load and updates * policies into the FederationStateStore. + * + * @param conf Configuration. + * @param context GPG Context. */ public PolicyGenerator(Configuration conf, GPGContext context) { setConf(conf); @@ -157,7 +160,7 @@ protected Map> getInfos( clusterInfo.put(sci.getSubClusterId(), new HashMap()); } Object ret = GPGUtils - .invokeRMWebService(conf, sci.getRMWebServiceAddress(), + .invokeRMWebService(sci.getRMWebServiceAddress(), e.getValue(), e.getKey()); clusterInfo.get(sci.getSubClusterId()).put(e.getKey(), ret); } @@ -178,7 +181,7 @@ protected Map getSchedulerInfo( new HashMap<>(); for (SubClusterInfo sci : activeSubClusters.values()) { SchedulerTypeInfo sti = GPGUtils - .invokeRMWebService(conf, sci.getRMWebServiceAddress(), + .invokeRMWebService(sci.getRMWebServiceAddress(), RMWSConsts.SCHEDULER, SchedulerTypeInfo.class); if(sti != null){ schedInfo.put(sci.getSubClusterId(), sti.getSchedulerInfo()); @@ -258,4 +261,11 @@ private void addOrAppend(Map> multimap, K key, V value) { multimap.get(key).add(value); } + public GlobalPolicy getPolicy() { + return policy; + } + + public void setPolicy(GlobalPolicy policy) { + this.policy = policy; + } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/test/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/TestPolicyGenerator.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/test/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/TestPolicyGenerator.java index 9d27b3b2a39bbd..ef51394335e34b 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/test/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/TestPolicyGenerator.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/test/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/TestPolicyGenerator.java @@ -172,11 +172,11 @@ private T readJSON(String pathname, Class classy) @Test public void testPolicyGenerator() throws YarnException { policyGenerator = new TestablePolicyGenerator(); - policyGenerator.policy = mock(GlobalPolicy.class); + policyGenerator.setPolicy(mock(GlobalPolicy.class)); policyGenerator.run(); - verify(policyGenerator.policy, times(1)) + verify(policyGenerator.getPolicy(), times(1)) .updatePolicy("default", clusterInfos, null); - verify(policyGenerator.policy, times(1)) + verify(policyGenerator.getPolicy(), times(1)) .updatePolicy("default2", clusterInfos, null); } @@ -188,11 +188,11 @@ public void testBlacklist() throws YarnException { new HashMap<>(clusterInfos); blacklistedCMI.remove(subClusterIds.get(0)); policyGenerator = new TestablePolicyGenerator(); - policyGenerator.policy = mock(GlobalPolicy.class); + policyGenerator.setPolicy(mock(GlobalPolicy.class)); policyGenerator.run(); - verify(policyGenerator.policy, times(1)) + verify(policyGenerator.getPolicy(), times(1)) .updatePolicy("default", blacklistedCMI, null); - verify(policyGenerator.policy, times(0)) + verify(policyGenerator.getPolicy(), times(0)) .updatePolicy("default", clusterInfos, null); } @@ -206,11 +206,11 @@ public void testBlacklistTwo() throws YarnException { blacklistedCMI.remove(subClusterIds.get(0)); blacklistedCMI.remove(subClusterIds.get(1)); policyGenerator = new TestablePolicyGenerator(); - policyGenerator.policy = mock(GlobalPolicy.class); + policyGenerator.setPolicy(mock(GlobalPolicy.class)); policyGenerator.run(); - verify(policyGenerator.policy, times(1)) + verify(policyGenerator.getPolicy(), times(1)) .updatePolicy("default", blacklistedCMI, null); - verify(policyGenerator.policy, times(0)) + verify(policyGenerator.getPolicy(), times(0)) .updatePolicy("default", clusterInfos, null); } @@ -230,12 +230,12 @@ public void testExistingPolicy() throws YarnException { GetSubClusterPolicyConfigurationResponse.newInstance(testConf)); policyGenerator = new TestablePolicyGenerator(); - policyGenerator.policy = mock(GlobalPolicy.class); + policyGenerator.setPolicy(mock(GlobalPolicy.class)); policyGenerator.run(); ArgumentCaptor argCaptor = ArgumentCaptor.forClass(FederationPolicyManager.class); - verify(policyGenerator.policy, times(1)) + verify(policyGenerator.getPolicy(), times(1)) .updatePolicy(eq("default"), eq(clusterInfos), argCaptor.capture()); assertEquals(argCaptor.getValue().getClass(), manager.getClass()); assertEquals(argCaptor.getValue().serializeConf(), manager.serializeConf()); @@ -294,7 +294,7 @@ public void testCallRM() { String rmAddress = WebAppUtils.getRMWebAppURLWithScheme(this.conf); SchedulerTypeInfo sti = GPGUtils - .invokeRMWebService(conf, rmAddress, RMWSConsts.SCHEDULER, + .invokeRMWebService(rmAddress, RMWSConsts.SCHEDULER, SchedulerTypeInfo.class); Assert.assertNotNull(sti);