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 2016/01/06 18:39:28 UTC

aurora git commit: Populating and validating task config in getJobUpdateDiff RPC.

Repository: aurora
Updated Branches:
  refs/heads/master b9d9ee3cc -> 395bd7dd9


Populating and validating task config in getJobUpdateDiff RPC.

Bugs closed: AURORA-1571

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


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

Branch: refs/heads/master
Commit: 395bd7dd9d5753784fc824742dcefbc3ab8fecb2
Parents: b9d9ee3
Author: Maxim Khutornenko <ma...@apache.org>
Authored: Wed Jan 6 09:39:15 2016 -0800
Committer: Maxim Khutornenko <ma...@apache.org>
Committed: Wed Jan 6 09:39:15 2016 -0800

----------------------------------------------------------------------
 .../aurora/scheduler/thrift/ReadOnlySchedulerImpl.java  | 12 +++++++++++-
 .../scheduler/thrift/ReadOnlySchedulerImplTest.java     |  9 +++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/395bd7dd/src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java b/src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java
index 90cddd0..d326d24 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java
@@ -103,8 +103,10 @@ import org.apache.thrift.TException;
 
 import static java.util.Objects.requireNonNull;
 
+import static org.apache.aurora.gen.ResponseCode.INVALID_REQUEST;
 import static org.apache.aurora.scheduler.base.Numbers.convertRanges;
 import static org.apache.aurora.scheduler.base.Numbers.toRanges;
+import static org.apache.aurora.scheduler.thrift.Responses.error;
 import static org.apache.aurora.scheduler.thrift.Responses.invalidRequest;
 import static org.apache.aurora.scheduler.thrift.Responses.ok;
 
@@ -324,7 +326,15 @@ class ReadOnlySchedulerImpl implements ReadOnlyScheduler.Iface {
 
   @Override
   public Response getJobUpdateDiff(JobUpdateRequest mutableRequest) {
-    IJobUpdateRequest request = IJobUpdateRequest.build(requireNonNull(mutableRequest));
+    IJobUpdateRequest request;
+    try {
+      request = IJobUpdateRequest.build(new JobUpdateRequest(mutableRequest).setTaskConfig(
+          configurationManager.validateAndPopulate(
+              ITaskConfig.build(mutableRequest.getTaskConfig())).newBuilder()));
+    } catch (TaskDescriptionException e) {
+      return error(INVALID_REQUEST, e);
+    }
+
     IJobKey job = request.getTaskConfig().getJob();
 
     return storage.read(storeProvider -> {

http://git-wip-us.apache.org/repos/asf/aurora/blob/395bd7dd/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java b/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
index b785d8b..0428c77 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
@@ -852,6 +852,15 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
     assertEquals(expected, thrift.getJobUpdateDiff(request));
   }
 
+  @Test
+  public void testGetJobUpdateDiffInvalidConfig() throws Exception {
+    control.replay();
+
+    JobUpdateRequest request =
+        new JobUpdateRequest().setTaskConfig(defaultTask(false).setNumCpus(-1));
+    assertResponse(INVALID_REQUEST, thrift.getJobUpdateDiff(request));
+  }
+
   private static void makeTasks(
       int start,
       int end,