You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by vi...@apache.org on 2011/09/30 14:54:55 UTC
svn commit: r1177639 [3/3] - in
/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project: ./
hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/rm/
hadoop-mapreduce-client/hadoop-mapreduce-client-co...
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestASMStateMachine.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestASMStateMachine.java?rev=1177639&r1=1177638&r2=1177639&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestASMStateMachine.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestASMStateMachine.java Fri Sep 30 12:54:53 2011
@@ -26,7 +26,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.records.ApplicationId;
-import org.apache.hadoop.yarn.api.records.ApplicationState;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
import org.apache.hadoop.yarn.api.records.ApplicationStatus;
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
import org.apache.hadoop.yarn.event.EventHandler;
@@ -152,7 +152,7 @@ public class TestASMStateMachine {
// }
// }
//
-// private void waitForState( ApplicationState
+// private void waitForState( ApplicationState
// finalState, AppAttemptImpl masterInfo) throws Exception {
// int count = 0;
// while(masterInfo.getState() != finalState && count < 10) {
@@ -160,10 +160,10 @@ public class TestASMStateMachine {
// count++;
// }
// Assert.assertEquals(finalState, masterInfo.getState());
-// }
-//
-// /* Test the state machine.
-// *
+// }
+//
+// /* Test the state machine.
+// *
// */
// @Test
// public void testStateMachine() throws Exception {
@@ -211,6 +211,6 @@ public class TestASMStateMachine {
// /* check if expiry doesnt make it failed */
// handler.handle(new ApplicationEvent(ApplicationEventType.EXPIRE,
// masterInfo.getApplicationID()));
-// Assert.assertEquals(ApplicationState.COMPLETED, masterInfo.getState());
+// Assert.assertEquals(ApplicationState.COMPLETED, masterInfo.getState());
// }
}
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestApplicationMasterExpiry.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestApplicationMasterExpiry.java?rev=1177639&r1=1177638&r2=1177639&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestApplicationMasterExpiry.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestApplicationMasterExpiry.java Fri Sep 30 12:54:53 2011
@@ -26,7 +26,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.records.ApplicationId;
-import org.apache.hadoop.yarn.api.records.ApplicationState;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.event.EventHandler;
@@ -44,21 +44,21 @@ import org.junit.Test;
/**
* A test case that tests the expiry of the application master.
- * More tests can be added to this.
+ * More tests can be added to this.
*/
public class TestApplicationMasterExpiry {
// private static final Log LOG = LogFactory.getLog(TestApplicationMasterExpiry.class);
// private static RecordFactory recordFactory = RecordFactoryProvider.getRecordFactory(null);
-//
+//
// private final RMContext context = new RMContextImpl(new MemStore());
// private AMLivelinessMonitor amLivelinessMonitor;
-//
+//
// @Before
// public void setUp() {
// new DummyApplicationTracker();
// new DummySN();
// new DummyLauncher();
-// new ApplicationEventTypeListener();
+// new ApplicationEventTypeListener();
// Configuration conf = new Configuration();
// context.getDispatcher().register(ApplicationEventType.class,
// new ResourceManager.ApplicationEventDispatcher(context));
@@ -70,7 +70,7 @@ public class TestApplicationMasterExpiry
// amLivelinessMonitor.init(conf);
// amLivelinessMonitor.start();
// }
-//
+//
// private class DummyApplicationTracker implements EventHandler<ASMEvent<ApplicationTrackerEventType>> {
// DummyApplicationTracker() {
// context.getDispatcher().register(ApplicationTrackerEventType.class, this);
@@ -79,10 +79,10 @@ public class TestApplicationMasterExpiry
// public void handle(ASMEvent<ApplicationTrackerEventType> event) {
// }
// }
-//
+//
// private AtomicInteger expiry = new AtomicInteger();
// private boolean expired = false;
-//
+//
// private class ApplicationEventTypeListener implements
// EventHandler<ApplicationEvent> {
// ApplicationEventTypeListener() {
@@ -100,7 +100,7 @@ public class TestApplicationMasterExpiry
// }
// }
// }
-//
+//
// private class DummySN implements EventHandler<ASMEvent<SNEventType>> {
// DummySN() {
// context.getDispatcher().register(SNEventType.class, this);
@@ -109,7 +109,7 @@ public class TestApplicationMasterExpiry
// public void handle(ASMEvent<SNEventType> event) {
// }
// }
-//
+//
// private class DummyLauncher implements EventHandler<ASMEvent<AMLauncherEventType>> {
// DummyLauncher() {
// context.getDispatcher().register(AMLauncherEventType.class, this);
@@ -118,8 +118,8 @@ public class TestApplicationMasterExpiry
// public void handle(ASMEvent<AMLauncherEventType> event) {
// }
// }
-//
-// private void waitForState(AppAttempt application, ApplicationState
+//
+// private void waitForState(AppAttempt application, ApplicationState
// finalState) throws Exception {
// int count = 0;
// while(application.getState() != finalState && count < 10) {
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestSchedulerNegotiator.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestSchedulerNegotiator.java?rev=1177639&r1=1177638&r2=1177639&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestSchedulerNegotiator.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestSchedulerNegotiator.java Fri Sep 30 12:54:53 2011
@@ -28,7 +28,7 @@ import junit.framework.Assert;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ApplicationMaster;
-import org.apache.hadoop.yarn.api.records.ApplicationState;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
import org.apache.hadoop.yarn.api.records.Container;
import org.apache.hadoop.yarn.api.records.ContainerId;
@@ -62,7 +62,7 @@ public class TestSchedulerNegotiator {
// private SchedulerNegotiator schedulerNegotiator;
// private DummyScheduler scheduler;
// private final int testNum = 99999;
-//
+//
// private final RMContext context = new RMContextImpl(new MemStore());
// AppAttemptImpl masterInfo;
// private EventHandler handler;
@@ -79,13 +79,13 @@ public class TestSchedulerNegotiator {
// containers.add(container);
// return new Allocation(containers, Resources.none());
// }
-//
-//
+//
+//
// @Override
// public void nodeUpdate(RMNode nodeInfo,
// Map<String, List<Container>> containers) {
// }
-//
+//
// @Override
// public void removeNode(RMNode node) {
// }
@@ -142,7 +142,7 @@ public class TestSchedulerNegotiator {
// return null;
// }
// }
-//
+//
// @Before
// public void setUp() {
// scheduler = new DummyScheduler();
@@ -153,12 +153,12 @@ public class TestSchedulerNegotiator {
// context.getDispatcher().init(conf);
// context.getDispatcher().start();
// }
-//
+//
// @After
// public void tearDown() {
// schedulerNegotiator.stop();
// }
-//
+//
// public void waitForState(ApplicationState state, AppAttemptImpl info) {
// int count = 0;
// while (info.getState() != state && count < 100) {
@@ -184,7 +184,7 @@ public class TestSchedulerNegotiator {
// submissionContext.setApplicationId(recordFactory.newRecordInstance(ApplicationId.class));
// submissionContext.getApplicationId().setClusterTimestamp(System.currentTimeMillis());
// submissionContext.getApplicationId().setId(1);
-//
+//
// masterInfo = new AppAttemptImpl(this.context, this.conf, "dummy",
// submissionContext, "dummyClientToken", StoreFactory
// .createVoidAppStore(), new AMLivelinessMonitor(context
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/MockRMApp.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/MockRMApp.java?rev=1177639&r1=1177638&r2=1177639&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/MockRMApp.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/MockRMApp.java Fri Sep 30 12:54:53 2011
@@ -19,6 +19,7 @@
package org.apache.hadoop.yarn.server.resourcemanager.rmapp;
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
+import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ApplicationReport;
import org.apache.hadoop.yarn.MockApps;
@@ -167,8 +168,8 @@ public class MockRMApp implements RMApp
}
@Override
- public String getAMFinalState() {
- return "UNKNOWN";
+ public FinalApplicationStatus getFinalApplicationStatus() {
+ return FinalApplicationStatus.UNDEFINED;
};
}
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java?rev=1177639&r1=1177638&r2=1177639&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java Fri Sep 30 12:54:53 2011
@@ -31,6 +31,7 @@ import org.apache.hadoop.conf.Configurat
import org.apache.hadoop.yarn.MockApps;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
+import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.event.AsyncDispatcher;
import org.apache.hadoop.yarn.event.EventHandler;
@@ -192,10 +193,15 @@ public class TestRMAppTransitions {
}
private static void assertAppState(RMAppState state, RMApp application) {
- Assert.assertEquals("application state should have been" + state,
+ Assert.assertEquals("application state should have been " + state,
state, application.getState());
}
+ private static void assertFinalAppStatus(FinalApplicationStatus status, RMApp application) {
+ Assert.assertEquals("Final application status should have been " + status,
+ status, application.getFinalApplicationStatus());
+ }
+
// test to make sure times are set when app finishes
private static void assertTimesAtFinish(RMApp application) {
assertStartTimeSet(application);
@@ -208,6 +214,7 @@ public class TestRMAppTransitions {
private static void assertKilled(RMApp application) {
assertTimesAtFinish(application);
assertAppState(RMAppState.KILLED, application);
+ assertFinalAppStatus(FinalApplicationStatus.KILLED, application);
StringBuilder diag = application.getDiagnostics();
Assert.assertEquals("application diagnostics is not correct",
"Application killed by user.", diag.toString());
@@ -224,6 +231,7 @@ public class TestRMAppTransitions {
private static void assertFailed(RMApp application, String regex) {
assertTimesAtFinish(application);
assertAppState(RMAppState.FAILED, application);
+ assertFinalAppStatus(FinalApplicationStatus.FAILED, application);
StringBuilder diag = application.getDiagnostics();
Assert.assertTrue("application diagnostics is not correct",
diag.toString().matches(regex));
@@ -261,6 +269,7 @@ public class TestRMAppTransitions {
application.handle(event);
assertStartTimeSet(application);
assertAppState(RMAppState.RUNNING, application);
+ assertFinalAppStatus(FinalApplicationStatus.UNDEFINED, application);
return application;
}
@@ -273,6 +282,8 @@ public class TestRMAppTransitions {
application.handle(event);
assertAppState(RMAppState.FINISHED, application);
assertTimesAtFinish(application);
+ // finished without a proper unregister implies failed
+ assertFinalAppStatus(FinalApplicationStatus.FAILED, application);
return application;
}
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java?rev=1177639&r1=1177638&r2=1177639&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java Fri Sep 30 12:54:53 2011
@@ -34,6 +34,7 @@ import org.apache.hadoop.yarn.api.record
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
import org.apache.hadoop.yarn.api.records.Container;
import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
+import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
import org.apache.hadoop.yarn.api.records.Resource;
import org.apache.hadoop.yarn.event.AsyncDispatcher;
import org.apache.hadoop.yarn.event.EventHandler;
@@ -52,7 +53,9 @@ import org.apache.hadoop.yarn.server.res
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppRejectedEvent;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.event.RMAppAttemptContainerAllocatedEvent;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.event.RMAppAttemptLaunchFailedEvent;
+import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.event.RMAppAttemptRegistrationEvent;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.event.RMAppAttemptRejectedEvent;
+import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.event.RMAppAttemptUnregistrationEvent;
import org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.ContainerAllocationExpirer;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.YarnScheduler;
@@ -199,6 +202,7 @@ public class TestRMAppAttemptTransitions
assertNull(applicationAttempt.getMasterContainer());
assertEquals(0.0, (double)applicationAttempt.getProgress(), 0.0001);
assertEquals(0, applicationAttempt.getRanNodes().size());
+ assertNull(applicationAttempt.getFinalApplicationStatus());
}
/**
@@ -212,6 +216,7 @@ public class TestRMAppAttemptTransitions
assertNull(applicationAttempt.getMasterContainer());
assertEquals(0.0, (double)applicationAttempt.getProgress(), 0.0001);
assertEquals(0, applicationAttempt.getRanNodes().size());
+ assertNull(applicationAttempt.getFinalApplicationStatus());
// Check events
verify(masterService).
@@ -230,6 +235,7 @@ public class TestRMAppAttemptTransitions
assertNull(applicationAttempt.getMasterContainer());
assertEquals(0.0, (double)applicationAttempt.getProgress(), 0.0001);
assertEquals(0, applicationAttempt.getRanNodes().size());
+ assertNull(applicationAttempt.getFinalApplicationStatus());
// Check events
verify(application).handle(any(RMAppRejectedEvent.class));
@@ -247,6 +253,7 @@ public class TestRMAppAttemptTransitions
assertEquals(amContainer, applicationAttempt.getMasterContainer());
assertEquals(0.0, (double)applicationAttempt.getProgress(), 0.0001);
assertEquals(0, applicationAttempt.getRanNodes().size());
+ assertNull(applicationAttempt.getFinalApplicationStatus());
}
/**
@@ -259,6 +266,7 @@ public class TestRMAppAttemptTransitions
assertNull(applicationAttempt.getMasterContainer());
assertEquals(0.0, (double)applicationAttempt.getProgress(), 0.0001);
assertEquals(0, applicationAttempt.getRanNodes().size());
+ assertNull(applicationAttempt.getFinalApplicationStatus());
// Check events
verify(application).handle(any(RMAppEvent.class));
@@ -299,6 +307,49 @@ public class TestRMAppAttemptTransitions
verify(application, times(2)).handle(any(RMAppFailedAttemptEvent.class));
}
+ /**
+ * {@link RMAppAttemptState#LAUNCH}
+ */
+ private void testAppAttemptLaunchedState(Container container) {
+ assertEquals(RMAppAttemptState.LAUNCHED,
+ applicationAttempt.getAppAttemptState());
+ assertEquals(container, applicationAttempt.getMasterContainer());
+
+ // TODO - need to add more checks relevant to this state
+ }
+
+ /**
+ * {@link RMAppAttemptState#RUNNING}
+ */
+ private void testAppAttemptRunningState(Container container,
+ String host, int rpcPort, String trackingUrl) {
+ assertEquals(RMAppAttemptState.RUNNING,
+ applicationAttempt.getAppAttemptState());
+ assertEquals(container, applicationAttempt.getMasterContainer());
+ assertEquals(host, applicationAttempt.getHost());
+ assertEquals(rpcPort, applicationAttempt.getRpcPort());
+ assertEquals(trackingUrl, applicationAttempt.getTrackingUrl());
+
+ // TODO - need to add more checks relevant to this state
+ }
+
+ /**
+ * {@link RMAppAttemptState#FINISHED}
+ */
+ private void testAppAttemptFinishedState(Container container,
+ FinalApplicationStatus finalStatus,
+ String trackingUrl,
+ String diagnostics) {
+ assertEquals(RMAppAttemptState.FINISHED,
+ applicationAttempt.getAppAttemptState());
+ assertEquals(diagnostics, applicationAttempt.getDiagnostics());
+ assertEquals(trackingUrl, applicationAttempt.getTrackingUrl());
+ assertEquals(0,applicationAttempt.getJustFinishedContainers().size());
+ assertEquals(container, applicationAttempt.getMasterContainer());
+ assertEquals(finalStatus, applicationAttempt.getFinalApplicationStatus());
+ }
+
+
private void submitApplicationAttempt() {
ApplicationAttemptId appAttemptId = applicationAttempt.getAppAttemptId();
applicationAttempt.handle(
@@ -339,6 +390,27 @@ public class TestRMAppAttemptTransitions
return container;
}
+
+ private void launchApplicationAttempt(Container container) {
+ applicationAttempt.handle(
+ new RMAppAttemptEvent(applicationAttempt.getAppAttemptId(),
+ RMAppAttemptEventType.LAUNCHED));
+
+ testAppAttemptLaunchedState(container);
+ }
+
+ private void runApplicationAttempt(Container container,
+ String host,
+ int rpcPort,
+ String trackingUrl) {
+ applicationAttempt.handle(
+ new RMAppAttemptRegistrationEvent(
+ applicationAttempt.getAppAttemptId(),
+ host, rpcPort, trackingUrl));
+
+ testAppAttemptRunningState(container, host, rpcPort, trackingUrl);
+ }
+
@Test
public void testNewToKilled() {
@@ -400,4 +472,37 @@ public class TestRMAppAttemptTransitions
testAppAttemptFailedState(amContainer, diagnostics);
}
+ @Test
+ public void testUnregisterToKilledFinish() {
+ Container amContainer = allocateApplicationAttempt();
+ launchApplicationAttempt(amContainer);
+ runApplicationAttempt(amContainer, "host", 9999, "oldtrackingurl");
+ String trackingUrl = "newtrackingurl";
+ String diagnostics = "Killed by user";
+ FinalApplicationStatus finalStatus = FinalApplicationStatus.KILLED;
+ applicationAttempt.handle(
+ new RMAppAttemptUnregistrationEvent(
+ applicationAttempt.getAppAttemptId(),
+ trackingUrl, finalStatus, diagnostics));
+ testAppAttemptFinishedState(amContainer, finalStatus,
+ trackingUrl, diagnostics);
+ }
+
+
+ @Test
+ public void testUnregisterToSuccessfulFinish() {
+ Container amContainer = allocateApplicationAttempt();
+ launchApplicationAttempt(amContainer);
+ runApplicationAttempt(amContainer, "host", 9999, "oldtrackingurl");
+ String trackingUrl = "mytrackingurl";
+ String diagnostics = "Successful";
+ FinalApplicationStatus finalStatus = FinalApplicationStatus.SUCCEEDED;
+ applicationAttempt.handle(
+ new RMAppAttemptUnregistrationEvent(
+ applicationAttempt.getAppAttemptId(),
+ trackingUrl, finalStatus, diagnostics));
+ testAppAttemptFinishedState(amContainer, finalStatus,
+ trackingUrl, diagnostics);
+ }
+
}
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestQueueMetrics.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestQueueMetrics.java?rev=1177639&r1=1177638&r2=1177639&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestQueueMetrics.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestQueueMetrics.java Fri Sep 30 12:54:53 2011
@@ -25,7 +25,7 @@ import org.apache.hadoop.metrics2.Metric
import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
import static org.apache.hadoop.test.MetricsAsserts.*;
import static org.apache.hadoop.test.MockitoMaker.*;
-import org.apache.hadoop.yarn.api.records.ApplicationState;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
import org.apache.hadoop.yarn.server.resourcemanager.resource.Resource;
import org.apache.hadoop.yarn.server.resourcemanager.resource.Resources;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptState;