public static JobInstance jobInstance(String jobConfigName, String resourceName) { return new JobInstance(jobConfigName ); }
private JobInstance jobInstance(final Date date, final String jobName, final int id, int transitionIdStart) { JobInstance jobInstance = new JobInstance(jobName, new TimeProvider() { @Override public Date currentTime() { return date; } }); jobInstance.setAgentUuid(UUID.randomUUID().toString()); return passJob(date, id, transitionIdStart, jobInstance); }
@Before public void setUp() { timeProvider = new TimeProvider() { @Override public Date currentTime() { return JOB_SCHEDULE_DATE; } public DateTime currentDateTime() { throw new UnsupportedOperationException("Not implemented"); } public DateTime timeoutTime(Timeout timeout) { throw new UnsupportedOperationException("Not implemented"); } }; firstJob = new JobInstance("first-job", timeProvider); secondJob = new JobInstance("second-job", timeProvider); jobInstances = new JobInstances(firstJob, secondJob); stage = StageMother.custom("test", jobInstances); }
@Test public void shouldReturnJobTypeCorrectly() { JobInstance jobInstance = new JobInstance(); jobInstance.setRunOnAllAgents(true); assertThat(jobInstance.jobType(), instanceOf(RunOnAllAgents.class)); jobInstance = new JobInstance(); jobInstance.setRunMultipleInstance(true); assertThat(jobInstance.jobType(), instanceOf(RunMultipleInstance.class)); jobInstance = new JobInstance(); assertThat(jobInstance.jobType(), instanceOf(SingleJobInstance.class)); }
public void reallyCreateJobInstance(JobConfig config, JobInstances jobs, String uuid, String jobName, boolean runOnAllAgents, boolean runMultipleInstance, SchedulingContext context, final Clock clock) { JobInstance instance = new JobInstance(jobName, clock); instance.setPlan(createJobPlan(config, context)); instance.setAgentUuid(uuid); instance.setRunOnAllAgents(runOnAllAgents); instance.setRunMultipleInstance(runMultipleInstance); jobs.add(instance); }
public static JobInstance scheduled(String jobConfigName, ResourceConfigs resourceConfigs) { JobInstance instance = new JobInstance(jobConfigName); instance.setId(999); instance.setIdentifier(defaultJobIdentifier(jobConfigName)); return instance; }
public static JobInstance building(String jobConfig) { final JobInstance instance = new JobInstance(jobConfig); setBuildingState(instance); instance.setIdentifier(defaultJobIdentifier(jobConfig)); return instance; }
public static JobInstance building(String jobConfigName, Date startBuildingDate) { final JobInstance instance = new JobInstance(jobConfigName); instance.changeState(JobState.Building, startBuildingDate); instance.setScheduledDate(new DateTime().minusMinutes(5).toDate()); instance.setIdentifier(defaultJobIdentifier(jobConfigName)); return instance; }
private JobInstance createJobInstance(JobHistoryItem job, JobIdentifier jobIdentifier, String agentUUID) { JobInstance jobInstance = new JobInstance(job.getName()); jobInstance.setIdentifier(jobIdentifier); jobInstance.setState(job.getState()); jobInstance.setScheduledDate(job.getScheduledDate()); jobInstance.setAgentUuid(agentUUID); return jobInstance; } }
@Test public void shouldFilterByStatus() { final JobInstance instance1 = new JobInstance("test" ); final JobInstance instance2 = new JobInstance("test2" ); instance2.setState(JobState.Assigned); JobInstances instances = new JobInstances(instance1, instance2); JobInstances actual = instances.filterByState(JobState.Assigned); assertThat(actual.size(), is(1)); assertThat(actual.get(0).getState(), is(JobState.Assigned)); }
@Test public void shouldConsiderJobARerunWhenHasOriginalId() { JobInstance instance = new JobInstance(); assertThat(instance.isCopy(), is(false)); instance.setOriginalJobId(10l); assertThat(instance.isCopy(), is(true)); }
public static Stage cancelledStage(String stageName, String jobName) { JobInstance job = new JobInstance(jobName); job.setState(JobState.Completed); job.setResult(JobResult.Cancelled); Stage stage = custom(stageName, job); stage.setCounter(1); return stage; }
public static JobInstance assignedWithAgentId(String jobConfig, String agentUuid) { final JobInstance instance = new JobInstance(jobConfig); instance.setIdentifier(defaultJobIdentifier(jobConfig)); instance.setState(JobState.Assigned); return assignAgent(instance, agentUuid); }
private static Stage createStageWithFakeDuration(String pipelineName, int pipelineCounter, String stageName, int stageCounter, String jobName, final DateTime scheduleTime, DateTime completedTime, JobResult jobResult) { TimeProvider timeProvider = new TimeProvider() { @Override public Date currentTime() { return scheduleTime.toDate(); } public DateTime currentDateTime() { throw new UnsupportedOperationException("Not implemented"); } public DateTime timeoutTime(Timeout timeout) { throw new UnsupportedOperationException("Not implemented"); } }; JobInstance firstJob = new JobInstance(jobName, timeProvider); JobInstances jobInstances = new JobInstances(firstJob); Stage stage = StageMother.custom(pipelineName, stageName, jobInstances); firstJob.assign("AGENT-1", completedTime.toDate()); firstJob.completing(jobResult, completedTime.toDate()); firstJob.completed(completedTime.toDate()); stage.calculateResult(); stage.setCreatedTime(new Timestamp(timeProvider.currentTime().getTime())); stage.setLastTransitionedTime(new Timestamp(completedTime.toDate().getTime())); stage.setIdentifier(new StageIdentifier(pipelineName, pipelineCounter, "LABEL-" + pipelineCounter, stageName, String.valueOf(stageCounter))); return stage; }
public static JobInstance completed(String jobConfigName, JobResult result, Date completedDate, Date startbuilding) { JobInstance instance = new JobInstance(jobConfigName); instance.completing(result, completedDate); instance.completed(completedDate); instance.getTransitions().add(new JobStateTransition(JobState.Building, startbuilding)); return instance; }
@Test public void shouldCloneStageForGivenJobsWithLatestMd5() { TimeProvider timeProvider = new TimeProvider() { @Override public Date currentTime() { return new Date(); } public DateTime currentDateTime() { throw new UnsupportedOperationException("Not implemented"); } public DateTime timeoutTime(Timeout timeout) { throw new UnsupportedOperationException("Not implemented"); } }; JobInstance firstJob = new JobInstance("first-job", timeProvider); JobInstance secondJob = new JobInstance("second-job", timeProvider); JobInstances jobInstances = new JobInstances(firstJob, secondJob); Stage stage = StageMother.custom("test", jobInstances); Stage clonedStage = instanceFactory.createStageForRerunOfJobs(stage, Arrays.asList("first-job"), new DefaultSchedulingContext("loser", new Agents()), StageConfigMother.custom("test", "first-job", "second-job"), new TimeProvider(), "latest"); assertThat(clonedStage.getConfigVersion(), is("latest")); }
public static JobInstance buildEndingWithState(JobState endState, JobResult result, String jobConfig) { final JobInstance instance = new JobInstance(jobConfig); instance.setAgentUuid("1234"); instance.setId(1L); instance.setIdentifier(defaultJobIdentifier(jobConfig)); instance.setState(endState); instance.setTransitions(new JobStateTransitions()); DateTime now = new DateTime(); Date scheduledDate = now.minusMinutes(5).toDate(); instance.setScheduledDate(scheduledDate); List<JobState> orderedStates = orderedBuildStates(); DateTime stateDate = new DateTime(scheduledDate); for (JobState stateToCompareTo : orderedStates) { if (endState.compareTo(stateToCompareTo) >= 0) { instance.changeState(stateToCompareTo, stateDate.toDate()); stateDate = stateDate.plusMinutes(1); } } if (endState.equals(JobState.Completed)) { instance.setResult(result); } return instance; }
public static JobInstance cancelled(String jobConfigName, Date scheduledDate, int interval) { JobInstance instance = new JobInstance(jobConfigName); instance.setIdentifier(defaultJobIdentifier(jobConfigName)); instance.schedule(); instance.getTransition(JobState.Scheduled).setStateChangeTime(scheduledDate); instance.setResult(JobResult.Cancelled); instance.completed(addMillis(scheduledDate, interval)); return instance; }
public static JobInstance building(String jobConfigName, Date scheduledDate, int interval) { JobInstance instance = new JobInstance(jobConfigName); instance.setIdentifier(defaultJobIdentifier(jobConfigName)); instance.schedule(); instance.getTransition(JobState.Scheduled).setStateChangeTime(scheduledDate); instance.changeState(JobState.Preparing, addMillis(scheduledDate, 2 * interval)); instance.changeState(JobState.Building, addMillis(scheduledDate, 3 * interval)); return instance; }
@Test public void shouldCreateAStageInstanceThroughInstanceFactory() { PipelineConfig pipelineConfig = new PipelineConfig(new CaseInsensitiveString("cruise"), new MaterialConfigs(), new StageConfig(new CaseInsensitiveString("first"), new JobConfigs(new JobConfig("job1"), new JobConfig("job2")))); Stage actualStage = instanceFactory.createStageInstance(pipelineConfig, new CaseInsensitiveString("first"), new DefaultSchedulingContext(), "md5", clock); JobInstances jobInstances = new JobInstances(); jobInstances.add(new JobInstance("job1", clock)); jobInstances.add(new JobInstance("job2", clock)); Stage expectedStage = new Stage("first", jobInstances, "Unknown", null, Approval.SUCCESS, clock); assertThat(actualStage, is(expectedStage)); }