POST /command/plan_run
Use the plan executor to run a plan.
Request format
When Forming orchestrator API requests to this endpoint, the content
type is application/json. The body must be a JSON object
using these keys:
| Key | Format | Definition |
|---|---|---|
plan_name
|
String | Required: The name of the plan to run. Use the GET /plans endpoint to find plan
names. |
params
|
JSON object | The parameters you want the plan to use. |
environment
|
String | The environment to load the plan from. The default is
production. |
description
|
String | A description of the job. |
timeout
|
Integer | The maximum number of seconds allowed for the plan to run. Reaching the
timeout limit cancels queued plan actions and attempts to interrupt in-progress
actions. If unspecified, this key takes the value of default-plan-timeout, which is one of the Orchestrator and pe-orchestration-services parameters. |
userdata
|
JSON object | Arbitrary key/value data supplied to the job. |
For example, this body starts the canary plan on two specific
nodes:
{
"plan_name" : "canary",
"description" : "Start the canary plan on node1 and node2",
"params" : {
"nodes" : ["node1.example.com", "node2.example.com"],
"command" : "whoami",
"canary" : 1
}
}
A complete curl request using this body might look like:
type_header='Content-Type: application/json'
auth_header="X-Authentication: $(puppet-access show)"
uri="https://$(puppet config print server):8143/orchestrator/v1/command/plan_run"
data='{"plan_name" : "canary", "description" : "Start the canary plan on node1 and node2", "params" : { "nodes" : ["node1.example.com", "node2.example.com"], "command" : "whoami", "canary" : 1}}'
curl --insecure --header "$type_header" --header "$auth_header" --request POST "$uri" --data "$data"
Response format
If the plan starts successfully, the server returns 202 and a JSON object
containing the name of the newly created plan job. For
example:
{
"name" : "1234"
}
If you need to stop this plan while it is running, use the name ID with POST /command/stop_plan.
Error responses
If there is an error, Orchestrator API error responses provide error
information in the kind key:
| Response code | Key | Description |
|---|---|---|
| 400 | puppetlabs.orchestrator/validation-error
|
The plan_name is not valid. Most likely, it
is not a properly-formatted string. |
| 403 | puppetlabs.orchestrator/not-permitted
|
This error occurs when a user does not have permission to run the plan, cannot run the plan on the specified nodes, or otherwise lacks permission to complete the request. |






