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);