Interface StageService

All Known Implementing Classes:
StageServiceImpl

public interface StageService
Service for performing stage related configuration
Since:
TODO
  • Method Details

    • getStagesForPlan

      @NotNull @NotNull List<ImmutableChainStage> getStagesForPlan(@NotNull @NotNull PlanKey planKey)
      Get all stages in a plan, in order
      Parameters:
      planKey - of plan
      Returns:
      list of immutable stages
      Throws:
      NotFoundException - if the plan does not exist
      org.acegisecurity.AccessDeniedException - if user has no WRITE access to the plan
    • getStage

      @NotNull @NotNull ImmutableChainStage getStage(@NotNull @NotNull PlanKey planKey, long stageId) throws WebValidationException
      Get an individual stage from a plan. In clustered mode, there is NO consistency guarantee.
      Parameters:
      planKey - the plan the stage belongs to
      stageId - the id of the stage
      Returns:
      ImmutableChainStage representing the stage if it exists
      Throws:
      NotFoundException - if the plan or stage does not exist
      org.acegisecurity.AccessDeniedException - if user has no WRITE access to the plan
      WebValidationException
    • getStageWithConsistencyGuarantee

      @NotNull @NotNull ImmutableChainStage getStageWithConsistencyGuarantee(@NotNull @NotNull PlanKey planKey, long stageId) throws WebValidationException
      Get an individual stage from a plan. There is a guarantee that the data will be up-to-date.
      Parameters:
      planKey - the plan the stage belongs to
      stageId - the id of the stage
      Returns:
      ImmutableChainStage representing the stage if it exists
      Throws:
      NotFoundException - if the plan or stage does not exist
      org.acegisecurity.AccessDeniedException - if user has no WRITE access to the plan
      WebValidationException
    • addStage

      @NotNull @NotNull ImmutableChainStage addStage(@NotNull @NotNull PlanKey planKey, @NotNull @NotNull String name, @Nullable @Nullable String description, boolean isManual, boolean isFinal) throws WebValidationException
      Adds a new stage to the specified plan. Currently will be added to the end of the list // todo allow people to add a stage to a specific index?
      Parameters:
      planKey - of plan to add stage to
      name - of stage
      description - of stage
      isManual - true if this stage is a manual stage
      isFinal - true if stage is a final stage
      Returns:
      created chain stage
      Throws:
      WebValidationException - if plan does not exist or it is not of the correct type, or if validation fails
    • validateStageForAdd

      @NotNull @NotNull ErrorCollection validateStageForAdd(@NotNull @NotNull PlanKey planKey, @Nullable @Nullable String name, @Nullable @Nullable String description, boolean isManual, boolean isFinal) throws WebValidationException
      Validates a new stage for the specified plan.
      Parameters:
      planKey - of plan to add stage to
      name - of stage
      description - of stage
      isManual - true if this stage is a manual stage
      Returns:
      error collection containing any validation errors against the stage data.
      Throws:
      WebValidationException - if plan does not exist or it is not of the correct type
    • validateStageForUpdate

      @NotNull @NotNull ErrorCollection validateStageForUpdate(@NotNull @NotNull PlanKey planKey, long stageId, @Nullable @Nullable String name, @Nullable @Nullable String description, boolean manual, boolean isFinal) throws WebValidationException
      Validates editing of a stage.
      Parameters:
      planKey - of plan stage belongs to
      stageId - if of the stage being edited
      name - new name of stage
      description - new description of stage
      manual - new value for id stage is manual or not
      isFinal - if stage is final or not
      Returns:
      error collection containing any validation errors that may have occurred against stage data.
      Throws:
      WebValidationException
    • moveStage

      @NotNull @NotNull ImmutableChainStage moveStage(@NotNull @NotNull PlanKey planKey, long stageId, int index) throws WebValidationException
      Moves stage to a different position in the plan structure. Will remove all broken artifact subscriptions.
      Parameters:
      planKey - key of the plan the stage belongs to
      stageId - if of the stage being updated
      index - new position of the stage in the plan structure, must be a non-negative value. If the index is too big, the stage will be moved to the end of the list.
      Returns:
      ImmutableChainStage representing the updated stage
      Throws:
      WebValidationException - if any errors occur
    • updateStage

      @NotNull @NotNull ImmutableChainStage updateStage(@NotNull @NotNull PlanKey planKey, long stageId, @NotNull @NotNull String name, @NotNull @NotNull String description, boolean manual, boolean isFinal, @Nullable @Nullable Integer index, @NotNull @NotNull BambooClosures.Throwing1<ImmutableChainStage,WebValidationException>... runBefore) throws WebValidationException
      Update the details of a stage.
      Parameters:
      planKey - key of the plan the stage belongs to
      stageId - if of the stage being updated
      name - the name of the stage
      description - the description of the stage
      manual - indicates if the stage runs automatically or needs manual intervention
      index - position of the stage in the plan structure
      Returns:
      ImmutableChainStage representing the updated stage
      Throws:
      WebValidationException - if invalid
    • deleteStage

      void deleteStage(@NotNull @NotNull PlanKey planKey, long stageId, @NotNull @NotNull BambooClosures.Throwing1<ImmutableChainStage,WebValidationException>... runBefore) throws WebValidationException
      Deletes the given stage and any jobs under the stage.
      Parameters:
      planKey - key for the plan the stage belongs to.
      stageId - id if of the stage being deleted.
      runBefore - code to execute after security and validation has passed but before the deletion occurs.
      Throws:
      WebValidationException