Output
sake supports different output formats for tasks. By default it will use text output, but it's possible to change this via the --output flag or specify it in the task spec.
The following output formats are available:
- text (default), use this when you want streamed output to terminal
TASK (1/2) [task-0] ***********172.24.2.2 | ping172.24.2.2 | pingTASK (2/2) [task-1] ***********172.24.2.2 | pong172.24.2.2 | pong
- table, useful when you have many hosts but few tasks
Host | Task-0 | Task-1------------+--------+--------172.24.2.2 | ping | pong------------+--------+--------172.24.2.2 | ping | pong
- table-2, useful when you have many tasks but few hosts
Task | 172.24.2.2 | 172.24.2.2--------+------------+------------task-0 | ping | ping--------+------------+------------task-1 | pong | pong
- table-3, useful when you want separate tables per host
172.24.2.2Task-0 | Task-1--------+--------ping | pong172.24.2.2Task-0 | Task-1--------+--------ping | pong
- table-4, useful when you have many hosts and many tasks
Task | 172.24.2.2--------+------------task-0 | ping--------+------------task-1 | pongTask | 172.24.2.2--------+------------task-0 | ping--------+------------task-1 | pong
- html
<table class=""><thead><tr><th align="left">host</th><th align="left">task-0</th><th align="left">task-1</th></tr></thead><tbody><tr><td align="left">172.24.2.2</td><td align="left">ping</td><td align="left">pong</td></tr><tr><td align="left">172.24.2.2</td><td align="left">ping</td><td align="left">pong</td></tr></tbody></table>
- markdown
| host | task-0 | task-1 ||:--- |:--- |:--- || 172.24.2.2 | ping | pong || 172.24.2.2 | ping | pong || | | |
- json
[{"host": "172.24.2.2","task-0": "ping","task-1": "pong"},{"host": "172.24.2.2","task-0": "ping","task-1": "pong"}]
- csv
host,task-0,task-1172.24.2.2,ping,pong172.24.2.2,ping,pong
- none
Omit Empty Table Rows and Columns
If you wish to omit rows/columns that return empty outputs, you can do so via the --omit-empty-rows/--omit-empty-columns flag or specify it in the task spec. Note, this only works for the tables, json, csv, markdown, and html.
See below for an example:
$ sake run empty -s server-3,server-4 -o table
TASKS *******************************
Host | Task-0 | Task-1
------------+--------+--------
172.24.2.4 | 123 |
------------+--------+--------
172.24.2.5 | |
$ sake run empty -s server-3,server-4 -o table --omit-empty-rows --omit-empty-columns
TASKS *******************************
Host | Task-0
------------+--------
172.24.2.4 | 123
Print Reports
sake comes with a few reports that gives you an overview of task execution:
The available reports are:
- recap: show basic report (default)
- rc: show return code for each host and task
- task: show task status for each host and task
- time: show time report for each host and task
- all: show available reports
$ sake run task --report=all
TASKS **************************************************************************************
Host | Task-0 | Task-1 | Task-2
------------+------------------------------+------------------------------+--------
172.24.2.2 | foo | bar | xyz
------------+------------------------------+------------------------------+--------
172.24.2.2 | | |
| Process exited with status 1 | Process exited with status 1 |
RETURN CODES *******************************************************************************
host task-0 task-1 task-2
----------------------------------------
172.24.2.2 0 0 0
172.24.2.2 1 1
TASK STATUS ********************************************************************************
host task-0 task-1 task-2
------------------------------------------
172.24.2.2 ok ok ok
172.24.2.2 ignored failed skipped
TIME ***************************************************************************************
host task-0 task-1 task-2 Total
------------------------------------------------
172.24.2.2 0.09 s 0.01 s 0.01 s 0.10 s
172.24.2.2 0.08 s 0.01 s 0.09 s
------------------------------------------------
Total 0.17 s 0.02 s 0.01 s 0.20 s
RECAP **************************************************************************************
172.24.2.2 ok=3 unreachable=0 ignored=0 failed=0 skipped=0
172.24.2.2 ok=0 unreachable=0 ignored=1 failed=1 skipped=1
---------------------------------------------------------------------
Total ok=3 unreachable=0 ignored=1 failed=1 skipped=1