Interface DeploymentRequestHandler

All Known Implementing Classes:
DefaultDeploymentRequestHandler

public interface DeploymentRequestHandler
Responsible for scheduling and executing deployments.
Author:
Nathan Moore (nathandmoore), Phillip Verheyden (phillipuniverse)
  • Method Details

    • schedule

      @Deprecated void schedule(@NonNull ChangeSummaryGroups scheduleGroups, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox, @NonNull Instant deployTime, int level)
      Creates a new ChangeDeploy for the given ChangeSummaryGroups and schedules it for the given deployTime. The given ChangeSummaryGroups and their ChangeSummaries are marked with status ChangeStatusType.SCHEDULING, and a WorkflowJobSchedulingRequest is published to actually schedule the job
      Parameters:
      scheduleGroups - Construct that identifies one or more ChangeSummaryGroup instances to be scheduled for a future deployment.
      context - Information about the deploy request containing the ID of the request's author.
      sandbox - The sandbox ID upon which to filter searches on when retrieving the group instances and their summaries.
      deployTime - Time at which to deploy the items identified by the scheduleGroups param
      Throws:
      QualifiedStateException - Thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation
      See Also:
    • schedule

      void schedule(@NonNull ChangeSummaryGroups scheduleGroups, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox, @NonNull Instant deployTime, int level, boolean vendorNarrowing)
      Creates a new ChangeDeploy for the given ChangeSummaryGroups and schedules it for the given deployTime. The given ChangeSummaryGroups and their ChangeSummaries are marked with status ChangeStatusType.SCHEDULING, and a WorkflowJobSchedulingRequest is published to actually schedule the job
      Parameters:
      scheduleGroups - Construct that identifies one or more ChangeSummaryGroup instances to be scheduled for a future deployment.
      context - Information about the deploy request containing the ID of the request's author.
      sandbox - The sandbox ID upon which to filter searches on when retrieving the group instances and their summaries.
      deployTime - Time at which to deploy the items identified by the scheduleGroups param
      vendorNarrowing - whether or not to filter results based on the current authentication's vendor restrictions if vendor processing is enabled
      Throws:
      QualifiedStateException - Thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation
      See Also:
    • unschedule

      @Deprecated void unschedule(@NonNull String changeDeployId)
      Deprecated.
      Accepts an ID for a ChangeDeploy that was previously scheduled and starts the process of unscheduling the deployment. The deployment, its groups, and their associated summaries have their statuses updated to ChangeStatusType.UNSCHEDULING, and a WorkflowJobUnschedulingRequest is published to actually unschedule the job.
      Parameters:
      changeDeployId - the ID of the previously scheduled ChangeDeploy which should be unscheduled
      Throws:
      QualifiedStateException - for any values determined to be in an incorrect state from what is expected to perform an unschedule operation
      See Also:
    • unschedule

      void unschedule(@NonNull String changeDeployId, boolean vendorNarrowing, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Accepts an ID for a ChangeDeploy that was previously scheduled and starts the process of unscheduling the deployment. The deployment, its groups, and their associated summaries have their statuses updated to ChangeStatusType.UNSCHEDULING, and a WorkflowJobUnschedulingRequest is published to actually unschedule the job.
      Parameters:
      changeDeployId - the ID of the previously scheduled ChangeDeploy which should be unscheduled
      vendorNarrowing - whether to filter results based on the current authentication's vendor restrictions if vendor processing is enabled
      contextInfo - context information about sandboxing and multitenant state
      Throws:
      QualifiedStateException - for any values determined to be in an incorrect state from what is expected to perform an unschedule operation
      See Also:
    • clear

      void clear(@NonNull String changeDeployId, boolean vendorNarrowing, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Accepts an ID for a ChangeDeploy that previously failed and starts the process of clearing the error state of the deployment. This includes notifying (via special deployment case) all resource tier services with impacted entities. The resource tier service is responsible for rectifying the ChangeDetail state to obsolete for deployment version matches in the tracking information for affected entities.
      Parameters:
      changeDeployId - The ID of the previously failed deployment
      vendorNarrowing - whether to filter results based on the current authentication's vendor restrictions if vendor processing is enabled
      contextInfo - context information about sandboxing and multitenant state
    • deploy

      @Deprecated void deploy(@NonNull ChangeSummaryGroups scheduleGroups, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox, int level)
      Creates a new ChangeDeploy for the given ChangeSummaryGroups and executes immediate deployment. A WorkflowDeployRequest is emitted per change summary via the relevant Spring Cloud channel, and the given ChangeSummaryGroups and their ChangeSummaries are marked with status ChangeStatusType.DEPLOYING.
      Parameters:
      scheduleGroups - Construct that identifies one or more ChangeSummaryGroup instances to be scheduled for a future deployment.
      context - Information about the deploy request containing the ID of the request's author.
      sandbox - The sandbox ID upon which to filter searches on when retrieving the group instances and their summaries.
      level - The tracking level from which to perform the deployment (see TrackingLevel)
      Throws:
      QualifiedStateException - Thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation
    • deploy

      void deploy(@NonNull ChangeSummaryGroups scheduleGroups, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox, int level, boolean vendorNarrowing)
      Creates a new ChangeDeploy for the given ChangeSummaryGroups and executes immediate deployment. A WorkflowDeployRequest is emitted per change summary via the relevant Spring Cloud channel, and the given ChangeSummaryGroups and their ChangeSummaries are marked with status ChangeStatusType.DEPLOYING.
      Parameters:
      scheduleGroups - Construct that identifies one or more ChangeSummaryGroup instances to be scheduled for a future deployment.
      context - Information about the deploy request containing the ID of the request's author.
      sandbox - The sandbox ID upon which to filter searches on when retrieving the group instances and their summaries.
      level - The tracking level from which to perform the deployment (see TrackingLevel)
      vendorNarrowing - whether or not to filter results based on the current authentication's vendor restrictions if vendor processing is enabled
      Throws:
      QualifiedStateException - Thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation
      ChangeSummariesNotFoundException - Thrown if the change summaries cannot be found
    • deploy

      @Deprecated void deploy(@NonNull ChangeSummaryGroups scheduleGroups, @NonNull Stream<ChangeSummary> summaries, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox, int level)
      Creates a new ChangeDeploy for the given ChangeSummaryGroups and executes immediate deployment. A WorkflowDeployRequest is emitted per change summary via the relevant Spring Cloud channel, and the given ChangeSummaryGroups and their ChangeSummaries are marked with status ChangeStatusType.DEPLOYING.
      Parameters:
      scheduleGroups - Construct that identifies one or more ChangeSummaryGroup instances to be scheduled for a future deployment.
      summaries - The stream of ChangeSummary instances to deploy. Usually supplied as part of a TransitionRequestManager#promoteDeploy(PromoteSummaries, ContextInfo, String, boolean) style operation where user level changes are passed directly to deployment.
      context - Information about the deploy request containing the ID of the request's author.
      sandbox - The sandbox ID upon which to filter searches on when retrieving the group instances and their summaries.
      level - The tracking level from which to perform the deployment (see TrackingLevel)
      Throws:
      QualifiedStateException - Thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation
      ChangeSummariesNotFoundException - Thrown if the change summaries cannot be found
    • deploy

      void deploy(@NonNull ChangeSummaryGroups scheduleGroups, @NonNull Stream<ChangeSummary> summaries, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox, int level, boolean vendorNarrowing)
      Creates a new ChangeDeploy for the given ChangeSummaryGroups and executes immediate deployment. A WorkflowDeployRequest is emitted per change summary via the relevant Spring Cloud channel, and the given ChangeSummaryGroups and their ChangeSummaries are marked with status ChangeStatusType.DEPLOYING.
      Parameters:
      scheduleGroups - Construct that identifies one or more ChangeSummaryGroup instances to be scheduled for a future deployment.
      summaries - The stream of ChangeSummary instances to deploy. Usually supplied as part of a TransitionRequestManager#promoteDeploy(PromoteSummaries, ContextInfo, String, boolean) style operation where user level changes are passed directly to deployment.
      context - Information about the deploy request containing the ID of the request's author.
      sandbox - The sandbox ID upon which to filter searches on when retrieving the group instances and their summaries.
      level - The tracking level from which to perform the deployment (see TrackingLevel)
      vendorNarrowing - whether or not to filter results based on the current authentication's vendor restrictions if vendor processing is enabled
      Throws:
      QualifiedStateException - Thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation
      ChangeSummariesNotFoundException - Thrown if the change summaries cannot be found
    • executeDeployment

      void executeDeployment(@NonNull String deployId)
      Finds an existing, previously scheduled ChangeDeploy and sends out a WorkflowDeployRequest per ChangeSummary in the deployment via the relevant Spring Cloud channel. It will also mark the deployment's ChangeSummaryGroups and ChangeSummaries with status ChangeStatusType.DEPLOYING.
      Parameters:
      deployId - Id of an existing, scheduled ChangeDeploy.
      Throws:
      QualifiedStateException - Thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation
      ChangeSummariesNotFoundException - Thrown if the change summaries cannot be found