Repository: aurora
Updated Branches:
  refs/heads/master e0c9e08d0 -> efffd85f6


Fixed starting cron jobs when using default_docker_parameters

The code was previously attempting to re-sanitize the configuration read from
storage rather than just using it as is.  This causes issues if after
sanitization the job no longer passes sanitization (which is the case here w/
default_docker_parameters).

We've been running this in our branch forever.

Bugs closed: AURORA-1684

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


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

Branch: refs/heads/master
Commit: efffd85f64234d7210c9fea5d1ae6472659174b0
Parents: e0c9e08
Author: Steve Niemitz <steveniem...@gmail.com>
Authored: Tue Jan 31 18:18:42 2017 +0100
Committer: Stephan Erb <s...@apache.org>
Committed: Tue Jan 31 18:18:42 2017 +0100

----------------------------------------------------------------------
 .../apache/aurora/scheduler/cron/quartz/AuroraCronJob.java  | 9 +++------
 .../apache/aurora/scheduler/cron/quartz/CronLifecycle.java  | 9 +++------
 .../aurora/scheduler/cron/quartz/AuroraCronJobTest.java     | 2 --
 3 files changed, 6 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/efffd85f/src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java 
b/src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java
index 5873983..d890cad 100644
--- a/src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java
+++ b/src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java
@@ -38,7 +38,7 @@ import org.apache.aurora.scheduler.BatchWorker.NoResult;
 import org.apache.aurora.scheduler.base.JobKeys;
 import org.apache.aurora.scheduler.base.Query;
 import org.apache.aurora.scheduler.base.Tasks;
-import org.apache.aurora.scheduler.configuration.ConfigurationManager;
+import org.apache.aurora.scheduler.configuration.SanitizedConfiguration;
 import org.apache.aurora.scheduler.cron.CronException;
 import org.apache.aurora.scheduler.cron.SanitizedCronJob;
 import org.apache.aurora.scheduler.events.PubsubEvent.EventSubscriber;
@@ -89,7 +89,6 @@ class AuroraCronJob implements Job, EventSubscriber {
   @VisibleForTesting
   static final Optional<String> KILL_AUDIT_MESSAGE = Optional.of("Killed by 
cronScheduler");
 
-  private final ConfigurationManager configurationManager;
   private final StateManager stateManager;
   private final BackoffHelper delayedStartBackoff;
   private final BatchWorker<NoResult> batchWorker;
@@ -121,12 +120,10 @@ class AuroraCronJob implements Job, EventSubscriber {
 
   @Inject
   AuroraCronJob(
-      ConfigurationManager configurationManager,
       Config config,
       StateManager stateManager,
       CronBatchWorker batchWorker) {
 
-    this.configurationManager = requireNonNull(configurationManager);
     this.stateManager = requireNonNull(stateManager);
     this.batchWorker = requireNonNull(batchWorker);
     this.delayedStartBackoff = requireNonNull(config.getDelayedStartBackoff());
@@ -171,8 +168,8 @@ class AuroraCronJob implements Job, EventSubscriber {
 
       SanitizedCronJob cronJob;
       try {
-        cronJob = SanitizedCronJob.fromUnsanitized(configurationManager, 
config.get());
-      } catch (ConfigurationManager.TaskDescriptionException | CronException 
e) {
+        cronJob = SanitizedCronJob.from(new 
SanitizedConfiguration(config.get()));
+      } catch (CronException e) {
         LOG.warn("Invalid cron job for {} in storage - failed to parse", key, 
e);
         CRON_JOB_PARSE_FAILURES.incrementAndGet();
         return BatchWorker.NO_RESULT;

http://git-wip-us.apache.org/repos/asf/aurora/blob/efffd85f/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronLifecycle.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronLifecycle.java 
b/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronLifecycle.java
index 650face..f18e1dc 100644
--- a/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronLifecycle.java
+++ b/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronLifecycle.java
@@ -21,7 +21,7 @@ import javax.inject.Inject;
 import com.google.common.util.concurrent.AbstractIdleService;
 
 import org.apache.aurora.common.stats.Stats;
-import org.apache.aurora.scheduler.configuration.ConfigurationManager;
+import org.apache.aurora.scheduler.configuration.SanitizedConfiguration;
 import org.apache.aurora.scheduler.cron.CronException;
 import org.apache.aurora.scheduler.cron.SanitizedCronJob;
 import org.apache.aurora.scheduler.storage.Storage;
@@ -43,19 +43,16 @@ class CronLifecycle extends AbstractIdleService {
   private static final AtomicInteger LOADED_FLAG = 
Stats.exportInt("cron_jobs_loaded");
   private static final AtomicLong LAUNCH_FAILURES = 
Stats.exportLong("cron_job_launch_failures");
 
-  private final ConfigurationManager configurationManager;
   private final Scheduler scheduler;
   private final CronJobManagerImpl cronJobManager;
   private final Storage storage;
 
   @Inject
   CronLifecycle(
-      ConfigurationManager configurationManager,
       Scheduler scheduler,
       CronJobManagerImpl cronJobManager,
       Storage storage) {
 
-    this.configurationManager = requireNonNull(configurationManager);
     this.scheduler = requireNonNull(scheduler);
     this.cronJobManager = requireNonNull(cronJobManager);
     this.storage = requireNonNull(storage);
@@ -69,11 +66,11 @@ class CronLifecycle extends AbstractIdleService {
 
     for (IJobConfiguration job : Storage.Util.fetchCronJobs(storage)) {
       try {
-        SanitizedCronJob cronJob = 
SanitizedCronJob.fromUnsanitized(configurationManager, job);
+        SanitizedCronJob cronJob = SanitizedCronJob.from(new 
SanitizedConfiguration(job));
         cronJobManager.scheduleJob(
             cronJob.getCrontabEntry(),
             cronJob.getSanitizedConfig().getJobConfig().getKey());
-      } catch (CronException | ConfigurationManager.TaskDescriptionException 
e) {
+      } catch (CronException e) {
         logLaunchFailure(job, e);
       }
     }

http://git-wip-us.apache.org/repos/asf/aurora/blob/efffd85f/src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java 
b/src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java
index fb06c28..2b81707 100644
--- 
a/src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java
+++ 
b/src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java
@@ -28,7 +28,6 @@ import org.apache.aurora.gen.ScheduledTask;
 import org.apache.aurora.scheduler.BatchWorker;
 import org.apache.aurora.scheduler.BatchWorker.RepeatableWork;
 import org.apache.aurora.scheduler.base.JobKeys;
-import org.apache.aurora.scheduler.base.TaskTestUtil;
 import org.apache.aurora.scheduler.cron.quartz.AuroraCronJob.CronBatchWorker;
 import org.apache.aurora.scheduler.state.StateChangeResult;
 import org.apache.aurora.scheduler.state.StateManager;
@@ -80,7 +79,6 @@ public class AuroraCronJobTest extends EasyMockTest {
     expectBatchExecute(batchWorker, storage, control).anyTimes();
 
     auroraCronJob = new AuroraCronJob(
-        TaskTestUtil.CONFIGURATION_MANAGER,
         new AuroraCronJob.Config(backoffHelper),
         stateManager,
         batchWorker);

Reply via email to