rollback-multiple-components step

The rollback-multiple-components step starts child component processes for rolling back multiple components. This step is only valid in an application process.

Format

rollback-multiple-components step "foo" is
    -- name of the component process to run for each component; required
    process "deploy"

    -- mode for selecting versions to rollback; required
    --   remove-undesired-incremental-versions - rollback incremental versions
    --   replace-with-last-deployed - rollback to previous version
    rollback-type replace-with-last-deployed

    -- select versions for rollback with this inventory status; required
    select-versions-with-inventory-status "Active"

    -- select components to rollback by component tag; optional
    -- currently, the tag must be specified by internal database ID
    select-components-by-tag "1714f9ea-1aa0-405d-f8df-ae131fcee7be"

    -- select resources to rollback by resource tag; optional
    -- before 7.1.1.0, the tag must be specified by internal database ID
    select-resources-by-tag "my-tag"

    -- don't start further children after a failure; optional
    -- default is false
    fail-fast false

    -- suppress warnings generated by children; optional
    -- default is false
    ignore-child-warnings false

    -- maximum number of concurrent processes per component; optional
    -- default is unlimited
    max-concurrent-processes unlimited

    -- maximum number of components to uninstall concurrently; optional
    -- default is 100
    max-concurrent-components 100

    -- javascript precondition script that must evaluate to true for the step to execute; optional
    precondition-script
        """
        true
        """

on success
    start "bar"
end

Properties

Table 1. rollback-multiple-components properties
Field Description
Name A name for the step. Other process steps can refer to this step by this name.
Component Tag A user-defined component tag that is used to select components. Only components with the specified tag are modified by this step.
Component Process The component process to run. In most cases, select a component process that uninstalls the component.
Limit to Resource Tag The user-defined resource tag that determines which resource runs the process. Only a resource with this tag, or a resource that has a parent with this tag, runs the process. See Adding tags to objects.
Remove Versions With Status Restricts the components that are affected by the step. Only components with the selected status are affected. Available statuses: Active refers to components that are currently deployed.
Rollback Type Determines the type of rollback. If you specify Remove Undesired Incremental Versions, the server runs the uninstall process for each version that is not in the specified snapshot. See Rolling back to a snapshot. If you specify Replace with Last Deployed, the server runs the specified process on the version that was installed when the process began. See Uninstalling components with an application process.
Maximum number of concurrent components The maximum number of components to roll back at one time. For example, if you specify 5, this step rolls back five components at a time on all agents to which the components are installed. To run this step on all components at the same time, specify -1. To limit the number of components to access at once, as in rolling deployments, specify an integer.

The server attempts to resolve the value to an integer. If the value does not resolve to an integer, then the -1 value is used by default. You can use a property in this field, as long as the property resolves to an integer.

Note: The maximum number of component processes that can run concurrently is limited by the hardware that hosts the agent.
Maximum number of concurrent processes The maximum number of concurrent processes to run, per component. This setting limits the number of processes that run simultaneously to roll back each component. For example, if you set the maximum number of concurrent processes to 2, only two instances of a component are rolled back at a time, even if there are many instances of the component. To run an unlimited number of concurrent processes, specify -1. To limit the number of processes to run at once, as in rolling deployments, specify an integer.

The server attempts to resolve the value to an integer. If the value does not resolve to an integer, then the -1 value is used by default. You can use a property in this field, as long as the property resolves to an integer.

Note: The maximum number of component processes that can run concurrently is limited by the hardware that hosts the agent.
Fail Fast If this check box is selected, the step does not start more processes after one process fails.
Precondition A JavaScript 1.7 script that defines a condition that must exist before the step can run. The condition must resolve to true or false. In the script, do not use the ${p:component.myProperty} notation. For example, to check the value of a component property in a component process, use properties.get("myProperty") == "myValue". See Property contexts for information about property access.

Example

start is
    start A
    start B
end

uninstall-multiple-components step A is
    process "process-a"
    select-versions all
    select-versions-with-inventory-status "status-a"
    select-components-by-tag "comp-tag-a"
    select-resources-by-tag "res-tag-a"
    fail-fast true
    ignore-child-warnings true
    max-concurrent-processes 42
    max-concurrent-components 24
    precondition-script "script-a"
on success
    finish
end

uninstall-multiple-components step B is
    process "process-b"
    select-versions selected-with-process
    select-versions-with-inventory-status "status-b"
on success
    finish
end