Repository: aurora
Updated Branches:
  refs/heads/master b5c9e1bc4 -> b6d23afdf


Descheduling a cron should not fail if the job is not scheduled.

This allows clients to be more declarative rather than imperative
when expressing that the given job should not be scheduled.

Bugs closed: AURORA-1645

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


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

Branch: refs/heads/master
Commit: b6d23afdf092b41a93ac45b4f3385e081cb46231
Parents: b5c9e1b
Author: Stephan Erb <[email protected]>
Authored: Wed Mar 23 00:23:46 2016 +0100
Committer: Stephan Erb <[email protected]>
Committed: Wed Mar 23 00:23:46 2016 +0100

----------------------------------------------------------------------
 RELEASE-NOTES.md                                             | 1 +
 .../aurora/scheduler/thrift/SchedulerThriftInterface.java    | 7 ++++---
 .../scheduler/thrift/SchedulerThriftInterfaceTest.java       | 8 +++++++-
 3 files changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/b6d23afd/RELEASE-NOTES.md
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 6e9364e..34f28a1 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -10,6 +10,7 @@
   See [here](docs/deploying-aurora-scheduler.md#dedicated-attribute) for more 
details.
 - Added a new argument `--announcer-hostname` to thermos executor to override 
hostname in service
   registry endpoint. See 
[here](docs/configuration-reference.md#announcer-objects) for details.
+- Descheduling a cron job that was not actually scheduled will no longer 
return an error.
 
 ### Deprecations and removals:
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/b6d23afd/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 d217faf..5d246be 100644
--- 
a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
+++ 
b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
@@ -342,10 +342,11 @@ class SchedulerThriftInterface implements 
AnnotatedAuroraAdmin {
           ILockKey.build(LockKey.job(jobKey.newBuilder())),
           java.util.Optional.ofNullable(mutableLock).map(ILock::build));
 
-      if (!cronJobManager.deleteJob(jobKey)) {
-        return invalidRequest(notScheduledCronMessage(jobKey));
+      if (cronJobManager.deleteJob(jobKey)) {
+        return ok();
+      } else {
+        return addMessage(empty(), OK, notScheduledCronMessage(jobKey));
       }
-      return ok();
     } catch (LockException e) {
       return error(LOCK_ERROR, e);
     }

http://git-wip-us.apache.org/repos/asf/aurora/blob/b6d23afd/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 c774ac0..0a7b518 100644
--- 
a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
+++ 
b/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
@@ -1020,7 +1020,7 @@ public class SchedulerThriftInterfaceTest extends 
EasyMockTest {
     control.replay();
 
     assertEquals(
-        invalidResponse(notScheduledCronMessage(JOB_KEY)),
+        okEmptyResponse(notScheduledCronMessage(JOB_KEY)),
         thrift.descheduleCronJob(JOB_KEY.newBuilder(), null));
   }
 
@@ -1254,6 +1254,12 @@ public class SchedulerThriftInterfaceTest extends 
EasyMockTest {
     return response(OK, Optional.absent());
   }
 
+  private static Response okEmptyResponse(String message) {
+    return Responses.empty()
+        .setResponseCode(OK)
+        .setDetails(ImmutableList.of(new ResponseDetail(message)));
+  }
+
   private static Response invalidResponse(String message) {
     return Responses.empty()
         .setResponseCode(INVALID_REQUEST)

Reply via email to