Package com.atlassian.bamboo.plan.job
Interface JobService
- All Known Implementing Classes:
JobServiceImpl
public interface JobService
Service for performing job related configurations
- Since:
- v5.7
-
Method Summary
Modifier and TypeMethodDescription@NotNull ImmutableJob
addJob
(@NotNull PlanKey chainKey, long stageId, @NotNull String jobKey, @NotNull String name, @Nullable String description, boolean suspended) Add a job to an existing stage in the plan@NotNull ImmutableJob
cloneJob
(@NotNull String sourceJobKey, @NotNull PlanKey chainKey, long stageId, @NotNull String newJobKey, @NotNull String name, @Nullable String description, boolean suspended) Copy the given job and give the copy the key, name, description and suspended state provided.void
deleteJob
(@NotNull PlanKey jobKey, @NotNull BambooClosures.Throwing1<ImmutableJob, WebValidationException>... runBefore) Remove a job.@NotNull ImmutableJob
Get an individual job.@NotNull List<ImmutableJob>
getJobsForPlan
(@NotNull PlanKey planKey) Get all jobs in a plan, ordered alphabetically@NotNull List<ImmutableJob>
getJobsForStage
(@NotNull PlanKey planKey, long stageId) Get all jobs in a particular stage, ordered alphabetically@NotNull ImmutableJob
getJobWithConsistencyGuarantee
(@NotNull PlanKey jobKey) Get an individual job.@NotNull ImmutableJob
updateJob
(@NotNull PlanKey jobKey, @NotNull String name, @Nullable String description, boolean suspended, long stageId, @NotNull BambooClosures.Throwing1<ImmutableJob, WebValidationException>... runBefore) Update the details of a job@NotNull ErrorCollection
validateJobForAdd
(@NotNull PlanKey chainKey, long stageId, @Nullable String jobKey, @Nullable String name, @Nullable String description, boolean suspended) Validates the parameters for adding a job.@NotNull ErrorCollection
validateJobForClone
(@Nullable String sourceJobKey, @NotNull PlanKey chainKey, long stageId, @Nullable String newJobKey, @Nullable String name, @Nullable String description, @Nullable Boolean suspended) Validates the parameters for cloning a job.@NotNull ErrorCollection
validateJobForUpdate
(@NotNull PlanKey jobKey, @NotNull String name, @Nullable String description, boolean suspended, long stageId) Validate editing of a job
-
Method Details
-
getJobsForPlan
Get all jobs in a plan, ordered alphabetically- Parameters:
planKey
- of plan- Returns:
- list of immutable jobs
- Throws:
NotFoundException
- if the plan does not exist
-
getJobsForStage
@NotNull @NotNull List<ImmutableJob> getJobsForStage(@NotNull @NotNull PlanKey planKey, long stageId) Get all jobs in a particular stage, ordered alphabetically- Parameters:
planKey
- of planstageId
- id of the stage- Returns:
- list of immutable jobs
- Throws:
NotFoundException
- if plan or stage does not exist
-
validateJobForAdd
@NotNull @NotNull ErrorCollection validateJobForAdd(@NotNull @NotNull PlanKey chainKey, long stageId, @Nullable @Nullable String jobKey, @Nullable @Nullable String name, @Nullable @Nullable String description, boolean suspended) throws WebValidationException Validates the parameters for adding a job.- Parameters:
chainKey
- of the plan to add job to.stageId
- of the stage to add the job to.jobKey
- key of the job to add. May be full or partial job key.name
- name of the job to add.description
- description of the job.suspended
- sets the job's suspended status.- Returns:
- error collection containing any validation errors that may have occurred against job data.
- Throws:
NotFoundException
- if the plan or stage can't be foundWebValidationException
-
getJob
Get an individual job. In clustered mode, there is NO consistency guarantee.- Parameters:
jobKey
- of the job to get- Returns:
- the job
- Throws:
NotFoundException
- if the job doesn't existorg.acegisecurity.AccessDeniedException
- if user has no WRITE access to the job
-
getJobWithConsistencyGuarantee
Get an individual job. There is a guarantee that the data will be up-to-date.- Parameters:
jobKey
- of the job to get- Returns:
- the job
- Throws:
NotFoundException
- if the job doesn't existorg.acegisecurity.AccessDeniedException
- if user has no WRITE access to the job- Since:
- 9.4
-
addJob
@NotNull @NotNull ImmutableJob addJob(@NotNull @NotNull PlanKey chainKey, long stageId, @NotNull @NotNull String jobKey, @NotNull @NotNull String name, @Nullable @Nullable String description, boolean suspended) throws WebValidationException Add a job to an existing stage in the plan- Parameters:
chainKey
- of the plan to add the jobstageId
- of the stage to add the jobjobKey
- of the job to add. May be full or partial job key.name
- name of the jobdescription
- description of the jobsuspended
- sets the job suspended status- Returns:
- added job
- Throws:
NotFoundException
- if the plan or stage can't be foundWebValidationException
-
validateJobForClone
@NotNull @NotNull ErrorCollection validateJobForClone(@Nullable @Nullable String sourceJobKey, @NotNull @NotNull PlanKey chainKey, long stageId, @Nullable @Nullable String newJobKey, @Nullable @Nullable String name, @Nullable @Nullable String description, @Nullable @Nullable Boolean suspended) throws WebValidationException Validates the parameters for cloning a job.- Parameters:
sourceJobKey
- key of the job to clone. Must be full job key.chainKey
- key of the plan to add the new job to.stageId
- id of the stage to add the new job to.newJobKey
- key of the new job. May be full or partial job key.name
- name of the new job.description
- description of the new job.suspended
- suspended state of the new job.- Returns:
- error collection containing any validation errors that may have occurred against job data.
- Throws:
WebValidationException
-
cloneJob
@NotNull @NotNull ImmutableJob cloneJob(@NotNull @NotNull String sourceJobKey, @NotNull @NotNull PlanKey chainKey, long stageId, @NotNull @NotNull String newJobKey, @NotNull @NotNull String name, @Nullable @Nullable String description, boolean suspended) throws WebValidationException Copy the given job and give the copy the key, name, description and suspended state provided.- Parameters:
sourceJobKey
- key of the source job to copy. Must be full job key.chainKey
- of the plan to add the new job.stageId
- of the stage to add the new job.newJobKey
- key to give to the new job. May be full or partial job key.name
- The name of the cloned job.description
- The description of the cloned job.suspended
- The suspended state of the cloned job.- Returns:
- the result of the copy.
- Throws:
WebValidationException
-
validateJobForUpdate
@NotNull @NotNull ErrorCollection validateJobForUpdate(@NotNull @NotNull PlanKey jobKey, @NotNull @NotNull String name, @Nullable @Nullable String description, boolean suspended, long stageId) Validate editing of a job- Parameters:
jobKey
- of the job to updatename
- new name of the jobdescription
- new description of the jobsuspended
- sets the job suspended status- Returns:
- error collection containing any validation errors that may have occurred against job data.
- Throws:
NotFoundException
- if the job doesn't exist
-
updateJob
@NotNull @NotNull ImmutableJob updateJob(@NotNull @NotNull PlanKey jobKey, @NotNull @NotNull String name, @Nullable @Nullable String description, boolean suspended, long stageId, @NotNull @NotNull BambooClosures.Throwing1<ImmutableJob, WebValidationException>... runBefore) throws WebValidationExceptionUpdate the details of a job- Parameters:
jobKey
- of the job to updatename
- new name of the jobdescription
- new description of the jobsuspended
- sets the job suspended statusstageId
- new stage for the jobrunBefore
- code to execute after security and validation has passed but before the update occurs.- Returns:
- updated job
- Throws:
WebValidationException
-
deleteJob
void deleteJob(@NotNull @NotNull PlanKey jobKey, @NotNull @NotNull BambooClosures.Throwing1<ImmutableJob, WebValidationException>... runBefore) throws WebValidationExceptionRemove a job.- Parameters:
jobKey
- of jobrunBefore
- code to execute after security and validation has passed but before the deletion occurs.- Throws:
org.acegisecurity.AccessDeniedException
- when user has no ADMINISTRATION permission to the jobWebValidationException
-