Commit Graph

273 Commits (359ced3833492c671fc932a476cdfdd649ea769a)

Author SHA1 Message Date
James Cammarata d70d279c4e Also fix default callback to use ignore_errors param
Rather than the value in the task, which may not be templated.

Related to #18289
2016-12-21 11:37:06 -06:00
Dag Wieers 39c9c6b942 Ensure that command/shell errors are displayed
This fix ensures that if there are specific module errors (in our case
the python interpreter was not found) then command and shell returns a
proper error.

It also fixes a few other imperfections that we noticed during
troubleshooting:

- Return the real RC if it were available
- Improve a dictionary evaluation using .get()
- Return an RC of -1 if it is unknown (instead of returning 0)

This fixes #18846
2016-12-16 21:46:02 -05:00
Andrea Tartaglia 59227d8c31 Removed dict.iteritems() in several other files.
This is for py3 compatibility #18506
2016-12-14 08:01:45 -08:00
Carlos E. Garcia 0b8011436d minor spelling changes 2016-12-13 13:51:13 -05:00
koralsky 4e194d71bd import reduce from six label:python3 (#18561)
* import 'reduce' from six
* import reduce in facts fix
2016-11-22 11:22:24 -08:00
Brian Coca aff5d9160a disable 'dense' callback in py26 2016-11-18 11:41:56 -05:00
Dag Wieers b7425b59ee Adapt callback functions to changes in 13f3cbaf3b 2016-11-17 19:30:42 -05:00
Dag Wieers 0036108c59 Implement destructor to ensure newline and terminal attributes
Also fixed a typo
2016-11-17 19:30:42 -05:00
Dag Wieers 2a8914e496 Reset VT100 attributes in case we get unexpected output 2016-11-17 19:30:42 -05:00
Dag Wieers cd6f577d91 Rename ansi to the more correct name vt100 2016-11-17 19:30:42 -05:00
Dag Wieers 893dc81b5e Implement our own detailed task output
Also:
- Streamline ANSI calls
- Implement v2_playbook_on_include
2016-11-17 19:30:42 -05:00
Dag Wieers 221a4e7014 Ensure we end with a newline in normal mode 2016-11-17 19:30:42 -05:00
Dag Wieers 7148023f59 Small fix so diff output starts on a new line 2016-11-17 19:30:42 -05:00
Dag Wieers 9a507b1f07 Don't try to be smart with cmd output ! 2016-11-17 19:30:42 -05:00
Dag Wieers 84e0420389 Make everything work magically !
- Support item-loops correctly
- Support notification handlers
2016-11-17 19:30:42 -05:00
Dag Wieers 589953c79b Assorted improvements
- Better switch between *dense* and *default*
- Reimplement C.COLOR* out of necessity (help!)
- Make verbose output more dense (clean up result)
- Implement our own dumper
- Improve delegation support
2016-11-17 19:30:42 -05:00
Dag Wieers 223c0011e0 Assorted fixes
- Implement delegate support
- Implement preliminary handler support
- Implement our own recap/summary (still fails)
2016-11-17 19:30:42 -05:00
Dag Wieers 1bf7e22756 Implement support for itemized tasks 2016-11-17 19:30:42 -05:00
Dag Wieers 14cfb2b230 Preliminary support for items, WIP 2016-11-17 19:30:42 -05:00
Dag Wieers 67c57a9b6b Improve readability 2016-11-17 19:30:42 -05:00
Dag Wieers 326bb24a89 Various improvements, now supports different verbosity levels 2016-11-17 19:30:42 -05:00
Dag Wieers fe6e4f8286 New "dense" callback plugin
The goal for the "dense" output is to only show changes and failures on-screen (the Unix-way).
However, since we still want to have a sense of progress, we use terminal capabilities to display progress.

 - On screen there should only be relevant stuff
    - How far are we ? (during run, last line)
    - What issues occured
    - What changes occured
    - Diff output

 - If verbosity increases, act as default output
   So that users can easily switch to default for troubleshooting

 - Leave previous task output on screen
   - If we would clear the line at the start of a task, there would often
     be no information at all
   - We use the cursor to indicate where in the task we are.
     Output after the prompt is the output of the previous task
   - Use the same color-conventions of Ansible

This is still a work in progress.
It was released to give a glimpse of what would be possible.

The Ansible callback mechanism currently does not have all the functionality we need to do this efficiently.
2016-11-17 19:30:42 -05:00
Dag Wieers 1ca4add91c Performance improvement using in-operator on dicts
Just a small cleanup for the existing occurrences.

Using the in-operator for hash lookups is faster than using .keys()
http://stackoverflow.com/questions/29314269/why-do-key-in-dict-and-key-in-dict-keys-have-the-same-output
2016-11-17 12:33:04 -05:00
Ievgen Khmelenko 619f2fd210 ansible-logstash-callback (#18282)
* ansible-logstash-callback

* GPL v3 license preamble, ImportError

* Update logstash.py
2016-11-08 11:17:05 -05:00
Toshio Kuratomi 6a3893c518 Remove direct calls to print and cleanup imports
All display of information should go through display instead of through print.
2016-11-07 17:12:36 -05:00
Samuel Boucher 911a602c79 Update syslog_json.py
Add SYSLOG_FACILITY environment variable to set syslog facility
2016-11-02 10:02:56 -04:00
Adrian Likins c0331d50dc Remove callback.CallbackBase._copy_result_exclude
Nothing seems to use this now.

Was added originally added in2d11cfab92f9d26448461b4bc81f466d1910a15e
but the code that used it was removed in
e02b98274b
2016-10-23 13:36:20 +02:00
Guido Günther 14a9bd6a1c Add foreman callback plugin (#17141) 2016-10-03 00:12:12 -04:00
Makc c6fa701ab1 jabber callback (#16981)
* jabber callback

* delete empty lines

* grammar fix

* fix: do not print error when jabber callback disabled

* change callback version 1 -> 2
2016-09-30 12:06:53 -04:00
Toshio Kuratomi 70e63ddf6c Fix cow mode to work with unicode task and play names (#17576)
Fixes #17560
2016-09-14 20:02:35 -07:00
Brian Coca 4656b6a846 added msg info to unreachable for oneline callback
fixes #17367
2016-09-14 11:33:01 -04:00
Brian Coca 7450629733 better display for free strategy (#17355) 2016-09-13 12:59:32 -04:00
Brian Coca cd2f60e11a take delegated vars before removing them
fixes #17455
2016-09-09 09:55:24 -04:00
Toshio Kuratomi 4ed88512e4 Move uses of to_bytes, to_text, to_native to use the module_utils version (#17423)
We couldn't copy to_unicode, to_bytes, to_str into module_utils because
of licensing.  So once created it we had two sets of functions that did
the same things but had different implementations.  To remedy that, this
change removes the ansible.utils.unicode versions of those functions.
2016-09-06 22:54:17 -07:00
Brian Coca ff34f5548d Dynamic role include (#17401)
* dynamic role_include

* more fixes for dynamic include roles

* set play yfrom iterator when dynamic

* changes from jimi-c

* avoid modules that break ad hoc

TODO: should really be a config
2016-09-05 20:07:58 -04:00
Andrew Gaffney f65a3ce547 Support for specifying item label in a loop (#17294) 2016-08-31 09:59:43 -04:00
Chris Faulkner dbab23e68f Fix context_demo callback plugin. (#17235) 2016-08-25 10:22:27 -07:00
Toshio Kuratomi a22909c226 Migrate basestring to a python3 compatible type (#17199) 2016-08-23 13:13:44 -07:00
Adrian Likins 71118b2720 Show where plugins were loaded in vvv/vvvv (#15757)
Make the plugin loading info displayed by callback plugins
match.

In debug mode (ANSIBLE_DEBUG=1 env), log all requests for
plugins including already cached plugins and class_only
requests.
2016-08-23 11:54:14 -04:00
Adrian Likins f21df311bc Fix hipchat callback "has no attribute display'" (#16998)
Use self._display for access to display object for
the hipchat callback plugin.

Fixes #16946
2016-08-08 11:04:06 -04:00
Matt Clay e07fbba0a5 Add missing boilerplate code. (#16980) 2016-08-05 12:22:52 -07:00
James Pic d2438b6b6b Debug output callback (#16839)
* Added debug output callback

* Better import

* Comment on line
2016-08-05 13:57:13 -04:00
Matt Martz 4065acc37d indent callback output if using 3verbosity or higher (#16231) 2016-07-23 18:10:53 -04:00
Brian Coca 729686a434 added back spaces for profile_tasks formatting 2016-07-06 15:39:09 -04:00
NAGA RAVI CHAITANYA ELLURI b312a43544 fix(callback-mail plugin): fixes the warning 'TaskResult' object has no attribute '__getitem__' because of which its not sending an email on failure (#16547) 2016-07-01 13:25:48 -04:00
Brian Coca faec03aabc fix encoding issues in profile_tasks (#16522)
* fix encoding issues in profile_tasks

fixes #16521

* really fix it

* unicode the nested

* simpler format

* readded space after name
2016-07-01 10:21:49 -04:00
Matt Clay 8f1b487141 Handle repeat includes in junit callback. (#16484) 2016-06-28 15:55:46 -07:00
Matt Clay c2a5cb6174 Fix junit callback plugin for Python 2.6. (#16440) 2016-06-24 14:22:27 -07:00
Krzysztof Magosa 721da46842 fix: playbook_on_task_start expects name and not task object (#16168) 2016-06-07 09:43:01 -04:00
Matt Clay 7edfeb3665 Add junit callback plugin. (#16089)
Add junit callback.
2016-06-01 13:34:00 -07:00
Matt Clay 126bc40ecf Do not remove exception from result, hide output.
This allows all callback plugins access to exception details.
2016-05-31 11:28:22 -07:00
Tobias Wolf 87648f7bdf actionable.py: Do not print next task banner in handler callback (#15698)
Fix actionable callback plugin to not print the banner of the previous
task.

When a handler is executed there is no task banner, so in case it is run,
it will reference the banner from the preceding task.

**Author:** @hvhaugwitz

Test case:

      ---

      - name: actionable filter
        hosts: all
        handlers:
          - name: handler
            command: "true"
        tasks:
          - name: task 1
            file: path=/tmp/test state=touch
            notify: handler
          - name: task 2
            file: path=/tmp/test state=absent
          - name: task 3
            file: path=/tmp/test state=absent
          - name: task 4
            file: path=/tmp/test state=absent
          - name: task 5
            file: path=/tmp/test state=absent
          - name: task 6
            file: path=/tmp/test state=absent

Example output:

BEFORE
------

      PLAY [actionable filter] *******************************************************

      TASK [task 1] ******************************************************************
      changed: [localhost]

      TASK [task 2] ******************************************************************
      changed: [localhost]

      RUNNING HANDLER [handler] ******************************************************

      TASK [task 6] ******************************************************************
      changed: [localhost]

      PLAY RECAP *********************************************************************
      localhost                  : ok=8    changed=3    unreachable=0    failed=0

AFTER
-----

      PLAY [actionable filter] *******************************************************

      TASK [task 1] ******************************************************************
      changed: [localhost]

      TASK [task 2] ******************************************************************
      changed: [localhost]

      RUNNING HANDLER [handler] ******************************************************
      changed: [localhost]

      PLAY RECAP *********************************************************************
      localhost                  : ok=8    changed=3    unreachable=0    failed=0
2016-05-03 11:25:46 -04:00
Toshio Kuratomi f39ad1f13a Get rid of logentries.to_unicode.
It wasn't doing anything that a literal couldn't do and used
unicode_escape which only understands latin1 (The author of the code
seems to have thought it took an encoding argument but it looks like
that was silently ignored.)
2016-04-30 07:45:51 -07:00
Brian Coca 6f4f8e6e79 fix typo 2016-04-29 15:01:25 -04:00
Brian Coca d53c4b8ae7 fixed method signature as per #15668 2016-04-29 13:13:01 -04:00
Dag Wieers d46af7cda3 On change in diff-mode we don't need to see file content in task output
I was surprised to see complete file content in the (JSON) task output when
in diff-mode. Since we see the diff anyhow, there's no need to send everything
on screen.
2016-04-01 18:03:51 +02:00
Brian Coca 5b11494437 python3 compatiblity
remove use of basestring
deal with configparser
2016-03-24 06:39:21 -07:00
Tobias Wolf 4938b98e4e For `actionable` cb plugin also hide ok for itemized results
The purpose of the `actionable` callback plugin is to hide uninteresting
results.

Also hide the ok results when the task was itemized.
2016-03-21 14:59:57 +01:00
James Cammarata 13f3cbaf3b Renaming per-item and retry callbacks 2016-03-18 15:17:43 -04:00
James Cammarata 1ee6d489ab Make sure tuples returned by _get_item() are handled correctly in formatting
Fixes #14800
2016-03-17 14:19:58 -04:00
Brian Coca bc60f52db5 avoid exceptiosn when not being called by CLI 2016-03-17 07:19:35 -07:00
Dag Wieers ed457ad53b Fix the color when unreachable in default cb plugin
The dedicated color for unreachable errors was not being used in the default cb plugin.
This corrects the color.
2016-03-17 00:18:13 +01:00
Brian Coca 2984ffdfac now item callback honors display_skipped_hosts
fixes #14956
2016-03-14 13:13:50 -04:00
James Cammarata aee2eb6287 Merge pull request #14864 from dagwieers/patch-12
Only show diff when the task actually induced a change
2016-03-08 15:02:49 -05:00
Dag Wieers f5b6f52940 Only show diff when the task actually induced a change
This implements solution #1 in the proposal #14860.

It only shows the diff if the task induced a change, which means that if the changed_when control overrides the task, not diff will be produced.
See #14860 for a rationale and the use-case.
2016-03-08 17:33:29 +01:00
Dag Wieers 175351f200 Little improvement in flow
Don't get the hostname if it's not needed.
2016-03-08 17:23:34 +01:00
Brian Coca 6cad356b3b updated docs to show new output 2016-03-03 18:05:39 -05:00
Brian Coca b2a6784a9f changed the output to keep backwards compat
still shows path when verbose
2016-03-03 18:03:02 -05:00
Joel b3aa373932 Update the profile task callback plugin to include a fix for duplicate named tasks. Added additional features to adjust the number of tasks output and the sort order. 2016-02-25 10:02:36 -06:00
James Cammarata e02b98274b issue callbacks per item and retry fails
- now workers passes queue to task_executor so it can send back events per item and on retry attempt
- updated result class to pass along events to strategy
- base strategy updated to forward new events to callback
- callbacks now remove 'items' on final result but process them directly when invoked per item
- new callback method to deal with retry attempt messages (also now obeys nolog)
- updated tests to match new signature of task_executor

fixes #14558
fixes #14072
2016-02-23 15:07:06 -05:00
Brian Coca e35b1cf154 show task path on vv and above 2016-02-21 16:22:39 -05:00
Brian Coca cea10794fd removed unused color var 2016-02-21 02:03:48 -05:00
Brian Coca 6febb816d2 Merge pull request #14569 from sivel/json-stdout-callback
Add json stdout callback
2016-02-19 07:12:30 -08:00
George Christou bbc855c218 Make --diff lines of context configurable 2016-02-19 12:18:09 +00:00
Matt Martz 7f7536f7ad Add json callback to be used in replace of the default stdout to print a JSON structure to stdout 2016-02-18 16:39:31 -06:00
Matt Davis 4c58066153 Merge pull request #14557 from ansible/display-play-args
Add a configuration setting that allows the user to specify printing …
2016-02-18 07:40:50 -08:00
Toshio Kuratomi 86b8dc0e79 Add a configuration setting that allows the user to specify printing of task arguments in the header.
Fixes #14554
2016-02-18 04:20:35 -08:00
Brian Coca 1dba6da40f changed filtered to actionable cb plugin 2016-02-18 02:32:05 -08:00
Brian Coca 54942ee8ff Merge pull request #13593 from agaffney/devel
Add 'filtered' stdout callback plugin
2016-02-18 02:30:32 -08:00
Brian Coca 22082216a4 Merge pull request #13408 from sivel/v2-slack-callback
V2 slack callback plugin
2016-02-18 02:12:39 -08:00
Brian Coca 6012646d8c added playbook and options info to callbacks
will display on certain verbosity levels, both playbook/file info
and non empty options with which it's running.
avoid errors when not using CLI classes
2016-02-18 02:09:07 -08:00
George Christou 56239ee347 Make --diff colours configurable 2016-02-17 10:25:54 +00:00
George Christou 8edcca0ef5 Add simple --diff colour support 2016-02-15 22:23:03 +00:00
Sandra Wills edf776d6a4 Merge pull request #13805 from aioue/patch-1
profile_tasks README.md
2016-02-12 12:23:45 -05:00
Tom Paine edb36b6c4a Update profile_tasks.rst
remove brackets on links
2016-02-12 17:13:39 +00:00
Tom Paine 8e3cc3eecd Update profile_tasks.rst 2016-02-08 19:19:05 +00:00
Tom Paine 5a88cd8ad9 Rename profile_tasks.md to profile_tasks.rst 2016-02-08 15:02:50 +00:00
Tom Paine 9eca815377 Update profile_tasks.md
Converted to RST.
2016-02-05 18:06:10 +00:00
Tobias Wolf c902f926ca Do not print empty diffs with _display.display() 2016-02-03 16:20:16 +01:00
Tobias Wolf 28169492f9 Do not insert newlines when diff is empty 2016-02-03 16:20:16 +01:00
Tobias Wolf 67594e8ec2 Fix handling of difflist containing multiple before/after pairs
Commit ansible/ansible@c337293 introduced a difflist feature. The return
value was not adequately outdented to append any diff after the first.
2016-02-03 16:20:16 +01:00
Toshio Kuratomi 9e3932ffca Some attributes of callbacks aren't in v2. Port plugins to the v2 way to do that
Update porting guide with info on callback porting
2016-01-29 19:45:12 -08:00
Matt Martz 4547ac7fb1 v2 version of slack callback plugin 2016-01-28 16:13:29 -06:00
Tobias Wolf 5b293b56d6 Handle the key 'prepared' in the 'diff' result from modules
So far, when a 'diff' dict is returned with module results, it is
checked for 'before' and 'after' texts, which are processed in
_get_diff() by python difflib.  This generates the changes to display
when CLI users specify --diff.

However, some modules will generate changes that cannot easily be
expressed in a conventional diff. One example is the output of the
synchronize module, which presents changed files in a common log format
as in `rsync --itemize-changes`.

Add a check for a diff['prepared'] key, which can contain prepared diff text
from modules.
2016-01-26 09:29:37 +01:00
Tom Paine 76ac6294e0 profile_tasks README.md
As agreed with Brian Coca in Ansible Project group:
https://groups.google.com/forum/#!searchin/ansible-project/tom$20paine/ansible-project/__nv6BZs2yU/AkYQ0HU-BQAJ
2016-01-11 18:21:28 +00:00
James Cammarata dc47c25e58 Minor tweak to ensure diff is not empty in callback for file diffs 2016-01-05 22:01:01 -05:00
Brian Coca 095790ac5c Merge pull request #13691 from bcoca/colors
output color is now configurable
2016-01-05 14:33:01 -05:00
Brian Coca f3c45adfb8 simplified diff handling in callback
no need for the copy or other complexity
2016-01-05 14:26:38 -05:00
Brian Coca 9972c27a9b now handles 'non file diffs'
this allows modules to pass back a 'diff' dict and it will still show using the file interface
2016-01-05 14:26:38 -05:00
Brian Coca d3deb24ead output color is now configurable 2015-12-29 17:40:47 -05:00