You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2014/01/10 01:19:33 UTC

git commit: AMBARI-4237. Allow unlimited size for request_body of the RequestSchedule entity. Additional fix. (swagle)

Updated Branches:
  refs/heads/trunk e8a03c8df -> 35c0cdf65


AMBARI-4237. Allow unlimited size for request_body of the RequestSchedule entity. Additional fix. (swagle)


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

Branch: refs/heads/trunk
Commit: 35c0cdf659b8de11a5e1fb1501f69a7a9b4ed67e
Parents: e8a03c8
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Thu Jan 9 16:18:16 2014 -0800
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Thu Jan 9 16:18:16 2014 -0800

----------------------------------------------------------------------
 .../state/scheduler/RequestExecutionImpl.java   |  4 +-
 .../ambari/server/state/scheduler/Schedule.java |  2 +
 .../scheduler/ExecutionScheduleManagerTest.java | 56 ++++++++++++++++++--
 3 files changed, 56 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/35c0cdf6/ambari-server/src/main/java/org/apache/ambari/server/state/scheduler/RequestExecutionImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/scheduler/RequestExecutionImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/scheduler/RequestExecutionImpl.java
index a13944d..9eb5061 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/scheduler/RequestExecutionImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/scheduler/RequestExecutionImpl.java
@@ -36,6 +36,8 @@ import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.utils.DateUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
+import javax.annotation.Nullable;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -68,7 +70,7 @@ public class RequestExecutionImpl implements RequestExecution {
   @AssistedInject
   public RequestExecutionImpl(@Assisted("cluster") Cluster cluster,
                               @Assisted("batch") Batch batch,
-                              @Assisted("schedule") Schedule schedule,
+                              @Assisted("schedule") @Nullable Schedule schedule,
                               Injector injector) {
     this.cluster = cluster;
     this.batch = batch;

http://git-wip-us.apache.org/repos/asf/ambari/blob/35c0cdf6/ambari-server/src/main/java/org/apache/ambari/server/state/scheduler/Schedule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/scheduler/Schedule.java b/ambari-server/src/main/java/org/apache/ambari/server/state/scheduler/Schedule.java
index 38fbeac..cccc650 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/scheduler/Schedule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/scheduler/Schedule.java
@@ -17,6 +17,7 @@
  */
 package org.apache.ambari.server.state.scheduler;
 
+import org.codehaus.jackson.annotate.JsonIgnore;
 import org.codehaus.jackson.annotate.JsonProperty;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
 
@@ -153,6 +154,7 @@ public class Schedule {
    * Example: "0 0 12 * * ?"
    * @return
    */
+  @JsonIgnore
   public String getScheduleExpression() {
     StringBuilder expression = new StringBuilder();
     expression.append("0"); // seconds

http://git-wip-us.apache.org/repos/asf/ambari/blob/35c0cdf6/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java
index 926cb7a..39d223d 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java
@@ -27,6 +27,7 @@ import com.google.inject.persist.Transactional;
 import com.google.inject.util.Modules;
 import junit.framework.Assert;
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
+import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.orm.GuiceJpaInitializer;
 import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
 import org.apache.ambari.server.state.Cluster;
@@ -47,6 +48,7 @@ import org.quartz.JobExecutionContext;
 import org.quartz.JobKey;
 import org.quartz.Scheduler;
 import org.quartz.SchedulerException;
+import org.quartz.SimpleTrigger;
 import org.quartz.Trigger;
 import org.quartz.impl.StdSchedulerFactory;
 import org.quartz.impl.matchers.GroupMatcher;
@@ -56,6 +58,8 @@ import org.slf4j.LoggerFactory;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Properties;
+
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.junit.Assert.assertThat;
 
@@ -69,14 +73,17 @@ public class ExecutionScheduleManagerTest {
   private RequestExecutionFactory requestExecutionFactory;
   private ExecutionScheduler executionScheduler;
   private Scheduler scheduler;
+  Properties properties;
 
   private static final Logger LOG =
     LoggerFactory.getLogger(ExecutionScheduleManagerTest.class);
 
   @Before
   public void setup() throws Exception {
-    injector  = Guice.createInjector(Modules.override(
-      new InMemoryDefaultTestModule()).with(new ExecutionSchedulerTestModule()));
+    InMemoryDefaultTestModule defaultTestModule = new InMemoryDefaultTestModule();
+    properties = defaultTestModule.getProperties();
+    injector  = Guice.createInjector(Modules.override(defaultTestModule)
+      .with(new ExecutionSchedulerTestModule()));
     injector.getInstance(GuiceJpaInitializer.class);
     clusters = injector.getInstance(Clusters.class);
     metaInfo = injector.getInstance(AmbariMetaInfo.class);
@@ -134,7 +141,8 @@ public class ExecutionScheduleManagerTest {
   }
 
   @Transactional
-  private RequestExecution createRequestExecution() throws Exception {
+  private RequestExecution createRequestExecution(boolean addSchedule)
+      throws Exception {
     Batch batches = new Batch();
     Schedule schedule = new Schedule();
 
@@ -165,6 +173,10 @@ public class ExecutionScheduleManagerTest {
     schedule.setDaysOfMonth("*");
     schedule.setDayOfWeek("?");
 
+    if (!addSchedule) {
+      schedule = null;
+    }
+
     RequestExecution requestExecution = requestExecutionFactory.createNew
       (cluster, batches, schedule);
     requestExecution.setDescription("Test Schedule");
@@ -176,7 +188,7 @@ public class ExecutionScheduleManagerTest {
 
   @Test
   public void testScheduleBatch() throws Exception {
-    RequestExecution requestExecution = createRequestExecution();
+    RequestExecution requestExecution = createRequestExecution(true);
     Assert.assertNotNull(requestExecution);
 
     executionScheduleManager.scheduleBatch(requestExecution);
@@ -240,7 +252,7 @@ public class ExecutionScheduleManagerTest {
 
   @Test
   public void testDeleteAllJobs() throws Exception {
-    RequestExecution requestExecution = createRequestExecution();
+    RequestExecution requestExecution = createRequestExecution(true);
     Assert.assertNotNull(requestExecution);
 
     executionScheduleManager.scheduleBatch(requestExecution);
@@ -265,4 +277,38 @@ public class ExecutionScheduleManagerTest {
     Assert.assertTrue(scheduler.getTriggersOfJob(JobKey.jobKey(jobName1,
       ExecutionJob.LINEAR_EXECUTION_JOB_GROUP)).isEmpty());
   }
+
+  @Test
+  public void testPointInTimeExecutionJob() throws Exception {
+    RequestExecution requestExecution = createRequestExecution(false);
+    Assert.assertNotNull(requestExecution);
+
+    executionScheduleManager.scheduleBatch(requestExecution);
+
+    String jobName1 = executionScheduleManager.getJobName(requestExecution
+      .getId(), 10L);
+    String jobName2 = executionScheduleManager.getJobName(requestExecution
+      .getId(), 12L);
+
+    JobDetail jobDetail1 = scheduler.getJobDetail(JobKey.jobKey(jobName1,
+      ExecutionJob.LINEAR_EXECUTION_JOB_GROUP));
+    JobDetail jobDetail2 = scheduler.getJobDetail(JobKey.jobKey(jobName2,
+      ExecutionJob.LINEAR_EXECUTION_JOB_GROUP));
+
+    Assert.assertNotNull(jobDetail1);
+    Assert.assertNotNull(jobDetail2);
+
+    List<? extends Trigger> triggers = scheduler.getTriggersOfJob
+      (JobKey.jobKey(jobName1, ExecutionJob.LINEAR_EXECUTION_JOB_GROUP));
+
+    Assert.assertNotNull(triggers);
+    Assert.assertEquals(1, triggers.size());
+    assertThat(triggers.get(0), instanceOf(SimpleTrigger.class));
+
+    int waitCount = 0;
+    while (scheduler.getCurrentlyExecutingJobs().size() != 0 && waitCount < 10) {
+      Thread.sleep(100);
+      waitCount++;
+    }
+  }
 }