Example Python Skillet¶
This Skillet will launch a python script and capture variables from it’s output. This python script requires it’s input form the user to be included in the OS Environment rather than on the CLI, so the ‘input_type’ attribute has been set to ‘env’ rather than the default ‘cli’.
This script also returns JSON encoded structured data. We can use jsonpath_ng expressions to query and capture specific variables from the output. For more inforation on JSON Path expression, see the jsonpath_ng library.
.meta-cnc.yaml¶
name: python3_env_input_example
label: Example Python Script Argument Parsing
description: |
This skillet demonstrates a simple Python script in action with Env based input arguments and list handling.
type: python3
labels:
collection:
- Example Skillets
variables:
- name: USERNAME
description: Username
default: admin
type_hint: text
- name: PASSWORD
description: Password
default:
type_hint: password
snippets:
- name: script
file: input_from_env.py
input_type: env
output_type: json
outputs:
- name: captured_username
capture_value: 'output_example.captured_username'
- name: captured_secret
capture_value: 'output_example.captured_secret'
Snippet Details¶
The ‘snippets’ section contains all the skillet type specific configuration. Here are the details of each attribute for ‘python3’ type skillets:
- name - name of this snippet. Useful for debugging and determining which snippets were executed successfully.
- file - relative path to the Python script to execute
- for example: file: ../run_reticulating_splines.py
- input_type - how input variables from the user will be passed to the script. Valid options are:
- env - All variables from the ‘variables’ section will be set in the OS Environment
- cli - All variables will be passed in via long form command line arguments
- for example $: ./run_reticulating_splines.py –some_argument=”my-hostname” –another_var=”123”