Commit Graph

417 Commits (bf0e846a39a6ea1c312905ecbf794523da3107ea)

Author SHA1 Message Date
Paddy Newman 2ef7759be1 Allow syslog_json callback options to be set in an Ansible configurat… (#57232)
* Allow syslog_json callback options to be set in an Ansible configuration file.

The syslog_json documentation says that it supports options via an Ansible
configuration file. In fact, they can only be specified via environment
variables.

I've updated the module to use the standard "get_options" handling which means
that it can now support options via environment variables *or* the
configuration file.

Options can be set in the configuration file as follows:

```
callback_whitelist = syslog_json

[callback_syslog_json]
syslog_server = localhost
syslog_port = 514
syslog_facility = user
```

* Use the original, documented, names for the modules options.

In the documentation text change syslog_server to server, syslog_port to port
and syslog_facility to facility.

* Add an item to the changelog.

* Update 57232-syslog-json-configuration-options.yml

Fix a YAML syntax error / typo.
2019-05-31 14:29:15 -04:00
Brian Coca eb9009c4f4 added missing version_added 2019-05-22 17:04:36 -04:00
Paddy Newman 57e42842b0 Add a new "log_folder" option to the log_plays callback plugin. (#56717)
* Add a new "log_folder" option to the log_plays callback plugin.

A a new option for the log_plays callback plugin which allows the user to
control where the callback where creates log files.

The option can be set via the ANSIBLE_LOG_FOLDER environment variable or in the
Ansible configuration file, e.g.:

[callback_log_plays]
log_folder = /path/to/my/log/folder
2019-05-22 17:00:00 -04:00
Matt Martz 867e357eb1
When not using file_per_task, make sure we don't prematurely close the perf files (#56477)
* When not using file_per_task, make sure we don't prematurely close the perf files

* add changelog fragment
2019-05-16 15:38:36 -05:00
Brian Coca 9f87552f06
add option to display per host start to default (#53819)
* add option to display per host start to default
2019-04-12 12:42:38 -04:00
Andrew Gaffney 94154c5f4d Only show a task banner if a diff is found (#55050) 2019-04-09 13:47:12 -04:00
Jim Ladd 17d78553ee Add options for configuring memory / pid polling interval (#54936) 2019-04-08 09:18:37 -05:00
James Cassell bc4ef99533 standardize TLS connection properties (#54315)
* openstack: standardize tls params

* tower: tower_verify_ssl->validate_certs

* docker: use standard tls config params

- cacert_path -> ca_cert
- cert_path -> client_cert
- key_path -> client_key
- tls_verify -> validate_certs

* k8s: standardize tls connection params

- verify_ssl -> validate_certs
- ssl_ca_cert -> ca_cert
- cert_file -> client_cert
- key_file -> client_key

* ingate: verify_ssl -> validate_certs

* manageiq: standardize tls params

- verify_ssl -> validate_certs
- ca_bundle_path -> ca_cert

* mysql: standardize tls params

- ssl_ca -> ca_cert
- ssl_cert -> client_cert
- ssl_key -> client_key

* nios: ssl_verify -> validate_certs

* postgresql: ssl_rootcert -> ca_cert

* rabbitmq: standardize tls params

- cacert -> ca_cert
- cert -> client_cert
- key -> client_key

* rackspace: verify_ssl -> validate_certs

* vca: verify_certs -> validate_certs

* kubevirt_cdi_upload: upload_host_verify_ssl -> upload_host_validate_certs

* lxd: standardize tls params

- key_file -> client_key
- cert_file -> client_cert

* get_certificate: ca_certs -> ca_cert

* get_certificate.py: clarify one or more certs in a file

Co-Authored-By: jamescassell <code@james.cassell.me>

* zabbix: tls_issuer -> ca_cert

* bigip_device_auth_ldap: standardize tls params

- ssl_check_peer -> validate_certs
- ssl_client_cert -> client_cert
- ssl_client_key -> client_key
- ssl_ca_cert -> ca_cert

* vdirect: vdirect_validate_certs -> validate_certs

* mqtt: standardize tls params

- ca_certs -> ca_cert
- certfile -> client_cert
- keyfile -> client_key

* pulp_repo: standardize tls params

remove `importer_ssl` prefix

* rhn_register: sslcacert -> ca_cert

* yum_repository: standardize tls params

The fix for yum_repository is not straightforward since this module is
only a thin wrapper for the underlying commands and config.  In this
case, we add the new values as aliases, keeping the old as primary,
only due to the internal structure of the module.

Aliases added:
- sslcacert -> ca_cert
- sslclientcert -> client_cert
- sslclientkey -> client_key
- sslverify -> validate_certs

* gitlab_hook: enable_ssl_verification -> hook_validate_certs

* Adjust arguments for docker_swarm inventory plugin.

* foreman callback: standardize tls params

- ssl_cert -> client_cert
- ssl_key -> client_key

* grafana_annotations: validate_grafana_certs -> validate_certs

* nrdp callback: validate_nrdp_certs -> validate_certs

* kubectl connection: standardize tls params

- kubectl_cert_file -> client_cert
- kubectl_key_file -> client_key
- kubectl_ssl_ca_cert -> ca_cert
- kubectl_verify_ssl -> validate_certs

* oc connection: standardize tls params

- oc_cert_file -> client_cert
- oc_key_file -> client_key
- oc_ssl_ca_cert -> ca_cert
- oc_verify_ssl -> validate_certs

* psrp connection: cert_trust_path -> ca_cert

TODO: cert_validation -> validate_certs (multi-valued vs bool)

* k8s inventory: standardize tls params

- cert_file -> client_cert
- key_file -> client_key
- ca_cert -> ca_cert
- verify_ssl -> validate_certs

* openshift inventory: standardize tls params

- cert_file -> client_cert
- key_file -> client_key
- ca_cert -> ca_cert
- verify_ssl -> validate_certs

* tower inventory: verify_ssl -> validate_certs

* hashi_vault lookup: cacert -> ca_cert

* k8s lookup: standardize tls params

- cert_file -> client_cert
- key_file -> client_key
- ca_cert -> ca_cert
- verify_ssl -> validate_certs

* laps_passord lookup: cacert_file -> ca_cert

* changelog for TLS parameter standardization
2019-03-28 00:19:28 -05:00
James Cassell 51f2065df5 use ANSIBLE_ prefix on all ansible-defined env vars (#54272)
mark old version deprecated in all places referenced via docs
2019-03-26 17:43:48 -04:00
Matt Martz 231f3e138a
Close files before opening new ones (#53961) 2019-03-18 10:21:49 -05:00
Sloane Hertel 7da565b3ae
parse botocore.endpoint logs into a list of AWS actions (#49312)
* Add an option to parse botocore.endpoint logs for the AWS actions performed during a task

Add a callback to consolidate all AWS actions used by modules

Added some documentation to the AWS guidelines

* Enable aws_resource_actions callback only for AWS tests

* Add script to help generate policies

* Set debug_botocore_endpoint_logs via environment variable for all AWS integration tests

Ensure AWS tests inherit environment

(also remove AWS CLI in aws_rds inventory tests and use the module)
2019-03-18 08:29:03 -05:00
Brian Coca b793f08a92
fixes for stripping (#52930)
function changed to do in place replacement, should be less expensive even with copy as it avoids 'sub copies', can compose with module_args_copy to create replacement for old behavior

  attempt to fix #52910

* handle lists and subdicts correctly
* added  missing exception case, which was not noticed since 'cleaning' was not working
* added comments to clarify exceptions
2019-03-12 18:18:38 -04:00
Abhijeet Kasurde 917520d560 Misc typo fixes (#53284)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2019-03-04 15:30:18 -05:00
Martin Krizek 66eb301cd3 profile_tasks: Fix last task time with multiple plays (#53065) 2019-03-01 10:29:33 -05:00
Pilou d8a2d64ec1 osx_say callback plugin: add espeak support, rename to say (#33740)
* rename into say

* add support for espeak command

* adds symlink from osx_say to say

* Update version number
2019-02-26 09:46:35 -06:00
Jonathan Brown 681082e47c Unixy stdout callback: Display name of play and list of play hosts, don't display play name if no hosts in play (#32810) 2019-02-25 11:57:29 -05:00
Andrew Gaffney e287b35f69 Turn 'actionable' into a thin wrapper for 'default' (#52908)
The 'default' action plugin now implements this functionality, so the
'actionable' plugin doesn't need any of its own logic (which was
interacting poorly with the new 'default' plugin logic to do the same
things). This fixes #51533 and #47353
2019-02-25 11:55:46 -05:00
Matt Martz 269cdffcea
Format dict keys need to be bytes (#52728) 2019-02-21 11:43:45 -06:00
Martin Krizek be9f07279e Add stats on rescued/ignored tasks (#48418)
* Adding rescued/ignored tasks to stats gathering

Fixes #31245

* Amend integration tests to pass

* callback/dense.py: fix too-many-format-args

* Add changelog

* Amend counter_enabled and unixy callbacks

* Fix syntax error

* Fix typo in the changelog

* Remove not needed comment

* Re-add skipped

* Add test for rescued

* Fix colors...

* Fix unstable tests?

* Add a note to the porting guide

* Re-word the note in the porting guide

Fixes #20346
Fixes #24525
Fixes #14393

Co-authored-by: James Cammarata <jimi@sngx.net>
Co-authored-by: Martin Krizek <martin.krizek@gmail.com>
2019-02-20 13:00:47 +10:00
hansmi 76ab88c9f5 callbacks/slack: Explicitly set Content-Type header (#51824)
There are other chat systems with hook implementations more or less
compatible with Slack, such as Rocket.Chat. The latter requires the
Content-Type header to be set to "application/json" (the body is JSON).

Signed-off-by: Michael Hanselmann <public@hansmi.ch>
2019-02-12 12:47:33 -05:00
Brian Coca 4ac0c23db6
added unsafe toggle to vars_prompt (#49219)
* added unsafe toggle to vars_prompt

	fixes #47534
2019-01-30 15:01:13 -05:00
Thomas Morin 6ad9f87ce7 Update debug.py (#51041)
Changed "though" to "through"
2019-01-21 15:08:26 +05:30
Abhijeet Kasurde 4817dcd0fc Minor typos (#50371)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2019-01-15 11:37:00 +00:00
Abhijeet Kasurde 17bb4f4932 default: callback plugin allow unreachable task to stderr (#50533)
Provide toggle flag to allow display of unreachable task to stderr
using default callback plugin.

Fixes: #48069

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2019-01-09 11:43:59 -05:00
Matt Martz 7a89d373ac Perf graphing (#46346)
* csv of memory usage

* Fix var

* Configurable output file

* Add cpu profiling

* Valdiate the existence of cgroup files

* Add guard to prevent exception when trying to reset max memory value

* to_bytes/to_text and docs updates

* Add support for CPU results

* Just track the max, don't log all results, and then calculate max

* Restore cgroup_memory_recap, and move new functionality into cgroup_perf_recap

* Add pid count tracking, restructure to support more profilers

* Add cli tool for graphing cgroup_perf_recap data

* csv_output_dir is a path

* Correct CALLBACK_NAME

* Include uuid in csv data

* fix linting errors

* Bump version_added

* Create helper funciton to create dict from list of keys, with callable default

* Updated notes to include pids

* Print a newline after each section

* Plugin improvements

* Add option to supporess recap display
* Add default for output directory
* Add option to dictate whether or not to write files
* Add JSON-seq output option

* s/uuid/task_uuid

* Use bytes for paths

* Increase polling interval length for pids/memory

* Reduce instance attrs, change how we invoke profilers

* Shorten some line lengths

* Remove more instance attrs

* Fix some typos

* document directory creation, and catch exceptions

* Enable per task file outputs, and filename customization

* s/per_task_file/file_per_task/g
2019-01-08 13:29:22 -05:00
Toshio Kuratomi afdbb0d9d5 Save the command line arguments into a global context
* Once cli args are parsed, they're constant.  So, save the parsed args
  into the global context for everyone else to use them from now on.
* Port cli scripts to use the CLIARGS in the context
* Refactor call to parse cli args into the run() method
* Fix unittests for changes to the internals of CLI arg parsing
* Port callback plugins to use context.CLIARGS
  * Got rid of the private self._options attribute
  * Use context.CLIARGS in the individual callback plugins instead.
  * Also output positional arguments in default and unixy plugins
  * Code has been simplified since we're now dealing with a dict rather
    than Optparse.Value
2019-01-03 18:12:23 -08:00
Remi Verchere 23706dbc20 Add support for NRDP notifications (#39297)
* Add support for NRDP notifications

* Correct pep-8 check, adding copyright

* Correct pep-8 check using autopep8

* Update nrdp to 2.6 version

* Update nrdp to 2.7 version

* Use internal ansible url and options modules

* Remove useless comments

* Add option to validate https certs

* Update nrdp to 2.8 version

* Correct nrdp pep8
2019-01-02 10:15:15 -05:00
Toshio Kuratomi 175f3b51e5 Ensure that current uses of BaseException are required
* In some cases, it appears that Exception should have been used instead
  as there's no need to catch sys.exit KeyboardInterrupt and similar.
* In a few cases, it appears that BaseException is used because
  a library we depend on calls sys.exit() contrary to good coding
  design.  Comment those so that we know that those have been audited
  and found to be correct and change to use (Exception, SystemExit)
  instead.
2018-12-16 15:03:19 -08:00
Toshio Kuratomi c817bef3ae Fix for callback plugins on Python3 when a module returns dictionary keys that aren't strings
This fixes one of the problems reported in https://github.com/ansible/ansible/issues/49343

Upstream Python3 bug for the json traceback:
https://bugs.python.org/issue25457

and PR that may fix it:
https://github.com/python/cpython/pull/8011
2018-12-04 23:03:48 -08:00
sdirbach e2f85b3f6c Implement test case prefix to filter test cases (#40174)
* Implement test case prefix to filter test cases

* Cut line to not exceed 160 chars

* Replace tabs with spaces

* Add version_added field

* Include changelog file
2018-12-03 18:41:44 +00:00
sdirbach 840ab706ee Implement hide task arguments feature (#40176)
* Implement hide task arguments feature

* Add version_added field

* Include changelog file
2018-12-03 09:22:51 +00:00
Will Thames 31ccb3c29d Diff mode returns yaml diffs in yaml callback plugin (#48794)
* Diff mode returns yaml diffs in yaml callback plugin

* Add changelog for yaml diff mode
2018-11-22 18:03:25 +00:00
Adam Chalkley 685ea357f9 counter_enabled.py - Fix minor typos (#49014) 2018-11-22 05:41:38 -05:00
Matt Martz 9773a1f289
Add a Singleton metaclass, use it with Display (#48935)
* Add a Singleton class, use it with Display

* update six import

* Move remaining failes to display singleton

* Fix rebase issues

* Singleton improvements

* Add code-smell for 'from __main__ import display'. ci_complete

* s/self/cls/g

* Add docs for no-main-display

* Address linting issues

* Add changelog fragment. ci_complete

* Implement reentrant lock for class instantiation in Singleton

* Add Display singleton porting guide
2018-11-20 17:06:51 -06:00
Abhijeet Kasurde f0c290c930 slack: Add validate_certs option in plugin (#46567)
This fix adds a configurable parameter for slack plugin.

Fixes: #45682

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-11-15 09:15:27 -06:00
Martin Krizek a80c25cbd9
Do not use str() on exceptions (#46950) 2018-11-09 07:59:30 +01:00
Chen Zhiwei 329d3b892b if we already have stderr, we don't need stderr_lines (#44675) 2018-11-06 12:36:42 -05:00
Matt Martz 40e5d2c951 Do not filter out exception, warnings, deprecations on failure when using debug (#47588)
* Do not filter out exception, warnings, deprecations on failure when using debug. Fixes #47576

* Add changelog fragment
2018-10-30 12:51:25 -04:00
Matt Martz fd662c0a63
New v2_runner_on_start callback added (#47684)
* New v2_runner_on_start callback added to indicate the start of execution for a host in a specific task

* Add changelog fragment

* Minor docstring clarification
2018-10-30 11:37:11 -05:00
Allyson Bowles 21859c06b9 Add output for skipped tasks 2018-10-19 10:38:29 -04:00
Allyson Bowles 219f1b8380 Display output for loops on 'ok' result 2018-10-19 10:38:29 -04:00
Abhijeet Kasurde a47b055ac7 Update profile_tasks docs (#46690)
Added configuration settings to enable profile_tasks via ansible.cfg

Fixes: #44555

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-10-19 08:19:57 -05:00
Brian Coca 643ff29d2d
use ansible json encoder for results in callbacks (#46830)
* use ansible json encoder for results in callbacks
2018-10-12 09:37:56 -04:00
akatch 878599fd9f Do not append msg to verbose tasks (#46721) 2018-10-10 12:11:43 -04:00
Matt Clay a11f631ee4 Python 3.8 collections compatibility fixes.
Includes a new pylint blacklist plugin to prevent regressions.
2018-10-08 11:26:37 -07:00
Abhijeet Kasurde dbc80f89ca
Misc typo in logentries plugin module (#46568)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-10-07 07:25:01 +05:30
Eric L 446f83cdeb New option JUNIT_TASK_RELATIVE_PATH to output relative paths. (#37274)
* New option JUNIT_TASK_RELATIVE_PATH to output relative paths.

It makes the output in Jenkins much more readable as the absolute
path was taking the whole width of the screen, leaving no space for
the actual message.

A makedirs instead of mkdir slipped in as to make the creation of
the output directory recursive, hope this is OK.

* Add version_added field to doc set to 2.8
2018-10-02 12:25:29 -07:00
David Baumann c97f2b4c01 Fix callout json plugin show global stats (#43123)
* fix callback Plugin json to support global stat set by set_stats module

* refactor to not break compatiblity, add trailing comma on output dict

* Remove sorted, as it not needed

* refactor, to sivels better code

* clean some code messup

* add changelog fragment

* added missing new line

* fix pep8 stuff
2018-10-01 11:06:14 -05:00
Andrew Gaffney acac001742 Add number of skipped tasks to play recap in 'default' callback (#45797) 2018-09-20 14:38:54 -04:00
Matt Martz 95e77ac853
Ensure that the src file contents is converted to unicode in diff info (#45744)
* Ensure that the src file contents is converted to unicode in diff info. Fixes #45717

* Fix up and cleanup

* The diff functionality in the callback plugins should have the
  to_text() calls removed since we're now doing it in ActionBase
* catching of UnicodeError and warnings in the callback diff
  functionality from 61d01f549f haven't been
  needed since we switched to to_text so remove them.
* Add a note to ActionBase's diff function giving an example of when the
  diff function will be inaccurate and how to fix it

* Fix callback get_diff() tests

I believe the unittests of callback's get_diff() were wrong.  They were
sending in a list where strings were expected.  Because previous code
was transforming the lists into strings via their repr, the previous
tests did not fail but they would have formatted the test cases output
in an odd way if we had looked at it.
2018-09-20 12:31:48 -05:00