Modified: 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebServer.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebServer.java?rev=1161408&r1=1161407&r2=1161408&view=diff
==============================================================================
--- 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebServer.java
 (original)
+++ 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebServer.java
 Thu Aug 25 06:35:58 2011
@@ -24,6 +24,7 @@ import java.io.IOException;
 import java.io.Writer;
 
 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.ContainerId;
 import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
@@ -87,10 +88,13 @@ public class TestNMWebServer {
     when(app.getUser()).thenReturn(user);
     when(app.getAppId()).thenReturn(appId);
     nmContext.getApplications().put(appId, app);
+    ApplicationAttemptId appAttemptId = 
recordFactory.newRecordInstance(ApplicationAttemptId.class);
+    appAttemptId.setApplicationId(appId);
+    appAttemptId.setAttemptId(1);
     ContainerId container1 =
-        BuilderUtils.newContainerId(recordFactory, appId, 0);
+        BuilderUtils.newContainerId(recordFactory, appId, appAttemptId, 0);
     ContainerId container2 =
-        BuilderUtils.newContainerId(recordFactory, appId, 1);
+        BuilderUtils.newContainerId(recordFactory, appId, appAttemptId, 1);
     NodeManagerMetrics metrics = mock(NodeManagerMetrics.class);
     for (ContainerId containerId : new ContainerId[] { container1,
         container2}) {

Modified: 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java?rev=1161408&r1=1161407&r2=1161408&view=diff
==============================================================================
--- 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java
 (original)
+++ 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java
 Thu Aug 25 06:35:58 2011
@@ -106,9 +106,9 @@ public class RMAppImpl implements RMApp 
     .addTransition(RMAppState.ACCEPTED, RMAppState.RUNNING,
         RMAppEventType.ATTEMPT_REGISTERED)
     .addTransition(RMAppState.ACCEPTED,
-        EnumSet.of(RMAppState.ACCEPTED, RMAppState.FAILED),
+        EnumSet.of(RMAppState.SUBMITTED, RMAppState.FAILED),
         RMAppEventType.ATTEMPT_FAILED,
-        new AttemptFailedTransition(RMAppState.ACCEPTED))
+        new AttemptFailedTransition(RMAppState.SUBMITTED))
     .addTransition(RMAppState.ACCEPTED, RMAppState.KILLED,
         RMAppEventType.KILL, new AppKilledTransition())
 
@@ -116,23 +116,12 @@ public class RMAppImpl implements RMApp 
     .addTransition(RMAppState.RUNNING, RMAppState.FINISHED,
         RMAppEventType.ATTEMPT_FINISHED, FINAL_TRANSITION)
     .addTransition(RMAppState.RUNNING,
-        EnumSet.of(RMAppState.RUNNING, RMAppState.FAILED),
+        EnumSet.of(RMAppState.SUBMITTED, RMAppState.FAILED),
         RMAppEventType.ATTEMPT_FAILED,
-        new AttemptFailedTransition(RMAppState.RUNNING))
+        new AttemptFailedTransition(RMAppState.SUBMITTED))
     .addTransition(RMAppState.RUNNING, RMAppState.KILLED,
         RMAppEventType.KILL, new AppKilledTransition())
 
-     // Transitions from RESTARTING state
-     // TODO - no way to get to RESTARTING state right now
-    .addTransition(RMAppState.RESTARTING, RMAppState.RUNNING,
-        RMAppEventType.ATTEMPT_REGISTERED)
-    .addTransition(RMAppState.RESTARTING,
-        EnumSet.of(RMAppState.RESTARTING, RMAppState.FAILED),
-        RMAppEventType.ATTEMPT_FAILED,
-        new AttemptFailedTransition(RMAppState.RESTARTING))
-    .addTransition(RMAppState.RESTARTING, RMAppState.KILLED,
-        RMAppEventType.KILL, new AppKilledTransition())
-
      // Transitions from FINISHED state
     .addTransition(RMAppState.FINISHED, RMAppState.FINISHED,
         RMAppEventType.KILL)
@@ -263,8 +252,6 @@ public class RMAppImpl implements RMApp 
     case SUBMITTED:
     case ACCEPTED:
       return ApplicationState.SUBMITTED;
-    case RESTARTING:
-      return ApplicationState.RESTARTING;
     case RUNNING:
       return ApplicationState.RUNNING;
     case FINISHED:
@@ -375,6 +362,21 @@ public class RMAppImpl implements RMApp 
     }
   }
 
+  private void createNewAttempt() {
+    ApplicationAttemptId appAttemptId = Records
+        .newRecord(ApplicationAttemptId.class);
+    appAttemptId.setApplicationId(applicationId);
+    appAttemptId.setAttemptId(attempts.size() + 1);
+
+    RMAppAttempt attempt = new RMAppAttemptImpl(appAttemptId,
+        clientTokenStr, rmContext, scheduler, masterService,
+        submissionContext);
+    attempts.put(appAttemptId, attempt);
+    currentAttempt = attempt;
+    dispatcher.getEventHandler().handle(
+        new RMAppAttemptEvent(appAttemptId, RMAppAttemptEventType.START));
+  }
+
   private static class RMAppTransition implements
       SingleArcTransition<RMAppImpl, RMAppEvent> {
     public void transition(RMAppImpl app, RMAppEvent event) {
@@ -384,19 +386,7 @@ public class RMAppImpl implements RMApp 
 
   private static final class StartAppAttemptTransition extends RMAppTransition 
{
     public void transition(RMAppImpl app, RMAppEvent event) {
-
-      ApplicationAttemptId appAttemptId = Records
-          .newRecord(ApplicationAttemptId.class);
-      appAttemptId.setApplicationId(app.applicationId);
-      appAttemptId.setAttemptId(app.attempts.size() + 1);
-
-      RMAppAttempt attempt = new RMAppAttemptImpl(appAttemptId,
-          app.clientTokenStr, app.rmContext, app.scheduler,
-          app.masterService, app.submissionContext);
-      app.attempts.put(appAttemptId, attempt);
-      app.currentAttempt = attempt;
-      app.dispatcher.getEventHandler().handle(
-          new RMAppAttemptEvent(appAttemptId, RMAppAttemptEventType.START));
+      app.createNewAttempt();
     };
   }
 
@@ -452,27 +442,17 @@ public class RMAppImpl implements RMApp 
     public RMAppState transition(RMAppImpl app, RMAppEvent event) {
 
       if (app.attempts.size() == app.maxRetries) {
-        app.diagnostics.append("Application " + app.getApplicationId()
-            + " failed " + app.maxRetries
-            + " times. Failing the application.");
+        String msg = "Application " + app.getApplicationId()
+        + " failed " + app.maxRetries
+        + " times. Failing the application.";
+        LOG.info(msg);
+        app.diagnostics.append(msg);
         // Inform the node for app-finish
         FINAL_TRANSITION.transition(app, event);
         return RMAppState.FAILED;
       }
 
-      ApplicationAttemptId appAttemptId = Records
-          .newRecord(ApplicationAttemptId.class);
-      appAttemptId.setApplicationId(app.applicationId);
-      appAttemptId.setAttemptId(app.attempts.size() + 1);
-
-      // Create a new attempt.
-      RMAppAttempt attempt = new RMAppAttemptImpl(appAttemptId,
-          app.clientTokenStr, app.rmContext, app.scheduler,
-          app.masterService, app.submissionContext);
-      app.attempts.put(appAttemptId, attempt);
-      app.currentAttempt = attempt;
-      app.dispatcher.getEventHandler().handle(
-          new RMAppAttemptEvent(appAttemptId, RMAppAttemptEventType.START));
+      app.createNewAttempt();     
       return initialState;
     }
 

Modified: 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppState.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppState.java?rev=1161408&r1=1161407&r2=1161408&view=diff
==============================================================================
--- 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppState.java
 (original)
+++ 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppState.java
 Thu Aug 25 06:35:58 2011
@@ -1,5 +1,5 @@
 package org.apache.hadoop.yarn.server.resourcemanager.rmapp;
 
 public enum RMAppState {
-  NEW, SUBMITTED, ACCEPTED, RUNNING, RESTARTING, FINISHED, FAILED, KILLED
+  NEW, SUBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED
 }

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=1161408&r1=1161407&r2=1161408&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
 Thu Aug 25 06:35:58 2011
@@ -18,40 +18,34 @@
 
 package org.apache.hadoop.yarn.server.resourcemanager.rmapp;
 
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
 
 import java.io.IOException;
-import java.lang.reflect.Method;
 
 import junit.framework.Assert;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.yarn.conf.YarnConfiguration;
 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.conf.YarnConfiguration;
 import org.apache.hadoop.yarn.event.AsyncDispatcher;
 import org.apache.hadoop.yarn.event.Dispatcher;
 import org.apache.hadoop.yarn.event.EventHandler;
 import org.apache.hadoop.yarn.security.ApplicationTokenSecretManager;
+import org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService;
 import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
 import org.apache.hadoop.yarn.server.resourcemanager.RMContextImpl;
-import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
-import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl;
-import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppEventType;
+import org.apache.hadoop.yarn.server.resourcemanager.recovery.MemStore;
+import 
org.apache.hadoop.yarn.server.resourcemanager.recovery.ApplicationsStore.ApplicationStore;
 import 
org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.AMLivelinessMonitor;
 import 
org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
 import 
org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptEvent;
 import 
org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptEventType;
-import 
org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl;
-import 
org.apache.hadoop.yarn.server.resourcemanager.recovery.ApplicationsStore.ApplicationStore;
-import org.apache.hadoop.yarn.server.resourcemanager.recovery.MemStore;
 import 
org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.ContainerAllocationExpirer;
 import org.apache.hadoop.yarn.server.resourcemanager.scheduler.YarnScheduler;
-import org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -306,6 +300,9 @@ public class TestRMAppTransitions {
     for (int i=1; i<maxRetries; i++) {
       RMAppEvent event = new RMAppEvent(application.getApplicationId(), 
RMAppEventType.ATTEMPT_FAILED);
       application.handle(event);
+      assertAppState(RMAppState.SUBMITTED, application);
+      event = new RMAppEvent(application.getApplicationId(), 
RMAppEventType.APP_ACCEPTED);
+      application.handle(event);
       assertAppState(RMAppState.ACCEPTED, application);
     }
 
@@ -342,10 +339,22 @@ public class TestRMAppTransitions {
     LOG.info("--- START: testAppRunningFailed ---");
 
     RMApp application = testCreateAppRunning();
+    RMAppAttempt appAttempt = application.getCurrentAppAttempt();
+    int expectedAttemptId = 1;
+    Assert.assertEquals(expectedAttemptId, 
appAttempt.getAppAttemptId().getAttemptId());
     // RUNNING => FAILED/RESTARTING event RMAppEventType.ATTEMPT_FAILED
     for (int i=1; i<maxRetries; i++) {
       RMAppEvent event = new RMAppEvent(application.getApplicationId(), 
RMAppEventType.ATTEMPT_FAILED);
       application.handle(event);
+      assertAppState(RMAppState.SUBMITTED, application);
+      appAttempt = application.getCurrentAppAttempt();
+      Assert.assertEquals(++expectedAttemptId, 
+          appAttempt.getAppAttemptId().getAttemptId());
+      event = new RMAppEvent(application.getApplicationId(), 
RMAppEventType.APP_ACCEPTED);
+      application.handle(event);
+      assertAppState(RMAppState.ACCEPTED, application);
+      event = new RMAppEvent(application.getApplicationId(), 
RMAppEventType.ATTEMPT_REGISTERED);
+      application.handle(event);
       assertAppState(RMAppState.RUNNING, application);
     }
 

Modified: 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerTokenSecretManager.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerTokenSecretManager.java?rev=1161408&r1=1161407&r2=1161408&view=diff
==============================================================================
--- 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerTokenSecretManager.java
 (original)
+++ 
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerTokenSecretManager.java
 Thu Aug 25 06:35:58 2011
@@ -52,6 +52,7 @@ import org.apache.hadoop.yarn.api.protoc
 import org.apache.hadoop.yarn.api.protocolrecords.GetContainerStatusRequest;
 import 
org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterRequest;
 import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
+import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
 import org.apache.hadoop.yarn.api.records.ApplicationId;
 import org.apache.hadoop.yarn.api.records.ApplicationMaster;
 import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
@@ -284,8 +285,12 @@ public class TestContainerTokenSecretMan
                   .newRecordInstance(GetContainerStatusRequest.class);
           ContainerId containerID =
               recordFactory.newRecordInstance(ContainerId.class);
+          ApplicationAttemptId appAttemptId = 
recordFactory.newRecordInstance(ApplicationAttemptId.class);
+          appAttemptId.setApplicationId(appID);
+          appAttemptId.setAttemptId(1);
           containerID.setAppId(appID);
           containerID.setId(1);
+          containerID.setAppAttemptId(appAttemptId);
           request.setContainerId(containerID);
           client.getContainerStatus(request);
         } catch (YarnRemoteException e) {
@@ -331,8 +336,12 @@ public class TestContainerTokenSecretMan
                   .newRecordInstance(GetContainerStatusRequest.class);
         containerID =
               recordFactory.newRecordInstance(ContainerId.class);
+        ApplicationAttemptId appAttemptId = 
recordFactory.newRecordInstance(ApplicationAttemptId.class);
+        appAttemptId.setApplicationId(appID);
+        appAttemptId.setAttemptId(1);
         containerID.setAppId(appID);
         containerID.setId(1);
+        containerID.setAppAttemptId(appAttemptId);
         request.setContainerId(containerID);
         try {
           client.getContainerStatus(request);


Reply via email to