private boolean shouldReschedule(SingularityRequest newRequest, SingularityRequest oldRequest) { if (newRequest.getInstancesSafe() != oldRequest.getInstancesSafe()) { return true; } if (newRequest.isScheduled() && oldRequest.isScheduled()) { if (!newRequest.getQuartzScheduleSafe().equals(oldRequest.getQuartzScheduleSafe())) { return true; } } return false; }
} else { scheduleFrom = new Date(now); final CronExpression cronExpression = new CronExpression(request.getQuartzScheduleSafe()); if (request.getScheduleTimeZone().isPresent()) { cronExpression.setTimeZone(TimeZone.getTimeZone(request.getScheduleTimeZone().get()));
String scheduleExpression = request.getScheduleTypeSafe() == ScheduleType.RFC5545 ? request.getSchedule().get() : request.getQuartzScheduleSafe(); Date nextRunAtDate;
checkBadRequest(request.getQuartzSchedule().isPresent() || request.getSchedule().isPresent(), "Specify at least one of schedule or quartzSchedule"); String originalSchedule = request.getQuartzScheduleSafe();
@Test public void testCronScheduleChanges() throws Exception { final String requestId = "test-change-cron"; final String oldSchedule = "*/5 * * * *"; final String oldScheduleQuartz = "0 */5 * * * ?"; final String newSchedule = "*/30 * * * *"; final String newScheduleQuartz = "0 */30 * * * ?"; SingularityRequest request = new SingularityRequestBuilder(requestId, RequestType.SCHEDULED) .setSchedule(Optional.of(oldSchedule)) .build(); request = validator.checkSingularityRequest(request, Optional.<SingularityRequest>absent(), Optional.<SingularityDeploy>absent(), Optional.<SingularityDeploy>absent()); saveRequest(request); Assert.assertEquals(oldScheduleQuartz, requestManager.getRequest(requestId).get().getRequest().getQuartzScheduleSafe()); initAndFinishDeploy(request, "1"); scheduler.drainPendingQueue(); final SingularityRequest newRequest = request.toBuilder() .setSchedule(Optional.of(newSchedule)) .setQuartzSchedule(Optional.<String>absent()) .build(); final SingularityDeploy newDeploy = new SingularityDeployBuilder(request.getId(), "2").setCommand(Optional.of("sleep 100")).build(); deployResource.deploy(new SingularityDeployRequest(newDeploy, Optional.absent(), Optional.absent(), Optional.of(newRequest)), singularityUser); deployChecker.checkDeploys(); scheduler.drainPendingQueue(); Assert.assertEquals(newScheduleQuartz, requestManager.getRequest(requestId).get().getRequest().getQuartzScheduleSafe()); }
private boolean shouldReschedule(SingularityRequest newRequest, SingularityRequest oldRequest) { if (newRequest.getInstancesSafe() != oldRequest.getInstancesSafe()) { return true; } if (newRequest.isScheduled() && oldRequest.isScheduled()) { if (!newRequest.getQuartzScheduleSafe().equals(oldRequest.getQuartzScheduleSafe())) { return true; } } return false; }
} else { scheduleFrom = new Date(now); final CronExpression cronExpression = new CronExpression(request.getQuartzScheduleSafe()); if (request.getScheduleTimeZone().isPresent()) { cronExpression.setTimeZone(TimeZone.getTimeZone(request.getScheduleTimeZone().get()));
String scheduleExpression = request.getScheduleTypeSafe() == ScheduleType.RFC5545 ? request.getSchedule().get() : request.getQuartzScheduleSafe(); Date nextRunAtDate;
checkBadRequest(request.getQuartzSchedule().isPresent() || request.getSchedule().isPresent(), "Specify at least one of schedule or quartzSchedule"); String originalSchedule = request.getQuartzScheduleSafe();
@Test public void testCronScheduleChanges() throws Exception { final String requestId = "test-change-cron"; final String oldSchedule = "*/5 * * * *"; final String oldScheduleQuartz = "0 */5 * * * ?"; final String newSchedule = "*/30 * * * *"; final String newScheduleQuartz = "0 */30 * * * ?"; SingularityRequest request = new SingularityRequestBuilder(requestId, RequestType.SCHEDULED) .setSchedule(Optional.of(oldSchedule)) .build(); request = validator.checkSingularityRequest(request, Optional.<SingularityRequest>absent(), Optional.<SingularityDeploy>absent(), Optional.<SingularityDeploy>absent()); saveRequest(request); Assert.assertEquals(oldScheduleQuartz, requestManager.getRequest(requestId).get().getRequest().getQuartzScheduleSafe()); initAndFinishDeploy(request, "1"); scheduler.drainPendingQueue(); final SingularityRequest newRequest = request.toBuilder() .setSchedule(Optional.of(newSchedule)) .setQuartzSchedule(Optional.<String>absent()) .build(); final SingularityDeploy newDeploy = new SingularityDeployBuilder(request.getId(), "2").setCommand(Optional.of("sleep 100")).build(); deployResource.deploy(new SingularityDeployRequest(newDeploy, Optional.absent(), Optional.absent(), Optional.of(newRequest)), singularityUser); deployChecker.checkDeploys(); scheduler.drainPendingQueue(); Assert.assertEquals(newScheduleQuartz, requestManager.getRequest(requestId).get().getRequest().getQuartzScheduleSafe()); }