Commit Graph

2822 Commits (66eb5681f4c3e3cc45416a537c55974b25bd5402)

Author SHA1 Message Date
Sam Doran 77f73f6d2a
Use unicode instead of bytes (#46234)
The stdout and stderr values returned from self._low_level_execute() are text, not bytes. This results in an error in Python 3 since str and bytes cannot be concatenated.

Changing to unicode type allows this to work without error on Python 2 and Python 3.
2018-09-28 12:51:17 -04:00
Jordan Borean 23c94295dc
Revert "powershell - fix for ANSIBLE_KEEP_REMOTE_FILES on older Pythons (#45942)" (#46238)
This reverts commit ce515a626c.
2018-09-28 09:04:03 +10:00
Pilou 15d46ce428 k8s/oc plugins: fix 'ResourceField' is not JSON serializable (#46145)
Fixes #44408
2018-09-27 18:43:29 -04:00
Abhijeet Kasurde 8ecc6be85c Misc typo fix (#46199)
jinaj2 to jinja2

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-09-27 12:51:48 +02:00
Pilou 2fd18c77ae openshift inventory plugin: fix exception when auth fails (#45826)
* openshift inventory: fix exception when auth fails

Fix 'ForbiddenError' object has no attribute 'message':

    [WARNING]:  * Failed to parse test.yml with openshift plugin: 'ForbiddenError' object has no attribute 'message'
     File "ansible/lib/ansible/inventory/manager.py", line 270, in parse_source
       plugin.parse(self._inventory, self._loader, source, cache=cache)
     File "ansible/lib/ansible/plugins/inventory/openshift.py", line 122, in parse
       self.setup(config_data, cache, cache_key)
     File "ansible/lib/ansible/module_utils/k8s/inventory.py", line 58, in setup
       self.fetch_objects(connections)
     File "ansible/lib/ansible/module_utils/k8s/inventory.py", line 250, in fetch_objects
       super(OpenShiftInventoryHelper, self).fetch_objects(connections)
     File "ansible/lib/ansible/module_utils/k8s/inventory.py", line 81, in fetch_objects
       namespaces = self.get_available_namespaces(client)
     File "ansible/lib/ansible/module_utils/k8s/inventory.py", line 95, in get_available_namespaces
       raise K8sInventoryException('Error fetching Namespace list: {0}'.format(exc.message))

Don't try to get 'message' attribute from:
- K8sInventoryException instances
- Exception instances
- KubernetesException instances (because KubernetesException can be
  Exception)

* move k8s/OpenShift inventory plugin dedicated code

inventory plugin specific code should not be located in
lib/ansible/module_utils directory. Then ansible.utils methods can be
reused (for example Display).

* Remove unused class variables 'helper'

unused since 4d77878654.
2018-09-26 18:16:54 -04:00
Anthony Ruhier 5803d73400 Bugfixes in Netbox inventory (#45731)
* Fix headers and params in netbox queries

Fix token authentication
Remove unused variables regarding api params and headers

* Fix python 3 incompatibility in netbox inventory

* Cleaning BOTMETA entry
2018-09-26 11:52:24 +01: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
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 4e84034fd104879f429f0262ff0b2317e3d08deb.

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

* Fix underscore var
2018-09-25 10:31:41 -05:00
s-hertel 7e8435b96d Fix _uri option documentation for cache plugins that expect strings 2018-09-25 09:57:03 -04:00
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
Rémy Léone f6154bb2e3 Refactor attribute lookup to make it multithreaded (#45786) 2018-09-24 10:23:23 -04: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
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
Rémy Léone 574ed8dc7f Add documentation about the query filters (#45835) 2018-09-21 12:09:35 -04:00
Jordan Borean 198423d6fb
powershell: do not quote join_path result to reflect ShellBase join_path (#45944) 2018-09-21 15:31:12 +10:00
Jordan Borean ce515a626c
powershell - fix for ANSIBLE_KEEP_REMOTE_FILES on older Pythons (#45942) 2018-09-21 10:03:57 +10:00
Yanis Guenane a7bf505474 inventory/tower: authors -< author so Doc can pick it up (#45936) 2018-09-20 16:44:22 -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
Nathaniel Case 406b59aeba
Move persistent connections to only use registered variables (#45616)
* Try to intuit proper plugins to send to ansible-connection

* Move sub-plugins to init so that vars will be populated in executor

* Fix connection unit tests
2018-09-20 09:56:43 -04:00
Jordan Borean 5c73d4f4bd
async: use async_dir for the async results file directory (#45461)
* win async: use async_dir for the async results file directory

* tried to unify POSIX and PowerShell async implementations of async_dir

* fix sanity issue
2018-09-20 19:37:54 +10:00
Sofiane Medjkoune af40d8c2a5 Fix mixed output from ansible and lxd when using the lxd connection plugin (#45246)
* Replace fetch and put operations with Popen instead of call to prevent lxd to mess the Ansible output

* Remove extra blank line
2018-09-18 19:36:51 -04:00
Sam Doran afd8b97fb1
Make sure strings are bytes for Py2/3 compatibility (#45746) 2018-09-18 10:10:47 -04:00
Matt Martz b6fcbfe813
Support transfering empty files to target host. Fixes #36725 (#45751) 2018-09-18 09:05:20 -05:00
Matt Martz f8c98600a9
If including a file resulted in AnsibleFileNotFound, clarify error message. Fixes #45661 (#45667) 2018-09-18 09:04:33 -05:00
Raymond Wanyoike c41632fad2 Add the key_name/value_name options to the dict2items filter (#45550)
* Add the key_name/value_name options to dict2items - as with items2dict, allow users to configure the key/value name for dict2items, add "version added" and examples
2018-09-17 15:53:52 -05:00
zharalim 8526f63255 Enhance the note about fileglob being local (#45398)
Made the note clearer and instructed to use find module for remote operations.
Relating to #34497
2018-09-17 16:00:41 -04:00
Nathaniel Case 52c20bbd3f
Update from napalm PR (#45743) 2018-09-17 15:39:07 -04:00
Dag Wieers a7a99c5fd4 reboot: Fix typo and support bare Linux systems (#45607)
* reboot: Fix typo and support bare Linux systems

This fixes a problem for bare Linux systems that do not support 'who -b' or 'uptime -s'.

* Accumulate stdout and stderr information
2018-09-17 14:04:03 -04:00
Nathaniel Case 21ff9c6a4a
Add initial napalm connection plugin (#45224)
* Add initial napalm connection plugin

* Fix review comments
2018-09-17 12:53:57 -04:00
Nathaniel Case 917fcb9c55
These won't get upgraded to bool if ansible doesn't know they are (#45736) 2018-09-17 11:34:57 -04:00
Rémy Léone 66f03827d6 Add a netbox dynamic inventory plugin (#45347) 2018-09-16 15:13:56 +01:00
Martin Krizek d383d87b22 include_vars: fix checking for a string in ignore_files 2018-09-14 11:18:00 -04:00
Matt Martz e68f895e61
Support empty files with piped transfer_method. Fixes #45426 (#45618) 2018-09-13 13:53:36 -05:00
Anton Nikulin b7263eab1d Store Authorization header inside HttpApi connection plugin (#45598) 2018-09-13 19:34:30 +05:30
tterranigma cc477ec920 Update fileglob.py (#45558)
* Update fileglob.py

Closes #45557

* Update fileglob.py
2018-09-13 12:10:00 +10:00
Jordan Borean d81249994e
win_script: add support for become and centralise exec wrapper builder (#45582)
* win_script: add support for become and centralise exec wrapper builder

* satisfying the pep8 gods

* do not scan for module dependencies when running as a script
2018-09-13 08:50:13 +10:00
Brian Coca 1ed57f1f64 moving from with_ff to just ff (#44847) 2018-09-12 15:35:04 -04:00
thetuxkeeper 11cfa96797 fixing bytes <-> str regexp issue in cloudengine (#45285) 2018-09-12 09:59:42 -04:00
abirami-n 06fd9820a3 Fixes handling of terminal_initial_prompt on dellos6 and dellos9 devices (#45273)
* Fix terminal initial prompt on dellos6 and dellos9

* Fix_pylint
2018-09-12 19:28:32 +05:30
Nathaniel Case eaf01d321f
eos: Don't error on VLAN missing warning (#45433) 2018-09-12 09:55:23 -04:00
Nathaniel Case b22b07e300 Fixup network connection documentation (#45487)
* Fixup network connection documentation similar to suggestions in #45224

* Another tpyo
2018-09-11 14:23:38 -04:00
Matt Martz 0015d4cef3
2.8 Core Deprecation Removal (#45232)
* Remove deprecated ansible.vars.unsafe_proxy. Fixes #45040

* Remove deprecated validate_md5 alias from fetch module. Fixes #45039

* Remove deprecated private arg from import/include_role. Fixes #45038

* All include deprecations bumped to 2.12. Fixes #45037

* Add changelog for deprecated removals
2018-09-10 15:05:52 -05:00
Matt Martz 263b9fade8
Don't pass file_name to DataLoader.load in script inventory plugin (#45428)
* Don't pass file_name to DataLoader.load in script inventory plugin. Fixes #34164

* Add changelog fragment
2018-09-10 14:37:18 -05:00
Jon Dufresne ef67d4074b Prefer io.BytesIO over six; available on all supported Pythons (#45388)
On all supported Pythons, the io.BytesIO is always a stream
implementation using an in-memory bytes buffer. Makes code slightly more
forward compatible by reducing use of the six module.
2018-09-10 15:19:16 -04:00
Richard Schwab 97fcc3ef66 Correct version_added for strategy host_pinned (#45333) 2018-09-07 09:15:46 +02:00
Ian Wienand c34e0f5e11 plugins/callbacks : fix some key documentation (#45267)
These are supposed to be a dictionary with section/key entries;
correct a few typos.
2018-09-06 15:38:25 -04:00