Survey Management¶
This feature is added in v3.1.0, and v3.1.3 or higher, at least, is recommended.
get help: tower-cli job_template survey --help
View a Survey¶
The name of the job template is known (“survey jt” in this example), and the survey definition is desired.
tower-cli job_template survey --name="survey jt"
Example output, this is the survey spec:
{
"description": "",
"spec": [
{
"required": true,
"min": null,
"default": "v3.1.3",
"max": null,
"question_description": "enter a version of tower-cli to install",
"choices": "v3.0.0\nv3.0.1\nv3.0.2\nv3.1.0\nv3.1.1\nv3.1.2\nv3.1.3",
"new_question": true,
"variable": "version",
"question_name": "Tower-cli version",
"type": "multiplechoice"
},
{
"required": true,
"min": null,
"default": "click\ncolorama\nrequests\nsix\nPyYAML",
"max": null,
"question_description": "which package requirements would you like to install/check",
"choices": "click\ncolorama\nrequests\nsix\nPyYAML",
"new_question": true,
"variable": "packages",
"question_name": "Package requirements",
"type": "multiselect"
}
],
"name": ""
}
Save a survey¶
Use the job template modify
command to do this. In order to create a
functional survey you must do two things:
- Save the survey spec - use the
--survey-spec
option - Enable the survey - use the
--survey-enabled
option
Example of enabling the survey on a job template:
tower-cli job_template modify --name="hello world infinity" --survey-enabled=true
The --survey-spec
option can get the spec from a file by prepending
the @
character. If this character is not used, it is assumed that
you are giving the JSON data in-line.
Copy a survey to another template¶
The following example saves a survey spec to a file, and then uploads that survey spec to another job template.
# Save the survey spec to file in local directory
tower-cli job_template survey --name="survey jt" > s.json
# Upload that survey to another job template
tower-cli job_template modify --name="another jt" --survey-spec=@s.json --survey-enabled=true
The next example using one line to do the same thing on the command line.
tower-cli job_template modify --name="another jt" --survey-spec="$(tower-cli job_template survey --name='survey jt')" --survey-enabled=true
Workflows¶
Workflows can also have surveys and follow the same pattern. Example:
tower-cli workflow survey --name="workflow with survey"
¶
Configuring a survey with multiple choice single select :
tower-cli job_template survey –name=”Demo Job Template” –survey-spec=’[{“question_name”:”Test”,”question_description”:”“,”required”:true,”type”:”multiselect”,”variable”:”my_var”,”min”:null,”max”:null,”default”:”choice1”,”choices”:”choice1nchoice2nchoice3”,”new_question”:true}]’