You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by ma...@apache.org on 2014/07/25 04:34:17 UTC

git commit: Refactoring SchedulerCore (forceTaskState)

Repository: incubator-aurora
Updated Branches:
  refs/heads/master 1c94304c9 -> 405c6c8ac


Refactoring SchedulerCore (forceTaskState)

Bugs closed: AURORA-94

Reviewed at https://reviews.apache.org/r/23835/


Project: http://git-wip-us.apache.org/repos/asf/incubator-aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-aurora/commit/405c6c8a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-aurora/tree/405c6c8a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-aurora/diff/405c6c8a

Branch: refs/heads/master
Commit: 405c6c8ac3795dbd1e497a2c133d2bdec49bf661
Parents: 1c94304
Author: Maxim Khutornenko <ma...@apache.org>
Authored: Thu Jul 24 19:32:37 2014 -0700
Committer: Maxim Khutornenko <ma...@apache.org>
Committed: Thu Jul 24 19:32:37 2014 -0700

----------------------------------------------------------------------
 .../apache/aurora/scheduler/state/SchedulerCore.java    | 11 -----------
 .../aurora/scheduler/state/SchedulerCoreImpl.java       | 12 ------------
 .../scheduler/thrift/SchedulerThriftInterface.java      | 11 +++++++----
 .../scheduler/state/BaseSchedulerCoreImplTest.java      |  2 +-
 .../scheduler/thrift/SchedulerThriftInterfaceTest.java  | 10 +++++++---
 5 files changed, 15 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/405c6c8a/src/main/java/org/apache/aurora/scheduler/state/SchedulerCore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/SchedulerCore.java b/src/main/java/org/apache/aurora/scheduler/state/SchedulerCore.java
index 137bd6c..38ef846 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/SchedulerCore.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/SchedulerCore.java
@@ -15,10 +15,8 @@ package org.apache.aurora.scheduler.state;
 
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 
-import org.apache.aurora.gen.ScheduleStatus;
 import org.apache.aurora.scheduler.base.ScheduleException;
 import org.apache.aurora.scheduler.configuration.ConfigurationManager.TaskDescriptionException;
 import org.apache.aurora.scheduler.configuration.SanitizedConfiguration;
@@ -60,15 +58,6 @@ public interface SchedulerCore {
       throws ScheduleException;
 
   /**
-   * Assigns a new state to tasks.
-   *
-   * @param taskId ID of the task to transition.
-   * @param status The new state of the tasks.
-   * @param message Additional information about the state transition.
-   */
-  void setTaskStatus(String taskId, ScheduleStatus status, Optional<String> message);
-
-  /**
    * Initiates a restart of shards within an active job.
    *
    * @param jobKey Key of job to be restarted.

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/405c6c8a/src/main/java/org/apache/aurora/scheduler/state/SchedulerCoreImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/SchedulerCoreImpl.java b/src/main/java/org/apache/aurora/scheduler/state/SchedulerCoreImpl.java
index adc2dbc..f053c72 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/SchedulerCoreImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/SchedulerCoreImpl.java
@@ -200,18 +200,6 @@ class SchedulerCoreImpl implements SchedulerCore {
   }
 
   @Override
-  public synchronized void setTaskStatus(
-      String taskId,
-      final ScheduleStatus status,
-      Optional<String> message) {
-
-    requireNonNull(taskId);
-    requireNonNull(status);
-
-    stateManager.changeState(taskId, Optional.<ScheduleStatus>absent(), status, message);
-  }
-
-  @Override
   public void restartShards(
       IJobKey jobKey,
       final Set<Integer> shards,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/405c6c8a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
index 7f94e04..f2ad920 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
@@ -874,17 +874,20 @@ class SchedulerThriftInterface implements AuroraAdmin.Iface {
     requireNonNull(status);
     requireNonNull(session);
 
-    Response response = Util.emptyResponse();
     SessionContext context;
     try {
       // TODO(Sathya): Remove this after AOP-style session validation passes in a SessionContext.
       context = sessionValidator.checkAuthorized(session, Capability.ROOT, AuditCheck.REQUIRED);
     } catch (AuthFailedException e) {
-      addMessage(response, AUTH_FAILED, e);
-      return response;
+      return addMessage(emptyResponse(), AUTH_FAILED, e);
     }
 
-    schedulerCore.setTaskStatus(taskId, status, transitionMessage(context.getIdentity()));
+    stateManager.changeState(
+        taskId,
+        Optional.<ScheduleStatus>absent(),
+        status,
+        transitionMessage(context.getIdentity()));
+
     return okEmptyResponse();
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/405c6c8a/src/test/java/org/apache/aurora/scheduler/state/BaseSchedulerCoreImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/state/BaseSchedulerCoreImplTest.java b/src/test/java/org/apache/aurora/scheduler/state/BaseSchedulerCoreImplTest.java
index 5ec7cf3..0206d00 100644
--- a/src/test/java/org/apache/aurora/scheduler/state/BaseSchedulerCoreImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/state/BaseSchedulerCoreImplTest.java
@@ -795,7 +795,7 @@ public abstract class BaseSchedulerCoreImplTest extends EasyMockTest {
       Optional<String> message) {
 
     for (String taskId : Tasks.ids(Storage.Util.consistentFetchTasks(storage, query))) {
-      scheduler.setTaskStatus(taskId, status, message);
+      stateManager.changeState(taskId, Optional.<ScheduleStatus>absent(), status, message);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/405c6c8a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java b/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
index d3ac7c7..b8677ae 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
@@ -633,10 +633,14 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
 
   @Test
   public void testForceTaskState() throws Exception {
-    String taskId = "task_id_foo";
     ScheduleStatus status = ScheduleStatus.FAILED;
 
-    scheduler.setTaskStatus(taskId, status, transitionMessage(USER));
+    expect(stateManager.changeState(
+        TASK_ID,
+        Optional.<ScheduleStatus>absent(),
+        ScheduleStatus.FAILED,
+        Optional.of(transitionMessage(USER).get()))).andReturn(true);
+
     // Expect auth is first called by an interceptor and then by SchedulerThriftInterface to extract
     // the SessionContext.
     // Note: This will change after AOP-style session validation passes in a SessionContext.
@@ -644,7 +648,7 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
 
     control.replay();
 
-    assertOkResponse(thrift.forceTaskState(taskId, status, SESSION));
+    assertOkResponse(thrift.forceTaskState(TASK_ID, status, SESSION));
   }
 
   @Test