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:46:34 UTC

svn commit: r1177633 [3/3] - in /hadoop/common/trunk/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-common/src/main/j...

Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java?rev=1177633&r1=1177632&r2=1177633&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java Fri Sep 30 12:46:32 2011
@@ -33,7 +33,7 @@ import org.apache.hadoop.conf.Configurat
 import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
 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;
@@ -75,7 +75,7 @@ public class TestAMRestart {
 //  private static final Log LOG = LogFactory.getLog(TestAMRestart.class);
 //  ApplicationsManagerImpl appImpl;
 //  RMContext asmContext = new RMContextImpl(new MemStore());
-//  ApplicationTokenSecretManager appTokenSecretManager = 
+//  ApplicationTokenSecretManager appTokenSecretManager =
 //    new ApplicationTokenSecretManager();
 //  DummyResourceScheduler scheduler;
 //  private ClientRMService clientRMService;
@@ -90,7 +90,7 @@ public class TestAMRestart {
 //  int launcherLaunchCalled = 0;
 //  int launcherCleanupCalled = 0;
 //  private final static RecordFactory recordFactory = RecordFactoryProvider.getRecordFactory(null);
-//  
+//
 //  private class ExtApplicationsManagerImpl extends ApplicationsManagerImpl {
 //    public ExtApplicationsManagerImpl(
 //        ApplicationTokenSecretManager applicationTokenSecretManager,
@@ -115,7 +115,7 @@ public class TestAMRestart {
 //            LOG.info("DEBUG -- waiting for launch");
 //            synchronized(launchNotify) {
 //              while (launchNotify.get() == 0) {
-//                try { 
+//                try {
 //                  launchNotify.wait();
 //                } catch (InterruptedException e) {
 //                }
@@ -151,11 +151,11 @@ public class TestAMRestart {
 //  }
 //
 //  private class DummyResourceScheduler implements ResourceScheduler {
-//   
+//
 //    @Override
 //    public void removeNode(RMNode node) {
 //    }
-//    
+//
 //    @Override
 //    public Allocation allocate(ApplicationId applicationId,
 //        List<ResourceRequest> ask, List<Container> release) throws IOException {
@@ -222,7 +222,7 @@ public class TestAMRestart {
 //
 //    @Override
 //    public void nodeUpdate(RMNode nodeInfo,
-//        Map<String, List<Container>> containers) {      
+//        Map<String, List<Container>> containers) {
 //    }
 //
 //    @Override
@@ -253,7 +253,7 @@ public class TestAMRestart {
 //    asmContext.getDispatcher().start();
 //    asmContext.getDispatcher().register(ApplicationTrackerEventType.class, scheduler);
 //    appImpl = new ExtApplicationsManagerImpl(appTokenSecretManager, scheduler, asmContext);
-//    
+//
 //    conf.setLong(YarnConfiguration.AM_EXPIRY_INTERVAL, 1000L);
 //    conf.setInt(RMConfig.AM_MAX_RETRIES, maxFailures);
 //    appImpl.init(conf);
@@ -261,7 +261,7 @@ public class TestAMRestart {
 //
 //    this.clientRMService = new ClientRMService(asmContext, appImpl
 //        .getAmLivelinessMonitor(), appImpl.getClientToAMSecretManager(),
-//        scheduler); 
+//        scheduler);
 //    this.clientRMService.init(conf);
 //  }
 //
@@ -269,7 +269,7 @@ public class TestAMRestart {
 //  public void tearDown() {
 //  }
 //
-//  private void waitForFailed(AppAttempt application, ApplicationState 
+//  private void waitForFailed(AppAttempt application, ApplicationState
 //      finalState) throws Exception {
 //    int count = 0;
 //    while(application.getState() != finalState && count < 10) {
@@ -292,7 +292,7 @@ public class TestAMRestart {
 //        .newRecordInstance(SubmitApplicationRequest.class);
 //    request.setApplicationSubmissionContext(subContext);
 //    clientRMService.submitApplication(request);
-//    AppAttempt application = asmContext.getApplications().get(appID); 
+//    AppAttempt application = asmContext.getApplications().get(appID);
 //    synchronized (schedulerNotify) {
 //      while(schedulerNotify.get() == 0) {
 //        schedulerNotify.wait();
@@ -306,4 +306,4 @@ public class TestAMRestart {
 //    waitForFailed(application, ApplicationState.FAILED);
 //    stop = true;
 //  }
-}
\ No newline at end of file
+}

Modified: hadoop/common/trunk/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/trunk/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=1177633&r1=1177632&r2=1177633&view=diff
==============================================================================
--- hadoop/common/trunk/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/trunk/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:46:32 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/trunk/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/trunk/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=1177633&r1=1177632&r2=1177633&view=diff
==============================================================================
--- hadoop/common/trunk/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/trunk/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:46:32 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/trunk/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/trunk/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=1177633&r1=1177632&r2=1177633&view=diff
==============================================================================
--- hadoop/common/trunk/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/trunk/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:46:32 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/trunk/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/trunk/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=1177633&r1=1177632&r2=1177633&view=diff
==============================================================================
--- hadoop/common/trunk/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/trunk/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:46:32 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/trunk/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/trunk/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=1177633&r1=1177632&r2=1177633&view=diff
==============================================================================
--- hadoop/common/trunk/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/trunk/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:46:32 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/trunk/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/trunk/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=1177633&r1=1177632&r2=1177633&view=diff
==============================================================================
--- hadoop/common/trunk/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/trunk/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:46:32 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/trunk/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/trunk/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=1177633&r1=1177632&r2=1177633&view=diff
==============================================================================
--- hadoop/common/trunk/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/trunk/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:46:32 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;