Overview
Invoking Octave's APIs may result in the creation of asynchronous jobs. For example: Applying a Blueprint to a fleet of Devices performs many actions to each Device from installing new firmware to sending new configuration files to the device.
Each asynchronous job is a Step and collectively these form a StepList.
Execution
Upon creation of the StepList, the first Step (in order) will begin execution. Steps are executed in series; once a Step is complete, the next one will begin execution.
With rare exceptions, if a Step fails, all subsequent Steps will be marked as failed, and will not execute. At that point, the StepList will be marked as "complete".
An example of a StepList that is in progress:
{
"id": "u6086debd5954a70f2de0d6ee",
"action": "TRANSFER_DEVICE",
"complete": false,
"currentStep": 2,
"details": {
},
"operationId": "o6086debd5954a70f2de0d6ec",
"state": "STARTED",
"steps": [
{
"action": "TRANSFER_SYSTEM",
"state": "FINISHED",
"complete": true,
"percentComplete": null,
"details": {
"destinationCompanyAvId": "5b57c7e3fe0b43d6a7c25de6e17e3ad1"
},
"output": {
"avCompanyId": "5b57c7e3fe0b43d6a7c25de6e17e3ad1",
"imei": "352653090103938",
"fsn": "VU810385211010",
"avSystemId": "ffd7980ca610431fa859b0f045668356"
},
"error": null
},
{
"action": "MOVE_DEVICE",
"state": "FINISHED",
"complete": true,
"percentComplete": null,
"details": {},
"output": {},
"error": null
},
{
"action": "PUSH_CONFIGURATION",
"state": "STARTED",
"complete": false,
"percentComplete": null,
"details": {},
"output": {},
"error": null
}
],
"targetId": "d600764e9c7106c4ce1207759"
}
Similarly, if all Steps have completed successfully, the StepList will be marked complete.
StepLists are always queried within the context of the Operation, so you need to supply the Operation ID when querying:
GET {url}/v5.0/step/o607ef0a19d3040b6d0a2fd9d/u607ef032ad3442b8b0a23d9f
You can get an operation ID by invoking Get /operation.