Commit graph

23289 commits

Author SHA1 Message Date
Pilou
6069d09b9d Speed up VariableManager by preserving Templar state. (#45572)
Maintain one Templar for the lifetime of VariableManager, calling
set_available_variables() prior to each use, enabling _get_filter()'s
cache to function correctly.

It does not seem possible for concurrent calls into one (non-copied)
VariableManager instance, and so it need not be reentrant. If that
became a requirement, serializing its or Templar's entry points would be
fine, as it's so CPU-heavy other threads will only fight with it for the
GIL anyway.

Reduces _get_filters() runtime 91%, get_vars() runtime 19%, function
call count 16%, overall runtime 10%.

Tested aginst dummy load comprised of the 12 disabled steps of
debops.auth with an inventory of 80 hosts, which stresses variable
processing and task setup. Before:

         7447296 function calls (7253994 primitive calls) in 32.611 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000   32.762   32.762 ansible-playbook:3(<module>)
        1    0.007    0.007   31.733   31.733 ansible-playbook:21(<module>)
    ...
 1371/971    0.671    0.000   21.332    0.022 manager.py:154(get_vars)
    ...
     3044    0.315    0.000    5.166    0.002 __init__.py:295(_get_filters)

After:

         6252978 function calls (6059638 primitive calls) in 29.055 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000   29.218   29.218 ansible-playbook:3(<module>)
        1    0.007    0.007   28.159   28.159 ansible-playbook:21(<module>)
    ...
 1371/971    0.675    0.000   17.211    0.018 manager.py:154(get_vars)
    ...
     3044    0.028    0.000    0.441    0.000 __init__.py:295(_get_filters)
2018-09-25 16:24:25 -04:00
José Maia
923a7bd30f [azure] Fix name for the symbol * in docs (#46119)
Correct name is "asterisk", not "asterix", which is a popular franco-belgian comic character!

+label: docsite_pr
2018-09-25 15:21:24 -04:00
Brian Coca
32ec69d827
allow jinja2 unique filter compat (#45637)
* allow jinja2 unique filter compat
* detect if unique is provided, fallback with warning
* handle j2 specific params
* now all filters using unique must pass environment
* added env to tests

also normalized on how we normally import and use exceptoins
2018-09-25 14:27:02 -04:00
Zim Kalinowski
6056b89675
fix for managed disk facts (#46021) 2018-09-26 00:48:22 +08:00
abarbare
98b0594352 feat: add scaleway security group module (#45686)
fix: pep8 coding style

fix: error order requests
2018-09-25 16:39:49 +01:00
Matt Martz
49eb53b44d
pylint plugin to catch due/past-due deprecated calls (#44143)
* Start of work on pylint plugin to catch due/past-due deprecated calls

* Improve deprecated pylint plugin

* Catch call to AnsibleModule.deprecate also

* Skip splatted kwargs, we can't infer that info

* Add error for invalid version in deprecation

* Skip version if it's a reference to a var

* Disable ansible-deprecated-no-version for displaying deprecated module info

* fix comments

* is None

* Force specifying a version, this can be disabled on a per case basis

* Disable ansible-deprecated-version by default

* Remove to look for 2.8 deprecated

* Revert "Remove to look for 2.8 deprecated"

This reverts commit 4e84034fd1.

* Add script and template used for creating issues for deprecated issues

* Fix underscore var
2018-09-25 10:31:41 -05:00
René Moser
e7926cf9f4
cs_instance: fix host migration without volume (#46115) 2018-09-25 16:48:45 +02:00
s-hertel
7e8435b96d Fix _uri option documentation for cache plugins that expect strings 2018-09-25 09:57:03 -04:00
Abhijeet Kasurde
4b4b21d745 [docs] Fix typos in aws_s3 and s3_bucket module docs (#46106)
Eucalypus to Eucalyptus

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-09-25 08:57:44 -04:00
newtonne
aac1ce7333 homebrew_cask: Pass install_options during uninstall (#44938)
Until https://github.com/Homebrew/homebrew-cask/issues/40866 is fixed,
install_options should be passed when uninstalling casks to ensure that
all artefacts are removed.
2018-09-25 12:21:52 +01:00
Dan
f20938788a fixed nxos_aaa_server_host issue with type 7 encrypt key (#46015)
* fixed nxos_aaa_server_host issue with type 7 encrypt and added test cases

* added idempotence tests
2018-09-25 16:39:22 +05:30
Hirshr
c11c3506cd spotinst_aws_elastigroup elastic_ips example (#41190)
* Update spotinst_aws_elastigroup.py
2018-09-25 11:41:07 +01:00
tomww
c44de1069c Update synchronize.py, mention variable ansible_rsync_path needed for different local rsync binary (#41870)
* Update synchronize.py

If you want a different rsync binary on the local side, you need to set task variable ansible_rsync_path.
See examples.

Variable ansible_rsync_path looks to not be documented anywhere. If documented, needs to be said that is does not belong to synchronise options, instead belongs to tasks. (Sorry, I have no better wording)
2018-09-25 11:27:24 +01:00
Anoop Sood
d1688adefc Update sl_vm.py (#43966)
* Update sl_vm.py

Updated the list of datacenters to include new datacenters.
2018-09-25 11:15:51 +01:00
akira6592
8213096b7f The sshkey option is available in version 2.7 and above (#46103) 2018-09-25 10:41:23 +01:00
Gustavo Muniz do Carmo
7a747341fb Fix iterator to list conversion in ldap_entry module
PR #45778 fixes #45417
2018-09-25 11:24:44 +02:00
Joachim Mathes
30314c15c7 Generalize config retrieval in ios_l3_interface module (#45270)
This makes it work with Cisco 3750E.
2018-09-25 12:28:32 +05:30
Dan
a6c20488d3 Add ospf net type (#45904)
* Added ospf network type option to nxos_interface_ospf module

* Added documentation and example for the 'network' parameter

* adding version
2018-09-25 11:38:39 +05:30
Tobias Wolf
d5f8738bf2 [rabbitmq_binding] Fix the quoting of vhost and other names (#45109)
* [rabbitmq_binding] Fix the quoting of vhost and other names, which was broken in PR #35651
* Merge missing urllib_parse.quote from PR #42422
* Missed one line, where  also needs to be escaped, i.e., the destination
2018-09-25 11:04:41 +05:30
tstoner
e74e8b8e75 Additional feature enhancements to nxos_logging (#45844)
* Various changes to nxos_logging.  Plus added purge capibility.

* Made a few new nxapi_logging test cases conditional based on version
and/or platform.

* Addressed PR comments and ansibot shippable.  Fixed up nxos_logging documentation format.

* Addressed ansibot shippable issues with whitespaces and documentation.

* Resolved ansibot codestyle trailing whitespace
2018-09-25 11:02:09 +05:30
Jordan Borean
d6251e5b27
winrm: add further conditional to using pexect for kerb auth (#45952) 2018-09-25 09:21:22 +10:00
Peter Sprygada
1e68881c40 adds support for null values to the ternary filter (#45303)
* adds support for null values to the ternary filter

This change adds a third optional argument to the ternary filter to
handle a null value.  If the third option is specified null and false
are treated differently.

For instance, take the following example:

{{ enabled | ternary('no shutdown', 'shutdown') }}

If enabled == True, then 'no shutdown' is used.
If enabled in (False, None), then 'shutdown' is used.

With this change the following is possible:

{{ enabled | ternary('no shutdown', 'shutdown', omit) }}

If enabled == True, then 'no shutdown'
If enabled == False, then 'shutdown'
If enabled == None, then omit

* update documentation with example of filter

* update filter documentation example per comments

* fix logic error in user_guide example
2018-09-24 18:57:19 -04:00
Horie Issei
d8d4be40b0 Update typetalk.py to use com domain (#46045)
Typetalk now uses "com" domain.
FYI: https://www.typetalk.com/blog/typetalk-gets-new-top-level-domain-typetalk-com/

+label: docsite_pr
2018-09-24 16:42:06 -05:00
Sandra McCann
c5a8a911b3 fix doc links (#46094) 2018-09-24 16:08:05 -05:00
Dominik Holler
67e87d3d1c ovirt_host_network: Add save parameter to example (#45965)
The parameter 'save' is added to an example and the default
behavior is mentioned in the description of the other
examples.
2018-09-24 16:44:07 -04:00
Susant Sahani
8ef18839a6 Add systemctl daemon-reexec to systemd module
```
- name: systemctl daemon-reexec
  - systemd:
       daemon_reexec=yes
```

Closes: #38880

Signed-off-by: Susant Sahani <susant@redhat.com>
2018-09-24 15:51:44 -04:00
Matt Martz
172137c3ca
Fix issues with PLUGIN_FILTERS_CFG config handling (#45994)
* Ensure that the value of PLUGIN_FILTERS_CFG is treated as type=path, and that we use the standard section of 'defaults' instead of 'default'

* deprecate the default section

* Don't add version_added for the corrected section
2018-09-24 14:34:59 -05:00
Matt Martz
c0915e2f5a
Support nested JSON decoding in AnsibleJSONDecoder (#45924)
* Support nested JSON decoding in AnsibleJSONDecoder

* Add tests for vault portion of AnsibleJSONDecoder
2018-09-24 14:33:19 -05:00
Sandra McCann
df3655968f Infoblox scenario guide (#45664)
* creates infoblox scenario guide
* adds link to infoblox guide from modules
* adds WAPI to prerequisites
2018-09-24 14:25:01 -05:00
Rémy Léone
53886ecc9b Add an Online servers fact 2018-09-24 21:03:50 +02:00
Vinay Dandekar
fe6b7f6b5d [aws] Change IAM role name parsing to come from the ARN (#45534) 2018-09-24 12:41:23 -04:00
Sloane Hertel
485320aab8 [sns_topic] Don't mask non-authorization errors (#46030) 2018-09-24 11:58:46 -04:00
Dag Wieers
db5b65f5d6 win_get_url: Clarify the encoded slash issue (#45376)
* win_get_url; Clarify the encoded slash issue
2018-09-24 10:18:06 -05:00
Dag Wieers
f90fc8a9a2 Fix author in modules (#46068)
Fix a few cases where the author was incomplete or incorrect.
2018-09-24 10:14:29 -05:00
santascsi
6ddfd912dc Update cron.py (#46055)
<!--- Your description here -->
The documentation states the use of the "value" attribute for environment variables while this should also be the "job" attribute.
+label: docsite_pr
2018-09-24 10:06:33 -05:00
José Maia
9039002886 Fix typo in Azure ARM module documentation (#46065) 2018-09-24 09:57:23 -05:00
jgkirschbaum
0fd1a71027 New module: Manage RabbitMQ global parameters [messaging/rabbitmq_global_parameter] (#26080)
* Created rabbitmq_global_parameter.py for managing RabbitMQ global parameters

* Contributed rabbitmq_global_parameter.py for managing RabbitMQ global parameters

* Contributed rabbitmq_global_parameter.py for managing RabbitMQ global parameters

* Contributed rabbitmq_global_parameter.py for managing RabbitMQ global parameters

* Contributing rabbitmq_global_parameter.py for managing RabbitMQ global parameters

* Update rabbitmq_global_parameter.py

* Update rabbitmq_global_parameter.py

* Updated Copyright Statement

* __future__ and __metaclass__ added

* Typo corrected

* Example changed

* Import Statement changed

* Returning of values changed

* Fixed Typo

* type for parameters added

* JSON fix

* Reverted

* missing conditional when calling main added

* version_added and PEP issues corrected

* Trigger build

* version_added bumped

version_added bumped to 2.6

* Bumped version_added

* version_added bumped to 2.8

* pep8 issue corrected
2018-09-24 10:24:58 -04:00
Rémy Léone
f6154bb2e3 Refactor attribute lookup to make it multithreaded (#45786) 2018-09-24 10:23:23 -04:00
Rémy Léone
6d7004f367 Add a Scaleway IP module (#45121)
- Add an option to enable public ip at server creation
2018-09-24 10:14:23 -04:00
Nathaniel Case
03d8fa05b6
Try to be more helpful when JSON gives up (#45600)
* Try to be more helpful when JSON gives up
2018-09-24 09:09:17 -04:00
Felix Fontein
7caf70db42 docker_container: fix various idempotency problems and non-working options (#45905)
* Sorting args.

* Doing comparisons of options with container parameters in a more context-sensitive way.

This prevents unnecessary restarts, or missing restarts (f.ex. if parameters are removed from ``cmd``).

* Make blkio_weight work.

* Fix cap_drop idempotency problem.

* Making groups idempotent if it contains integers.

* Make cpuset_mems work.

* Make dns_opts work.

* Fixing log_opts: docker expects string values, returns error for integer.

* Adding tests from felixfontein/ansible-docker_container-test#2.

* Make uts work.

* Adding changelog entry.

* Forgot option security_opts.

* Fixing typo.

* Explain strict set(dict) comparison a bit more.

* Improving idempotency tests.

* Making dns_servers a list, since the ordering is relevant.

* Making dns_search_domains a list, since the ordering is relevant.

* Improving dns_search_domains/dns_servers.

* Fixing entrypoint test.

* Making sure options are only supported for correct docker-py versions.
2018-09-24 10:40:05 +01:00
Sebastian Gumprich
0b801a0595 Update yaml-style in password-lookup example (#46046)
* Update yaml-style in password-lookup example

##### SUMMARY

Update the  yaml-style in a password-lookup example to match best-practices.

##### ISSUE TYPE
- Docs Pull Request


##### COMPONENT NAME
password_lookup plugin

##### ANSIBLE VERSION
devel

* remove whitespace
2018-09-24 09:34:12 +02:00
René Moser
83ec418470
cs_loadbalancer_rule_member: fix error handling (#46012)
* make use of query_api
* fix sanity
2018-09-22 13:40:40 +02:00
Tom Hodder
c123b4e7ef digital_ocean_domain: fix to allow updating the module param ip between calls (#42009)
* update the domain record with the new ip from params if resource exists

* fixes for pylint and pep8 checks
2018-09-22 03:13:20 -04:00
Matt Davis
3b52d968e6
fix premature exit when RG doesn't exist (#46013)
* fixes #45941
* corrects regression introduced by #26104; when the resource group doesn't exist, the module exits prematurely with an error instead of creating it.
2018-09-21 16:23:21 -07:00
Adam Harvie
8659a88fea Add 'signalled' state to supervisorctl module with associated 'signal' parameter. (#32694)
https://github.com/ansible/ansible/issues/29847
2018-09-21 15:59:14 -04:00
Sam Doran
b60854357b
Unify terms and UI between 1Password lookups and facts module (#45427)
* Unify login behavior between 1Password lookup plugins and module

- Use the same names for all credential aspects
- Only require the minimal amount of information for each
- Add more examples

* Change parameter terms

- use terms in line with 1Password documentation.
- update examples
- update tests

* Improve error messages in lookup plugin

* Unify onepassword_facts with lookup plugins

- use same methods and logic for signing in or reusing existing session
- unify terms with lookup plugins

* Change rc test for determing login

An rc other than 1 can be returned when a current login session does not exist.

* Create AnsibleModuleError class

ansible.errors is not available to modules, so create an AnsibleModuleError class within the module

Do not user os.path.expanduser since this is already done by virtue of the type being "path" in the argument spec.

* Add note about risk with fact caching sensitive data

* Add note on op version that was used for testing
2018-09-21 14:26:05 -04:00
Brian Coca
a47671aad1 allow openstack invetnory to work cacheless
fixes #45431
2018-09-21 12:33:24 -04:00
Dag Wieers
66eec42f53 Fix calling deprecate with correct arguments (#44726)
This fixes #44702
2018-09-21 12:30:31 -04:00
Rémy Léone
574ed8dc7f Add documentation about the query filters (#45835) 2018-09-21 12:09:35 -04:00