How to skip specific Execution Plan Steps?

2019-09-15 00:10发布

问题:

In the TaskBlockService there is a POST call that one or more steps should be skipped. There is not a good example given how the posted XML (List of String) the paths of the steps to skip.

Tried the following content for the POSTed data:

curl  -X POST  https://xldeploy.company.com/deployit/tasks/v2/5e917094-d054-4cc7-940e-89d851ca225a/skip

File remove-steps.xml content - sample 1:

<list>
    <string>0_1_1</string>
</list>

File remove-steps.xml content - sample 2:

<list>
    <string>0-1-1</string>
</list>

回答1:

The first format you list is right, but you have to make sure you're using a step path and not just the path to a block.

Lets say you get the blocks from your deployment plan with this call.

curl -uadmin:password http://localhost:4516/deployit/tasks/v2/28830810-5104-4ab9-9826-22f66dee265d

This will produce the result:

<task id="28830810-5104-4ab9-9826-22f66dee265d" failures="0" state="PENDING" owner="admin">
  <description>Initial deployment of Environments/local/TestApp001</description>
  <activeBlocks/>
  <metadata>
    <environment>local</environment>
    <taskType>INITIAL</taskType>
    <environment_id>Environments/local</environment_id>
    <application>TestApp001</application>
    <version>1.0</version>
  </metadata>
  <block id="0" state="PENDING" description="" root="true">
    <block id="0_1" state="PENDING" description="Deploy" phase="true">
      <block id="0_1_1" state="PENDING" description="Deploy TestApp001 1.0 on environment local"/>
    </block>
  </block>
  <dependencies/>

If you want to see the steps in block 0_1_1 then you can use this rest call to get the steps.

curl -uadmin:password http://local6/deployit/tasks/v2/28830810-5104-4ab9-9826-22f66dee265d/block/0_1_1/step

<block id="0_1_1" state="PENDING" description="Deploy TestApp001 1.0 on environment local" current="0">
  <step failures="0" state="PENDING" description="Execute Command"/>
  <step failures="0" state="PENDING" description="Copy File001.txt to Infrastructure/localhost"/>

The steps are numbered within the block starting from 1. So if you are want to skip the step - Copy File001.txt to Infrastructure/localhost the step path is 0_1_1_2. Your XML will look like:

<list>
    <string>0_1_1_2</string>
</list>