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++;
+ }
+ }
}