|
@@ -18,11 +18,15 @@
|
|
|
|
|
|
package org.apache.hadoop.yarn.server.router.clientrm;
|
|
|
|
|
|
+import static org.mockito.Mockito.mock;
|
|
|
+
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
import java.util.Map;
|
|
|
+
|
|
|
+import org.apache.hadoop.yarn.MockApps;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportRequest;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportResponse;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsRequest;
|
|
@@ -35,6 +39,8 @@ import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationResponse;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
|
|
|
+import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
|
|
|
+import org.apache.hadoop.yarn.api.records.Priority;
|
|
|
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
|
|
import org.apache.hadoop.yarn.exceptions.YarnException;
|
|
|
import org.apache.hadoop.yarn.server.federation.policies.manager.UniformBroadcastPolicyManager;
|
|
@@ -42,6 +48,8 @@ import org.apache.hadoop.yarn.server.federation.store.impl.MemoryFederationState
|
|
|
import org.apache.hadoop.yarn.server.federation.store.records.SubClusterId;
|
|
|
import org.apache.hadoop.yarn.server.federation.utils.FederationStateStoreFacade;
|
|
|
import org.apache.hadoop.yarn.server.federation.utils.FederationStateStoreTestUtil;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
|
|
|
+import org.apache.hadoop.yarn.util.resource.Resources;
|
|
|
import org.junit.Assert;
|
|
|
import org.junit.Test;
|
|
|
import org.slf4j.Logger;
|
|
@@ -140,9 +148,8 @@ public class TestFederationClientInterceptor extends BaseRouterClientRMTest {
|
|
|
|
|
|
Assert.assertNotNull(response);
|
|
|
Assert.assertNotNull(response.getApplicationId());
|
|
|
- Assert.assertTrue(
|
|
|
- response.getApplicationId().getClusterTimestamp() < NUM_SUBCLUSTER);
|
|
|
- Assert.assertTrue(response.getApplicationId().getClusterTimestamp() >= 0);
|
|
|
+ Assert.assertTrue(response.getApplicationId()
|
|
|
+ .getClusterTimestamp() == ResourceManager.getClusterTimeStamp());
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -154,12 +161,9 @@ public class TestFederationClientInterceptor extends BaseRouterClientRMTest {
|
|
|
throws YarnException, IOException, InterruptedException {
|
|
|
LOG.info("Test FederationClientInterceptor: Submit Application");
|
|
|
|
|
|
- ApplicationId appId =
|
|
|
- ApplicationId.newInstance(System.currentTimeMillis(), 1);
|
|
|
- ApplicationSubmissionContext context = ApplicationSubmissionContext
|
|
|
- .newInstance(appId, "", "", null, null, false, false, -1, null, null);
|
|
|
- SubmitApplicationRequest request =
|
|
|
- SubmitApplicationRequest.newInstance(context);
|
|
|
+ ApplicationId appId = ApplicationId.newInstance(System.currentTimeMillis(),
|
|
|
+ 1);
|
|
|
+ SubmitApplicationRequest request = mockSubmitApplicationRequest(appId);
|
|
|
|
|
|
SubmitApplicationResponse response = interceptor.submitApplication(request);
|
|
|
|
|
@@ -169,6 +173,20 @@ public class TestFederationClientInterceptor extends BaseRouterClientRMTest {
|
|
|
Assert.assertTrue(subClusters.contains(scIdResult));
|
|
|
}
|
|
|
|
|
|
+ private SubmitApplicationRequest mockSubmitApplicationRequest(
|
|
|
+ ApplicationId appId) {
|
|
|
+ ContainerLaunchContext amContainerSpec = mock(ContainerLaunchContext.class);
|
|
|
+ ApplicationSubmissionContext context = ApplicationSubmissionContext
|
|
|
+ .newInstance(appId, MockApps.newAppName(), "q1",
|
|
|
+ Priority.newInstance(0), amContainerSpec, false, false, -1,
|
|
|
+ Resources.createResource(
|
|
|
+ YarnConfiguration.DEFAULT_RM_SCHEDULER_MINIMUM_ALLOCATION_MB),
|
|
|
+ "MockApp");
|
|
|
+ SubmitApplicationRequest request = SubmitApplicationRequest
|
|
|
+ .newInstance(context);
|
|
|
+ return request;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* This test validates the correctness of SubmitApplication in case of
|
|
|
* multiple submission. The first retry has to be submitted to the same
|
|
@@ -182,10 +200,7 @@ public class TestFederationClientInterceptor extends BaseRouterClientRMTest {
|
|
|
|
|
|
ApplicationId appId =
|
|
|
ApplicationId.newInstance(System.currentTimeMillis(), 1);
|
|
|
- ApplicationSubmissionContext context = ApplicationSubmissionContext
|
|
|
- .newInstance(appId, "", "", null, null, false, false, -1, null, null);
|
|
|
- SubmitApplicationRequest request =
|
|
|
- SubmitApplicationRequest.newInstance(context);
|
|
|
+ SubmitApplicationRequest request = mockSubmitApplicationRequest(appId);
|
|
|
|
|
|
// First attempt
|
|
|
SubmitApplicationResponse response = interceptor.submitApplication(request);
|
|
@@ -253,11 +268,8 @@ public class TestFederationClientInterceptor extends BaseRouterClientRMTest {
|
|
|
|
|
|
ApplicationId appId =
|
|
|
ApplicationId.newInstance(System.currentTimeMillis(), 1);
|
|
|
- ApplicationSubmissionContext context = ApplicationSubmissionContext
|
|
|
- .newInstance(appId, "", "", null, null, false, false, -1, null, null);
|
|
|
+ SubmitApplicationRequest request = mockSubmitApplicationRequest(appId);
|
|
|
|
|
|
- SubmitApplicationRequest request =
|
|
|
- SubmitApplicationRequest.newInstance(context);
|
|
|
// Submit the application we are going to kill later
|
|
|
SubmitApplicationResponse response = interceptor.submitApplication(request);
|
|
|
|
|
@@ -331,11 +343,8 @@ public class TestFederationClientInterceptor extends BaseRouterClientRMTest {
|
|
|
|
|
|
ApplicationId appId =
|
|
|
ApplicationId.newInstance(System.currentTimeMillis(), 1);
|
|
|
- ApplicationSubmissionContext context = ApplicationSubmissionContext
|
|
|
- .newInstance(appId, "", "", null, null, false, false, -1, null, null);
|
|
|
+ SubmitApplicationRequest request = mockSubmitApplicationRequest(appId);
|
|
|
|
|
|
- SubmitApplicationRequest request =
|
|
|
- SubmitApplicationRequest.newInstance(context);
|
|
|
// Submit the application we want the report later
|
|
|
SubmitApplicationResponse response = interceptor.submitApplication(request);
|
|
|
|