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/14 01:08:15 UTC
git commit: AMBARI-4282. Execption in log for Rolling Restart
Command. (swagle)
Updated Branches:
refs/heads/trunk 70dd8ae24 -> 144755b2b
AMBARI-4282. Execption in log for Rolling Restart Command. (swagle)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/144755b2
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/144755b2
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/144755b2
Branch: refs/heads/trunk
Commit: 144755b2bbc72e7268f20b4594a011b624efa89b
Parents: 70dd8ae
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Mon Jan 13 16:08:01 2014 -0800
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Mon Jan 13 16:08:01 2014 -0800
----------------------------------------------------------------------
.../server/scheduler/AbstractLinearExecutionJob.java | 11 +++++++----
.../server/scheduler/ExecutionScheduleManager.java | 5 +++++
.../server/scheduler/ExecutionScheduleManagerTest.java | 3 +++
3 files changed, 15 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/144755b2/ambari-server/src/main/java/org/apache/ambari/server/scheduler/AbstractLinearExecutionJob.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/scheduler/AbstractLinearExecutionJob.java b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/AbstractLinearExecutionJob.java
index a68910a..7570a69 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/scheduler/AbstractLinearExecutionJob.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/AbstractLinearExecutionJob.java
@@ -88,15 +88,18 @@ public abstract class AbstractLinearExecutionJob implements ExecutionJob {
LOG.debug("Finished linear job: " + jobKey);
JobDataMap jobDataMap = context.getMergedJobDataMap();
+
String nextJobName = jobDataMap.getString(NEXT_EXECUTION_JOB_NAME_KEY);
String nextJobGroup = jobDataMap.getString(NEXT_EXECUTION_JOB_GROUP_KEY);
- Integer separationSeconds = jobDataMap.getIntegerFromString(
- (NEXT_EXECUTION_SEPARATION_SECONDS));
- if (separationSeconds == null) {
- separationSeconds = 0;
+ if (nextJobName == null || nextJobName.isEmpty()) {
+ LOG.debug("End of linear job chain. Returning with success.");
+ return;
}
+ Integer separationSeconds = jobDataMap.getIntegerFromString(
+ (NEXT_EXECUTION_SEPARATION_SECONDS));
+
// Create trigger for next job execution
Trigger trigger = newTrigger()
.forJob(nextJobName, nextJobGroup)
http://git-wip-us.apache.org/repos/asf/ambari/blob/144755b2/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java
index a2d0996..7949952 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java
@@ -288,6 +288,9 @@ public class ExecutionScheduleManager {
String jobName = getJobName(requestExecution.getId(),
batchRequest.getOrderId());
+ Integer separationSeconds = requestExecution.getBatch()
+ .getBatchSettings().getBatchSeparationInSeconds();
+
// Create Job and store properties to get next batch request details
jobDetail = newJob(BatchRequestJob.class)
.withIdentity(jobName, ExecutionJob.LINEAR_EXECUTION_JOB_GROUP)
@@ -300,6 +303,8 @@ public class ExecutionScheduleManager {
batchRequest.getOrderId())
.usingJobData(BatchRequestJob.BATCH_REQUEST_CLUSTER_NAME_KEY,
requestExecution.getClusterName())
+ .usingJobData(BatchRequestJob.NEXT_EXECUTION_SEPARATION_SECONDS,
+ separationSeconds != null ? separationSeconds : 0)
.storeDurably()
.build();
http://git-wip-us.apache.org/repos/asf/ambari/blob/144755b2/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 1000bf9..19105e0 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
@@ -304,6 +304,9 @@ public class ExecutionScheduleManagerTest {
Assert.assertEquals(1, triggers.size());
assertThat(triggers.get(0), instanceOf(SimpleTrigger.class));
+ Assert.assertNull(jobDetail2.getJobDataMap().getString(
+ ExecutionJob.NEXT_EXECUTION_JOB_NAME_KEY));
+
int waitCount = 0;
while (scheduler.getCurrentlyExecutingJobs().size() != 0 && waitCount < 10) {
Thread.sleep(100);