|
@@ -28,6 +28,7 @@ import org.apache.hadoop.conf.Configuration;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
|
|
|
+import org.apache.hadoop.yarn.api.records.Container;
|
|
|
import org.apache.hadoop.yarn.api.records.ContainerId;
|
|
|
import org.apache.hadoop.yarn.api.records.Priority;
|
|
|
import org.apache.hadoop.yarn.api.records.Resource;
|
|
@@ -38,6 +39,8 @@ import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppEvent;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppEventType;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl;
|
|
@@ -152,6 +155,11 @@ public class FairSchedulerTestBase {
|
|
|
when(rmApp.getCurrentAppAttempt()).thenReturn(rmAppAttempt);
|
|
|
when(rmAppAttempt.getRMAppAttemptMetrics()).thenReturn(
|
|
|
new RMAppAttemptMetrics(id, resourceManager.getRMContext()));
|
|
|
+ ApplicationSubmissionContext submissionContext = mock(ApplicationSubmissionContext.class);
|
|
|
+ when(submissionContext.getUnmanagedAM()).thenReturn(false);
|
|
|
+ when(rmAppAttempt.getSubmissionContext()).thenReturn(submissionContext);
|
|
|
+ Container container = mock(Container.class);
|
|
|
+ when(rmAppAttempt.getMasterContainer()).thenReturn(container);
|
|
|
resourceManager.getRMContext().getRMApps()
|
|
|
.put(id.getApplicationId(), rmApp);
|
|
|
|
|
@@ -175,6 +183,9 @@ public class FairSchedulerTestBase {
|
|
|
when(rmApp.getCurrentAppAttempt()).thenReturn(rmAppAttempt);
|
|
|
when(rmAppAttempt.getRMAppAttemptMetrics()).thenReturn(
|
|
|
new RMAppAttemptMetrics(id,resourceManager.getRMContext()));
|
|
|
+ ApplicationSubmissionContext submissionContext = mock(ApplicationSubmissionContext.class);
|
|
|
+ when(submissionContext.getUnmanagedAM()).thenReturn(false);
|
|
|
+ when(rmAppAttempt.getSubmissionContext()).thenReturn(submissionContext);
|
|
|
resourceManager.getRMContext().getRMApps()
|
|
|
.put(id.getApplicationId(), rmApp);
|
|
|
|
|
@@ -206,13 +217,20 @@ public class FairSchedulerTestBase {
|
|
|
protected void createApplicationWithAMResource(ApplicationAttemptId attId,
|
|
|
String queue, String user, Resource amResource) {
|
|
|
RMContext rmContext = resourceManager.getRMContext();
|
|
|
- RMApp rmApp = new RMAppImpl(attId.getApplicationId(), rmContext, conf,
|
|
|
- null, null, null, ApplicationSubmissionContext.newInstance(null, null,
|
|
|
- null, null, null, false, false, 0, amResource, null), null, null,
|
|
|
+ ApplicationId appId = attId.getApplicationId();
|
|
|
+ RMApp rmApp = new RMAppImpl(appId, rmContext, conf,
|
|
|
+ null, user, null, ApplicationSubmissionContext.newInstance(appId, null,
|
|
|
+ queue, null, null, false, false, 0, amResource, null), null, null,
|
|
|
0, null, null, null);
|
|
|
- rmContext.getRMApps().put(attId.getApplicationId(), rmApp);
|
|
|
+ rmContext.getRMApps().put(appId, rmApp);
|
|
|
+ RMAppEvent event = new RMAppEvent(appId, RMAppEventType.START);
|
|
|
+ resourceManager.getRMContext().getRMApps().get(appId).handle(event);
|
|
|
+ event = new RMAppEvent(appId, RMAppEventType.APP_NEW_SAVED);
|
|
|
+ resourceManager.getRMContext().getRMApps().get(appId).handle(event);
|
|
|
+ event = new RMAppEvent(appId, RMAppEventType.APP_ACCEPTED);
|
|
|
+ resourceManager.getRMContext().getRMApps().get(appId).handle(event);
|
|
|
AppAddedSchedulerEvent appAddedEvent = new AppAddedSchedulerEvent(
|
|
|
- attId.getApplicationId(), queue, user);
|
|
|
+ appId, queue, user);
|
|
|
scheduler.handle(appAddedEvent);
|
|
|
AppAttemptAddedSchedulerEvent attempAddedEvent =
|
|
|
new AppAttemptAddedSchedulerEvent(attId, false);
|
|
@@ -227,6 +245,9 @@ public class FairSchedulerTestBase {
|
|
|
RMAppAttemptMetrics attemptMetric = mock(RMAppAttemptMetrics.class);
|
|
|
when(attempt.getRMAppAttemptMetrics()).thenReturn(attemptMetric);
|
|
|
when(app.getCurrentAppAttempt()).thenReturn(attempt);
|
|
|
+ ApplicationSubmissionContext submissionContext = mock(ApplicationSubmissionContext.class);
|
|
|
+ when(submissionContext.getUnmanagedAM()).thenReturn(false);
|
|
|
+ when(attempt.getSubmissionContext()).thenReturn(submissionContext);
|
|
|
resourceManager.getRMContext().getRMApps()
|
|
|
.put(attemptId.getApplicationId(), app);
|
|
|
return app;
|