Commit Graph

2982 Commits (651ea5da446887619f875e354903fe4df27b19f0)

Author SHA1 Message Date
Brian Coca 8e4c56d773 only add group if properly defined
also corrected skip message as this has to do with type, not name

fixes #40850
2018-06-06 19:42:09 -04:00
Sloane Hertel 387c37e255 aws_s3: don't decrypt file before uploading - fixes #39287 (#39634)
* aws_s3: do not decrypt file before uploading to bucket

* changelog
2018-06-06 16:16:16 -04:00
Brian Coca 1a70681630 ensure all config sources for ssh options 2018-06-06 15:11:37 -04:00
Nathaniel Case 49fddb6f28
Expand ios password prompt regex (#41131) 2018-06-06 10:25:29 -04:00
Martin Krizek 23a337918c
first_found: fix examples to match the code (#40821) 2018-06-06 12:45:30 +02:00
Martin Krizek 77e2bd5f8e
Fix inserting noop tasks by using active state (#36056) 2018-06-06 12:34:25 +02:00
Martin Krizek 5f7ffd39dc
Warn when cond is used on meta tasks that don't support them (#41126) 2018-06-06 09:54:25 +02:00
Ganesh Nalawade ba4b12358c
Refactor ios cliconf plugin and ios_config module (#39695)
* Refactor ios cliconf plugin and ios_config module

*  Refactor ios cliconf plugin to support generic network_config module
*  Refactor ios_config module to work with cliconf api's
*  Enable command and response logging in cliconf pulgin
*  cliconf api documentation

* Fix unit test and other minor changes

* Doc update

* Fix CI failure

* Add default flag related changes

* Minor changes

* redact input command logging by default
2018-06-06 11:12:45 +05:30
Toshio Kuratomi cef4d862bc
Better error message if the template is not utf-8 encoded (#41030)
* Better error message if the template is not utf-8 encoded

Also document this in the porting guide
2018-06-05 19:07:11 -07:00
Sam Doran 479b26fe31 Do not try to import simplejson in jsonfile.py (#40983)
With the addition on ajson.py in cbb6a7f4e8, two
new classes were created: AnsibleJSONDecoder and AnsibleJSONEncoder. These
classes are used when calling json.looads() and json.dumps().

This works fine with everything except the jsonfile.py cache plugin, which would
first try to import simplejson as json, then fall back to json. When simplejson
is installed, the load() or dump methods from simplejson are called, which then
try to use the AnsibleJSONEncoder/AnsibleJSONDecoder subclass from ajson.py.
But asjon.py imports json, not simplejson, and things blow up.
2018-06-01 11:24:57 -07:00
Nathaniel Case 70e3a7c9e1
Don't try to reuse ansible_port, it doesn't work that way (yet?) (#41022) 2018-06-01 13:51:34 -04:00
s-hertel c1400ce909 Fix cache timeout behavior 2018-06-01 12:25:04 -04:00
Tim Rupp 8bccd0830b
Re-allow SSH due to broken delegation (#40978)
Removes the SSH enforcement because it breaks situations where, for example,
an admin maintains Ansible Tower and another team needs to use Ansible
with the BIG-IP modules, but the Tower admin does not want to install
the F5-SDK on the Ansible Tower instance.

In this situation, the user needs to delegate the execution of the BIG-IP
module to another linux host that does have the dependencies installed.

Usually this is done with delegation, often over SSH. Limiting the SSH
connection here prevents this from working.
2018-06-01 08:55:50 -07:00
Brian Coca bcabbe33c8 terms 2018-05-31 16:30:47 -04:00
Adam Miller 39f7e055a4 Add ignore_unknown_extensions to include_vars for dir (#35809)
processing to ignore non-valid file extensions

Fixes #35745

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-05-31 15:30:49 -04:00
Nathaniel Case 91fd98a2bd
Complain if API response is not JSON (#40966) 2018-05-31 13:20:17 -04:00
Matt Martz 961484e00d
Add src parameter for uri module that can be used in place of body. Supports binary files (#33689)
* First pass at a src parameter that can be used in place of body. Supports binary files

* Add test for uri src body

* Bump version_added to 2.6

* Close the open file handle

* Add uri action plugin that handles src/remote_src

* Document remote_src

* Remove duplicate info about remote_src

* Bump version_added to 2.7
2018-05-31 11:43:00 -05:00
Trishna Guha 0fd7d7500a
revert 40940 and fix nxos output truncated issue (#40960)
* revert 40940

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* revert #40655 fixes output getting truncated issue for nxos

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-05-31 20:58:45 +05:30
Trishna Guha 5350d0697f
revert #40655 fixes output getting truncated issue for nxos (#40940)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-05-31 18:45:01 +05:30
Sumit Jaiswal 81510970ae
Fix for updating the name in case of host record and network view and also display meaningful error in case of connection timeout (#40597)
* To fix following github issues 35774, 36574 and 39494

* To fix following github issues 35774, 36574 and 39494

* To fix following github issues 35774, 36574 and 39494

* To fix following github issues 35774, 36574 and 39494

* To fix following github issues 35774, 36574 and 39494

* To fix following github issues 35774, 36574 and 39494

* removed old_name new entry to make ui cleaner

* removed old_name new entry to make ui cleaner

* removed old_name new entry to make ui cleaner

* removed old_name new entry to make ui cleaner

* removed old_name new entry to make ui cleaner

* removed old_name new entry to make ui cleaner

* to resolve the bug 40709

* reslove shippable error

* reslove shippable error

* reslove shippable error

* reslove shippable error

* reslove shippable error

* reslove shippable error

* reslove shippable error

* reslove shippable error

* reslove shippable error

* to fix shippable nios automation error

* modified the name input parsing method

* modified the name input parsing method

* modified the name input parsing method

* modified the name input parsing method

* modified the name input parsing method

* modified the name input parsing method

* modified the name input parsing method

* modified the name input parsing method

* modified the name input parsing method

* shippable error fix

* shippable error fix

* shippable error fix

* shippable error fix

* shippable error fix

* review comment fix

* shippable error fix

* shippable error fix
2018-05-31 12:25:15 +05:30
Matt Martz ad7ba91f75 Use _remote_is_local=True for local connection in synchronize (#40833)
* All instances of local connection should use _remote_is_local=True. Fixes #40551

* Switch to instance attribute for synchronize

* Add test that shows that synchronize _remote_is_local addresses tmpdir building
2018-05-30 13:28:11 -07:00
Fabian von Feilitzsch 4d77878654 K8s dynamic collected changes (#40745)
* Move k8s modules to dynamic backend

* update required openshift version

* update -> patch

* use new dynamic client exceptions

* style

* guard urllib3 import

* guard ansibleerror import

* give more information about error cause

* format in variable

* style

* rename tests

* Search for provided kind in a few more places to match old behavior, properly handle failure

* make common code use fail instead of fail_json, to work for lookup plugins as well

* update docs

* move openshift_raw tests into k8s tests

* fix typo

* Use diff of response and resource to determine change, don't do any checking client-side before making requests

* remove duplicate yaml blocks

* Update porting guide for k8s module

* remove invalid doc refs

* If fuzzy searching finds a resource, update resource_definition to match proper kind and version

* remote unsupported openshift_raw variables

* properly check environment variables when determining auth method:
2018-05-30 12:04:48 -05:00
Abhijeet Kasurde 91eb4a034e Use get_option instead of _options.get API
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-05-30 12:05:37 -04:00
Anil Kumar Muraleedharan 8ece8679d8 Lenovo typofix (#40865)
* Changing Lenovo Inc to Lenovo and update License file to be consistent.

* Typo correction of ENOS to CNOS
2018-05-30 15:23:26 +05:30
James Cammarata ee519e0d0a
Add a helper to PlayIterator to recursively find the active state (#40847)
Also fixes a discovered bug in block rescue detection related to inserting
the ansible_failed_{result|task} variables when the rescue is in a nested
block.
2018-05-29 15:48:32 -05:00
Nathaniel Case 20f93816d6
Fix eapi tests to use become (#40838)
* Return the expected prompt character based on become status

* Update eos_banner tests for eapi

* Update eos_config tests for eapi

* Update eos_facts tests for eapi

* Update eos_interface tests for eapi

* Update eos_l3_interface tests for eapi

* Update eos_lldp tests for eapi

* Update eos_logging tests for eapi

* Update eos_smoke tests for eapi

* Update eos_system tests for eapi
2018-05-29 14:18:03 -04:00
Trishna Guha a7421e8611
httpapi fix nxos (#40806)
* httpapi fix nxos

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* nxos_hsrp fix

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-05-29 21:43:34 +05:30
Mike Wiebe 9f026309a6 Update nxos_install_os module (#40102)
* Add nxos_install_os integration tests

* Update call to check timers

* Update check_ansible_timer method

* Modify network_cli integration tests

* Add timer check for nxos_install_os

* Add comments for clear_persistent_sockets

* Update connection info for tests

* More updates

* Restructure files for provider and non-provider testing

* Update env var name and add check for ISSU switchover
2018-05-29 21:07:57 +05:30
Ricardo Carrillo Cruz 026de6bcb0
Command authorization failed ios regex (#40819)
* Add 'Command authorization failed' to stderr regex list

* Add missing comma

* Remove superfluous comma
2018-05-29 14:49:07 +02:00
Adam Miller 78023e79d7
Revert "Move k8s modules to dynamic backend (#39632)" (#40743)
This reverts commit 4373b155a5.
2018-05-26 00:30:16 -05:00
Jesse Pretorius 8690937fb3 Correct the OpenStack plugin example config (#40460)
The current example configuration is not
quite right, so this patch implements a
fix which corrects it

The 'inventory_hostname' argument is removed
as it's the same value as the default.
2018-05-25 18:46:11 -07:00
Artem Goncharov 89ce826a9f retire shade in favor of openstacksdk for openstack modules (#40532)
* Establish connection through openstacksdk
* Switch from shade to openstacksdk
* fix typo in link to openstacksdk
* remove nova_client usage
* further remove of min_version from openstack modules
2018-05-25 18:40:39 -07:00
tranceitionalMynd 04e3c964fb Added executable parameter to the script module (#36969)
* Added interpreter parameter to the script module

* Let required and default parameters get documented implicitly for binary parameter

* Renamed interpreter parameter to executable
2018-05-25 14:40:48 -05:00
james-jra 4a6161bab8 Create a new pipe for sshpass on final retry. Fixes #32238 (#39294) 2018-05-25 12:00:11 -05:00
Felix Schmidt b7b19d139e Add start and end timestamp to task and play result in json callback (#39277)
* Add start and end timestamp to task result in json callback

Currently, the timestamp information is only provided directly by a few
Ansible modules (e.g. the command module, which shows the runtime of a
command per host result).
This change adds an 'overall' time information to all executed tasks. The
delta between both timestamps shows how long it took a task to finish
across all hosts/nodes.

This patch is also proposed for zuul and can be found here:
https://review.openstack.org/#/c/563888

* Add missing timezone information to 'start' and 'end' timestamps

As the datetime.isoformat() function is missing the timezone information,
we assume it's local time.

* Nest 'start' and 'end' timestamps in 'duration' field.

To clarify the purpose of those fields.

* Add 'start' and 'end' timestamps also for plays
2018-05-25 11:19:14 -05:00
provonet 33e1453d5a support url scheme (#39683) 2018-05-25 10:13:48 -04:00
Adrián López 4188c5986b cyberarkpassword: Display.vvvv expects a string (#40335)
'terms' is a list and display.vvvv is especting a string.
2018-05-25 08:11:26 +02:00
Ikuze 56937e8972 Fix problems with virtualbox inventory and composed vars and groups (#37498) 2018-05-24 22:52:14 -04:00
Carl Niger 8414230266 py2/py3 compat fix (#40614) 2018-05-24 15:13:22 -05:00
Alex Stephen dc31809d2a GCP Inventory Plugin (#36884)
* Inventory

* Adding multi project support

* Adding multi project support

* Fixing PR comments and cleaning code

* Adding cache support
* Changed filter notation

* Inventory changes

* Better readability for zones, networks, subnetworks
* Added project to inventory output
* Using IP instead of hostname
* Keyed_groups support
* Use all zones when none provided.

* PR changes

* Doc changes
* Accepts *gcp_compute.yaml file names
* Added support for changing host naming precedent

* PR changes round 2

* Cache changes
* Changed verify_file function
* Misc style changes

* Cache fixes

* Fix docs for `hostnames` option.
2018-05-24 15:36:08 -04:00
Sloane Hertel cba64f5869 Fix inventory plugin cache + add tests (#38229)
* Fix setting the cache when refresh_cache or --flush-cache are used

* Use jsonify function that handles datetime objects in jsonfile cache plugin

* Don't access self._options directly

* Add initial integration tests for aws_ec2 inventory plugin

* Add CI alias

* Fix and add a few more unit tests

* Add integration tests for constructed

* Fix typo

* Use inventory config templates

* Collect all instances that are not terminated by default

* Create separate playbook for setting up the VPC, subnet, security group, and finding an image for the host

Create a separate playbook for removing the resources

* Allow easier grouping by region and add an example

* use a unified json encode/decode that can handle unsafe and vault
2018-05-24 15:34:54 -04:00
Nathaniel Case 0ad4b7b785
Fixes to httpapi for EAPI (#40675)
* Replace errant uses of str

* Hook up become to eapi

* Hook become up to nxapi, too
2018-05-24 14:25:19 -04:00
Trishna Guha c2f7f36fc5
nxos_file_copy network_cli and httpapi fix (#40592)
* Leverage action plugin to pass credentials to nxos_file_copy for network_cli, httpapi

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* update integration test

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* make sure local test uses provider

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* update tests

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* update doc

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* clarify action plugin comment

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* Add connection=local back to nxos_file_copy because that module is weird

Also blacklist it running on nxapi, because that is meaningless

* remove provider

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* blacklist nxapi

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* Address review comment

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-05-24 20:21:18 +05:30
Peter Sprygada d829ff6993 fixes bug with matching nxos prompts (#40655)
This change addresses an issue where the prompt matching regular
expressions would not match a prompt if the hostname starts with a
numeric value.  Before this change, the connection would fail with a
socket.timeout() error.  This change updates the termnal_stdout_re
values to now check for a number.

See Github issue #38639
2018-05-24 19:32:02 +05:30
Dag Wieers d7419b4dbc Do not silently skip YAML groups (#40660) 2018-05-24 09:56:46 -04:00
Nathaniel Case c04d0ebc23
Connection-side, the expection is AnsibleConnectionFailure (#40658) 2018-05-24 09:43:59 -04:00
wiso 160bf82544 Add NETCONF support for SROS devices (#40330)
* added NETCONF support for SROS devices

* corrected alu mapping

* fix pep8 in sros.py

* BOT META file updated
2018-05-24 15:44:39 +05:30
wiso 387a23c3d1 New ansible module netconf_rpc (#40358)
* New ansible module netconf_rpc

* add integration test for module netconf_rpc

* pep8/meta-data corrections

* usage of jxmlease for all XML processing
separation of attributes "rpc" and "content"

* removed unused imports
improved error handling

* fixed pep8

* usage of ast.literal_eval instead of eval
added description to SROS integration test for cases commented out
2018-05-24 15:25:02 +05:30
Martin Krizek 0eece38cdf Fix any_errors_fatal in meta tasks (#36870) 2018-05-23 21:03:31 -05:00
Daryl Tucker 5edc46431a Updates to fileglob Documentation (#40461) 2018-05-24 11:59:42 +10:00
Adam Miller 21feca6683 Docs - add shared snippet note about password prompts for ssh keys (#40633)
* Docs - add shared snippet note about password prompts for ssh keys

Signed-off-by: Adam Miller <admiller@redhat.com>

* add note to ssh connection plugin, fix markup, fix typo

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-05-23 18:01:55 -04:00
SerJ 0ceb717cae Fixed `'HashiVault' object has no attribute 'verify'"}` (#36513) 2018-05-23 16:59:49 -05:00
Jordan Borean 5e28e282a5 winrm: add better exception handling for krb5 auth with pexpect (#39930)
* winrm: add better exception handling for krb5 auth with pexpect

* Added changelog fragment

* Added exception handler in case kinit path isn't valid, added test cases

* fixed for Python 2 compatibility
2018-05-23 13:33:07 -07:00
Jordan Borean 457bccf540 win_updates: add scheduled tasks back in for older hosts (#38708)
* win_updates: add scheduled tasks back in for older hosts

* Fixed up typo in category name error message

* Fixed up some minor issues after merge

* added changelog fragment

* Default to become but add override to use scheduled tasks

* Added basic unit tests for win_updates

* fix minor typos
2018-05-23 13:21:01 -07:00
Matt Clay dff662fa0f Add plugins to ansible-doc test and fix issues. 2018-05-23 13:10:09 -07:00
flowerysong e2c1589201 Add cidr_merge filter (#36081) 2018-05-23 14:35:23 -05:00
Matt Clay 15b6837daf Add yamllint for plugin docs and fix issues. 2018-05-23 09:19:30 -07:00
Matt Martz a5f05c6fc2 [WIP] Start of subelements filter (#39829)
* Start of subelements filter

* Add docs for subelements filter
2018-05-23 11:54:13 -04:00
Nathaniel Case d028a0257a
Change default output of NXAPI to text to match CLI (#40607)
* Default output format for nxapi now 'text'

* Apply json output to both types of input

* Add missing ConnectionError import to cliconf plugins
2018-05-23 10:09:50 -04:00
Matt Clay 8deced3e04
Fix shebangs and file modes and update tests. (#40563)
* Add execute bit sanity test and apply fixes.
* Add shebang test for `lib` dirs and apply fixes.
* Shebang and execute bit cleanup.
2018-05-22 14:25:36 -07:00
Jordan Borean f84f3de7c2
powershell: Respect remote_tmp path set by the user (#40210)
* powershell: Respect remote_tmp path set by the user

* Fixed up linting error and typo

* Added changelog
2018-05-23 07:12:32 +10:00
Ewoud Kohl van Wijngaarden 7145dd05b6 foreman: Fix get_option regression (#40534)
d303c0706c introduced a regression because
of a partial port from _options to get_option. This fixes it.
2018-05-22 15:40:51 -05:00
Sam Doran d5dbd8c76d
EdgeOS module improvements (#39530)
* Update docs and use to_text on strings

* Add warning to use network_cli
2018-05-22 12:22:18 -04:00
Matt Martz ea176427b4 Group logic detecting user, ensure rsync_opts is a list if omitted. Fixes #40483 2018-05-22 11:00:54 -04:00
Nathaniel Case 28f19fc7b3
Fix persistent timeout definitions (#40540) 2018-05-22 11:00:08 -04:00
Ken Celenza dd02a4e943 create cisco type 5 filters (#39901) 2018-05-22 13:35:54 +01:00
Jordan Borean 1ac180c74d
winrm: source user from options than remote_user (#40467)
* winrm: source user from options than remote_user

* fixed up mock for kerberos import

* Added changelog fragment

* get hostname from option as well
2018-05-22 09:36:48 +10:00
Nathaniel Case eb818df1ec
Ios test fixes (#40503)
* Return messages generated from edit_config to module

* This does not seem to work that way

* Change test IP addresses to not conflict with device config
2018-05-21 17:51:21 -04:00
Brian Coca 062f0444a1 remove extra ) 2018-05-21 15:19:13 -04:00
Brian Coca ee95b71f7b reset_connection is not run_once 2018-05-21 15:19:13 -04:00
Abhijeet Kasurde 3b14d2b745 Correct doc for cache plugin
Section is a part of ini, so removing it as separate key.

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-05-21 13:29:03 -04:00
Nathaniel Case 483df13626 Fixing issues with httpapi (#40388)
* I seem to have forgotten the back half of tests

* Set http timeout from persistent_command_timeout

* Tweak URL generation and provide URL on error

* Push var_options to connection process

* Don't wait forever if coming from persistent

* Don't send the entire contents of variables to ansible-connection
2018-05-21 15:58:35 +01:00
Sam Doran 1c20029694
Fix ctrl+c in pause module and add tests (#40134)
* Fix all cases with pause and ctrl+c
 - naked:
	- pause:
 - with prompt
	- pause: prompt=hi
 - time wait
	- pause: seconds=60
 - time wait with prompt
	- pause: seconds=60 prompt=hi


Fixes #35372

* Use curses to control stdout
* Use curses to clear lines on interactive input
* Validate input for echo parameter and fail nicely if invalid
* Add integration tests for pause module using pexpect
* Use try except when trying to determine erase sequence to account for lack of TTY in containers in tests
* Improve output validation for regular paus test
* Accept two digit precision for pause length in test
* Check for seconds when seconds is specificed, minutes when minutes is specified
* Add test for no TTY mode

Co-authored by: Toshio Kuratomi <a.badger@gmail.com>
Co-authored by: Brian Coca <brian.coca+git@gmail.com>
2018-05-21 10:04:43 -04:00
Deepak Agrawal 9e3ad96fa9
rename network_get network_put modules to net_get net_put (#40381) 2018-05-18 14:41:47 +05:30
Nathaniel Case e9d7fa0418
HTTP(S) API connection plugin (#39224)
* HTTPAPI connection

* Punt run_commands to cliconf or httpapi

* Fake enable_mode on eapi

* Pull changes to nxos

* Move load_config to edit_config for future-preparedness

* Don't fail on lldp disabled

* Re-enable check_rc on nxos' run_commands

* Reorganize nxos httpapi plugin for compatibility

* draft docs for connection: httpapi

* restores docs for connection:local for eapi

* Add _remote_is_local to httpapi
2018-05-17 18:47:15 -04:00
Toshio Kuratomi 20b9ca6e7c Rename original_basename parameter in various file-related modules
original_basename is a private internal parameter so name it
_original_basename to reflect that it is internal.
2018-05-17 15:24:56 -07:00
Toshio Kuratomi c8ac02d6f2 Emit a warning when src is used with a state where it should be ignored 2018-05-17 15:24:56 -07:00
Nathaniel Case 90770a290f Don't rewrite remote paths when remote is secretly local (#40259)
* Don't rewrite remote paths when remote is secretly local

* Remote overriding is configurable in connection

* Use c.DEFAULT_LOCAL_TMP instead of remote_tmp

* Remove remote_is_local from ConnectionBase

* remote_is_local->_remote_is_local

* Add warning signs to _remote_is_local and explanatory comments to its use
2018-05-17 23:21:30 +01:00
Scott Buchanan b12cf754f6 1Password lookup plugin (#37207)
* add pytest_cache to gitignore

* onepassword lookup plugin

* fix linter/style test complaints

* second pass at making pycodestyle happy

* use json module instead of jq

* update copyrights, license & version added

* fix python2 compatibility

* doh. fix spacing issue.

* use standard ansible exception

* remove potentially problematic stdin argument

* actually call assertion method

* add support for top-level fields

* make vault uuids pedantically consistent in fixture

* fix new style issues

* ability specify section & correct case handling

* improve error handling

* add onepassword_raw plugin

* Add maintainer info

* Move common code to module_utils/onepassword.py

* Load raw data JSON data for easier use in Ansible

* Put OnePass class back inside lookup plugin

There is no good place for sharing code across lookups currently.

* Remove debugging code in unit tests

* Patche proper module in raw unit tests

* Add changelog entry

Co-authored-by: Scott Buchanan <sbuchanan@ri.pn>
2018-05-17 17:29:47 -04:00
Adam Miller 98a198a777
Handle incorrect data type in list lookup plugin (#35483)
handle incorrect data type in list lookup plugin
Fixes #35481
test to ensure that loops properly handle incorrect datatypes

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-05-17 15:29:36 -05:00
Anil Kumar Muraleedharan 1cb4619c9a Modifying cnos-facts, cnos_command and cnos-config in line with the design followed in Ansible. Adding unit test cases for these modules. Added plugins to support them. (#39955)
* Modifying cnos-facts, cnos_command and cnos-config in line with the design followed in Ansible. Adding unit test cases for these modules. Added plugins to support them.

* Removing doc fragment conflicts with other modules

* Replacing show with display
2018-05-17 10:06:24 -04:00
Ganesh Nalawade 30f992f260
Add netconf_get module (#39869)
* Add netconf_get module

Implements part-1 of proposal #104
https://github.com/ansible/proposals/issues/104

*  Add netconf_get module
*  Refactor `get`, `get_config`, `lock`, `unlock`
   and `discard_changes` netconf plugin api's
*  Add netconf module_utils file which netconf module
   related common functions
*  Refactor junos and iosxr netconf plugins

* Fix source option handling

* Fix review comments

* Update botmeta file

* Update review comments and add support for lock

* Lock update fix

* Fix CI issue

* Add integration test and minor fixes

* Fix review comments

* Fix CI failure

* Fix CI issues

* Fix CI issues

* Fix review comments and update integration test

* Fix review comments

* Fix review comments

* Fix review comments

Fix reveiw comments
2018-05-17 17:38:12 +05:30
Thad Guidry 98579029d7 small grammar improvements to add clarity (#40157) 2018-05-17 14:09:32 +10:00
Tim Rupp 5e7878a6a1
Adds various fixes for f5 modules (#40208)
* Adds stty expansion for cli commands
* minor fixes
* Make bigiq rest client work correctly
2018-05-16 12:14:12 -07:00
John Sutterfield d5a5e37fcf Add fallback check for IAM role temp creds (#40240)
* Add fallback check for IAM role temp creds
2018-05-16 14:27:49 -04:00
Ricardo Carrillo Cruz 5ae77337a1
Rename persistent_connection_timeout to connect_timeout in INI section (#40260) 2018-05-16 19:01:24 +02:00
Toshio Kuratomi ca4147f2cc Fixes #34893 (#40166)
Fixes several bugs exposed in #34893
* Fixes relative path handling in copy so that it splits directories and
  reconstructs the correct file path
* Return failed in the proper circumstances
2018-05-16 11:09:32 -05:00
Fabian von Feilitzsch 4373b155a5 Move k8s modules to dynamic backend (#39632)
* Move k8s modules to dynamic backend
2018-05-16 10:57:36 -05:00
Anil Kumar Muraleedharan f60731e27e Lenovo cli expansion - Modify command acronyms to full commands (#40218)
* Changing Lenovo Inc to Lenovo and update License file to be consistent.

* Editing cli commands to expanded form. Changing username and password fields as per Ansible standards.
2018-05-16 15:25:58 +01:00
Ricardo Carrillo Cruz 62e1c14edc
Pull persistent connection parameters via get_option (#39367)
* WIP Pull persistent connection parameters via get_option

* Fix pep8

* Add use_persistent_connection setting to paramiko_ssh plugin

* Add vars section to persistent_command_timeout setting and prevail provider values over config manager

* Use persistent_command_timeout on network_cli instead of timeout

* Fix unit tests

If we don't call loader to get network_cli, then _load_name is never
set and we get KeyError.

* Pull persistent_command_timeout via config  manager for ios connection local

* Pull persistent_command_timeout via config manager on connection local
2018-05-16 14:59:01 +02:00
Deepak Agrawal 86c945a628
network_put and network_get modules (#39592)
* Initial commit

* Socket Timeout and dest file handler

* sftp handling

* module name change as per review

* multiple thread tmp file overwite problem

* Integration test suite for network_put

* add additional testcase for dest argument

* fix pylint/pep8/modules warnings

* add socket timeout for get_file

* network_get module

* pep8 issue on network_get

* Review comments
2018-05-16 14:38:43 +05:30
vigiroux 0b3ed626b3 empty lines in csvfile means row has no items in list; check row len first. (#40089) 2018-05-15 17:26:53 -05:00
Tobias Wolf 25a48fb89e Allow Unicode chars to be dumped by yaml stdout callback (#40188)
* Allow Unicode chars to be dumped by yaml stdout callback

Allow Unicode in yaml.dumper to support printing strings unescaped with
\uxxx chars.

Cf. https://stackoverflow.com/a/29600111

* Switch from decode('utf-8') to the more compatible to_text()
2018-05-15 15:23:13 -07:00
Sloane Hertel b8a93c12e2 [aws_s3] Fix uploading src option on the target machine to a bucket (#39023)
* Fix backward compatibility for uploading src option on the target machine to a bucket

* Allow the module to handle errors for nonexistent files
2018-05-15 15:36:48 -04:00
Nathaniel Case f04c876ecd
Nxos fixes (#40117)
* Alter nxos_nxapi tests to test the right thing

* Defend #40027
2018-05-15 11:55:47 -04:00
Jordan Borean e0813d7d47
become win: better error messages and docs update (#39936)
* become win: better error messages and docs update

* Fix syntax error and added changelog fragment
2018-05-15 09:33:36 +10:00
Jordan Borean 44ab948e5d
create module tmpdir based on remote_tmp (#39833)
* create module tmpdir based on remote_tmp

* Source remote_tmp from controller if possible

* Fixed sanity test and not use lambda

* Added expansion of env vars to the remote tmp

* Fixed sanity issues

* Added note around shell remote_tmp option

* Changed fallback tmp dir to ~/.ansible/tmp to make shell defaults
2018-05-15 09:31:21 +10:00
Toshio Kuratomi 38ab36a625 Revert "Configurable list of facts modules (#31783)" (#40022)
This reverts commit 95655fae5c.
2018-05-14 13:46:14 -07:00
Martin Krizek 6d984c7988 low_level_execute_command: add stderr_lines 2018-05-14 12:05:03 -04:00
Trishna Guha 5cf61d7401
ios cliconf plugin fix regex for version (#40066)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-05-14 12:40:04 +05:30
Tim Rupp 00a6b19e58
Fixes and additions for f5 modules (#39986)
Small fixes in the f5 module utils. I believe the action plugins now
work consistently across types of connections
2018-05-11 11:45:42 -07:00
Brian Coca 95655fae5c
Configurable list of facts modules (#31783)
* configurable list of facts modules

 - allow for args dict for specific modules
 - add way to pass parameters
 - avoid facts poluting test
 - move to 'facts gathered' flag
 - add 'gathering' setting tests
2018-05-11 13:59:54 -04:00
Martin Krizek b2929f0eba
Fix callback._dump_results to dump vaulted data v2 (#39975) 2018-05-11 07:44:29 +02:00
Toshio Kuratomi 6b6c4914d2 Initial cleanup of file module
* Remove use of six.b as Python-2.6+ have byte literals.
* Make AnsibleModule a global object so we'll have access to it in all
  the functions we're going to break this up into.
* Rework the parameters so things that are in file_common_args are used
  from file_common_args or the reason for deviation is documented.
* Remove validate as a parameter: this should be taken care of by
  removing it from params before the copy and template action plugin
  invoke file.
* Rename diff_peek to _diff_peek as it is an internal parameter.
* add module_name execute_module call to assemble so that it is more greppable
2018-05-10 14:48:28 -07:00
Toshio Kuratomi d994595660 Make the copy module pass correct parameters to file module 2018-05-10 14:48:28 -07:00
Brian Coca cbb6a7f4e8
Enabled unsafe and vault in JSON (#38759)
* allow to load json marked as unsafe or vault

 * centralized json code/decode, add vault support
 * use generics to allow for more varied inputs
 * allow inventory to dump vault w/o decrypting
 * override simplejson also
 * add entry for unsafe also
 * load vaulted and unsafe json, support unvaulting if secrets provided
2018-05-09 14:01:51 -04:00
Andrew Gaffney ff16e993be Fix task banner with 'actionable' callback when using templates in name (#38165)
This fixes #31074.
2018-05-09 13:57:28 -04:00
Nathaniel Case c6270e15a6
Remove provider (and transport, where applicable) from consideration when not using connection=local (#39555)
* Remove provider (and transport, where applicable) from consideration

* Add tests that misplaced transport does not fail task
2018-05-08 12:06:37 -04:00
Trishna Guha f08332acb4
nxos enable mode (#39355)
* nxos enable mode

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* fix prompt

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* Add authorize,auth_pass

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* remove byte string from exec_cli_command

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* Add on_become test

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* removed_in_version

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-05-08 15:31:02 +05:30
Markus Häll 58f9676d4b hashi_vault: fix for : in secret name (#39820) 2018-05-08 07:54:25 +02:00
Stephan Lohse 1e4c389268 allow become methods for Jail connection plugin (#31746)
* allow become methods

- i personally tested 'su', 'sudo' and 'doas'

* forgot to import constants m(
2018-05-07 21:30:24 -04:00
Matt Martz efff75389d
Use updated task, instead of original, non-merged included_file._task (#39762)
* Used updated task, instead of original, non-merged included_file._task. Fixes #39637

* Add changelog entry
2018-05-07 10:01:35 -05:00
Ganesh Nalawade 0ac222d68b
Fix nxos terminal plugin regex (#39659)
Fix nxos terminal plugin regex to match
command prompt without newline character as prefix
2018-05-07 09:06:00 +05:30
Jordan Borean fc210a4584
base64 filter: Added ability to specify encoding (#39714)
* base64 filter: Added ability to specify encoding

* Added unicode chars for further testing

* Removed errors to keep previous behaviour in place

* Removed surrogate pairs due to issues loading YAML in CI
2018-05-05 09:16:58 +10:00
Abhijit Menon-Sen 0a119c391a Only expand '~' based on become_user/remote_user
Change brought forward from #00c023e in stable-2.5.

Closes #39281 (bug report)
Closes #39540 (PR with substantially the same change)
2018-05-02 22:50:41 +05:30
Brian Coca 70d89b5487 use actual ssh executable as it might not be ssh 2018-05-02 12:10:25 -04:00
Ganesh Nalawade eb5e15e7e0
Fix fetching ios default running config (#39475)
If default option is enable in that case only
add 'all' or 'full' flag
2018-05-02 19:27:56 +05:30
Yanis Guenane dc420fc5fa Allow non-inclusion of setup task in junit report
The JUnit callback pushes every tasks in the report. Even the setup
tasks that - sometime - might clutter the report rather than being
useful, based on one needs.

This PR allows one to specify whether or not the setup tasks should be
part of the final report, defaulting to True to be backward compatible
to what is already in place today.
2018-05-02 00:00:36 -07:00
Jordan Borean 04ae0c3312
winrm: removed old exec_command that is no longer used (#39572) 2018-05-02 07:04:53 +10:00
Dag Wieers e9270fb100 mail callback: Exception info less important
So it seems on failure the last raised (but handled) exception is being
added to the task failure result, which makes it often unrelated to the
actual failure.

Since we assumed the exception was always related, using the exception
information for the subject is plain wrong (and let me to debug
completely unrelated ghost issues).

Also the exception details are now moved back in the output. Maybe we
should not show it unless there's no other information ? But at least it
should not be the mail's subject.
2018-04-30 21:45:10 -04:00
Ikrom b667126d35 Update example in lookup dict.py (#39488)
Typo fixed
2018-04-30 16:06:58 +05:30
Toshio Kuratomi 2976b653ce Need to convert filenames to byte strings before using them in APIs
Under a non-utf-8 locale (for instance, LC_ALL=C), passing a non-ascii
filename to many APIs will traceback.  Fix that by explicitly converting
to byte strings before passing to external APIs.

May fix #27262
2018-04-28 08:56:36 -07:00
Pilou 019decd29a doc: Add missing parenthesis in first_found example (#39420) 2018-04-28 14:59:07 +02:00
Jordan Borean 25dea1f72c Change except Error when trying to get a missing option 2018-04-27 09:47:18 -04:00
jctanner bbfe7a8b2f
more debug logs for free, network_cli, paramiko and add hostname context to debugging messages (#39205)
* Add hostname context to debugging messages
* Set paramiko's channel
2018-04-26 17:10:28 -04:00
Martin Krizek 5dd8977cfa Fix nested noop block padding in dynamic includes (#38814)
* Fix nested noop block padding in dynamic includes

* Address issues from the review

* Fix typo
2018-04-26 15:14:31 -05:00
Brian Coca d76298b5d3 call diff callback also when task diff is true (#39366)
fixes #31129
2018-04-26 12:18:17 -04:00
Toshio Kuratomi 83c1cba511
Fixes for mode=preserve (#39343)
* Fixes for mode=preserve

* Document mode=preserve for template and copy
* Make mode=preserve work with remote_src for copy
* Make mode=preserve work for template
* Integration tests for copy & template mode=preserve

Fixes #39279

* Changed mode option in win_copy to hidden option as it doesn't reflect copy mode
2018-04-26 07:14:37 -07:00
Matt Clay 32d786af65 Convert more http links to https. 2018-04-25 23:12:46 -07:00
Ganesh Nalawade 354454ad58
Fix aruba initial prompt issue (#39195)
Fixes #33414

Issue a newline when the initial connection
results in a prompt and expects user input.
2018-04-26 11:06:27 +05:30
Toshio Kuratomi 0b643009db Winrm encoding in exception fix (#39333)
Exceptions need to use native strings.  We need to make sure we're
combining native strings with native strings.
2018-04-26 07:51:53 +10:00
Rémy Léone e45a5e1c86 Add a Scaleway dynamic inventory plugin (#38739) 2018-04-25 13:35:54 -04:00
Brian Coca 4aac0f5f18
allow configuring sftp/scp executables (#36648)
* allow configuring sftp/scp executables

fixes #36616


also removed dupe test
2018-04-23 18:36:35 -04:00
Matt Martz e79823191a
Add cgroup_memory_recap callback plugin used to profile memory (#38675)
* Add cgroup_memory_recap callback plugin used to profile memory

* Add uuid of task to output
2018-04-23 14:54:36 -05:00
Brian Coca 01e7f44e0d fixy typo 2018-04-23 15:46:15 -04:00
Brian Coca fe5e6d74af better handle appending \n on stderr
fixes #39007
2018-04-23 15:46:15 -04:00
Matt Clay c262dbfd30 Use https for links to ansible.com domains. 2018-04-23 11:33:56 -07:00
Rafael Vencioneck 0d1e9bfe90 Adding exos_command cli_conf module (#37775)
* Adding exos_command cli_conf module

* fixing documentation, indentation and metadata_version

* removing doc fragmentation and adding required import

* removing unnecessary code and including company name on short_description

* updating BOTMETA.yml with exos module information
2018-04-23 23:23:09 +05:30
Toshio Kuratomi f332151f59 Fix copy to only follow symlinks for files in the non-recursive case
Revert "**Temporary**"

This reverts commit 28b86b1148.

We don't need this now that copy has been fixed
2018-04-20 10:04:24 -07:00
Ganesh Nalawade eebfa66c2b Fix ios and iosxr terminal prompt regex (#39063)
Fixes #38732

Make matching leading newline for cli prompt
optional as there are cases when returned repsonse
for ios/iosx remote host doesn't have newline before
cli prompt.
2018-04-20 10:20:13 -06:00
Sumit Jaiswal fd50248463 nios lookup errors out when there are no results #37970 (#39027)
* Update nios.py

* Update nios.py

* Update nios.py

* nios lookup errors out when there are no results #37970  Open	

Indentation failure issue resolved

* Returning empty list instead of None

In case of no results, res will be returned as an empty list instead of None (implementing ganeshrn comment)
2018-04-20 09:14:47 -06:00
Brian Coca 11c40bcbda forman as inv plugin
updated with newer methods
fixed ssl name to match ansible convention
more options for host info
added vars_prefix
added comments explaining current flow
reformated commentd out code so pep8 can be happy
enabled caching
2018-04-19 17:07:47 -04:00
Thomas Krahn 7320d29851 Update tree.py
Fix wording (commadn instead of command)
2018-04-19 15:51:06 -04:00
Abhijit Menon-Sen ede1d6158a Fix typo(-ish)
The «if err» test always passed after #cf938e99926 changed the earlier
assignment to always set err to "\n" if stderr was empty, and so every
script plugin (e.g., ec2.py) started to always report an empty ERROR.
2018-04-19 22:27:48 +05:30
John R Barker c1ae1c8251
Fix broken yaml (#38966) 2018-04-18 20:54:14 +01:00
Martin Krizek 8173602a34
Add expandvars jinja2 filter (#38805)
* Add expandvars jinja2 filter

* Add docs

* Minor edit
2018-04-18 09:29:19 +02:00
Nathaniel Case 3b3c72f3e5
Fix use of bytes in cliconf plugins for Python 3 (#37715)
* Remove raw byte-strings from cliconf plugins of supported platforms + edgeos

Remove uses of to_bytes, too

* Update CliConfBase docstring to reflect current position on byte strings
2018-04-17 10:15:21 -04:00
Jordan Borean f1c16438c1
win_updates: fix when failed is not present in output (#38856) 2018-04-17 10:45:53 +10:00
Brian Coca bdbb89378f
centralize doc/config plugin lists (#38775)
* centralize doc/config plugin lists

also update list for generation in docsite
added note to ensure they are in sync

* updated shell page to list plugins

added some more docs hinting at plugins being configurable

* fix edit link for plugins
2018-04-16 09:29:49 -04:00
Sébastien Portebois f2b65fc5fe Fix documentation for aws_ssm and aws_ssm_parameter_store (#38352)
Fix typos aws ssm vs aws_ssm and quotes
2018-04-14 13:29:47 +10:00
Trishna Guha ed25b56772
Pattern to catch string post to ERROR nxos terminal plugin (#37237)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-04-13 06:55:49 -04:00
Ganesh Nalawade 88662d0c56
Fix in eos get_config cliconf api (#38682)
If format is passed as None to get_config api, wrong command is
genereted ie. `show running-configuration | None | section interface`.
Add format type in command only if format value is either not `text`
or  `None`.
2018-04-13 13:20:23 +05:30
Maxim Kurganskiy 9f3491d035 Examples: Edit mistake (#38657) 2018-04-12 10:04:32 -04:00
Ewoud Kohl van Wijngaarden d303c0706c Make the foreman callback more defensive (#36527)
* Foreman: Make the foreman callback more defensive

This ensures the ssl_verify attribute is always set. It also handles
None in _disable_plugin.

* Foreman: Handle ints in verify_certs

The default value for verify_certs is 1 which is an int. That has no
lower() function. By casting it to a str we can handle it later in
_ssl_verify().

* Foreman: Clean up coding style

* Foreman: Use get_option in favor of _plugin_options
2018-04-12 09:58:57 -04:00
Ryan Currah 91da1653e0 Added sumologic callback plugin (#38297)
* Added sumologic callback plugin

* Better comments
2018-04-12 00:34:48 -04:00
Will Thames 3b74dc2f6e Improve aws_ec2 plugin documentation (#37689)
* Better formatting
* More examples
2018-04-11 23:01:18 -04:00
flowerysong b345b79dcd aws_ec2 inventory: add support for tag values as hostnames (#35880) 2018-04-11 19:34:06 -04:00
Sam Doran 90a7b3bef3
Change version added to 2.5.1 (#38604)
A bugfix backported to 2.5 also contained the new toggle option. The release
manager approved backporting this added feature to the dot release, so updating
devel to accurately reflect when the fetaure was added.
2018-04-11 17:52:27 -04:00
Brian Coca 6ef389617a
check types for template parameters (#37257)
this should give a better error than when failing on random methods when parameters where the wrong type.
2018-04-11 14:00:18 -04:00
Brian Coca cc1c7c63db
ensure 'home' translations (#36755)
* ensure 'home' translations

* removed slash as it created issues on diff plats
2018-04-11 11:53:05 -04:00
Samer Deeb 0d79268a6d issue:38321 fix onyx_config module failed while using python = 3.5 (#38343) 2018-04-11 08:01:54 -06:00
Matthew Stone 5b1a8ee1e8 Adding slx_command module and supporting module_utils. (#38235)
* Adding slx_command module and supporting module_utils.

This commit adds the slx_command module and tests as well as the
required slxos module_utils.

* Update copyright in header

* Adding missing module init

* Cleaning up shebangs/licensing.

* Incorporating feedback

Removing reference to `waitfor` alias in `slxos_command` module.
Adding `Extreme Networks` to `short_description` of `slxos_command` module.

* Adding cliconf tests

* Fixing 3.X tests

* Adding docstrings to test methods for slxos cliconf tests

* Adding slxos terminal tests

* Adding slxos module_utils tests

* Adding Extreme Networks team members to BOTMETA.yml
2018-04-11 12:59:34 +01:00
Ganesh Nalawade 16c2d3717e
Add junos connection type check (#38527)
junos_netconf works only with connection=netconf
Add check to report appropriate error if any other
connection type is used.
2018-04-11 12:07:56 +05:30
Brian Coca 886c4edfb9
avoid caching invetnory sources in loader (#38242)
* fix inventory plugin source caching

 - avoid caching invetnory sources in loader in base
 - same fix for yaml plugin
 - idem for 'auto' plugin

fixes #37162

* fix mock dataloader func sig
2018-04-10 22:15:52 -04:00
Brian Coca 399cba1c84 dict2items filter 2018-04-10 18:46:30 -04:00
Brian Coca 32cf79c044 show changed in online 2018-04-10 17:25:24 -04:00
Brian Coca 42912e1ac8 minimize loading files/plugins
avoids some repetitive loading
 - read config file only once
 - now cache the ini parser per file
 - optimize shell plugin loading

tried to 'optimize' vars_plugins loading but it creates issues with precedence,
probalby due to iterator not being reset, will look into it in subsequent fix/PR
2018-04-10 17:22:31 -04:00
Brian Coca eef70d028f
restrore showing stderr on script success (#38177)
* restrore showing stderr on script success

accidentally removed during transition to plugin, with toggle for those
who prefer the quiet way

fixes #33776

* stderr display if no other errors capture first
* fixed issue with error encoding
2018-04-10 17:16:12 -04:00
Andrew Gaffney 95ce00ff00 Allow loading dirs from role defaults/vars (#36357)
This commit moves code to look for vars files/dirs to a common place and
uses it for loading role defaults/vars. This allows things such as
'defaults/main' or 'vars/main' being a directory in a role, allowing
splitting of defaults/vars into multiple files. This commit also fixes
the role loading unit tests for py3 when bytestrings are used for paths
instead of utf8 strings.

This fixes #14248 and #11639.
2018-04-10 17:14:38 -04:00
Brian Coca c679186f17 better handling of diff key types in compose
also made separator configurable
fixed some exception types
better error msgs
2018-04-10 15:15:52 -04:00
Matt Martz f1082af73f
Error if a module is found to shadow a reserved keyword (#34649)
* Error if a module is found to shadow a reserved keyword

* Add test for shadowed module

* Bring in functools.wraps for the decorator

* Drop the decorator, make _find_plugin the real function, find_plugin now holds the shadow logic

* Swap order of functions for bottom to top execution order

* Only error for modules

* Add test for loading a lookup plugin that shadows a keyword
2018-04-10 09:26:27 -05:00
Jordan Borean 22f2388ef1 winrm: added flag handler for kinit to request forwardable ticket when delegation is set (#37815) 2018-04-09 18:00:19 -07:00
Jordan Borean ccc56e138a
win_updates: handle if module failed to run (#38363) 2018-04-10 05:25:25 +10:00
David Resnick 283ccaa252 lastpass filter: add example 2018-04-09 14:20:21 -04:00
Ganesh Nalawade e10e0d42d8
Fix junos transport check (#38460)
For connection=local check only if the transport value in
provider is cli and the respective module support cli
transport. If not report back appropriate error message.
2018-04-09 16:22:09 +05:30
Brian Coca 42d15671d0
clarifying docs with first_found (#36951)
better examlpes as this was never really a task loop, but contained inside the lookup itself
2018-04-06 17:19:15 -04:00
Nathaniel Case e05cad785e
Fall back to ValueError if JSONDecodeError is not available (#38276) 2018-04-06 16:28:39 -04:00
Jordan Borean 71e8527d7c powershell: display non-ascii characters in command outputs (#37229) 2018-04-05 14:59:51 -07:00
Martin Krizek 92bb3c2788 Fix grafana CALLBACK_VERSION 2018-04-04 11:26:22 -04:00
Colin Rymer 893b4e9116 Fix spelling of "lookup" across docs and src comments
PR #38273 by @colinrymer
2018-04-04 15:52:55 +02:00
John R Barker a4e932ee9f ansible_ssh_pass is the ENV variable (#38035)
* ansible_ssh_pass is the ENV variable

* ansible_ssh_pass then ansible_password

* priority is top(lower)->bottom(higher)
2018-04-04 07:45:57 -06:00
Daniel Andrei Mincă 19ca1b2b8a Fix typo in Slack Callback plugin (#38268)
`get_options` is an undefined method from CallbackBase

As a result, remove the trailing `s` letter.

Signed-off-by: Daniel Andrei Minca <mandrei17@gmail.com>
2018-04-04 15:29:49 +02:00
Ganesh Nalawade 3a4fc4af08
Add error handling for junos in case wrong connection type (#38023)
* Add error handling for junos in case wrong connection type

Fixes #37990

If a junos module doesn't support given connection/transport type
return appropriate error message.

* Fix CI issues

* Fix review comment
2018-04-04 09:54:47 +05:30
Rémi REY 71699d5140 Introduce grafana callback plugin. (#34246)
* Introduce grafana callback plugin.

The grafana plugin plublishes annotations to the HTTP API available in
Grafana 4.6+

The callback publishes:
* An annotation on playbook start, tagged with "ansible",
 "ansible_event_start" and playbook name, example:

```
{
    "text": "Started playbook test.yml\n\nFrom 'pc45.home'\nBy user 'remirey'\n",
    "tags": ["ansible", "ansible_event_start", "test.yml"],
    "time": 1514291163000
}
```

* An annotation on error containing the host and task who failed and
  tagged with "ansible", "ansible_event_failure" and playbook name, example:

```
{
    "text": "Playbook test.yml Failure !\n\nFrom 'pc45.home'\nBy user 'remirey'\n\n'TASK: simulate failure' failed on localhost\n\ndebug: {\"changed\": false, \"msg\": \"Some random failure\"}\n",
    "tags": ["ansible", "ansible_event_failure", "test.yml"],
    "time": 1514291165000
}
```

* A region annotation emitted on playbook stats, tagged with "ansible",
  "ansible_report" and playbook name, example:

```
{
    "text": "Playbook test.yml\nDuration: 1.641703\nStatus: FAILED\n\nFrom 'pc45.home'\nBy user 'remirey'\n\nResult:\n{\"localhost\": {\"unreachable\": 0, \"skipped\": 0, \"ok\": 2, \"changed\": 1, \"failures\": 1}}\n",
    "tags": ["ansible", "ansible_report", "test.yml"],
    "isRegion": true,
    "timeEnd": 1514291165000,
    "time": 1514291163000
}
```

Fixes #34225
2018-04-03 18:51:52 -04:00
Peter Sprygada 91a748e33b fixes issue when netconf would report ios is not supported (#38155)
* fixes issue when netconf would report ios is not supported

This change now will map ansible_network_os=ios to the correct netconf
plugin implementation.  This will resolve an error where the netconf
connection plugin will report that ios is unsupported.
2018-04-03 17:01:59 -04:00
Matt Martz ddf937d642
Don't pass keyword args as positional, include file_name. Fixes #38190 (#38194) 2018-04-03 09:59:13 -05:00
Artem Tiumentcev 082b03c829 fix set options in callbacks for foreman 2018-04-02 12:17:39 -04:00
Jim Gu 5839f07e0f yaml callback fails on python3
When the URI module returns complex JSON objects, the YAML callback
fails while trying to represent these objects.  The problem arises
because the filter method returns an iterator in Python 3, rather than a
str object.  Therefore, the str method expandtabs() is not available,
and the callback fails with the following error:

[WARNING]: Failure using method (v2_runner_on_failed) in callback plugin (<ansible.plugins.callback.yaml.CallbackModule object at 0x7f7c7ed8aa20>): 'filter' object has no attribute 'expandtabs'

Issue can be replicated by running this playbook:

- hosts: localhost
  gather_facts: false
  tasks:
    - uri:
        url: https://jsonplaceholder.typicode.com/posts

ansible-playbook tmp.yml -v
2018-04-02 11:41:00 -04:00
René Moser 28ce3c2329
doc: inventory: nmap: fix version added (#38157) 2018-03-31 11:45:12 +02:00
Brian Coca 5e2f215dd7 Nmap inventory (#32857)
* nmap inv plugin draft

* more accurate regex

* fix format
2018-03-29 17:16:36 -04:00
Pilou 7908f78fa6 module_common: handle None value for templar (#36651)
* module_common: set required parameter templar

Fix the following error (related to b455901):

  $ ./hacking/test-module -m ./lib/ansible/modules/system/ping.py -I ansible_python_interpreter=/usr/bin/python
  Traceback (most recent call last):
    File "./hacking/test-module", line 268, in <module>
      main()
    File "./hacking/test-module", line 249, in main
      (modfile, modname, module_style) = boilerplate_module(options.module_path, options.module_args, interpreters, options.check, options.filename)
    File "./hacking/test-module", line 152, in boilerplate_module
      task_vars=task_vars
    File "ansible/lib/ansible/executor/module_common.py", line 910, in modify_module
      environment=environment)
    File "ansible/lib/ansible/executor/module_common.py", line 736, in _find_module_utils
      shebang, interpreter = _get_shebang(u'/usr/bin/python', task_vars, templar)
    File "ansible/lib/ansible/executor/module_common.py", line 452, in _get_shebang
      interpreter = templar.template(task_vars[interpreter_config].strip())
  AttributeError: 'NoneType' object has no attribute 'template'

* module_common.modify_module: templar is required
2018-03-29 13:54:48 -04:00
Deepak Agrawal 66b389a00d
show version brief does not work on iosxr virtual (#37609)
* show version brief does not work on iosxr virtual

* ci failures fix
2018-03-29 12:33:41 +05:30
Benoit Perroud 710db82930 flattened: doc: Typo in lookup example (#38006) 2018-03-28 08:25:40 +02:00
Jordan Borean b1ac65d95a
win_copy: added fix for win_copy deleting local tmp folder (#37964) 2018-03-27 16:20:10 +10:00
Jordan Borean c4e7b54630
win_reboot: fixed up warning message for dep args (#37898) 2018-03-27 13:03:07 +10:00
Toshio Kuratomi a82fea65c1 We need to save the basename into an attribute for calling code 2018-03-26 16:15:05 -07:00
Matt Martz 6051ef4041
Revert accidental addition of Mapping in #37741 (#37939) 2018-03-26 13:57:56 -05:00
Matt Martz ffbbb5a25b
Use arg_spec type for comparisons on default and choices (#37741)
* Use arg_spec type for comparisons on default and choices

* Further improve type casting

* Make sure to capture output in more places

* Individually report invalid choices

* Update ignore.txt after resolving merge conflicts
2018-03-26 12:15:32 -05:00
Nathaniel Case 169209c32a
Put back $PATH checking in ansible-connection call (#37933) 2018-03-26 12:49:30 -04:00
Matt Martz 0dcd8b598c
Don't assume that self._task.action is copy, explicitly set. Addresses #37238 (#37777) 2018-03-26 10:04:06 -05:00
Ganesh Nalawade 8eaa9cc938
Fix junos modules check_mode issue (#37311)
Fixes #37208

If check_mode is enabled instead of committing th config need to
discard all the chnages to cnadidate db
In case of cli to discard changes issue `rollback 0` command
and for netconf execute `discard-changes` rpc call
2018-03-26 07:27:30 -04:00
Eric Brown e95e9de235 Typos in the yaml inventory plugin
This patch fixes up some English typos in the yaml inventory
plugin documentation.

* s/specifically/specific
* s/as/as an

Signed-off-by: Eric Brown <browne@vmware.com>
2018-03-23 18:01:40 -04:00
Alex Tsitsimpis c3ab6cb9b1 template: Add option to `lstrip_blocks' and fix setting`trim_blocks` inline (#37478)
* template: Add integration tests for `lstrip_blocks'

Signed-off-by: Alex Tsitsimpis <alextsi@arrikto.com>

* template: Fix passing `trim_blocks' inline

Fix passing `trim_blocks' option to the template module as inline
argument. Previously passing the `trim_blocks' option inline instead of
using the YAML dictionary format resulted in it always being set to
`True', even if `trim_blocks=False' was used.

Signed-off-by: Alex Tsitsimpis <alextsi@arrikto.com>

* template: Add option to `lstrip_blocks'

Add option to set `lstrip_blocks' when using the template module to
render Jinja templates. The Jinja documentation suggests that
`trim_blocks' and `lstrip_blocks' is a great combination and the
template module already provides an option for `trim_blocks'.

Note that although `trim_blocks' in Ansible is enabled by default since
version 2.4, in order to avoid breaking things keep `lstrip_blocks'
disabled by default. Maybe in a future version it could be enabled by
default.

This seems to address issue #10725 in a more appropriate way than the
suggested.

Signed-off-by: Alex Tsitsimpis <alextsi@arrikto.com>

* template: Add integration tests for `trim_blocks'

Signed-off-by: Alex Tsitsimpis <alextsi@arrikto.com>

* template: Check Jinja2 support for `lstrip_blocks'

Since the `lstrip_blocks' option was added in Jinja2 version 2.7, raise
an exception when `lstrip_blocks' is set but Jinja2 does not support it.
Check support for `lstrip_blocks' option by checking `jinja2.defaults'
for `LSTRIP_BLOCKS' and do not use `jinja2.__version__' because the
latter is set to `unknown' in some cases, perhaps due to bug in
`pkg_resources' in Python 2.6.6.

Also update option description to state that Jinja2 version >=2.7 is
required.

Signed-off-by: Alex Tsitsimpis <alextsi@arrikto.com>
2018-03-23 12:05:21 -04:00
Fredrik Holmberg e06f3463fd Typo in ipaddr filter (#37592)
interger = integer
2018-03-23 11:06:53 +01:00
Toshio Kuratomi 0633f73faf Fix loader for filters (#37748)
* Fix loading of filter and test plugins

Filter and test plugins are different than other plugins in that they
can have many plugins in a single file.  Therefore they need to operate
a little differently.  They need to have all of the potential files
returned.  Then the caller takes care of passing those onto jinja2 in
order for jinja2 to make use of them.

This problem was (most recently) introduced with f921369445

This commit also restructures how we deduplicate plugins to take paths
into account.  If we want to start scoping which set of modules are
loaded (due to roles, for instance) we'll need to hang on to the path
information.

* add integration test for override

* Fix style checks for bcoca code

* Implement jinja2 plugin loader as a subclass

Having a subclass allows us to customize the overriding of jinja
plugins.  We can then move common parts of common code into the Loader.
2018-03-22 17:23:10 -04:00
Will Thames 9802088082 New generator inventory plugin (#37690)
* New generator inventory plugin

Allows construction of hosts and groups through cartesian
product of various group combinations

* Add generator plugin documentation
2018-03-22 09:32:15 -04:00
Nathaniel Case 6aed74a97d Fix edgeos_config: {backup: yes} (#37619)
* Fix edgeos_config: {backup: yes}

* Add actual plugin copy
2018-03-21 12:48:09 -04:00
Ludek Finstrle 81cfbbbeb9 constructed inventory does not use group variables from previous inventory #37397
* Add support for loading invenotry group variables in constructed plugin
2018-03-20 18:26:27 -04:00
Toshio Kuratomi 09325b619e
Fix csvfile traceback on Python3 (#37625)
* Fix csvfile traceback on Python3

The csvfile lookup uses some custom iterators.  These needed to be
ported to handle the python3 iterator protocol.  In addition, the
csvfile module takes an iterator of byte strings in Python2 and an
iterator of text strings in Python3

Fixes #36808
2018-03-20 12:58:51 -07:00
Matt Martz 6c3e565ba3
Fix py3 issue in wait_for_connection (#37646) 2018-03-20 11:21:19 -05:00
Matt Martz b95b077993 Restore skipped/failed in JSON callback, add custom facts (#37204)
* Restore skipped/failed keys. Fixes #37050

* Display custom stats. Fixes #37184

* Add version_added

* Drop fallback, use self.get_option

* Remove unused import
2018-03-20 10:32:33 -04:00
Andrew Gaffney 0d0bdbec62 Load plugin config defs on first load only (fixes #37553) (#37584) 2018-03-19 13:34:15 -04:00
Nathaniel Case 594840c1d6
Close & remove paramiko connection where appropriate (#37528)
* Close & remove paramiko connection where appropriate

* Update unit test
2018-03-16 13:28:04 -04:00
Dag Wieers cdd21e2170
Clean up module documentation (#36909)
* Clean up module documentation

This PR includes:
- Removal of `default: None` (and variations)
- Removal of `required: false`
- Fixing booleans and `type: bool` where required

* Fix remaining (new) validation issues
2018-03-15 22:15:24 +01:00
Nathaniel Case 85cc5ea129
Raise error when trying to use older iosxr modules with netconf (#37423) 2018-03-15 12:49:35 -04:00
Mans Matulewicz 6292fe1116 small typo fix
small typo fix
2018-03-15 11:01:32 -04:00
mikedlr c2a063a5c0 aws ssm parameter lookup - testing and documentation around negative and failure cases (#36550) 2018-03-09 12:30:33 -05:00
Jordan Borean 708869edd6
win: handle non string as an environment value (#37215)
* win: handle non string as an environment value

* Changed powershell environment handler to use .net function instead for special chars
2018-03-09 08:02:54 +10:00
bdowling 0fee332643 Added missing store regex pattern for prompt found after error (#35820) 2018-03-07 09:35:35 -05:00
Nathaniel Case f0dc0b28d4
Fix side-effect of flags being passed to ios get_config again (#37084) 2018-03-06 13:55:36 -05:00
Anil Kumar Muraleedharan 23f15e6ff6 Lenovo license update (#36840)
* Editing the License text after Review of Lenovo Legal team.
2018-03-06 18:02:46 +00:00
David Newswanger 905b3e2f65
fix NIOS DNS lookup example (#36737) 2018-03-05 13:52:02 -05:00
Nathaniel Case 7016b3b9ca
ios_static_route idempotence fix (#35912)
* Remove default admin_distance and fix the idempotence thereof

Fixes #33290

* Fix tests and use yaml anchors to shorten tests

* Add test for undefined admin_distance

* Read config from `show run` if `show ip static route` fails

* Restore flags to ios.get_config &  use get_config where appropriate
2018-03-05 09:28:37 -05:00
Nathaniel Case 0feea66988
Move _start_connection() to module_utils/connection and fix Popen() call (#36249)
* Fix Popen() call to use ansible python

* Remove PATH searching, reuse location of ansible instead
2018-03-05 09:12:01 -05:00
Peter Sprygada 6cbc69447b adds fix for terminal plugins 2018-03-05 08:54:40 -05:00
Peter Sprygada 18d605a132 ugh q 2018-03-05 08:54:40 -05:00
Peter Sprygada d1ff03e84c fixes cliconf and netconf plugin loaders
This change updates the configuration and plugin loader objects for
cliconf and netconf to pull be able to configure where to find the
plugins.
2018-03-05 08:54:40 -05:00
abirami-n 4021194532 Fix_regex (#36569) 2018-03-05 06:30:37 -05:00
Ganesh Nalawade b12e90311f
map network_os to ncclient device_params (#36819)
* map network_os to ncclient device_params

Fixes #36786

* update device map

* Add default netconf fallback plugin
2018-03-01 22:23:14 +05:30
Ganesh Nalawade 41d75783b5
Fix junos_command py3 related issues (#36782)
Fixes #36204

*  tostring() input string shoulb be in byte string format
*  to_ele() input is required in unicode format
2018-03-01 12:09:11 +05:30
Brian Coca 809106ba77 fix unixy when debug's msg is not text (#36882)
fixes #36850
2018-03-01 09:23:39 +10:00
Alex Ratner c2feab0606 fix plugin-to-doc naming mismatch, typos, grammar (#36366) 2018-02-26 14:25:28 -08:00
Peter Sprygada fb6a8c0133
fix cliconf get_config method to match base signature (#36682)
This commit fixes up the get_config method to match the minimum method
signature as defined by the base class.  Without this patch, the
get_config method calls will fail in some cirumstances.
2018-02-26 10:56:22 -05:00
Dag Wieers 07e8fb5dbb
Windows: Clean up documentation (#36684)
This PR includes:
- Further cleanup of BOTMETA.yml
- Cleanup of author github handles
- Use of proper booleans
- One-line license statement
- Copyright format statement
- Smaller cleanups
2018-02-25 03:09:54 +01:00
Brian Coca 2f13ddbd69
debug should have item (#36534)
* debug should have item

* item should only be present when var
2018-02-23 15:12:14 -05:00
Sloane Hertel 73fd593d45
aws_ec2 inv plugin: remove extra call to verify_file (#36588)
* Remove extra call to verify_file

* Allow next inventory plugin to be tried if the file isn't verified
2018-02-22 12:10:47 -05:00
Matt Martz 10fefc7156
Re-use logic from StrategyBase._load_included_file in StrategyModule.run for free and linear (#36470)
This improves include_role performance and recursion limits
2018-02-21 09:53:15 -06:00
mikedlr 52f2057472 aws ssm parameter lookup - change to return Nones for missing variables (#36456)
* aws ssm parameter lookup - change to return Nones for missing variables

* aws ssm parameter lookup - fix error case message to dump response

* aws ssm parameter lookup - fix integration test cases
2018-02-21 06:50:00 -05:00
Jordan Borean df8a5d7a4f
fetch: set fail_on_missing: True as default as per docs (#36469)
* fetch: set fail_on_missing: True as default as per docs

* Updated docs for fetch to say behaviour was changed in 2.5 and updated tests
2018-02-21 18:10:23 +10:00
Trishna Guha d5858bbcbe
fail module when config is invalid and jsonrpc doesn't return error (#36482)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-02-21 12:36:10 +05:30
Brian Coca a79378fccb remove extra fields from debug output
fixes #35493

updated tests
2018-02-20 08:46:05 -05:00
Brian Coca 6af5693dc2
hide uneeded fields for callbacks (#36259)
* hide uneeded fields for callbacks

fix selective instead of pushing uneeded fields to the methods

* piipii
2018-02-20 08:41:18 -05:00
Sloane Hertel b39534201f [cloud] If inventory file isn't able to be parsed by aws_ec2, raise an AnsibleParserError (#36387)
* If inventory file isn't able to be parsed by aws_ec2, return an empty dict instead of None

* Raise an AnsibleParserError instead

* remove extra lines

* aws_ec2 inventory plugin - fix path matching logic
2018-02-19 17:12:56 -05:00
Toshio Kuratomi edaeb69a35 Fix the script and patch plugins tempfile ownership
Unified tmp accidentally removed the containing tmpdir from the list of
files to fix the permissions on when we're becoming a different
unprivileged user.  This resulted in a visible bug for script but not
for patch.  This is because patch also uploads the module to the same
temporary directory and the uploaded module also ends up calling
fixup_perms2() which includes the temporary directory.  So by the time
patch needs to access the temporary patch file, the directory is
appropriately set.

script's breakage was visible because script does not upload a module
(it's akin to raw in this way).  Therefore, we only call fixup_perms2()
once in script and so leaving out the tmpdir in script means that the
containing directory never has its permissions set appropriately.

Fixing both because it does not cause an extra round trip for patch so
any speedup would be minimal and it's better to fix the perms as close
as possible to where we know we need it.  Otherwise, changes to
seemingly unrelated code later could end up breaking it.

Fixes #36398
2018-02-19 13:07:58 -08:00
Dag Wieers 3ce5261272
mail: Fix cannot concatenate 'str' and 'int' objects
Fix an error in callback plugin when exceptions are being returned on failure.
2018-02-19 20:39:25 +01:00
Henri Salo b34ab6a0c4 hashi_vault: fix typo (#36368) 2018-02-19 08:34:05 +01:00
bdowling f2818caa61 Fix None stringification call to send_command (#36254)
send_command already performs the to_bytes safely on prompts (checking
for None).  Without this check the literal 'None' became a subprompt trigger!

Fixes #35662
2018-02-16 10:37:01 -05:00
Toshio Kuratomi 06f73ad578
Normalize usage of temp and tmp on tmp (#36221)
* Normalize usage of temp and tmp on tmp
* Rename system_tmps system_tmpdirs
* Add ANSIBLE_REMOTE_TMP spelling of environment variables
2018-02-15 09:01:02 -08:00
Nathaniel Case f67ff4a78e
Alter ASA regexes to be byte-strings (#36176) 2018-02-15 10:11:26 -05:00
Andrew Gaffney dae737c8b7 Only template each hostvars var on-demand (fixes #33259) 2018-02-15 10:09:04 -05:00
Toshio Kuratomi a612137098 Final fix for #35666 Previous PR (#36143) was merged prematurely. 2018-02-14 18:46:13 -08:00
Toshio Kuratomi 15fe59ef0c * Fix for setting remote_tmp as a subdirectory of a system temp dir (#36143)
Fixes #35666

* Check that system_temps is all absolute paths
2018-02-14 20:34:14 -05:00
Jordan Borean 8fb66c18de
win_updates: fix regression when using string cat names (#36015) 2018-02-15 06:14:06 +10:00
Sam Doran 97573d8b0c
Add unit tests for edgeos_command (#35861) 2018-02-14 09:27:03 -05:00
Anil Kumar Muraleedharan cf9b427add Changing Lenovo Inc to Lenovo and update License file to be consistent. (#36155) 2018-02-14 10:44:05 +00:00
Chris Houseknecht 69be2c169f
Upgrade to openshift client 0.4.0 (#35127) 2018-02-13 10:34:24 -05:00
John R Barker e4c04aa0f3
Fix YAML issue (#36103) 2018-02-13 12:46:56 +00:00
Brian Coca e8b631d4df corrected dump signature 2018-02-12 16:52:04 -05:00
Martin Krizek 39d9496282 add_host: check if name or hostname arg is provided 2018-02-12 15:24:45 -05:00
tedder e8fc269cd3 fix spelling. Seriously, that's it. 2018-02-12 13:17:55 -05:00
Nathaniel Case 6cdf91fd35
Fix VyOS check mode (#35977)
* Revert "commented out check tests (#35788)"

This reverts commit 3df2561405.

* `discard_changes()` now uses `exit discard`

instead of just `discard`. Also a slight tweak to avoid a second `exit` after
`exit discard`
2018-02-11 11:40:33 -05:00
Nick Wilde aa09ed1a88 Fix typo in examples in Lookup/password plugin. (#35022) 2018-02-08 21:01:23 -05:00
Tomasz Kontusz 89ad40b129 Fix for #31477: return 'dest' from copy when file wasn't changed 2018-02-08 16:17:36 -08:00
Matt Martz 7d1eb88ecf Address memory ballooning caused by task caching changes (#35921)
* Exclude parent when copying included task to avoid memory issues. Fixes #35796

* Simplify implicit block squashing to pre-group, instead of post re-parenting
2018-02-08 15:28:07 -08:00
Brian Coca 79fbe09a4d remove slice filter as it already exists in jinja (#35922) 2018-02-08 16:30:51 -05:00
Alex Tsitsimpis 933bc45cf2 callback: Get handlers with json callback plugin (#35842)
Implement the `v2_playbook_on_handler_task_start()' method in the json
callback plugin to correctly include handlers in the results.

This fixes a bug where the last task in the results returned by
json callback would be wrong if an unconditional handler was triggered,
since the result of that handler would overwrite the result of the last
task.

Signed-off-by: Alex Tsitsimpis <alextsi@arrikto.com>
2018-02-08 16:01:32 -05:00
Toshio Kuratomi 03c73e2bbb Rename var lookup to vars and add tests 2018-02-08 08:03:41 -08:00
Toshio Kuratomi db29190c28 Allow var lookup plugin to operate on a list of terms
Not sure this has a good use case but it's how nearly all other lookups
work so we should support the common interface.
2018-02-08 08:03:41 -08:00
Toshio Kuratomi 59faad3a6b Fix var lookup plugin to return a list 2018-02-08 08:03:41 -08:00
Toshio Kuratomi 5c085b2436 Fix aysnc failure by forgetting the remote tempdir that async_wrapper will delete on the remote end 2018-02-08 06:57:09 -08:00
Toshio Kuratomi 71f46d69d6 First bit of fixing temporary to have one source of truth (#35747)
* First bit of fixing temporary to have one source of truth

* Fix pep8

* Remove explicit make_tmp_path() in copy

The copy action plugin sets TRANSFER_FILES=True so it does not need to
set the temporary directory explicitly; the base class's run() method
will do that for us.

* Fix for calling a module's run when a shell has already created a temp path.

* Remember to inform the rest of the world when tempdir is removed

* New strategy for how to warn on passing tmp

Now we just warn when calling the parent class run() early.  If the
module does a late call to the parent run() and doesn't make use of the
temporary directory, then we don't check for the possibility that the
user mistakenly is sending tmp in.  If we truly deprecate this (rather
than ignoring it forever) then we might want to switch back to checking
for someone passing a value in as tmp.

* Remove tmp parameter from _execute_module as well

* Port all action plugins to not send tmp explicitly

This is now handled inside of _execute_module via the
_connection._shell.tempdir attribute.

Also update warnings and docs to tell people to set the attribute
instead of using _execute_module's tmp parameter.

* Always set local tempdir variable
2018-02-07 15:11:36 -08:00
Brian Coca 3b0d864683 fix keep remote files 2018-02-07 16:58:27 -05:00
Pilou a7461179cf Fix lookup plugins documentation (nios, conjur_variable) (#35847)
* conjur_variable lookup plugin doc: fix YAML
* nios lookup plugin doc: fix a typo
2018-02-07 13:14:51 -08:00
Chad Norgan 9bbf97632c [WIP] Add new network module for EdgeOS (#33109)
* Add edgeos network module using network_cli

* Add documentation and some sanity test fixes

* Update copyright and documentation
2018-02-07 10:36:26 -05:00
Toshio Kuratomi 8a2bda0e06 When tempdir fails to be created, we have nothng to remove
This commit should get us a better error traceback when things do go
wrong.

References #35613
2018-02-06 17:29:20 -08:00
mikedlr d31ded47fb Aws ssm multiple fixes (#35569)
* aws ssm parameter lookup test case - fails demonstrating no exception when parameter missing

* aws ssm parameter lookup - fail in case parameter doesn't exist

* aws ssm parameter lookup test case - failing case for nice return from path lookup

* aws ssm parameter lookup - convert incoming taglist to a key-value dictionary

* aws ssm parameter lookup - pep8 / style clean up

* aws_ssm lookup plugin rewrite for more standard interface

* aws_ssm module and lookup - introduce integration test and fix:

* aws_ssm module and lookup - error case integraton test and many PEP8 and other cleanups

* aws ssm parameter lookup - Various fixes in response to review + recursive fix & test

* aws ssm parameter lookup - more in response to review - shertel/abadger

* aws ssm parameter lookup unit test - move to mocker according to abadger

* aws ssm parameter lookup - integrate with new documentation fragment

* aws ssm parameter lookup - accept either aws_profile or boto_profile

* aws ssm parameter lookup - eliminate lookup document fragment until env vars are fixed later
2018-02-06 17:41:46 -05:00
Anil Kumar Muraleedharan 5c50720325 Changing ENOS action plugin license from BSD to GPL (#34888)
* Changing BSD to GPL

* Updating License Information

* Updating Copyright year to 2017

* Changed copy right info
2018-02-06 21:47:56 +05:30
Ganesh Nalawade df5fc7af67
Fix ios enable password regex in terminal plugin (#35741)
Fixes #33993

On some ios devices the enable password prompt does not
end with a space, add a fix to handle this scenario.
2018-02-06 12:10:32 +05:30
root 1f30ecef02 add support for configuring smtpport in callback_mail 2018-02-05 22:58:38 -05:00
Dirk Götz 7c998027c0 Add the option to use config file instead of enviroment variables (#32497)
and some error handling for the requests
2018-02-05 22:19:56 -05:00
Adam Miller dd9b2c0774 make v2_playbook_on_notify method signatures consistent
This was causing an exception in the TaskQueueManager when a third
party handler plugin was processed that inherited or explicitly
called the callback method from super because the method signature
was incorrect in callback/__init__ and it processed the arguments as
incorrect data types as a side effect.

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-02-05 15:43:20 -05:00
Luca Berruti f0ea2b60e1 Fix: global name 'HAS_IPADDRESS' is not defined. 2018-02-05 06:41:12 -08:00
Ricardo Carrillo Cruz 40f7f4babf
Remove unused enable_mode import on Junos cliconf plugin (#35722) 2018-02-05 03:07:23 -08:00
Nathaniel Case e8755175d7
Fix paramiko connections to hosts with uppercase characters (#35555) 2018-02-02 10:08:40 -05:00
Nathaniel Case f3337e1fba
ios test changes (#35510)
* Fix over-byte

* Update ios tests to call `provider`

To continue to support testing `connection: local`

* Fix command dict handling in ios_user

* Clean up unit tests, too
2018-02-02 09:50:15 -05:00
Sloane Hertel fd72e4aef2
Make an aws_credentials documentation fragment for plugins using environment vars (#35578) 2018-02-02 08:50:11 -05:00
Ganesh Nalawade 9ea5e8b37c
Check if data_xml object in present in NCElement object (#35604)
If ncclient return NCElement object call data_xml() on response
else call xml()
2018-02-01 21:38:49 +05:30
Kedar Kekan 684e953b50 * adds commit replace with config file for iosxr (#35564)
* * adds commit replace with config file for iosxr
* fixes dci failure in iosxr_logging

* * review comment changes
2018-02-01 14:15:32 +00:00
Anil Kumar Muraleedharan a6d9bccd6f Changing ENOS cliconf plugin license from BSD to GPL (#34889)
* Changing BSD to GPL
2018-01-31 11:18:24 -05:00
Ganesh Nalawade 9aadd8704a
Handle multiple sub prompts for network_cli connection (#35361)
* Handle multiple sub prompts for network_cli connection

Fixes #35349

*  Check if the same prompt is repeated in consecutive window
   if it is repeated it indicates there is problem with answer
   provided
*  In that case report error to user

* Fix CI failure

* Fixes #35349

*  Add prompt_retry count to control max number of times
   to expect the same prompt before it error's out

*  Make required changes in ios and eos terminal plugin to handle
   wrong enable password correctly and return proper error
   message to user.

*  Check if the same prompt is repeated in consecutive window
   if it is repeated it indicates there is the problem with an answer
   provided

*  In that case report error to user
2018-01-31 18:33:23 +05:30
Ganesh Nalawade 311918828f
Fix double prompt issue in network_cli (#35439)
Fixes #33993

In current implementation while trying to fetch the
current cli prompt terminal plugin executes `\r` on remote host.

This causes if command execution results in a prompt for
example executing `enable` command results in `Password:` prompt
there by executing `\r` on password prompt which is not intended.

To fix it while fetching current prompt from terminal plugin use `get_prompt()`
api in network_cli that returns the latest matched prompt instead of
unnecessary executing `\r` on remote host.
2018-01-31 11:43:08 +05:30
Peter Sprygada 58d54799b8
exposes rpc method to plugin (#35507)
The rpc method should be exposed to the modules over the connection rpc
mechanism.  This fix will expose the rpc method to call generalized rpc
endpoints on remote devices
2018-01-30 12:27:48 -05:00
Martin Krizek 7c83f006c0
Fix triggering parent's always with run_once set (#35464) 2018-01-30 13:16:19 +01:00
Ricardo Carrillo Cruz d178df8f01
Fix edit_config multiline commands on IOS (#35375)
* Fix edit_config multiline commands on IOS

The current code for multiline commands in IOS is broken: If you
pass a dict containing a command, prompt and answer it is seen
later as unicode string, but if you do a json.loads it fails
as the keys/values are enclosed in single quotes but JSON requires
double quotes.

Fixes #23539

* Fix pep8

* Use ast literal_eval

It's safe to use, as it is just for types and wont execute arbitrary code.
2018-01-29 12:03:25 +01:00
Peter Sprygada c2d3b9cbd5
refactors nios api shared code to handle provider better (#35393)
* refactors nios api shared code to handle provider better

This change refactors the shared code to be easily shared between
modules, plugins and dynamic inventory scripts.  All parts now implement
the provider arguments uniformly.

This also provides a centralized fix to suppress urllib3 warnings coming
from the requests library implemented by infoblox_client

* fix up pep8 errors

* fix missing var name
2018-01-27 08:03:06 -05:00
Sloane Hertel 1454cafd14 [cloud] snake_case hostvars in aws_ec2 inventory plugin (#35306)
* snake_case hostvars in aws_ec2 inventory plugin for improved compatibility with AWS modules

* Format tags with boto3_tag_list_to_ansible_dict
2018-01-26 15:10:45 -05:00
Ivan Kurnosov ea2b89c7ae Added `+1` to the `end` in `random` filter so that it was inclusive (#27215) 2018-01-26 11:36:44 -06:00
Matt Martz de2427beaf Add transfer checksum verification in copy module (#35367)
* Add transfer checksum verification in copy module, to ensure that the file was transferred to the remote successfully. Fixes #35029

* Guard on no checksum

* Add version_added
2018-01-26 10:48:08 -06:00
Peter Sprygada f849dc9cad
add extattrs as an option when using nios lookup (#35371) 2018-01-26 06:33:44 -05:00
Senthil Kumar Ganesan 2f46f8f944 Added support for new Ansible Infra (network_cli plugin, cliconf, module utils cleanup and test) for dellos10 Support t (#34915)
* Support for network_cli plugin and tests

* Fixed ansible-test * issues

* Fixed Pylint warning

* Fixed the sanity test errors

* Fix YAMLlinter issue - removed blank spaces

* Fixed Python 3 failures

* Fixed the PEP8 issue

* Fix sanity --test validate-modules

* Reverted the changes to the doc fragments
2018-01-25 12:37:27 +00:00
Ganesh Nalawade 90cd87f950
Fix debug logs failing with persistent connection (#33049)
* Fix debug logs failing with persistent connection

Fixes #33047

*  As debug logs are written on stdout, it interrupts
   the communication between ansible-connection(background)
   process and main process. To avoid this add a string similar
   to exactly identify the response string.

*  Remove unwanted code in ansible-connection

*  Fix review comments

* Fix spurious log emitted on ansible-connection stdout issue

*  ansible-connection which runs as a background process sends a
   json string (contains response received from remote device)
   to foreground ansible-playbook process over stdout.

*  If in case debug flag is enabled the connection_loader api
   invoked from ansible-connection `ssh = connection_loader.get('ssh', class_only=True)`
   results in emitting debug logs on stdout. This  spurious log
   interfere with the actual response and results in failure while
   reading json string in ansible-playbook process

* To avoid this save stdout of ansible-connection and redirect it string
  buffer to accumulate all the logs emitted by core API's

* Add these logs in `result['messages']` which is send a json string after reinstating saved stdout

*  Remove unwanted code in ansible-connection

* Fix review comment
2018-01-25 02:48:45 +05:30
Anil Kumar Muraleedharan 636c5eda23 Changing BSD to GPL (#34909)
* Update License Information
2018-01-24 11:55:33 -05:00
Peter Sprygada b4fa68555d adds support for using connection=netconf (#33400)
* adds support for using connection=netconf

This change updates the module to provide support for using
connection=netconf instead of connection=local.  If connection=netconf
is used, then the various connection arguments will be silently ignored.

* adds netconf plugin default

This adds a default implementation for netconf plugins if the network_os
is not specified.  The default plugin will implement only the standard
netconf rpcs

* fix up pep8 issues
2018-01-24 21:48:41 +05:30
Tim Rupp bd09e67438
More bug fixes before 2.5 (#35260)
This patch includes more fixes for bugs that were identified in
the upcoming 2.5 release.
2018-01-24 08:15:37 -08:00
Anil Kumar Muraleedharan 5a8c73ad1b Adding enos_config.py action plugin to create backup properly (#34789)
* Adding enos_config.py action plugin to create backup properly

* Changing BSD to GPL

* Changing License file to GPL

* Updating enos_config.py

* Updated copy right year to 2017
2018-01-24 15:22:44 +00:00
bdowling 3b98a2981c Fix enable subprompt (#34723)
* Look for password prompts at the beginning of the line only

* Adds secondary checks for the supplied sub-prompts

Handles the case for enable prompts where enable_pass may be incorrect
and the deivce is still prompting for the password
2018-01-24 07:24:22 -07:00
bdowling f49a782099 Fix terminal prompt re in ios and iosxr to match newline (#34585) 2018-01-24 19:21:04 +05:30
Peter Sprygada 21169b2228 adds two new infoblox lookup plugins (#35189)
* adds two new infoblox lookup plugins

* nios - lookup plugin to return nios objects to the playbook
* nios_next_ip - lookup plugin to return the next avaiable ip address

* adds some additional examples to nios lookup

* fix up pep8 failures

* updates in response to review comments
2018-01-24 13:28:21 +00:00
Sloane Hertel ff2ad89081
Fix aws_account_attribute lookup credentials bug for access keys (#35242) 2018-01-23 18:55:56 -05:00
Dustin Spicuzza b2dcc9c587 Better error message when file lookup fails (#30894)
* Alert user which debug level will show them useful details
2018-01-23 10:48:35 -06:00
tomo ef6b478d2a add rstrip and lstrip bool flags to file lookup plugin (#31738) 2018-01-23 10:14:19 -06:00
Jason Vanderhoof 7c8e365dff Conjur Lookup Plugin (#34280)
* Imported lookup plugin from Role

* Plugin cleanup, including:
* Use existing Python YAML parsing
* Remove environment variables as connection options
* Added initial debugging information

* Reworked the lookup plugin using the Python Request library.  As it's available through Ansible, it makes communication with Conjur much more straight forward.

* Removed un-used libraries

* Fixed linting issues

* Standardized output on `format` and insure it works for 2.6, 2.7, and 3.x.

* Use quote_plus from the six library for improved python 2/3 behavior.

* Refactored identity & configuration to prefer user's file. This also includes a refactor to remove an un-needed dictionary merge method.

* Removed `requests` in favor of `ansible.module_utils.urls`.

* Refactored netrc loading to warn if host is not present.

* Tests and a refactor to support easier testing.

* Added reference to website

* Fixed two linting errors

* Fixed an extra line found by linting

* Updated file write to use binary to insure config files are written correctly

* Resolved linting issues

* Refactored config & identity loading to take advantage of plugin options

* Cleanup a bunch of small items caught by linting

* Removed extra line caught by linting

* Swapped in pytest and added some tests with mocked network responses

* Pushing to see if this approach works better...

* Refactored be open_url mocking based on feedback

* Fixed a couple linting issues & refactored mocking into each method to attempt to resolve a failing test

* Use a generic MagicMock for python 2.6

* Fixes doc typo

require -> required

* Use `type: path` in identity_file and config_file

Also removes `expanduser` calls below (which will now be called automatically on
paths.)

* Defines maintainers for conjur_variable plugin

* BOTMETA.yml:
** defines $team_cyberark_conjur as maintainers of Conjur Variable plugin
** adds myself and @jvanderhoof to that team

* Adds URLs to relevant documentation for Conjur Variable lookup plugin

* Clarifies "the server," "the machine" -> "controlling host"

The machine identity used is that of the Ansible controlling host, not any
server being provisioned or instructed. This documentation change aims to make
that relationship clear.

* Adds response code to exception message on authentication failure

* Enhances exception messages to specify the controlling host

These error messages are less likely to confuse a user as to which machine is
associated with the files, identities, and configurations being described.

* Adds ANSIBLE_METADATA for Conjur variable lookup plugin
2018-01-23 10:04:57 -06:00
Charl van Niekerk 30ed29ed46 Implement the reduce_on_network method to filter a list of IP addresses on a given range. (#34929) (#34930) 2018-01-23 08:14:56 -06:00
Dhivyap 19ff2f4e8c Ansible 2.5 feature support for dellos9 (#34880)
* Add ansible-2.5 support for dellos9

* Fix ansible-test issues and update copyright

* fix ansible-test errors in dellos9_config

* fix izip attribute error in python3

* fix python3 dict.keys() issue

* Remove waitfor aliases in dellos9_command
2018-01-23 13:59:27 +00:00
Toshio Kuratomi 32eef49062 Make AnsibleActionDone a private exception
We're going to remove this in the future so mark it private so people
are less likely to use it.
2018-01-22 23:36:34 -08:00
Toshio Kuratomi ca8e4c806a Pass tempdir via module args instead of the environment 2018-01-22 23:36:34 -08:00
Trishna Guha 4083c8e048
Fix nxos terminal plugin regex to support certain commands (#35186)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-01-23 09:04:13 +05:30
Toshio Kuratomi b151f5d942 Move module_set_locale and module_lang back to global
These config settings are being deprecated so we don't want people to
think they need to implement them for their new shell plugin.
2018-01-22 18:38:15 -08:00
Toshio Kuratomi 62bc714dae Move setting for world-readable-tempfiles back to global config.
The code that depends on this is all in the action plugins so we should
leave it there until we either move that action plugin code over
(fixup_perms2) or we give action plugins the ability to register new
config.
2018-01-22 18:38:15 -08:00
Toshio Kuratomi 340a7be7c3 Implement plugin filtering 2018-01-22 16:54:53 -08:00
Sloane Hertel 4a1cc661c4 add inventory caching & use in virtualbox inventory plugin (#34510)
* Inventory caching

* Add inventory caching for virtualbox

* Don't populate cache for virtualbox with stdout, use a dict of inventory instead

* Fix error creating the cache dir if it doesn't exist

* Keep cache default False and set to True in VariableManager __init__

* Check all groups before determining if a host is ungrouped.
2018-01-22 19:33:14 -05:00
Sloane Hertel b94198f9de [cloud] New inventory plugin: aws_ec2 (#34416)
aws_ec2 is an inventory plugin intended to replace uses of the `contrib/inventory/ec2.py`
inventory script. 

For advanced grouping, please use the `constructed` inventory plugin.
2018-01-22 18:49:57 -05:00
abirami-n 775118aae2 2.5 Plugin Environment support and Testcases for dellos6 modules (#34890)
* Dellos6_2.5_support

* cleanup

* Fix pep8

* fix waitfor

* fix_facts

* fix_assert
2018-01-22 12:34:21 +00:00
Chris Houseknecht a0bb193598
Add K8s inventory plugin (#34920) 2018-01-20 08:50:01 -05:00
Nathaniel Case bf1580a333
ios_l2_interface (#35054)
* Fix sending 'None' to device on ios

* Add ios_l2_interface module & tests

* Skip l2 tests on non-l2 images

* Allow test to continue on non-L2 hosts
2018-01-19 17:14:32 -05:00
Will Thames 4d58d16793 Add aws_s3 action plugin to find source files as expected (#35028)
People expect to be able to upload files to s3 using standard
locations for files.

Providing an action plugin that effectively rewrites the `src`
key to the result of finding such a file is a great help.

Tests added, and IAM permissions corrected
2018-01-19 17:11:42 -05:00
Jordan Borean d0e6889f93 win_become: another option to support become flags for runas (#34551)
* win_become: another option to support become flags for runas

* removed uneeded entries

* fixed up whitespace issue

* Copy edit
2018-01-19 13:58:10 -08:00
Ganesh Nalawade b3b3c0ec54
Add regex to catch ios error prompt (#35007)
*  Move the error checking from ios_l3_module
   to ios termianl plugin by adding additional
   regex to catch error prompt.
2018-01-19 23:50:02 +05:30
Kedar Kekan 719feef2e0
* Fix DCI issues and changes to action plugin & utils (#35083)
* * Fix DCI issues and changes to action plugin & utils

* * Additional check to handle cli only modules for platforms that
support netconf
2018-01-19 16:22:31 +05:30
Jordan Borean e5c6708d39 win_updates: added blacklist and whitelist filtering of updates (#34907)
* win_updates: added blacklist and whitelist filtering of updates

* fixed sanity issue with docs

* fix docs typos
2018-01-18 16:29:46 -08:00
Jordan Borean 389f4ef1fb
template: change to pass along the correct template path (#35027)
* template: change to pass along the correct template path

* standardise tmp path behaviour

* removed if condition as it should not be needed
2018-01-19 09:51:42 +10:00
Matt Martz a451613dd1
Make sure we don't try to inspect DOCUMENTATION, if the plugin doesn't have any (#35017) 2018-01-18 15:30:40 -06:00
Matt Martz 29c1d5cb5d Ensure that the become password is written on py3 in the ssh connection plugin. Fixes #34727 2018-01-18 09:32:22 -08:00
Jordan Borean f0134079e3
win_script: work when argument exceeds stdin buffer size (#33855)
* win_script: work when argument exceeds stdin buffer size

* Added test for large argument being passed
2018-01-18 11:28:33 +10:00
Matt Martz b20df1be02
Make template action respect local_tmp. Fixes #34941 (#35005) 2018-01-17 14:14:46 -06:00
Jordan Borean 8edd1cf182
changed to enable windows temp path override (#34967) 2018-01-18 05:54:10 +10:00
kokel 66f654cb64 filter ipaddr: add custom delimiter option to ip4_hex(); fix format (#26862) 2018-01-17 12:49:49 -05:00
Kedar Kekan 93acd7c651 refactor iosxr_system for cliconf and netconf (#34749)
* * refactor iosxr_system for cliconf and netconf

* * Fix unit tests and sanity issues
2018-01-17 07:29:28 -07:00
Tim Rupp 835dd30d50
Fixes, and updates, bigip action plugin and module utils (#34947)
These fixes make provider work across more things. Adds a timeout
value, and makes the action plugin look similar to other network
action plugins
2018-01-16 13:36:49 -08:00
Brian Coca bbd6b8bb42 Temporary (#31677)
* allow shells to have per host options, remote_tmp

added language to shell
removed module lang setting from general as  plugins have it now
use get to avoid bad powershell plugin
more resilient tmp discovery, fall back to `pwd`
add shell to docs
fixed options for when frags are only options
added shell set ops in t_e and fixed option frags
normalize tmp dir usag4e

- pass tmpdir/tmp/temp options as env var to commands, making it default for tempfile
- adjusted ansiballz tmpdir
- default local tempfile usage to the configured local tmp
- set env temp in action

add options to powershell
shift temporary to internal envvar/params
ensure tempdir is set if we pass var
ensure basic and url use expected tempdir
ensure localhost uses local tmp
give /var/tmp priority, less perms issues
more consistent tempfile mgmt for ansiballz
made async_dir configurable
better action handling, allow for finally rm tmp
fixed tmp issue and no more tempdir in ballz
hostvarize world readable and admin users
always set shell tempdir
added comment to discourage use of exception/flow control

* Mostly revert expand_user as it's not quite working.

This was an additional feature anyhow.

Kept the use of pwd as a fallback but moved it to a second ssh
connection.  This is not optimal but getting that to work in a single
ssh connection was part of the problem holding this up.

(cherry picked from commit 395b714120522f15e4c90a346f5e8e8d79213aca)

* fixed script and other action plugins

ensure tmpdir deletion
allow for connections that don't support new options (legacy, 3rd party)
fixed tests
2018-01-15 21:15:04 -08:00
Jordan Borean 9d9c117580 winrm scheme default behaviour (#34908) 2018-01-15 20:25:30 -05:00
Chris Houseknecht 6a75c1a138
Fix name param. Remove logging. (#34881) 2018-01-15 11:27:39 -05:00
Pilou 64e1593243 set_fact: handle 'cacheable=value' form (#34871)
* Ensure fact isn't cached when cacheable=val form is used

* Don't cache fact when cacheable=val form is used
2018-01-15 10:02:24 -06:00
James Cammarata b107e397cb
Cache tasks as they are queued instead of en masse (#34752)
* Cache tasks as they are queued instead of en masse

This also moves the task caching from the PlayIterator to the
StrategyBase class, where it makes more sense (and makes it easier
to not have to change the strategy class methods leading to an API
change).

Fixes #31673

* Cleaning up unit tests due to 502ca780
2018-01-15 09:49:58 -06:00
Trishna Guha 43a081d1c9
fix KeyError net_base plugin (#34874)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-01-15 19:24:27 +05:30
Ricardo Carrillo Cruz 9851a0540f
Plumb newline param on cliconf (#34868)
Change cb1b705218 introduced the newline
parameter on network_cli plugin, but that was never introduced on cliconf.
This causes ios_user to break, since the newline value is never plumbed thru
to network_cli
2018-01-15 14:16:56 +01:00
Ricardo Carrillo Cruz 74eb0bfb13
Add missing flags param to IOS get_config cliconf method (#34869) 2018-01-15 14:16:45 +01:00
Trishna Guha 48ecbb8fb9
fix connection gets overridden by network_cli for transport nxapi,eapi net_* modules (#34778)
* fix connection gets overridden by network_cli for transport nxapi,eapi net_* modules

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* Define functions in individual action plugins to avoid code duplication

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* Add net_* eos tests for eapi

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* update plugin code
2018-01-15 13:16:41 +05:30
Ricardo Carrillo Cruz a56de25df5
Fix persistent command timeout handling (#34791)
* Fix persistent command timeout handling

We were using play context timeout on ansible-connect to set
the persistent command timeout handler. Thus, we were ignoring
the persistent_command_timeout setting.
Moreover, even by changing that on ansible-connection, were again
overriding it on cliconf send_command, since in a same process we can
just set a single alarm and cliconf send_command alarm setup is executed
after ansible-connection alarm setup.

* Remove alarm setting on cliconf send_command

The alarm is set regardless before it is executed by ansible-connection.
Setting an alarm again, overrides/disables the previous ones as a single
process can just have a single alarm set.

* Move the setting of persistent command timeout to network_cli

We do also use ansible-connection for connection local, so if a
user provides a timeout via provider that would be ignored if we
set the value on ansible-connection.
Moving that logic to network_cli plugin constructor makes both
connections to work.

* Remove debug statements

* Set the persistent command timeout on task_executor

We can't set the timeout on ansible-connection nor network_cli,
otherwise tasks using provider timeout won't work.
2018-01-13 15:54:44 +01:00
Samer Deeb f8884f12bc Mellanox OS name change: MLNXOS changed to ONYX (#34753)
* Mellanox OS name change: MLNXOS changed to ONYX

Signed-off-by: Samer Deeb <samerd@mellanox.com>

* Fix alphabetical order of modules metadata

Signed-off-by: Samer Deeb <samerd@mellanox.com>
2018-01-11 22:21:17 +00:00
Nathaniel Case bd989b3088
Report invalid connection types for network modules (#34755)
* Emit error on wrong connection type
2018-01-11 16:47:48 -05:00
Abhijeet Kasurde 3f4dfb2574 WinRM: fix format_exc call (#34233)
This fix adds correct call for format_exc in winrm plugin.

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-01-11 08:43:22 -08:00
Matt Martz bfb5264138
Support datetime serialization in json encoder. Fixes #34312 (#34516) 2018-01-11 09:10:14 -06:00
Ricardo Carrillo Cruz 32e7c9bc9c
Refactor EOS code to use cliconf (#34426)
* WIP Refactor EOS code to use cliconf

* Fix connection.get where sendonly is True

* Fix pylint issue

* Remove return from send_config and various exec_commands

Also, removed a few try/except, which are anyways handled in
Connection.
2018-01-11 13:33:33 +01:00
Ricardo Carrillo Cruz 477cd3f775
Refactor IOS libs to use cliconf (#34136)
* Refactor IOS libs to use cliconf

* Fix pep8

* Remove bytstrings from edit_config and additional end on load_config

* Fix pep8
2018-01-11 11:50:01 +01:00
Jordan Borean 557716dc49
win_updates: action plugin-ify it (#33216)
* converted win_updates to an action plugin for automatic reboots

* do not set final result when running under async

* Updated documentation around win_updates with async and become
2018-01-11 14:41:52 +10:00
xuxinkun ca4eb07f46 Adds kubectl and oc connection plugins (#26668) 2018-01-10 22:51:45 -05:00
Matt Clay 797664d9cb Python 2.6 `str.format()` compatibility fixes. 2018-01-10 14:08:11 -08:00
Nathaniel Case 1f2c276481
Distinguish between natural connections and rewritten connections (#34706) 2018-01-10 13:06:47 -05:00
Nathaniel Case accf79f406
Fix iosxr integration tests (#34663)
* Handle non-XML errors

* Move iosxr_netconf tuning to prepare

* Apply provider warning to netconf as well

* Update netconf task files
2018-01-10 11:40:54 -05:00
Ryan Brown 2f66755849 New Lookup Plugin: aws_service_ip_ranges (#32749)
* added ranges lookup

* Add docs

* Use `open_url` from module_utils

* Fix error handling on open_url

* Fix ConnectionError exception import
2018-01-09 17:16:45 -05:00
Matt Martz d1846425db
Provide a way to explicitly invoke the debugger (#34006)
* Provide a way to explicitly invoke the debugger with in the debug strategy

* Merge the debugger strategy into StrategyBase

* Fix some logic, pin to a single result

* Make redo also continue

* Make sure that if the debug closure doesn't need to process the result, that we still return it

* Fix failing tests for the strategy

* Clean up messages from debugger and exit code to match bin/ansible

* Move the FieldAttribute higher, to apply at different levels

* make debugger a string, expand logic

* Better host state rollbacks

* More explicit debugger prompt

* ENABLE_TASK_DEBUGGER should be boolean, and better docs

* No bare except, add pprint, alias h, vars to task_vars

* _validate_debugger can ignore non-string, that can be caught later

* Address issue if there were no previous tasks/state, and use the correct key

* Update docs for changes to the debugger

* Guard against a stat going negative through use of decrement

* Add a few notes about using the debugger on the free strategy

* Add changelog entry for task debugger

* Add a few versionadded indicators and a note about vars -> task_vars
2018-01-09 13:50:07 -06:00
Matt Martz 03794864c2
Fix piped transfer with become (#34584)
* Ignore become if we shouldn't be sudoable

* More explicit passing of kwargs

* dd/piped put should be sudoable=False. Fixes #34523
2018-01-09 09:32:27 -06:00
Matt Martz df909c5726
Fix with_items debug loop example. Fixes #34540 (#34578) 2018-01-08 16:13:10 -06:00
Tomas Tomecek 0587aedc01 synchronize: add support for buildah (#33823)
Fixes #33533

Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>
2018-01-08 11:51:49 -08:00
Nathaniel Case c371ed8d30
nxos tests to use network_cli (#34474)
* Fix over-byte

* Fix nxos_l2_interface docs

* Update connections for tasks

* Add default ssh port

* Only report provider when using connection=local

* Send empty provider when connection=network_cli

* Fix find tasks
2018-01-05 12:39:04 -05:00
Matt Martz 9b74b9bc8b
mongodb cache plugin (#34414)
* Initial commit of mongodb cache plugin

* Fix typo in method docstring

* Add ANSIBLE_METADATA indicating preview and community supported
2018-01-05 09:10:58 -06:00
Matt Martz aece0818c4
Don't cache duplicate plugin names (#34420)
* Don't cache duplicate plugin names. Fixes #33484

* Add tests for duplicate plugin filenames, to showcase what happens
2018-01-04 16:47:23 -06:00
Chris Houseknecht 85ff38d2e2
K8s lookup plugin (#34025)
* Use OpenShift client

* Refactored

* Fix lint issues

* Replace AnsibleError to make the bot happy

* Remove extra space
2018-01-04 15:24:31 -05:00
Brian Coca 1b34a17415 removed unused objects from include results proc 2018-01-04 11:20:56 -05:00
Jordan Borean 25a21f46bd
win async: removed async_wrapper module and fixed async for action plugins to use shell code (#34434)
* win async: removed async_wrapper module and fixed async for action plugins to use shell code

* fixed pep8 issue
2018-01-04 12:51:53 +10:00
Eric L c2342f156c Count ignored failed tasks and successful tasks with expected failure… (#33282)
* Count ignored failed tasks and successful tasks with expected failure as failed tests.

* Make junit callback plugins changes backward compatible: add new task marker TOGGLE RESULT and new option fail_on_ignore
2018-01-03 16:03:15 -08:00
Peter Sprygada 1183029591 update DOCUMENTATION for network_cli and netconf (#33396)
* update DOCUMENTATION for network_cli and netconf

This updates the DOCUMENTATION string for both the netconf and
network_cli connection plugin.

* add additional options to the connection documentation

* update documentation based on review and feedback

* adds persistent connection options to documentation string
2018-01-03 15:10:35 -05:00
Jordan Borean 57ed6a866f windows: Add IPv6 address support and docs to go with it (#34072)
* windows: Add IPv6 address support and docs to go with it

* minor docs fix

* fixed some doc sentances
2018-01-03 09:26:53 -08:00
Jan Fader 2b4db5eaab fixes typo ansbile to ansible 2018-01-02 17:17:53 -08:00
Jeffrey Zhang e045f46132 Fix doc for with_first_found
the variables in with_first_found should be list rather than dict
2018-01-02 11:37:53 -05:00
Elad Alfassa 1c157a8cf1 Fix env lookup plugin docs (#34235)
The env lookup plugin docs mistakenly mentioned dns TXT records,
and that it requires a DNS resolver library.
2017-12-26 05:20:33 -05:00
Ganesh Nalawade f1bda19dea
Fixes get_prompt() issue for network platforms using cliconf plugins (#34221)
Fixes #34220
2017-12-25 18:15:25 +05:30
Toshio Kuratomi 235bdfb996 Remove shell module specialcases
Shell is implemented via the command module.  There was a special case
in mod_args to do that.  Make shell into an action plugin to handle that
instead.

Also move the special case for the command nanny into a command module
action plugin.  This is more appropriate as we then do not have to send
a parameter that is only for the command module to every single module.
2017-12-21 20:42:44 -08:00
Brian Coca a0c171ce1b fix command warnings, add action warnings (#34060)
* fix command warnings, add action warnings
2017-12-21 08:35:32 -08:00
Larry Smith Jr fd03223227 Updated documentation description (#34121)
The description for this plugin was referencing Foreman rather than Logstash.
2017-12-21 13:44:54 +10:00
Brian Coca 8c6d823963 simpler loop_control defaults (#34008) 2017-12-21 07:28:38 +10:00
Nathaniel Case 2e76c89910
IOS XR cli tests move to network_cli (#34007)
* Update task definitions for network_cli

* Add connection to debug messages

* Specify connection for prepare task

* pc won't be around for connection=network_cli

* Assorted Python 3 fixes

* Give default port if ansible_ssh_port missing

* delegate -> connection

* Extend error regex
2017-12-20 11:26:09 -05:00
John R Barker c50da48049
Fix various RST warnings (#34084)
* Fix various RST warnings

* shorter lines
2017-12-20 15:20:05 +00:00
Nathaniel Case cb1b705218
ios integration tests to network_cli (#33920)
* Preliminary steps

* Fix Python3 network_cli ios

* Add connection to debug strings

* Fix ios confirm prompt by way of optional newline

Also update ios_user delete tests
2017-12-20 09:03:29 -05:00
Brian Coca 2db3d861e0 lookup templated value of a var (#32772)
* lookup templated value of a var
* better dupe loop detection
* corrected invalid test loops
2017-12-19 22:41:50 -06:00
Nathaniel Case 513c75079e
Port eos tests to network_cli (#33586)
* Add eos and fix tests to run multiple connections

* Update tests to report connection

* Add missing START messages

* Fix unspecified connection

* Python 3 updates

Exceptions don't have `.message` in Python 3

* Override `become` when using `connection=local`

* Slight restructuring to make eapi easier later on

* Move eapi toggle to prepare_eos
* Pull out connection on eapi tasks
2017-12-19 15:49:49 -05:00
Brian Coca 73a003aa50 added slice filter for dicts
also minor exception optimization
2017-12-19 12:54:10 -05:00
Sloane Hertel 58adf1750e [cloud] New a lookup plugin for AWS account attributes (#33025)
* Add a lookup plugin for AWS account attributes

* PEP8

* Use config system instead of hard coding logic for environment variables

* simplify logic

* Return a flattened dict to make using easier

* Reformat return example
2017-12-19 12:20:19 -05:00
Trishna Guha 9f86b923e9
[CLI_CONF] Refactor nxos module common library to use cliconf plugin (#31524)
* refactor nxos modules

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* get_config update

* fix get_config

* update nxos module

* device_info

* fix conflict

* add failure message check

* pep8 fixes

* use get_capabilities to check cliconf

* Add logic to detect platform in get_capabilities and cache in module_utils

* return msg in edit_config

* fix conflicts

* make modules compatible

* fix nxos cliconf api

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* cache capabilities

* Update transport queries to get_capabilities in module level

* fix unit tests

* load_config error code

* remove unnecessary change

* Refactor nxos_install_os module
2017-12-19 12:22:33 +05:30
Jordan Borean 92e52ef515 winrm: attempting to get kerb auth to work on MacOS (#33795)
* winrm: attempting to get kerb auth to work on MacOS

* moved to use pexpect if possible as it is simpler

* Made the pexpect event more lenient around different localisations
2017-12-18 18:49:21 -05:00
Brian Coca 2b7799f817
added flatten filter (#33102)
* added flatten filter
2017-12-15 14:40:02 -05:00
bdowling d59bba4652 Fixes prompt doubling issue that impacted missing ios enable password prompts. (#33794)
* Fixes a prompt doubling issue that impacted missing ios enable password prompts.

Due to get_prompt sending a '\n' the prompts became doubled and out-of-sync with what
was expected.  This caused the enable command prompts to be missed.
Also added verification that on_become succeeded to reach enable prompt.

* Moved prompt doubling comment per shippable
2017-12-15 11:31:28 -05:00
Nathaniel Case f71bbdfed5
Fix vyos sending `'None'` to device (#33889)
* Fix vyos sending `'None'` to device

* Move bytes handling into common cliconf code
2017-12-15 11:20:53 -05:00
Ganesh Nalawade 2f932d8767
Add parent pid to persistent connection socket path hash (#33518)
* Add parent pid to persistent connection socket path hash

Fixes #33192

*  Add parent pid in persistent connection socket path hash
   to avoid using same socket path for multiple simultaneous
   connection to same remote host.

* Ensure unique persistent socket path for each ansible-playbook run

* Fix CI failures
2017-12-15 10:21:56 +05:30
Haridas N 0eb426bb9e HipChat API v2 support for ansible callback plugin (#33882)
* hipchat API v2 support for callback plugin.

* hipchat API v2 support for callback plugin.

* Migrated to new way of handling plugin config.
2017-12-14 17:30:31 -05:00
Gaël Lambert 82949f6e6f lookup hashi_vault: Add Vault App role in auth_method (#22403)
Provide Vault App role method to the lookup.

https://www.vaultproject.io/docs/auth/approle.html

Usage :

`{{ lookup('hashi_vault', 'secret=secret/hello:value auth_method=approle role_id=myroleid secret_id=mysecretid url=http://myvault:8200')}}`

You can skip `role_id` and `secret_id` if you set `VAULT_ROLE_ID` and `VAULT_SECRET_ID` environment variables.
2017-12-14 13:25:05 -06:00
John R Barker f127e5d535
Fix a few docs build issues (#33685)
Noticed when doing `make webdocs`
2017-12-14 17:33:27 +00:00
Brian Coca 11063dabaf fixed version_added, update clog 2017-12-14 10:41:46 -05:00
Brian Coca 1a7c096954
new redis lookup (#33883)
* new redis lookup

deprecated redis_kv

* typo fix
2017-12-14 10:35:46 -05:00
Nathaniel Case 67a8ff47aa
Promote get_prompt to live in network_cli instead of cliconf (#33880)
This removes the immediate need for a cliconf plugin to use network_cli
2017-12-14 09:51:41 -05:00
XuXinkun 7229eba569 use `docker exec` in case `docker cp` failed. (#26571) 2017-12-13 15:30:30 -06:00
Nathaniel Case 2425374fdd
Actually move vyos tests to network_cli (#33710)
* Fix vyos on network_cli on python3

bytes do not have format() in Python3

* Push connection to tasks, with bonus connection=local test

* Run tests without explicit connection set

* Add/update START messages where appropriate
2017-12-13 14:30:24 -05:00
John R Barker cfb15b0272 Revert "YAML inventory unit test: fix test inventory format (#33828)" (#33869)
This reverts commit dfb2f346d8.

https://github.com/ansible/ansible/pull/33828
2017-12-13 14:19:19 -05:00
Pilou dfb2f346d8 YAML inventory unit test: fix test inventory format (#33828)
* Fix YAML inventory unit test

* YAML inventory unit test: add checks

* YAML: add hosts without any group to ungrouped
2017-12-13 15:30:59 +00:00
Toshio Kuratomi 155f36bbd8
Rekey on member (#33836)
* Change cast_list_to_dict to more generic rekey_on_member

cast_list_to_dict was taking an arbitrary data format in and returning
an arbitrary data format out.  Rework this to be a more generic function
which creates a dict of dicts based on a member of the dict.

Remove cast_dict_to_list since rekey_on_member handles the use cases we
know about and cast_dict_to_list suffers from the same problems as
cast_list_to_dict.  If this is still needed we could think about filters
we could add to do this in a short jinja2 pipeline.

* Fix bare excepts (bare excepts even catch sys.exit())
2017-12-12 19:02:15 -08:00
bdowling 5b6ba8cbfd Minor spelling fix (#33822) 2017-12-12 23:13:27 +01:00
Adam Miller 7bc7c347dd remove unnecessary extra conditional (thanks bcoca)
Signed-off-by: Adam Miller <maxamillion@fedoraproject.org>
2017-12-12 12:52:46 -05:00
Adam Miller 4df610f961 order agnostic child group definition in inventory
Previously if a child's group vars section was defined before the
child group itself, an edge case would be hit where the state of the
pending declaration would process as var and therefore drop the
child pending declaration context. This would result in the group
vars defined for the parent group being out of scope for the child
group.

Example:

    [web:children]
    appnodes
    proxies

    [web:vars]
    deployment_type=prod

    [appnodes:vars]
    foo_var=true

    [appnodes]
    appnodes[1:3].example.com

    [proxies:vars]
    bar_var=true

    [proxies]
    proxies[1:3].example.com

Previously the deployment_type variable would be out of scope for
both the appnodes and proxies groups. This patch fixes that.

Signed-off-by: Adam Miller <maxamillion@fedoraproject.org>
2017-12-12 12:52:46 -05:00
Martin Krizek 5a5f4b7fcd
Fix included task's name in handler (#33821) 2017-12-12 17:52:01 +01:00
Alex Ratner 7dac82e2e2 typo fix (#33810)
typo fix in description
2017-12-12 12:25:53 +00:00
Jordan Borean 6e4c690a37
Fix fetch when retrieving a file with a multiple of the buffer size (#33697)
* Fix fetch when retrieving a file with a multiple of the buffer size

* fixed sanity issue
2017-12-12 14:56:21 +10:00
Adrian Likins a57d6a4206 Use pop in cb clean results (#33779)
* Fix _clean_result for debug callback with 1 char var names

The check in _clean_results was removing any keys that happened
to be one of the chars in ('invocation') instead of the string
'invocation'. This was meant to be a tuple but there was no comma
so the for iterated the string instead of the tuple.

Introduced in 9dba580204fcc7d95d4ca2ea2ae4ce23fe28c2ed

Update unit test to catch this.

Fixes #33723

* Use .pop() to remove invocation from results dict

In base callback _clean_results, simplify the way the
'invocation' item is removed.

Add some more unit tests.
2017-12-11 17:41:12 -05:00
QijunPan 50dc1f09ad fix ce.py provider param issue (#27876)
* Update ce.py

* Update ce.py

fix CloudEngine host failed #27903
2017-12-09 19:03:31 +05:30
Sloane Hertel 7bb35e8781
Fix using loops with environment and add tests (#32796) 2017-12-08 10:13:22 -05:00
Toshio Kuratomi b455901904
Fix shebang. shebang and interpreter path weren't being templated (#33698)
* Fix shebang.  shebang and interpreter path weren't being templated

Fixes #18665
Fixes #33696
2017-12-08 06:59:24 -08:00
Brian Coca d850992526 report correct file for callback 2017-12-07 11:28:42 -05:00
Peter Sprygada 1699a39ad0 fixes guess_os for netconf connections (#33671)
* fixes guess_os for netconf connections

This change fixes invalid calls to play_context when the network_os is
not set and the connection attempts to guess the network_os.  The method
will now check the correct values for ssh key file and allow agent
instead of returning errors.

* fix up pep8 issues
2017-12-07 20:17:41 +05:30
John R Barker 4d67cdd1f7
Use module formatting (#33413) 2017-12-07 14:26:52 +00:00
Alexandre Garnier b4e6028ee7 Fix documentation description of `remote_addr` for docker connection plugin (#33520) 2017-12-07 07:41:33 +10:00
Brian Coca 65ffb92bff ensure quote runs on text
fixes #33260
2017-12-06 12:16:45 -08:00
Kedar Kekan 2bc4c4f156
IOS-XR NetConf and Cliconf plugin work (#33332)
*  - Netconf plugin addition for iosxr
 - Utilities refactoring to support netconf and cliconf
 - iosx_banner refactoring for netconf and cliconf
 - Integration testcases changes to accomodate above changes

* Fix sanity failures, shippable errors and review comments

* fix pep8 issue

* changes run_command method to send specific command args

* - Review comment fixes
- iosxr_command changes to remove ComplexDict based command_spec

* - Move namespaces removal method from utils to netconf plugin

* Minor refactoring in utils and change in deprecation message

* rewrite build_xml logic and import changes for new utils dir structure

* - Review comment changes and minor changes to documentation

* * refactor common code and docs updates
2017-12-06 22:37:31 +05:30
Andrew Gaffney 6a84772290 Add module_stdout/stderr fields to list in 'debug' callback plugin 2017-12-06 08:33:02 -08:00
Samer Deeb 48d3cbfc0f Adding network_cli support in mlnxos (and removing provider) (#33511)
Signed-off-by: Samer Deeb <samerd@mellanox.com>
2017-12-06 14:22:15 +00:00
Ganesh Nalawade dfd68e4966
Fix persistent reset_connection issue (#33590)
Fixes #33589

If persistent socket does not exist catch the execption
and ignore it as the coneection is already closed.
2017-12-06 19:37:09 +05:30
Tim Rupp 9e89d2be1a
Adds a tmsh command fallback (#33592)
* Adds a tmsh command fallback

The bigip terminal plugin assumes that the remote shell is tmsh.
This is not always true. The remote shell may be bash sometimes.

This adds a different shell command in the case that bash is the
remote shell

* Fixing upstream errors
2017-12-05 13:03:16 -08:00
Nathaniel Case fdc547601c
Fix authorize in net agnostic modules (#33549)
* This should fix authorize for net_* modules

* transport: none means network_cli in eos

For now anyway
2017-12-05 09:57:40 -05:00
Ganesh Nalawade 399e72abb0
Fix reconstructing socket path in network_cli (#33572)
*  Persistent connection socket path is hash of
   remote address, port, remote user and connection
   type.

*  Integration test fixes
2017-12-05 15:11:49 +05:30
Jordan Borean dccf58efe3
winrm: remove exception appender (#33443)
* winrm: remove exception appender

* went the other way and made the import error msg available in the msg
2017-12-05 10:33:28 +10:00
Nathaniel Case 33cbae0873
Fix module_utils path for network (#33531) 2017-12-04 10:01:08 -05:00
Nathaniel Case ce1ec4a2c9 fix nxos action plugin indentation for nxapi (#33526) 2017-12-04 14:18:22 +01:00
Ganesh Nalawade 11c9ad23d5
Refactor common network shared and platform utils code into package (#33452)
* Refactor common network shared and platform specific code into package (part-1)

As per proposal #76 refactor common network shared and platform specific
code into sub-package.
https://github.com/ansible/proposals/issues/76

*  ansible.module_utils.network.common - command shared functions
*  ansible.module_utils.network.{{ platform }} - where platform is platform specific shared functions

*  Fix review comments

* Fix review comments
2017-12-03 21:42:30 +05:30
Nathaniel Case 7f90c9d1a7
Warn on `provider` with network_cli (#33355)
* Warn on `provider` with network_cli

also unify action plugins

* Add to porting guide about connection warnings
2017-12-01 12:22:54 -05:00
Samer Deeb 717b6e7c1a Add mlnxos_config module (#33356)
* Add new module mlnxos_config

Signed-off-by: Samer Deeb <samerd@mellanox.com>

* Add unit-test for mlnxos_config module

Signed-off-by: Samer Deeb <samerd@mellanox.com>
2017-12-01 17:03:02 +00:00
Ganesh Nalawade f5a2e26ffd
Fix junos cliconf commit api (#33458)
*  In order to maintain a single api call across
   netconf and cli transport from module code change
   signature of commit api to accept genric args.
*  Fix doc string
2017-12-01 19:11:54 +05:30
Ganesh Nalawade fe702b48a5
Fix network_cli connection issue (#33420)
*  Copy play_context in network_cli connection class
2017-12-01 10:13:07 +05:30
Brian Coca 0d5b1a1567 added version added 2017-11-30 22:21:25 -05:00
Andrea Tartaglia b7e4cfed82 Updated mail callback with config options (#33409) 2017-11-30 22:21:04 -05:00
James Cammarata 52a8644a15 Additionally template args in role_include that affect role loading (#33386)
This fixes many issues with role_include by correctly templating and
saving fields which affect role loading in the args for the role include.
2017-11-30 10:52:28 -05:00
Ganesh Nalawade 35acae7ea7
Fix eos integration test failure (#33407)
Fixes #33406
Fixes #33405

*  Fix typo in network_cli for sendonly
*  Send `abort` to remote device in case configuration fails
*  Fix indentation issue in eos_static_route integration test

*  Revert network_cli change
2017-11-30 20:47:05 +05:30
Ricardo Carrillo Cruz fec39ba1f2
Vyos CliConf refactor (#33348)
* Refactor VyOS to use cliconf

* Use show configuration commands on get_config

* Remove debug statement

* Construct command/answer/prompt if needed and fix commit comments

* Convert command/prompt/answer to bytes
2017-11-29 11:39:29 +01:00
Nathaniel Case a1da3dc997
Auth to become (#33319)
* terminal.on_(de)?authorize -> terminal.on_(un)?become

* Update network_cli

* Readd on_(de)?authorize as wrappers

* Update tests
2017-11-28 16:28:58 -05:00
Ganesh Nalawade ff938bfdd5
Reset persistent connection only if it is active (#33238)
Fixes #33237

Add check to reset connection only is persistent socket
file exist

Fix review comments
2017-11-29 00:52:12 +05:30
Brian Coca 22d983c5c1
get_option instead of internal dict (#33191)
* get_option instead of internal dict

* fix slack issue

* not a pugin, revert get_option
2017-11-28 12:00:22 -05:00
Kedar K 6749a39dbe
Change cliconf get() method signature with explicit args (#33341)
* Change cliconf get() method signature to explicit args instead of *args and **kwargs

* updates doc string
2017-11-28 21:40:58 +05:30
Jordan Borean 8386201242 add deprecation for stat get_md5 (#33002) 2017-11-27 18:58:55 -05:00
Matt Martz 4fe08441be Deprecate tests used as filters (#32361)
* Warn on tests used as filters

* Update docs, add aliases for tests that fit more gramatically with test syntax

* Fix rst formatting

* Add successful filter, alias of success

* Remove renamed_deprecation, it was overkill

* Make directory alias for is_dir

* Update tests to use proper jinja test syntax

* Update additional documentation, living outside of YAML files, to reflect proper jinja test syntax

* Add conversion script, porting guide updates, and changelog updates

* Update newly added uses of tests as filters

* No underscore variable

* Convert recent tests as filter changes to win_stat

* Fix some changes related to rebasing a few integration tests

* Make tests_as_filters_warning explicitly accept the name of the test, instead of inferring the name

* Add test for tests_as_filters_warning

* Update tests as filters in newly added/modified tests

* Address recent changes to several integration tests

* Address recent changes in cs_vpc
2017-11-27 17:58:08 -05:00
Samer Deeb cbf28c20cb Add Support for Mellanox switches: first module: mlnxos_command (#33121)
* Add Support for Mellanox switches: first module: mlnxos_command

Signed-off-by: Samer Deeb <samerd@mellanox.com>

* Add cliconf support for mlnxos

Signed-off-by: Samer Deeb <samerd@mellanox.com>

* 1- Fix short description, 2- remove waitfor

Signed-off-by: Samer Deeb <samerd@mellanox.com>

* remove usage of check_args

Signed-off-by: Samer Deeb <samerd@mellanox.com>
2017-11-27 20:55:08 +00:00
Kedar K e65ef09aa9 - Fix authentication failure with paramiko when using password mode (#33303)
- break out of loop when paramiko stream is closed
2017-11-27 14:17:17 +01:00
Ken Celenza 748107d369 Type manipulation (#28446)
* add type manipulation

* update for py3

* add tests for list to dict

* Add dict to list tests

* Update tests to search for regex in response

* pep8 clean up

* update Exception for py3

* update test to be py2/3 compat

* update for py26 compat

* potential fix for py3 and py26

* potential fix for py3 and py26 take2

* add new line to kick off shippable

* remove cache file created

* fix filter name

* add space for shipable
2017-11-24 15:26:29 -05:00
Ganesh Nalawade 3d63ecb6f3
Refactor junos modules to Use netconf and cliconf plugins (#32621)
* Fix junos integration test fixes as per connection refactor (#33050)

Refactor netconf connection plugin to work with netconf plugin

* Fix junos integration test fixes as per connection refactor (#33050)

Refactor netconf connection plugin to work with netconf plugin
Fix CI failure
Fix unit test failure
Fix review comments
2017-11-24 12:04:47 +05:30
James Cammarata d8ae4dfbf2 Adding aliases for field attributes and renaming async attribute (#33141)
* Adding aliases for field attributes and renaming async attribute

As of Python 3.7, the use of async raises an error, whereas before the use
of the reserved word was ignored. This adds an alias field for field attrs
so that both async and async_val (interally) work. This allows us to be
backwards-compatible with 3rd party plugins that may still reference Task.async,
but for the core engine to work on Py3.7+.

* Remove files fixed for 'async' usage from the python 3.7 skip list
2017-11-22 12:35:58 -08:00
Jordan Borean 23f8833e87 fixed up get_options in AnsiblePlugin to use the correct plugin name 2017-11-22 15:35:31 -05:00
jctanner 218987eac1
ANSIBLE_SSH_USETTY configuration option (#33148)
* Allow the user to circumvent adding -tt on ssh commands to help aid in
debugging ssh related problems.
* Move config to the plugin
* Set version_added
* Change yaml section to "connection"
* Fix ssh unit tests
2017-11-22 11:19:43 -05:00
Peter Sprygada 69575e25d0 shuts down persistent connections at end of play run (#32825)
This change will now track any created persistent connection and shut it
down at the end of the play run.  This change also includes an update to
properly honor the reset_connection meta handler.
2017-11-22 15:30:06 +00:00
Benjamin Schweizer e4300e8d54 fixed syntax error (#33185) 2017-11-22 14:00:17 +00:00
Brian Coca 3456bba631 make vars only group declarations an error
fixes #32860
2017-11-21 14:40:02 -05:00
Matt Clay e45c763b64 Fix invalid string escape sequences. 2017-11-21 10:03:34 -08:00
Ganesh Nalawade 0ddf092ae3
Add new filter to parse xml output for network use cases (#31562)
* Add new filter to parse xml output for network use cases

Fixes #31026
*  Add parse_xml filter
*  Add documentation for parse_xml filter

* Edited for clarity.

* Fix review comment and add unit tests

* Fix unit test CI failure

* Fix CI issues

* Fix unit test failures

* Fix review comments

* More copy edits.
2017-11-21 12:16:18 +05:30
Anil Kumar Muraleedharan e24e771b88 To set the right CLI context i.e. Privilege (Enable) Mode soon after connection. (#32966) 2017-11-21 10:43:18 +05:30
paulquack 47eaf662a7 Fix issues with ironware modules (#33068)
- authorize was not working as expected
 - use end command to get to exec context instead of exit
 - error due to mishandling of global variable _DEVICE_CONFIG
2017-11-21 10:41:05 +05:30
André Althaus a9b15ce881 Scan group_vars/host_vars in sorted order 2017-11-20 21:57:42 -05:00
Jordan Borean cf662ed74b win_reboot: change to sample system uptime instead of checking port status (#31767)
* win_reboot: change to sample system uptime instead of checking port status

* added connection timeout back in as now we can manually set it per connection.

* some pep8 fixes

* fix up error message on timeout in case an exception wasn't fired

* Changed doc to English (US) and simplified uptime check

* moved conn timeout over to new config connection options
2017-11-20 16:01:22 -08:00
Brian Coca 6bca5e5a4a
add lookups to config system (#33026)
* add lookups to config system

use etcd as proof of concept

* some doc updates
2017-11-20 09:24:10 -05:00
Brian Coca 53cbc9f6ee fix localized set options in callbacks
signature changed but callbacks overriding it were not updated

fixes #33006
2017-11-20 09:22:48 -05:00
Aaron Haaf c212c2e19f Add itertools.product as a filter (#32991) 2017-11-17 21:35:51 -05:00
Nathaniel Case 37d8242e44
Fix hang on unkown host key for network_cli (#32937)
* Don't prompt on force_persistent either

* Propagate persistence setting to lower paramiko connection
2017-11-17 13:09:02 -05:00
Nathaniel Case 71a6dcdf3e
Fixes eos sending 'None' to device (#33015)
* Fix network_cli sometimes sending 'None' to device

* Also fix `--become-method=enable`
2017-11-17 11:33:54 -05:00
Brian Coca 23b1dbacaf
Config continued (#31024)
* included inventory and callback in new config

allow inventory to be configurable
updated connection options settings
also updated winrm to work with new configs
removed now obsolete set_host_overrides
added notes for future bcoca, current one is just punting, it's future's problem
updated docs per feedback
added remove group/host methods to inv data
moved fact cache from data to constructed
cleaner/better options
fix when vars are added
extended ignore list to config dicts
updated paramiko connection docs
removed options from base that paramiko already handles
left the look option as it is used by other plugin types
resolve delegation
updated cache doc options
fixed test_script
better fragment merge for options
fixed proxy command
restore ini for proxy
normalized options
moved pipelining to class
updates for host_key_checking
restructured mixins

* fix typo
2017-11-16 13:49:57 -05:00
Toshio Kuratomi ae148d1a21 Make everything in default callback use display (#32811)
Noticed that there was just one old and one new place in the default
callback that did not use Display.display() to show data.  Changed those
two places so that everything is uniform.
2017-11-16 10:53:01 +10:00
Nathaniel Case 7414405063
Back to 'prompt' for authorize prompt (#32932) 2017-11-15 12:22:14 -05:00
Ganesh Nalawade 52c87c4691
Fix typo in network_cli to fetch command prompt (#32899) 2017-11-15 09:06:28 +05:30
Anil Kumar Muraleedharan e5b3f60a74 Enos connection issue (#32895)
* Changes due to connection issues

* Adding changes pertaining to connection issue of Ansible

* Review comments of Kedar

* Adding EOL PyLint issue

* Fixing pep8  and yamlint issues
2017-11-14 16:00:16 -05:00
Nathaniel Case a1517234f6
Fix `authorize: yes` and `become_method: enable` (#32864)
* Update connection play_context when socket exists

* Don't fail on connections other than network_cli

* Fix enable prompt detection on ios & eos

* Check against "Module not found" error code, defined in modules/jsonrpc.py
2017-11-14 15:51:14 -05:00
Ganesh Nalawade 71fa60bc68
Fix prompt issue in asa terminal plugin (#32900) 2017-11-14 22:25:35 +05:30
Ganesh Nalawade 9cedb89644
Fix iosxr get_prompt return value failure (#32902) 2017-11-14 21:11:10 +05:30
Brian Coca 992f6d8bf4 unixy maint info 2017-11-14 09:39:21 -05:00
Ganesh Nalawade 8472a53bea Add prompt check in action plugin for network platform (#32787)
* Add prompt check in action plugin for network platform

In case of ignore_errors for a wrong configuration
the prompt is left in configuration mode and moved to
next task, if the next taks requires prompt to be
in operational state it results in failure.
Hence add a check to ensure right prompt at start of
each task run.

* Add prompt check in action plugin for network platform

*  In case of ignore_errors for a wrong configuration
   the prompt is left in configuration mode and moved to
   next task, if the next taks requires prompt to be
   in operational state it results in failure.
*  Hence add a check to ensure right prompt at start of
   each task run.
*  Fix CI issue

* Fix CI issues
Fix review comment
Change iosxr exit command to abort as per review comment
2017-11-14 17:37:52 +05:30
Sam Doran ea3638b580 Add proper check mode support to the script module (#31852)
* Do not run script in check mode

Fixes #30676

* Reformat script integration test

* Add integration tests for check mode of script module

* Fix name on test

* Cleanup temp file

* win_script integration test syntaxt changes

* Add check mode tests for win_script

* Use proper variable in test

* Fail if source file does not exist

* Verify script is accessible and don't copy in check mode

Use shlex to properly split shell arguments, though a path with spaces in it still needs to be quoted in the playbook.
Add note to docs describing such.
Improve error message if file is not found indicating there may be a space in the path.

* Properly encode path now that path is split using shlex

* Allow for spaces in both path and script name

* Add unicode character test to Linux script tests

* Add Linux test for space in path to script
2017-11-13 15:33:44 -08:00
Pierre-Louis Bonicoli 474bf208e9 syslog_json: fix typos in documentation 2017-11-13 17:11:15 -05:00
Peter Sprygada db6a72ebf9 fixes eos connection checks and checks configured connection (#32828)
This change will check the configured connection first and then check
the local provider values.
2017-11-13 14:28:55 -05:00
Peter Sprygada b9bdb05459 fixes asa action plugin for connection=local (#32827)
* fixes asa action plugin for connection=local

This change fixes asa modules when using connection=local to load the
provider values.

* fix up pep8 issues
2017-11-13 14:24:13 -05:00
Brian Coca b70e48a54d fixed issues with lookup url docs 2017-11-13 13:43:19 -05:00
Matt Martz 99d4f5bab4 Remove uses of assert in production code (#32079)
* Remove uses of assert in production code

* Fix assertion

* Add code smell test for assertions, currently limited to lib/ansible

* Fix assertion

* Add docs for no-assert

* Remove new assert from enos

* Fix assert in module_utils.connection
2017-11-13 11:51:18 -05:00
Peter Sprygada c9e6da338c
update sros local action plugin to support network_cli (#32830)
* update sros local action plugin to support network_cli

This updates the sros local action plugin to only start the connection
if connection=local is specified.  This is to support network_cli
connection plugin

* fix up pep8 issues
2017-11-12 19:57:04 -05:00
Trentr9 5625720c64 Fix typo in documentation (#32821) 2017-11-12 09:37:22 +01:00
Brian Coca e7941b0d4e
avoid chroot paths (#32778)
* avoid chroot paths

fixes #32764

* check name
2017-11-10 13:26:49 -05:00
Sloane Hertel 33a704cc61 Add documentation for the aws_ssm lookup plugin. (#32763) 2017-11-10 12:15:19 -05:00
Matt Davis 5ff36c3423 Enable autoloading of inventory plugins (#32709)
* Automatically loads and executes an inventory plugin specified by a standard YAML inventory config file containing a `plugin` key at its root.
* Moved inventory PluginLoader to a shared global instance.
2017-11-09 19:38:34 -05:00
Brian Coca 59d5481abb
fixes to events/callbacks (#32633)
* fixes to events/callbacks

  - made note of 'not called' methods for future fixes
  - removed uncalled v2_runner_on_file_diff because dupe of v2_on_file_diff, which is called
  - removed v2_runner_on_no_hosts due to existing pb level ones, which are called
  - removed v2_on_setup, it is just a task, triggers normal task events
  - v2_on_notify is now called when a handler is notified
  - TODO: async, cleanup? and import events
    these currently occur in code that has no access to sending events

* corrected display
2017-11-09 17:12:37 -05:00
Brian Coca 0e74731d73 Added callback that removes callback noise
for those that only want logging but no events to screen
2017-11-09 17:12:13 -05:00
u625030 6d597ac05a Update win_copy for #32677 (#32682)
* Update win_copy for #32677

enable large zip file support in win_copy

* Update win_copy.py
2017-11-10 06:34:29 +10:00
Nathaniel Case 9c0275a879
Connection plugins network_cli and netconf (#32521)
* implements jsonrpc message passing for ansible-connection

* implements more generic mechanism for persistent connections
* starts persistent connection in task_executor if enabled and supported
* supports using network_cli as top level connection plugin
* enhances logging for persistent connection to stdout

* Update action plugins

* Fix Python3 RPC

* Fix Junos bytes<-->str issues

* supports using netconf as top level connection plugin

* Error message when running netconf on an unsupported platform
* Update tests

* Fix `authorize: yes` for `connection: local`

* Handle potentially JSON data in terminal

* Add clarifying detail if possible on ConnectionError
2017-11-09 15:04:40 -05:00
Brian Coca ee80215fa9
Combine lists of dicts (#32686)
* allow combine to take lists of dicts

* updated as per feedback
2017-11-09 10:02:38 -05:00
Brian Coca db749de5b8 namespace facts
updated action plugins to use new guranteed facts
updated tests to new data clean
added cases for ansible_local and some docstrings
2017-11-09 09:48:14 -05:00
Anil Kumar Muraleedharan 9d98452032 New enos_facts, + module_utils/enos.py. modifying copyright year in rest all (#31696)
* Squashing all commits to one as suggested by John

* Adding Unit test method for the module enos_facts.py

* Pep8 and Ylint issues addressed

* Trying again to remove blank line. Some scripts are required for this.

* Bug Fixing for interfaces

* Editing for over indenting issue

* E203 whitespace before ','

* Update enos.py

Added warnings argument as to check_args method

* Update enos_facts.py

Added warnings to check_args method
2017-11-08 15:55:46 +00:00
Jan Pazdziora e5dbf63b65 Fix #31694: running with closed stdin on python 3 (#31695) 2017-11-08 11:59:42 +01:00
Denver Janke 57106662db Get (potentially) new composite host vars from inventory (#32606)
* Get new composite host vars from inventory

* Remove spaces from blank line
2017-11-07 23:10:00 -05:00
David M. Lee 1fd454e5b5 Add yaml output plugin (#32246)
* Add yaml output plugin

Using YAML instead of JSON for detailed output can (IMO) improve
readability; especially for tasks with either lots of output, or
multi-line output.

* Fix yaml output plugin documentation

 * Added copyright header to yaml.py
 * Moved mention of yaml output plugin to `New Modules` section

* Use AnsibleDumper in yaml output plugin

Also moved the `represent_scalar` setup into the init method. As a
global statement, it was causing exceptions trying to get an `id`
field that does not exist.

* Remove trailing whitespace

* Remove useless json.loads/dumps from yaml output
2017-11-07 22:00:11 -05:00
paulquack a5da2e44a1 ironware_config module (#32187) 2017-11-07 08:22:22 +00:00