Commit Graph

2974 Commits (0e4a7b0889773f2e77ba628ac062b95e9910065b)

Author SHA1 Message Date
Richard Schwab 97fcc3ef66 Correct version_added for strategy host_pinned (#45333) 2018-09-07 09:15:46 +02:00
Ian Wienand c34e0f5e11 plugins/callbacks : fix some key documentation (#45267)
These are supposed to be a dictionary with section/key entries;
correct a few typos.
2018-09-06 15:38:25 -04:00
Ganesh Nalawade a3c137c1ab
Fix diff_ignore_lines option issue for candidate configuration (#45201)
* Fix diff_ignore_lines option issue for candidate configuration

*  diff_ignore_lines option is to handle the running config fetch from
   remote host and ignore the lines that are auto updated eg: commit time and date
*  This option should not be used while processing candidate (input) configuration

* Fix review comment
2018-09-06 23:54:56 +05:30
Trishna Guha c98494d5bf
fix python26 nxos terminal plugin bug (#45271)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-09-06 16:15:01 +05:30
Brian Coca 9a6530be77 clarify free strategy (#44645)
* clarify free strategy
* wordsmithing
* shorten line per Shippable
2018-09-05 20:24:37 -05:00
Bob Lee 9a1191cbe5 Update documentation for gcp_compute (#43791)
Added examples on how to use "keyed_groups", "hostnames", and "compose"

The compose example shows how to set the ansible_host var for a host to either the public or private ip. This is necessary when you set your hostname by name instead of ip
2018-09-05 13:45:56 -05:00
Ted Timmons 86341f7520 docfix, python-netaddr should be netaddr (#43372)
"python-netaddr" is an OS package, but "netaddr" is the pypi package needed in python. Suggesting OS packages for python libs seems in bad form. I like the syntax "python's netaddr" to explain what package manager would have it.
2018-09-05 13:42:51 -05:00
abirami-n 3601c74971 enable_netconf_support_on_dellos10 (#44816) 2018-09-05 19:16:01 +05:30
characteristic 324b57d6ae Correct Jinja2 plugin math filter symmetric_difference() to not repeatedly (#45093)
build its intersection set and unnecessarily unique the final result.

The prior use of the intersect() function within the list comprehension
conditional leads to the function being called for every value in the input
list being processed, not efficient.  When the input lists a,b are large,
the Ansible run time and resource utilization wildly increases generally
never completing the operation.

Unique of the intersection result is unnecessary as the source list union()
is already unique.
2018-09-04 09:12:02 -04:00
Trishna Guha ab3cd10dfe
fix Python 2.6 regex bug terminal plugin nxos, iosxr (#45135)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-09-04 13:44:43 +05:30
Ganesh Nalawade 455dfbe732
Fix netconf module and plugin issues (#45140)
* Fix netconf netconf issues

*  Identifier is optional for get_schema api
*  Fix dispatch api mandatory argument check
*  Add save option handling to copy config from target datastore
   to startup datastore if supported
*  Validate config in check-mode or if validate option set to true

* Copy config if check-mode is not enabled
2018-09-04 13:23:18 +05:30
linnil1 177fbea351 Fix sshkeyfilename is None not str (#44893) 2018-09-04 11:59:08 +05:30
Rémy Léone f465a251e1 Add a dynamic inventory plugin for Online (#44720) 2018-09-03 02:33:15 -04:00
Anil Kumar Muraleedharan fbf55a09cc Lenovo image refactor (#44953)
* Refactoring code to adhere to persistence connection.

* Update cnos_rollback.py

* Updating license for the refactored method

* Update cnos_rollback.py

* Removing the BSD License as suggested by Legal

* Adding cnos_image after testing on sftp. Test code is also added

* Removing debug comments

* adding space
2018-08-31 20:04:57 +05:30
Ganesh Nalawade c0326aea2f
Fix cli_command multiple prompt issue (#44922)
* Add check in network_cli to handle all prompts

* Add check_all flag to mandatory handle all the command prompt
  in prompts list. By default if any one prompt is handled
  remaining prompts are ignored.

* Fix cli_command multiple prompt issue

* If multiple prompt and answers are given as input network_cli
  handles only the first prompt that matched by default
* If a command execution results in muliple prompt the fix
  add support to set a boolean option C(check_all) to indicate
  network_cli to wait till all the prompts and answers are processed.

* Update cli_command

* Update api doc

* Fix unit test failure

* Fix CI failure

* Update network_cli

* Fix review comment
2018-08-31 20:04:12 +05:30
Deepak Agrawal 50c7702e46
cisco firepower : Make API endpoints configurable via hostvars (#44952)
* httpapi host vars

* Make configurable end-points for firepower

* pep8 fix
2018-08-31 18:38:16 +05:30
Ganesh Nalawade b0d6867fbb
Fix netconf_config module default_operation issue (#44958)
* Pass parameters as dict to edit_config api
  as either dict or args can be passed over
  jsonrpc 2.0 and not combination of args and
  kwargs
2018-08-31 16:33:34 +05:30
Matt Davis 2822fd8d9b
initial commit of azure_rm inventory plugin (#44944)
* crusty refactor of azure_rm to support auth from non-modules
2018-08-31 01:33:23 -07:00
Matt Martz a0d7d4b82f Change insertion order of apply block to not affect the include_X task itself (#44912) 2018-08-30 16:56:28 -04:00
Sam Doran 8cd8d17980
Add ability to unlock 1Password vault to lookup plugins (#44923)
* Add ability to use login to 1Password vault to 1Password lookups

* Adjust unit tests

* Add changelog
2018-08-30 16:24:06 -04:00
Ken Partridge 0b7a37c67b Add lookup cpm_metering to read WTI CPM and VMR PDU device power and current data (#44491)
* Add WTI OOB and PDU Device status, control and configuration module

* removed accidental file inclusions

* removed accidental file

* re-add cpm_metering

* was gettign a ERROR: Command "docker exec from GitHub, so this is a retry

* removed un-needed files

* removed old cpm_metering

* removed cpm_metering.py

* re-add cpm_metering

* removed pyc file

* re-added cpm_metering.py

* cleaned up EXAMPLES indentation

* EXMAPLES startdate, enddate had : instead of = to indicate a value

* Fixed missing whitespace around arithmetic operator
2018-08-30 15:53:38 -04:00
Ganesh Nalawade 1a684df109
Fix iosxr cli_config module diff issue (#44898)
* Fix iosxr cli_config module diff issue

* Modify iosxr plugin to support configuration
  diff capability (get_diff()) within Ansible
  to be in sync with iosxr_config module.

* Fix unit test case failure
2018-08-30 21:39:11 +05:30
Dag Wieers bf9ed0263a Ensure action plugins accept only valid args (#44779)
* Ensure action plugins accept only valid args

This fixes #25424
This also fixes #44773

* Add missing parameters, use private _VALID_ARGS
2018-08-30 09:40:36 -04:00
Justin Yaple a767929456 Fix 'macro name' timeout (#44001)
* Fix 'macro name' timeout

Added function to send macro to device using 'sendonly'.

* Filter 'macro' from normal commands

* Removed white space

* Undefined variable 'cmd'
2018-08-30 18:11:51 +05:30
pierremahot d11e078366 adding an option for the filter ipsubnet and testing (#40670)
* adding an option for the filter ipsubnet
2018-08-30 13:21:22 +01:00
Nathaniel Case 149aa767ff
Setting options is fine if plugins already exist (#44859) 2018-08-29 16:33:51 -04:00
Pilou c07ba82d3e Scaleway inventory: allows to connect via private IP (#44342)
* scaleway inventory: remove useless duplicate

* scaleway inventory: allows to connect using private ip

ansible_host was hardcoded and it was not possible to connect using
private addresses.
This allows to define multiple host variables, values are templates
which can use hosts details send by API. For example this config file
use private address and defines two variables:

    plugin: scaleway
    hostnames:
      - hostname
    variables:
      ansible_host: private_ip
      state: state
      image: image.name
    regions:
      - ams1

inventory will looks like:

    {
        "_meta": {
            "hostvars": {
                "testhost": {
                    "ansible_host": "10.1.1.1",
                    "arch": "x86_64",
                    "commercial_type": "START1-M",
                    "hostname": "testhost",
                    "id": "af669464-0c74-4c89-8573-9fe763028448",
                    "image": "CentOS 7.4",
                    "organization": "2cc9a115-380d-4ac0-ba4b-8947eee71325",
                    "public_ipv4": "163.172.1.1",
                    "public_ipv6": "2001:bc8::1",
                    "state": "running",
                    "tags": [
                        "testtag"
                    ]
                }
            }
        },
        [...]
    }
2018-08-29 12:14:12 -04:00
Ganesh Nalawade eb9c75caad
Fix rollback option in cli_config module (#44834)
* Fix rollback option in cli_config module

* Update rollback flag in cliconf plugins
* Add rollback api for junos cliconf plugin

* Update doc

* Update doc
2018-08-29 21:00:11 +05:30
Jordan Borean 559599842a windows async: return pipeline output in case of a failure (#44807) 2018-08-29 16:13:31 +02:00
Anton Nikulin 40a97d43d1 New modules and updated HTTP API plugin for FTD devices (#44578)
* Add common and Swagger client utils for FTD modules

* Update FTD HTTP API plugin and add unit tests for it

* Add configuration layer handling object idempotency

* Add ftd_configuration module with unit tests

* Add ftd_file_download and ftd_file_upload modules with unit tests

* Validate operation data and parameters

* Fix ansible-doc, boilerplate and import errors

* Fix pip8 sanity errors

* Update object comparison to work recursively

* Add copyright
2018-08-29 15:48:10 +02:00
Nathaniel Case 86f96d0212
Move plugin option settings. (#44774)
* Move plugin option settings.

* Add default value and clear after use.
2018-08-28 17:30:50 -04:00
Jordan Borean 0c3216c565 win_reboot: fix minor issues with the latest refactor (#44740)
* win_reboot: fix minor issues with the latest refactor

* Always return elapsed with win_reboot
2018-08-28 17:25:37 -04:00
Matt Martz 113bdec2ed Fix subelements lookup docs example (#44782)
* Fix subelements lookup docs example

* Fix grammar
2018-08-28 16:52:07 -04:00
Rémy Léone 70adbb87d9 Added private_ipv4 to the hostvars in Scaleway dynamic inventory (#44122) 2018-08-28 16:35:38 -04:00
Rémy Léone ea0f722d74 Fix verify_file check in Scaleway dynamic inventory (#44384) 2018-08-28 16:34:13 -04:00
Trishna Guha 1e7c745a5c
fix rollback option vyos cliconf (#44763)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-28 19:49:25 +05:30
Adam Miller 397febd343 YUM4/DNF compatibility via yum action plugin (#44322)
* YUM4/DNF compatibility via yum action plugin

DNF does not natively support allow_downgrade as an option, instead
that is always the default (not configurable by the administrator)
so it had to be implemented

 - Fixed group actions in check mode to report correct changed state
 - Better error handling for depsolve and transaction errors in DNF
 - Fixed group action idempotent transactions
 - Add use_backend to yum module/action plugin
 - Fix dnf handling of autoremove (didn't used to work nor had a
   default value specified, now does work and matches default
   behavior of yum)
 - Enable installroot tests for yum4(dnf) integration testing, dnf
   backend now supports that
 - Switch from zip to bc for certain package install/remove test
   cases in yum integration tests. The dnf depsolver downgrades
   python when you uninstall zip which alters the test environment
   and we have no control over that.
 - Add changelog fragment
 - Return a pkg_mgr fact if it was not previously set.
2018-08-27 10:17:47 -07:00
Matthias Fuchs 7871027c9d Share the implementation of hashing for both vars_prompt and password_hash (#21215)
* Share the implementation of hashing for both vars_prompt and password_hash.
* vars_prompt with encrypt does not require passlib for the algorithms
  supported by crypt.
* Additional checks ensure that there is always a result.
  This works around issues in the crypt.crypt python function that returns
  None for algorithms it does not know.
  Some modules (like user module) interprets None as no password at all,
  which is misleading.
* The password_hash filter supports all parameters of passlib.
  This allows users to provide a rounds parameter, fixing #15326.
* password_hash is not restricted to the subset provided by crypt.crypt,
  fixing one half of #17266.
* Updated documentation fixes other half of #17266.
* password_hash does not hard-code the salt-length, which fixes bcrypt
  in connection with passlib.
  bcrypt requires a salt with length 22, which fixes #25347
* Salts are only generated by ansible when using crypt.crypt.
  Otherwise passlib generates them.
* Avoids deprecated functionality of passlib with newer library versions.
* When no rounds are specified for sha256/sha256_crypt and sha512/sha512_crypt
  always uses the default values used by crypt, i.e. 5000 rounds.
  Before when installed passlibs' defaults were used.
  passlib changes its defaults with newer library versions, leading to non
  idempotent behavior.

  NOTE: This will lead to the recalculation of existing hashes generated
        with passlib and without a rounds parameter.
        Yet henceforth the hashes will remain the same.
        No matter the installed passlib version.
        Making these hashes idempotent.

Fixes #15326
Fixes #17266
Fixes #25347 except bcrypt still uses 2a, instead of the suggested 2b.

* random_salt is solely handled by encrypt.py.
  There is no _random_salt function there anymore.
  Also the test moved to test_encrypt.py.
* Uses pytest.skip when passlib is not available, instead of a silent return.
* More checks are executed when passlib is not available.

* Moves tests that require passlib into their own test-function.

* Uses the six library to reraise the exception.

* Fixes integration test.

When no rounds are provided the defaults of crypt are used.
In that case the rounds are not part of the resulting MCF output.
2018-08-27 08:40:41 -07:00
Trishna Guha 79a020e312
junos cli_config idempotence fix (#44706)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-27 12:40:16 +05:30
Chris Coley ce5530e08d Fix incorrect default value for shutdown_command (#44607) 2018-08-24 09:51:14 -04:00
Yanis Guenane 9869f378fd inventory/vultr: Few minor improvements (#44622) 2018-08-24 15:35:29 +02:00
Sam Doran 4d9218cec4 Add reboot action plugin (#35205)
* Update docs

* Add reboot action plugin

Refactor win_reboot so it is subclassed from reboot

* Use new connection methods

* Test fixes

* Use better uptime command for Linux

Use who -b to get the last time the system was booted rather than uptime, which changes every second.

* Use distribution specefic commands and flags

Query the managed node to determien its distribution, then set the appropriate command and flags.

* Tune debug messages a bit

* Update module docs with details about pre_reboot_delay

s docs

* Ensure that post_reboot_delay is a positive number

* Remove the stringification

* Add integration tests

* Make sure aliases are honored

* Handle systems that have an incorrect last boot time

SystemD and fakehw-clock do not properly set the
last boot time and instead always set it to epoch.
Use a different command if that is the case.

* Copyright and encoding fixes

* Minor fixes based on feedback

* Add exponential backoff to sucess check method

* Update integration test

Skip the integration test if it would try to reboot the control node. We need a new mechanism to account for this scenario in ansible-test, so tests must currently be run manually for this plugin.

* Update integration test

Skip the integration test if it would try to reboot the control node. We need a new mechanism to account for this scenario in ansible-test, so tests must currently be run manually for this plugin.

* Fail early with running with local connection

* Update docs based on feedback

* minor refactoring, state mgmt changes
2018-08-23 18:12:12 -07:00
Brian Coca 9cc56981b5
Add new host_pinned strategy (#44586)
The 'free' strategy still attempts to do all hosts per task before going to the next, it just doesn't wait for slow hosts,
This strategy processes each host as fast as possible to the end of the play before trying to process another host in the pool.
2018-08-23 20:16:32 -04:00
Matt Clay 3fb5056606 Fix PEP8 issue. 2018-08-23 16:43:59 -07:00
Sloane Hertel b152515fcb RDS inventory plugin (#41919)
Comments out uses of rds_instance in the integration tests and replace with AWS CLI until rds_instance has been merged
2018-08-23 19:42:32 -04:00
Dag Wieers 3d70274864
Added an async 'started' test (like 'finished') (#43445) 2018-08-24 01:29:34 +02:00
Matt Martz 242e9229a1
Pin deprecation of tags in params for include to deprecation of include (#44596) 2018-08-23 16:25:33 -05:00
Yanis Guenane 72d4880b85 Vultr: Introduce the Vultr inventory plugin (#44400)
This commit introduce the Vultr inventory plugin.
2018-08-23 23:14:26 +02:00
Matt Martz 88509e75ad
Remove bare_deprecated functionality (#44517)
* Remove bare_deprecated functionality

* Change tests due to bare_deprecated removal
2018-08-23 11:31:16 -05:00
jctanner 653d9c0f87 New keyword: ignore_unreachable (#43857) 2018-08-23 11:41:02 -04:00
Lindsay Hill 6c05e03fea Replace invalid_params with ValueError (#44545) 2018-08-23 15:49:08 +02:00
Ganesh Nalawade e25d8e2b99 Add support for multiple prompt answers in network_cli (#44492)
* Currently network_cli support multiple prompts
  single answer as response. This PR adds support
  for multiple answers.
* In case of multiple prompts and mulitple answers the
  index of a particular prompt in the prompts list should
  match with the index in the answer list.
2018-08-23 09:46:42 -04:00
Sumit Jaiswal b1f915b28b
Added Support for excluding IPs in nios_next_ip and created new pluggin for nios_next_network (#44437)
* adding next network pluggin

* include exclude option for next_ip search

* changing example provider input

* adding new line at end

* version added info

* to fix shippable errors

* to fix shippable errors

* adding exclude option in doc section

* fix review comment

* fix review comment
2018-08-23 03:08:39 +00:00
Vladimir Dobriakov 6f480fd03d Fixes #23078 - eliminate trailing whitespace in to_nice_json (#42633)
* Fix #23078 - eliminate trailing whitespace in to_nice_json

* Add changelog fragment for #42633
2018-08-22 14:55:30 -05:00
Pablo 5f953d1129 Fix handlers on strategy free (#33011)
Add _flushed_hosts dict to store when handlers are flushed and prevent them
to be executed too early using _filter_notified_hosts.

Add _wait_on_handler_results to wait only for handlers to be completed.

Remove only hosts that have been flushed from handler notified list.

Fix #31504, #23970
2018-08-22 10:07:31 -04:00
Jordan Borean 6982dfc756 psrp: Added new Windows connection plugin (#41729)
* psrp: Added new Windows connection plugin

* Tweaks to connection options from review
2018-08-21 16:43:13 -07:00
Yunfan Zhang 18f361ecdd Added Ansible Tower inventory plugin. (#41816)
Signed-off-by: Yunfan Zhang <yz322@duke.edu>
2018-08-21 14:41:26 -04:00
Lindsay Hill f10abe7bf5 add missing slxos_config action plugin (#44103)
* add missing slxos_config action plugin
2018-08-21 10:03:36 -07:00
Lindsay Hill b0a25d321d new nos_config module (#44140)
* new nos_config module

* Update cliconf/nos.py to add missing 'end'
2018-08-21 10:02:40 -07:00
Joakim Israelsson 88659dcba4 Documentation fix, decrypt is True by default (#44435) 2018-08-21 09:21:25 -07:00
Matt Martz 2bf6507c44
Use newer is_sequence function instead of MutableSequence (#44331)
* Use newer is_sequence function instead of MutableSequence. Fixes #44327

* Add changelog for #44331

* Update changelog fragment to describe the fix in more detail
2018-08-21 10:42:11 -05:00
Ganesh Nalawade ce541454e9
Update netconf_config module (#44379)
Fixes #40650
Fixes #40245
Fixes #41541

*  Refactor netconf_config module as per proposal #104
*  Update netconf_config module metadata to core network supported
*  Refactor local connection to use persistent connection framework
   for backward compatibility
*  Update netconf connection plugin configuration varaibles (Fixes #40245)
*  Add support for optional lock feature to Fixes #41541
*  Add integration test for netconf_config module
*  Documentation update
* Move deprecated options in netconf_config module
2018-08-21 20:41:18 +05:30
Ken Partridge 5b78b1032b Add module cpm_status for WTI device management (#42970)
* Add WTI OOB and PDU Device status, control and configuration module

* reorganized module names, removed multiple modules

* Fixed sanity check failures

* Fixed sanity check failures

* Fixed sanity check failures

* Fixed sanity check failures

* moved module from network directory to remote_management.
added validate_certs parameter
added example returned data.

* pep8 issues

* cpm_status code removed from module section and placed in plugins/lookup.
Modified module code to lookup style code

* EXAMPLE spacing format error

* EXAMPLE formatting

* removed split_line parameter. Return is exclusively formatted JSON

* display edits

* delete display debug text

* Change the examples to use YAML rather than k=v shorthand

* re-enabled "required" flags for cpm_username and cpm_password

* moved redundant ansible.module_utils._text import of to_native to previous ansible.module_utils._text import line

* Got unusual error from GitHub checkin of Unstable, bump to see if it happends again.
2018-08-20 21:56:06 -04:00
Matt Martz 617372f8c0
Mass nuke deprecated items that are easily removed. ci_complete (#44320) 2018-08-20 16:26:10 -05:00
Artem Leshchev 8323f3e3b7 Fix module name in error text at parse_xml filter (#44313)
* Fix module name in error text at parse_xml filter

* Fix test that includes erroneous module name in error text at parse_xml filter
2018-08-20 10:19:16 +05:30
stoned e5f4987a8f Make mandatory filter error message more verbose (#44139)
...by adding the undefined variable/attribute name, if available.
2018-08-17 15:11:43 -04:00
Monty Taylor e89e4c991c Fix openstack inventory plugin for API changes (#43580)
The inventory plugin api grew a self.cache that wasn't there when we
first wrote it. There's also a need to pull in the documentation
fragments so that we have the cache parameters.
2018-08-17 07:03:08 -04:00
Deepak Agrawal aed6722fbc
DCI devel iosxr fix : on-device diffs does not work always (#44265)
* fix devel dci failure on iosxr

* pep8 issue fix
2018-08-17 12:34:11 +05:30
Lance Richardson dc08b9a738 new module exos_config (#43902)
- support config operations for EXOS-based platforms
- add regex to detect command failure responses
- add exos action plugin for "backup" operation
- add unit tests for exos_command (currently 94% coverage of
  exos_config.py)
2018-08-15 14:56:50 -07:00
Zhikang Zhang 0971a342d8
Solve race condition in password lookup (#42529)
NOTE:
1. use os.open() with os.O_CREAT|os.O_EXCL to check existence
and create a lock file if not exists, it's an atomic operation
2. the fastest process will create the lock file and others will
wait until the lock file is removed
3. after the writer finished writing to the password file, all the reading
operations use built-in open so processes can read the file parallel
2018-08-15 15:10:52 -04:00
Andrew Gaffney 5708894f90 Bugfixes and integration tests for 'default' callback plugin
* display 'changed' tasks when hiding 'ok' tasks
* display proper task title for handlers (fixes #44007)
2018-08-15 07:56:17 -07:00
ivarmu 742ba04125 Add callback plugin to show current/total numberings for tasks and hosts in a task. (#40769)
Change version_added as requested
2018-08-15 10:22:53 -04:00
Ganesh Nalawade d9ee693652
Update netconf plugins for junos and iosxr (#44157)
* Update netconf plugins for junos and iosxr

Fixes #39160

*  Update api signature for netcon api's
   from variable arguments to named arguments

* Udpate get default rpc supported

* Fix CI issue
2018-08-15 16:34:45 +05:30
Deepak Agrawal 84bedcbd82
Httpapi plugin for Firepower device (#43773)
* Common Rest Module using httpapi transport

* comparing json objects

* platform independant Rest Api

* FTD rest module

* Remove FTD module which will be committed later from cisco team

* remove debug code

* remove common rest module

* fix shippable errors

* Add notification users

* more shipable errors
2018-08-14 14:28:07 +05:30
Trishna Guha a8c24a5d5e
Add cli_config module (#42413)
* cli_config module

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

* rename diff and replace

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

* add nxos changes

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

* nxos tests

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

* remove severity

* address review comment

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

* add module diff

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

* add iosxr test

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

* address diff review

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

* Add junos tests

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

* vyos cliconf diff fix

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-14 13:52:15 +05:30
Trishna Guha 227bf61daa
junos cliconf diff fix (#44109)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-14 13:01:27 +05:30
Trishna Guha e188073629
multiline_delimiter should be True ios cliconf (#44106)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-14 11:34:07 +05:30
Lindsay Hill 727503c5ab fix typo in edit_config_capability name (#44102) 2018-08-14 09:17:50 +05:30
Zhikang Zhang cda3b53035
make doc templates not case sensitive for the default value (#41158) 2018-08-13 16:47:12 -04:00
Matt Martz 17c89d1ffa
Remove unused rslt_q, rename the one queue to final_q everywhere (#43894)
* Remove unused rslt_q, rename the one queue to final_q everywhere

* Test update
2018-08-13 13:43:28 -05:00
Nathaniel Case a3385a60b4
httpapi: let httpapi plugin handle HTTPErrors other than 401 (#43436)
* Hold httpapi response in BytesIO

* Let httpapi plugin deal with HTTP codes if it wants

* Python 3.5 won't json.loads() bytes

* Don't modify headers passed to send

* Move code handling back to send()

but let httpapi plugin have a say on how it happens
2018-08-13 10:25:06 -04:00
Andrew Gaffney c1f41ee607 Display correct task title with strategy 'free' (fixes #43950) 2018-08-10 23:39:44 -07:00
Lindsay Hill 5981a7489b new nos_command module (#43056) 2018-08-10 13:50:02 -07:00
Toshio Kuratomi 5ba41a9575 Remove call to parse_returned_data when removing tmpdir
_parsed_return_data should only be used with the return from a module.
This location was invoking a remote shell command rather than a module
so we don't want it here.
2018-08-10 12:18:11 -07:00
Matt Martz c1c229c6d4
Remove use of simplejson throughout code base (#43548)
* Remove use of simplejson throughout code base. Fixes #42761

* Address failing tests

* Remove simplejson from contrib and other outlying files

* Add changelog fragment for simplejson removal
2018-08-10 11:13:29 -05:00
Trishna Guha 96346938ee
nxos_vlan refactor to support non structured output (#43805)
* nxos_vlan refactor to support non structured output

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

* unittest fix

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

* minor fixes

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

* use check_rc

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

* address review comment

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

* remove additional return statement

* address Nate's review

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-10 21:03:56 +05:30
Nathaniel Case f221105882
Prevent data being truncated over persistent connection socket (#43885)
* Change how data is sent to the persistent connection socket.

We can't rely on readline(), so send the size of the data first. We can
then read that many bytes from the stream on the recieving end.

* Set pty to noncanonical mode before sending

* Now that we send data length, we don't need a sentinel anymore

* Copy socket changes to persistent, too

* Use os.write instead of fdopen()ing and using that.

* Follow pickle with sha1sum of pickle

* Swap order of vars and init being passed to ansible-connection
2018-08-10 09:26:58 -04:00
Ganesh Nalawade d1de1e0449
Update iosxr cliconf plugin (#43837)
* Update iosxr cliconf plugin

Fixes #39056

*  Update iosxr cliconf plugin
*  Modify iosxr module_utils code to support
   refactored cliconf plugin api's
*  Other minor changes

* Fix unit test failure

* Update ios, eos, nxos plugin for diff

* Fix review comment
2018-08-10 13:12:51 +05:30
Dag Wieers 2974df9d5e
Fix typo 2018-08-10 01:34:23 +02:00
Trishna Guha 55f8b9fa71
set supports_generate_diff to False vyos (#43873)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-09 15:37:08 +05:30
Nathaniel Case 35f625ee3b
Network *_config action plugin updates (#43838)
* Compatibility fixes for ${network_os}_config action plugins
2018-08-08 15:15:08 -04:00
Lance Richardson bd4d68c785 network/exos: add exos_facts module (#43210)
Add exos_facts module. Known limitations at this time include:
   - Interface MTU is not reported.
   - Only primary interface IP is reported.

Add basic unit tests for the exos_facts module.

An EXOS CLI prompt can be prefixed with '! ' (shutting down), '* '
(running configuration does not match saved configuration), and
can include various status tokens within parentheses after these
prefixes. Update prompt regex to accept valid CLI prompts.
2018-08-08 16:02:18 +02:00
Lindsay Hill 8429f777da New networking module: voss_command (#43741)
* new voss_command module

* Removed incorrect version_added line
2018-08-08 15:56:50 +02:00
Ganesh Nalawade 4618583f2f
Update eos clcionf plugin (#43809)
* If the remote host supports session
  capability set the `supports_generate_diff`
  flag to false which identifies if config diff should
  be generated within module or not
2018-08-08 15:11:25 +05:30
Trishna Guha 5f8654e5bd
revert #43546 nxos terminal plugin (#43806)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-08 10:47:56 +05:30
Jerry Elmore f5cd6d2821 Corrected spelling of 'formatted' (#43785) 2018-08-07 15:49:04 -04:00
Abhijeet Kasurde ce7eecd782 Misc typo fixes in function docs (#43779)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-08-07 20:13:51 +02:00
Nathaniel Case ab39481c31
cli_command module (#42916)
* Create cli_command module to do direct cliconf calls

* Update edgeos cliconf signature to match.

* cli_command is cli-only

* Add tests
2018-08-06 10:41:57 -04:00
Lindsay Hill c325fd9a46 Typo in edit_banner (#43668)
Looks like `send_commad` was mistakenly added in https://github.com/ansible/ansible/pull/43203. Should be `send_command`
2018-08-06 10:12:26 +05:30
Ganesh Nalawade 35adc12c38
Update junos cliconf plugin (#43643)
* Update junos cliconf plugin

Fixes #39056

Refactor junos cliconf plugin api and other
minor changes

* Fix CI issue

* Fix CI failure
2018-08-06 10:08:05 +05:30
Jordan Borean 22b921d47f
win-async: fix race condition in async run (#43691) 2018-08-06 09:21:53 +10:00
Matt Martz 4094b017c0
Fix invocation output. Fixes #43447 (#43542) 2018-08-03 12:40:34 -05:00
Nicolas Finné d8bdf38b50 Fix telnet action plugin type error (#43609)
* Fix telnet action plugin type error

* removed blank line too much (pep8 E303)
2018-08-03 09:50:14 -04:00
Zhikang Zhang 3a3869f4c8
Clarify usage of encrypt arg (#43330)
According to the do_encrypt interface, encrypt arg should be the hash method name used for encrypting returning password. But in the doc and lookup code it's a boolean flag, correct it to string.
2018-08-02 14:03:49 -04:00
Brian Coca 62d8c8fde6 more useful messages when module failure (#43576)
* more useful messages when module failure

specially if the 'interpreter' is not found

* 1 less var

* shebang can be none

* remove typoes
2018-08-02 13:30:57 -04:00
Sebastian Wiesinger a5774bd29a Fix ini variables for netconf and network_cli connections (#43599) 2018-08-02 21:08:51 +05:30
Trishna Guha 09ae1ec308
cliconf refactor eos, nxos fix (#43596)
* cliconf refactor eos and nxos fix

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

* move nxos replace check to plugins

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

* address review comment

* fix shippable
2018-08-02 16:34:48 +05:30
Ganesh Nalawade b0bd1651fa
Fix netconf plugin set_option (#43589)
* To enable set config option with `Netconf` plugin
  inherit `NetconfBase` class from `AnsiblePlugin` parent class
2018-08-02 11:31:17 +05:30
Ganesh Nalawade 733e512f35
Fix typo in cliconf get_config (#43553) 2018-08-02 09:44:30 +05:30
Bill Nottingham 572a2187ab Add some requirements to the plugin docstrings. 2018-08-02 00:10:48 -04:00
Trishna Guha 1f410cc19f
Fail module if configure replace fails nxos (#43546)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-01 20:30:39 +05:30
Matt Martz fd839d7a67
Catch exceptions when importing plugins, and display an appropriate warning. Fixes #43237 (#43501) 2018-07-31 16:00:04 -05:00
Joren Vrancken b954917761 Surround top-level function and class definitions with two blank lines. 2018-07-31 12:06:56 -07:00
Ganesh Nalawade 857200fa7f
Update cliconf get_config api (#43472)
*  Change `filter` parameter to `flag` to be in sync
   with original naming convention
2018-07-31 02:53:29 -07:00
Ganesh Nalawade ea6ef3fae8
Enable setting options for cliconf and other implementation plugins (if set to configurable) (#43368)
* Enable setting setting cliconf plugin options

Fixes #43367

* Add support to set configuration options for implementation plugins (eg: cliconf)
  from `ansible-connection`

* Fix CI failure
2018-07-30 21:53:44 -07:00
Jordan Borean 9259f31fee Add Ansible.ModuleUtils.PrivilegeUtil and converted code to use it (#43179)
* Add Ansible.ModuleUtils.PrivilegeUtil and converted code to use it

* Changed namespace and class to be a better standard and fixed some typos

* Changes from review

* changes to avoid out of bound mem of server 2008

* changes to detect failure when setting a privileged not allowed
2018-07-30 14:48:54 -07:00
Matt Martz 77d2008150
Don't perform string to bool conversion in set_fact when jinja2 native types is enabled (#43425)
* Don't perform string to bool conversion in set_fact when jinja2 native types is enabled. Fixes #42599

* Add tests for boolean conversions in set_fact
2018-07-30 15:44:38 -05:00
Egor Zaitsev 249a6aae22 New module: routeros — manage MikroTik RouterOS (#41155)
* Implement initial RouterOS support

* Correct matchers for license prompts

* Documentation updates & mild refactor

* Remove one last Cisco function

* Sanity test fixes

* Move imports to the beginning

* Remove authorize property

* Handle ANSI codes

* Revert to_lines function

* CR fixes

* test(routeros): add unit tests

* Added another test (with ANSI colors and banner in fixture).

* Ignore CRLF line endings in system_package_print file

* fix: review by ganeshrn
2018-07-30 10:28:03 +05:30
Artem Goncharov 6667ec4474 fixes #42042 (#42939)
Do not create group with empty name when region (optional argument) is 
not given in the openstack connection
2018-07-27 10:02:34 -04:00
Abhijeet Kasurde 9a561b53fa
VMware: Dynamic Inventory plugin (#37456)
* Disable warnings on validate_certs=False
* Required requests version
* Add testcase for inventory plugin
* Include review comments from mattclay
* remove pyvmomi installation
* remove config file at exit
* Add cache in vmware_inventory inventory plugin
* shertel review comments
* Rename vmware_inventory to vmware_vm_inventory
* bcoca's review comments
* Export username and password for failing testcase

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-07-27 15:38:19 +05:30
Lindsay Hill 4a98802b52 Ironware: Deprecate provider, support network_cli (#43285) 2018-07-27 12:51:45 +05:30
Ganesh Nalawade af3f510316
nxos cliconf plugin refactor (#43203)
* nxos cliconf plugin refactor

Fixes #39056

*  Refactor nxos cliconf plugin as per new api definition
*  Minor changes in ios, eos, vyos cliconf plugin
*  Change nxos httpapi plugin edit_config method to be in sync with
   nxos cliconf edit_config

* Fix CI failure

* Fix unit test failure and review comment
2018-07-27 11:05:40 +05:30
Toshio Kuratomi 52449cc01a AnsiballZ improvements
Now that we don't need to worry about python-2.4 and 2.5, we can make
some improvements to the way AnsiballZ handles modules.

* Change AnsiballZ wrapper to use import to invoke the module
  We need the module to think of itself as a script because it could be
  coded as:

      main()

  or as:

      if __name__ == '__main__':
          main()

  Or even as:

      if __name__ == '__main__':
          random_function_name()

  A script will invoke all of those.  Prior to this change, we invoked
  a second Python interpreter on the module so that it really was
  a script.  However, this means that we have to run python twice (once
  for the AnsiballZ wrapper and once for the module).  This change makes
  the module think that it is a script (because __name__ in the module ==
  '__main__') but it's actually being invoked by us importing the module
  code.

  There's three ways we've come up to do this.
  * The most elegant is to use zipimporter and tell the import mechanism
    that the module being loaded is __main__:
    * 5959f11c9d/lib/ansible/executor/module_common.py (L175)
    * zipimporter is nice because we do not have to extract the module from
      the zip file and save it to the disk when we do that.  The import
      machinery does it all for us.
    * The drawback is that modules do not have a __file__ which points
      to a real file when they do this.  Modules could be using __file__
      to for a variety of reasons, most of those probably have
      replacements (the most common one is to find a writable directory
      for temporary files.  AnsibleModule.tmpdir should be used instead)
      We can monkeypatch __file__ in fom AnsibleModule initialization
      but that's kind of gross.  There's no way I can see to do this
      from the wrapper.

  * Next, there's imp.load_module():
    * https://github.com/abadger/ansible/blob/340edf7489/lib/ansible/executor/module_common.py#L151
    * imp has the nice property of allowing us to set __name__ to
      __main__ without changing the name of the file itself
    * We also don't have to do anything special to set __file__ for
      backwards compatibility (although the reason for that is the
      drawback):
    * Its drawback is that it requires the file to exist on disk so we
      have to explicitly extract it from the zipfile and save it to
      a temporary file

  * The last choice is to use exec to execute the module:
    * https://github.com/abadger/ansible/blob/f47a4ccc76/lib/ansible/executor/module_common.py#L175
    * The code we would have to maintain for this looks pretty clean.
      In the wrapper we create a ModuleType, set __file__ on it, read
      the module's contents in from the zip file and then exec it.
    * Drawbacks: We still have to explicitly extract the file's contents
      from the zip archive instead of letting python's import mechanism
      handle it.
    * Exec also has hidden performance issues and breaks certain
      assumptions that modules could be making about their own code:
      http://lucumr.pocoo.org/2011/2/1/exec-in-python/

  Our plan is to use imp.load_module() for now, deprecate the use of
  __file__ in modules, and switch to zipimport once the deprecation
  period for __file__ is over (without monkeypatching a fake __file__ in
  via AnsibleModule).

* Rename the name of the AnsiBallZ wrapped module
  This makes it obvious that the wrapped module isn't the module file that
  we distribute.  It's part of trying to mitigate the fact that the module
  is now named __main)).py in tracebacks.

* Shield all wrapper symbols inside of a function
  With the new import code, all symbols in the wrapper become visible in
  the module.  To mitigate the chance of collisions, move most symbols
  into a toplevel function.  The only symbols left in the global namespace
  are now _ANSIBALLZ_WRAPPER and _ansiballz_main.

revised porting guide entry

Integrate code coverage collection into AnsiballZ.

ci_coverage
ci_complete
2018-07-26 20:07:25 -07:00
Nilashish Chakraborty 18235af363
Fix baud rate and nxos_logging default case idempotency bug (#43295)
* Fix baud rate and idempotency bug

* Fix Shippable errors

* Combine commands calls

* Fix Shippable errors II
2018-07-26 23:15:25 +05:30
Nathaniel Case ab40c72a3c
httpapi: Split off and save response text contents (#43305)
* Split off and save response text contents

* login might depend on httpapi
2018-07-26 10:12:34 -04:00
Abhijeet Kasurde 13dd1acbec Fix typo in ignore_unknown_extensions doc
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-07-26 09:28:33 -04:00
Toshio Kuratomi 6eacfecb73 ANSIBLE_REMOTE_TMP was an implementation of unified temp that was later changed
One of the earlier implementation of unified temp for 2.4 passed the
temp diretory to the remote side using this environment variable.  We
later changed it to be passed via a module parameter but forgot to
remove the environment variable.
2018-07-25 16:57:46 -07:00
Fabian von Feilitzsch d27de6acd9 Add from_yaml_all to support multi document yaml strings (#43037)
* Support multi-doc yaml in the from_yaml filter

* Most automatic method of handling multidoc

* Only use safe_load_all

* Implement separate filter

* Update plugin docs and changelog
2018-07-25 16:12:22 -04:00
Julien Champseix 19dc267e4c Allow specifying the output encoding in the template module (#42171)
Allow specifying the source and destination files' encodings in the template module

* Added output_encoding to the template module, default to utf-8
* Added documentation for the new variables
* Leveraged the encoding argument on to_text() and to_bytes() to keep the implementation as simple as possible
* Added integration tests with files in utf-8 and windows-1252 encodings, testing all combinations
* fix bad smell test by excluding windows-1252 files from the utf8 checks
* fix bad smell test by excluding valid files from the smart quote test
2018-07-25 13:10:40 -07:00
Dag Wieers 939de473c6
Add a 'finished' test for async jobs (#38325)
This provides a more convenient way for testing (async) jobs.

When used with a non-async job it will report a warning so the user is
aware that he may be doing something incorrect.

Since the 'finished' result value is an integer (!), the test is turning
this in a proper boolean.
2018-07-24 23:21:28 +02:00
Andrew Gaffney 42346937b1
Display task banner before item status (#42892)
This is a follow-up to #41058
2018-07-24 12:25:28 -05:00
Nathaniel Case a7097f6735
Try to enable more exotic auth methods in httpapi (#43212)
* Try to enable more exotic auth methods in httpapi

* Auth tokens won't always come back.

* Reconcile #43147 with this PR
2018-07-24 13:22:40 -04:00
Rémy Léone 3113c68053 Fix author name in the documentation 2018-07-24 12:01:37 -04:00
Deepak Agrawal bf544c2200
Add support for commit label in iosxr_config (#42931)
* Add support for commit label in iosxr_config

* sanity pep8 etc fixes
2018-07-24 17:16:26 +05:30
Trishna Guha dd6ef3355f
get_device_info nxos zero or more whitespace regex (#43178)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-07-24 10:55:37 +05:30
Jordan Borean d5d29f4cfa
ssh - skip connection reset if controlpath does not exist (#43062) 2018-07-24 08:20:54 +10:00
Nathaniel Case 8a0967554f
Actually fix eos_facts feature detection (#43155) 2018-07-23 14:51:44 -04:00
Mo Balaa 3c0a3a1de1 Add debug messasge to aws_ec2 inventory plugin (#43112) 2018-07-23 12:55:28 -04:00
Seuf 9faadce0b2 Add new grafana dashboard lookup plugin (#41319) 2018-07-23 11:11:42 -04:00
Deepak Agrawal 20769de560
Don't close persistent connection socket on command timeout (#43071)
* Don't close persistent connection socket on command timeout

* handle exception in client of ansible-connection instead removing socket removal
2018-07-23 07:07:06 +05:30
Nathaniel Case 8c620a17d4
Let called functions use `method` keyword (#43086)
Hopefully we can live without `method_` instead
2018-07-22 15:26:44 -04:00
abirami-n 1152f86ba1 Fixes #41549 (#41551)
* Fix_module_correction
2018-07-20 09:19:20 -07:00
Sandra McCann 2e93eab920 pr 42271 - fixed merge conflicts 2018-07-20 11:22:30 -04:00
Nathaniel Case dba975470d
Eos subnet overlap fix (#43023)
* Detect overlapping subnet & provide better errors
2018-07-20 11:02:21 -04:00
Ganesh Nalawade 97d4e53131
Support setting persistent command timeout per task basis (#42847)
* Support setting persistent command timeout per task basis

Fixes #42200

*  Add variable `ansible_command_timeout` to `persistent_command_timeout`
   option for `network_cli` and `netconf` connection plugin so that the
   command_timeout can be set per task basis while using `connection=network_cli`
   or `connection=netconf`
   eg:
   ```
   - name: run copy command
     ios_command:
       commands:
       - show version
     vars:
      ansible_command_timeout: 40
   ```

* Modify `ansible-connection` to read command_timeout value from
  connection plugin options.

* Add `ansible_command_timeout` to `persistent_command_timeout`
  option in `persistent` to support `connection=local` so that
  it is backward compatibilty

* To support `connection=local` pass the timeout value as variables
  from persistent connection to `ansible-connection` instead of sending
  it in playcontext

* Fix CI failure

* Fix review comment
2018-07-20 10:04:53 +05:30
Rémy Léone 267c7667f6 Fix archived machine bu (#43017) 2018-07-19 14:03:34 -04:00
Pilou 06f5e49dfb inventory plugins: add test about config API usage (#41888)
* Check get_option method works with inventory plugins

This use case is already tested by some cloud inventoty plugin but
these tests are slow and aren't always executed, hence this new quick
test.

* AnsiblePlugin: Fix typo in docstring
2018-07-19 10:45:45 -07:00
Sumit Jaiswal 8759d97071 infoblox list requirements as infoblox_client and should be infoblox-client (#42993)
* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client

* change infoblox_client to infobblox-client
2018-07-19 12:19:46 -04:00
Lindsay Hill 70564ffd89 Missing close " (#42985)
Command was missing a close `"`. This was still interpreted properly by the switch, and was not breaking anything, but this is tidier.
2018-07-19 09:24:52 +05:30
FragmentedPacket d2409fb165 Add example of using loop: with when: statements (#42776) 2018-07-19 13:48:08 +10:00
Anil Kumar Muraleedharan 0897e79bd1 Persistence connection for cnos_vlan (#42500)
* Changing Lenovo Inc to Lenovo and update License file to be consistent.

* Changing cnos_vlan from paramiko to persistence connection of Ansible. Also talking care of CLI changes in CNOS commands with backward compatibility.

* Fixing Validation issues

* Trailing lines removal

* Review comments of Gundalow are getting addressed. He mentioned only at one place for cnos.py. But I have covered the entire file.

* Changes to incorporate Review comments from Qalthos

* Removing configure terminal command from module code

* Aligning with change in run_cnos_commands method changes

* Editing cliconf for latest CNOS CLIs
2018-07-18 12:17:08 -04:00
Hossein Zolfi e756ef8265 Fix example of nmap plugin (#42925) 2018-07-18 10:07:21 -04:00
Rémy Léone 2177d37d5a Use IP address instead of server id to index servers (#41658) 2018-07-17 04:10:17 -04:00
Matt Davis 5d76b627ef
fix py3 string error in ssh failure handling (#42655) 2018-07-13 14:36:46 -07:00
Brian Coca f1dcfe4f4c
use get_option instead of directly internal dict (#42199)
* use get_option instead of directly internal dict

as get_option can populate it, while direct access cannot
also setup fallback values for derived plugins not using config system correctly
2018-07-13 15:54:52 -04:00
Brian Coca 44d4327bc7 moved to use 'get_option'
also fixed bad str() usage
2018-07-13 11:41:04 -04:00
Peter Sprygada d086d57d11 adds a new feature to the telnet action plugin
This change adds a new argument to the telnet action plugin that will
cause the module to send a newline character before trying to login.
This is convienent when using telnet over a console connection that
needs an initial newline character to start the login process.

This change also will cause the sent command and command response to be
displayed on stdout when running in verbose mode (5 v's).
2018-07-12 10:11:55 -04:00
Nathaniel Case 6b162142a7 ios_file: Don't leave leftover files behind (#42622)
* Don't leave leftover files behind

* Fix writing files in python3

* Replace nonascii.bin with one that will not pass for unicode
2018-07-12 12:26:14 +05:30
Jordan Borean d723b8541d changed winrm _reset to reset and make ssh reset show warning (#42651)
* changed winrm _reset to reset and make ssh reset show warning

* minor changelog update
2018-07-11 20:22:01 -07:00
Samir Musali 985768b2af LogDNA Callback Plugin (#40296)
* LogDNA Callback Plugin...
2018-07-11 15:37:01 -04:00
Fran Fitzpatrick 5928ec04ca Adds an ipmath filter (#41985) 2018-07-11 10:52:31 -07:00
Jerry Chong 42f44b24c6 Fix NameError in pause module (#42038)
* Fix NameError in pause module

* Add comment and changelog

Co-authored-by: Jerry Chong <jchong@netbase.com>
2018-07-11 11:49:32 -04:00
Jordan Borean 940d4a0e89
win_reboot: fix 2.6 issues and better handle post reboot reboot (#42330)
* win_reboot: fix 2.6 issues and better handle post reboot reboot

* changed winrm _reset to reset

* Add handler to reset calls when .reset() throws an AnsibleError on older hosts

* Moving back to _reset to get the issue fixed
2018-07-11 09:12:29 +10:00
Andrew Gaffney 824524c67a
Display task banner before showing file diff (#42573) 2018-07-10 14:27:44 -05:00
Brian Coca 4a7940c562
Ensure string types (#42362)
* actually enforce string types

* unquote after its text

* fixed incorrect template type

* fixing string showed error in template typing
2018-07-10 09:41:33 -04:00
Toshio Kuratomi 673c55f2ef Separate some 255 exit codes that are not ssh errors
The ssh connection plugin is overzealous in thinking that error code 255
can only come from ssh.  Python can return 255 in some circumstances and
error from php does as well.
2018-07-09 15:51:20 -07:00
Brian Coca 8e1d223301
complete plugin docs (#42355)
* complete plugin docs

  * add missing 'plugin' option
  * user and password are now 'correctly' required
  * added  inventory source example and extension information for user
2018-07-09 11:50:50 -04:00
Brian Coca 2496fd35fb added required missing field for common yaml fmt 2018-07-09 11:43:21 -04:00
Matt Martz 50905b980d Support item label in v2_playbook_on_include (#42478)
* Support item label in v2_playbook_on_include. Fixes #42301

* test fixes
2018-07-09 11:27:00 -04:00
Sam Doran 1d1595b990
Fix pause module so it does not stack trace when redirecting stdout. (#42217)
* Use separate variables for stdin and stdout file descriptors

* Do not set stdout to raw mode when output is not a TTY
2018-07-06 17:19:55 -04:00
Jordan Borean 8bdd04c147 Fix remote_tmp when become with non admin user (#42396)
* Fix tmpdir on non root become

 - also avoid exception if tmpdir and remote_tmp are None
 - give 'None' on deescalation so tempfile will fallback to it's default behaviour
   and use system dirs
 - fix issue with bad tempdir (not existing/not createable/not writeable)
   i.e nobody and ~/.ansible/tmp
 - added tests for blockfile case

* Revert "Temporarily revert c119d54"

This reverts commit 5c614a59a6.

* changes based on PR feedback and changelog fragment

* changes based on the review

* Fix tmpdir when makedirs failed so we just use the system tmp

* Let missing remote_tmp fail

If remote_tmp is missing then there's something more basic wrong in the
communication from the controller to the module-side.  It's better to
be alerted in this case than to silently ignore it.

jborean and I have independently checked what happens if the user sets
ansible_remote_tmp to empty string and !!null and both cases work fine.
(null is turned into a default value controller-side.  empty string
triggers the warning because it is probably not a directory that the
become user is able to use).
2018-07-06 10:49:19 -07:00
Ganesh Nalawade 5635848654
Fix typo in cliconf pluign (#42399)
* Fix capability key typo error in ios, eos and
  vyos cliconf plugins.
2018-07-06 12:18:24 +05:30
Brian Coca 475abc0af7
inventory plugin docs (#42022)
* inventory plugin docs
* added set options
* minor wording and formatting fixes
* changed headers to std as per #35520, also added to main readme
* unified inventory plugin devel, referenced from generic plugin dev
* fixed typos and update as per feedback
2018-07-05 17:30:46 -04:00
Deepak Agrawal 30688fecf3
Idempotency for net_get and net_put modules (#42307)
* Idempotency for net_get and net_put modules

* pep8 warnings fix

* remove import q
2018-07-05 20:15:25 +05:30
Ganesh Nalawade 31dd41e4c5 Fix fetching old style facts in junos_facts module (#42336)
* Fix fetching old style facts in junos_facts module

Fixes #42298
* To fetch old style facts from junos device it requires
  login credentials in provider, hence while using
  connection=nectonf do not delete provider values
  as it might not be ignored

* Add `ofacts` as one of the options in `gather_subset`

* Minor update in documentation

* Fix CI failure
2018-07-05 18:21:44 +05:30
Ganesh Nalawade 75382814f0
Add fetching default filter in ios cliconf plugin (#42339)
* Add capability to fetch default filter flag in
  ios cliconf plugin.
2018-07-05 14:57:27 +05:30
Rémi REY da0f58787e callback/grafana_annotations: define validate_grafana_certs type as bool (#42318)
Fixes #42317
2018-07-05 15:49:58 +10:00
Ganesh Nalawade c068b88b38
Update eos, ios, vyos cliconf plugin (#42300)
* Update eos cliconf plugin methods

*  Refactor eos cliconf plugin
*  Changes in eos module_utils as per cliconf plugin refactor

* Fix unit test and sanity failures

* Fix review comment
2018-07-04 19:45:21 +05:30
Ganesh B. Nalawade c43beef258 Minor changes 2018-07-04 17:45:12 +05:30
Ganesh B. Nalawade d1ff8e2dca Update ssh_config to accept file path 2018-07-04 11:37:35 +05:30
Trishna Guha df8ad8ebf9
fix regex cliconf nxos (#42288)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-07-04 10:46:28 +05:30
Ganesh B. Nalawade 8d8d4b3d86 Add options for jumphost in netconf connetion
Fixes #37262
Fixes #36284

*  Updates options in netconf connection to enable
   bastion/jump host setting using configuration/enviornment
   varaibles.
*  Update troubleshooting docs from using bastion host with netconf
   connection
2018-07-03 23:54:26 +05:30
Trishna Guha 0e05425b32
Refactor nxos cliconf get_device_info and add requirements for JSON structured output support in nxos_facts module (#42089)
* nxos_facts requires JSON structured output support

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

* refactor get_device_info for legacy devices

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

* update additional logic

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-07-03 19:44:50 +05:30
Ashish Billore faa83285dc Udate ini.py with corrected intended use (#42232)
* Udate ini.py with corrections to intended use

Corrected the intended use for ini reads.

* Update ini.py with corrected intended use info
2018-07-03 08:48:43 -04:00
Nathaniel Case 5850591d14
Base connection class for network-style connections (#41839)
* Create base class for network-style connections

* clean up some differences

* Move NetworkConnectionBase

* Tweak netconf for tests

* Tweak when network_os is checked to avoid failing tests

* Pull back exec_command
2018-07-02 08:41:00 -04:00
Andrew Gaffney f4efa2c4cc
Provide a fallback value for all options in 'default' callback plugin (#42155)
This is necessary for plugins that subclass 'default' but don't also
include its docs fragment. This is a follow-up to #41058
2018-06-30 21:31:30 -05:00
Sloane Hertel 44e5886385 Fix setting required options for inventory plugins (#42049)
* Fix setting required options for inventory plugins

* call set_options for yaml and script plugin
2018-06-29 11:48:35 -04:00
Matt Martz aea396f04b
Add items2dict filter that is the reverse of dict2items (#42071)
* Add items2dict filter that is the reverse of dict2items

* Address feedback about type checking, and add docs for zip/zip_longest
2018-06-29 10:47:07 -05:00
Ganesh Nalawade 88b966e23b
Fix junos_config confirm commit issue (#41527)
* Fix junos_config confirm commit issue

Fixes #40626

* Due to issue in ncclient commit() method for Juniper
  device (ncclient/ncclient#238)
  add a workaround in junos netconf plugin to generate proper
  commit-configuration xml and execute it using ncclient
  generic `rpc()` method.

* Update junos_config doc
2018-06-29 15:09:55 +05:30
Ganesh Nalawade e41d427d1b
Add run_commands api for ios and vyos cliconf plugin (#42093)
* Add run_commands api for ios and vyos cliconf plugin

*  Add run_commands api to ios and vyos cliconf plugin
*  Refactor ios and vyos module_utils to check return code
   in run_commands

* Fix Ci failures
2018-06-29 15:07:38 +05:30
Troy Murray 15ce7c5bab change OS X to macOS (#41294)
* change OS X to macOS

<!--- Your description here -->

+label: docsite_pr

* Update all Mac OS X references to be macOS

* Drop extra Mac
2018-06-26 14:09:23 -04:00
hirsts c0c20835ac Create splunk.py (#40568)
* Create splunk.py

This is a new callback for logging to Splunk. It is based on sumologic.py and updated to work with the Splunk HTTP Event Collector. 
This has been by our team and others. 
It is working with Ansible 2.5.2

* Update splunk.py

Addressed white spaces and formatting issues

* Update splunk.py

* Update splunk.py

* Updated version to match target release

Following code review recommendations. Thanks for the help

* Updated colon impacting documentation

Updated based on code reviews. Thanks the help

* Updated quotes to be consistent
2018-06-26 13:08:34 -04:00
Brian Coca 27e3cd6e05 options should be settable multiple times 2018-06-26 10:23:00 -04:00
Ganesh Nalawade 9acb5780bc
Add diff capability in vyos edit_config (#41950)
* Add diff capability in vyos edit_config

Fetch onbox diff within edit_config cliconf
plugin and return it in response

* Remove diff returned from ios edit_config

* Fix CI failure

* More CI fixes
2018-06-26 14:21:12 +05:30
Jordan Borean 2af36412f9
runas + async - get working on older hosts (#41772)
* runas + async - get working on older hosts

* fixed up sanity issues

* Moved first task to end of test for CI race issues

* Minor change to async test to be more stable, change to runas become to not touch the disk

* moved async test back to normal spot
2018-06-26 14:40:49 +10:00
Matt Martz 93537425a0
Don't import password lookup from network filters. Fixes #41874 (#41907) 2018-06-25 15:11:45 -05:00
Matt Martz 1a2ef0922f
Use inventory.get_host instead of direct access to inventory.hosts (#41860)
* Use inventory.get_host instead of direct access to inventory.hosts. Fixes #32152

* Prevent potential side effect, by using self._inventory.localhost directly instead of get_host
2018-06-25 15:06:32 -05:00
Jordan Borean 9b7b564d75
Stop displaying kinit pass input on a failure (#41882)
* Stop displaying kinit pass input on a failure

* Fixed up minor logic info and added tests
2018-06-26 05:49:19 +10:00
Nathaniel Case 97ffb4c4d2
New base class for HttpApi plugins (#41915) 2018-06-25 15:48:12 -04:00
Martin Krizek 8b5283f547 Template handler name 2018-06-25 12:15:21 -04:00
Ganesh Nalawade b84adfd885
Fix ios and vyos cliconf edit_config return type (#41896)
* Fix ios and vyos cliconf edit_config return type

Modify cliconf edit_config api to return a json string with
diff and response received from remote host for ios and vyos.

* Doc change
2018-06-25 15:35:39 +05:30
Paul Neumann d4b9105c9c cliconf: Fix use of multiple prompts in send_command (#41885)
Upon preparing the commands for sending to the device, cliconf converts
the optional prompt to a byte string. However, since there might be
multiple prompts specified, the conversion has to happen for each prompt
individually. Otherwise, wrong regexes will be compiled in
_handle_prompt from network_cli Connection.
2018-06-25 13:10:32 +05:30
Ganesh Nalawade 773c031d33
vyos and ios cliconf plugin refactor (#41846)
* vyos and ios cliconf plugin refactor

*  Refactor vyos cliconf plugin
*  Change vyos module_utils and vyos_config as per refactor
*  Minor changes in ios cliconf plugin

* Fix unit test failure

* Fix sanity issues

* Add get_diff to rpc list
2018-06-25 09:43:37 +05:30
Andrew Gaffney 9c5d40ff15
Merge various stdout callback plugins into 'default' (#41058)
This allows mixing and matching of stdout callback features
2018-06-24 23:00:07 -05:00
Brian Coca 11dbed1350 fix vars hostname fallback
also made it optimistic, rely on exceptions instead of copmlex if chains
2018-06-22 15:29:40 -04:00
Nathaniel Case dd932c9ace
Make validate_certs togglable for httpapi (#41538)
* Make validate_certs togglable for httpapi

* Add `version_added`
2018-06-22 14:03:48 -04:00
Nathaniel Case 9aa8c652ba
Netconf bytes fixes (#41607)
* Solve some bytes issues on iosxr

* Solve some bytes issues in junos

* Do the correct thing with tostring based on lxml or not
2018-06-22 11:50:44 -04:00
Brian Coca 0102e42272
exclude lookup_terms from config errors (#41740)
* exclude lookup_terms from config errors
* moved direct
2018-06-21 17:50:24 -04:00
Olivier Bourdon 06b73ff8f1 Add random_mac string filter (#39775)
Add new filter to generate random MAC addresses from
string prefix. See docs/docsite/rst/user_guide/playbooks_filters.rst
for more detailed infos.
2018-06-21 15:56:54 -05:00
Brian Coca 2affb5f729 doc fix 2018-06-21 16:30:33 -04:00
Brian Coca 27c43daab8
fix minor issues with debug and item labels (#41331)
* fix minor issues with debug and item labels

 - no more `item=None`, we always have a label now
 - debug should only show expected information, either msg= or the var in var=
 - also fixed method name, deprecated misleading _get_item
2018-06-21 16:14:57 -04:00
HD650 07738cc848 Improve code style 2018-06-21 13:59:50 -04:00
HD650 0586cb1536 Check type of fail_msg and success_msg 2018-06-21 13:59:50 -04:00
zhikangzhang 2333b4474c Rename argument msg to fail msg
This change make the arguments of assert less ambiguous.
2018-06-21 13:59:50 -04:00
Sloane Hertel ba7d3dab5c Document compose for aws_ec2 inventory plugin (#40621)
* Document compose for aws_ec2 inventory plugin

* split up examples into several parts with some additional comments
2018-06-21 13:15:07 -04:00
Mark Phillips 355b56ef00 [docs] Change 'tag' to 'tags' in aws_ec2 inventory examples (#41438) 2018-06-21 10:23:20 -04:00
Jordan Borean 11bd3fd318 win_updates fix when win_updates is run with async (#41756) 2018-06-20 14:52:24 -07:00
Adam Miller 80940a6b1c ensure copy action plugin returns an invocation in result (#41426)
* ensure copy action plugin returns an invocation in result

Fixes #18232

Previously the action plugin for copy, which runs operations on the
control host to orchestrate executing both local actions on the
control host and remote actions on the remote host, is not returning
invocation dict in the result dict, this happens here where the
return from _copy_file() is None

When force is True, the _execute_module() method is called, which
returns the dict containing the invocation key. This patch ensures
there is always an invocation key.

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

* fix conditional, handle content no_log

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-06-20 14:35:47 -04:00
Brian Coca 05a49d6eb6
handle groups correctly when they are 'null' (#41698)
* handle groups correctly when they are 'null'

 - even if defined as mapping but having no keys, objects shoudl still be processed correctly
 - also add ansilbe_verbosity to vars not to display in ansible-inventory

fixes #41692
2018-06-20 11:26:46 -04:00
Deepak Agrawal e91cee1a31
net_put module: add default mode to copy binary files (#41476)
* add default mode to copy binary files

* sanity fix

* add version for new options
2018-06-20 16:02:49 +05:30
Abhijeet Kasurde 174d969714 Correct defaults in lxc and lxd connection plugin
remote_addr value defaults to inventory_hostname, current defaults
seems to be copy-paste error.

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-06-19 15:45:18 -04:00
Abhijeet Kasurde 37293dec3d Raise Exception in virtualbox inventory plugin
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-06-19 14:33:52 -04:00
Jonathan Davila a79b6ec8a2
Update my own author email in comments block
my ansible/redhat email is not valid, replacing it with something that is.
2018-06-18 16:15:31 -04:00
Andrew Gaffney 729e7471d6 Fix name of action plugin in error message (#41665) 2018-06-19 01:21:38 +05:30
Pilou 3e6c76fc2e Scaleway inventory plugin: small improvements (#41642)
* scaleway inventory: token is mandatory

* scaleway inventory: mention exception in error

* scaleway inventory: remove print statement

* scaleway inventory: options don't need to be attr

* scaleway inventory: remove unused attr
2018-06-18 13:54:38 -04:00
James Cassell 23fbe0ce8e update play_context for reset_connection (#40866)
steps taken from lib/ansible/executor/task_executor.py

fixes: https://github.com/ansible/ansible/issues/27520
2018-06-18 11:10:16 -04:00
Jon Dufresne bf304832ff Prefer readthedocs.io instead of readthedocs.org for doc links (#41537)
Read the Docs moved hosting to readthedocs.io instead of
readthedocs.org. Fix all links in the project.

For additional details, see:

https://blog.readthedocs.com/securing-subdomains/

> Starting today, Read the Docs will start hosting projects from
> subdomains on the domain readthedocs.io, instead of on
> readthedocs.org. This change addresses some security concerns around
> site cookies while hosting user generated data on the same domain as
> our dashboard.
2018-06-18 08:22:50 -04:00
Sloane Hertel 8047d97ffc
read scaleway option after the options have been set (#41259) 2018-06-18 07:59:52 -04:00
Trishna Guha f170298332
fix nxos edit_config for httpapi and have uniform load_config (#41358)
* fix nxos load_config for httpapi and migrate to cliconf

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

* add comment

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

* address review comment

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

* address review comment

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-06-14 22:02:12 +05:30
John Imison 0d885260a5 Adding success_msg to assert (#41048)
* Adding success_msg to assert

* Added missing version_added. Importing and checking string_types.
2018-06-14 11:34:04 -04:00
Biao Liu d90d8e7f99 Add cli and netconf ability from ansible itself for cloudengine ce modules (#41357)
* for shippable

for shippable

* add cliconf

* add network_cli

* add cliconf and network cli and netconf

* modify bugs of netconf

* add shippable modify

* update shippable

update shippable
2018-06-14 09:38:27 +05:30
Abhijeet Kasurde 063d19048d
plugins: Doc improvement (#41378)
* Typo fixes
* Grammer fixes
* Option fixes

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-06-13 11:52:42 +05:30
Roman Dodin 269f404121 fix handling of ># ending prompts for sros (#41382) 2018-06-12 11:37:08 -04:00
toshi_pp 9a4ad89ec5 Fix a process execution using lxc connection plugin on Python3.
python2-lxc module needs bytes, on the other hand python3-lxc requires text.
To solve such incompatibility, use to_native other than to_bytes.
This fixes #41060.
2018-06-11 11:55:20 -07:00
stoned 63ae1a9acd ini lookup plugin: fix documentation layout (#41374) 2018-06-11 13:41:44 +05:30
Alex Stephen 77b54a3267 GCP Inventory Plugin scopes fix 2018-06-08 13:04:37 -07:00
Stéphane Parunakian 8a0a787405 Add backup option to passwordstore lookup (and improve doc) (#39676)
* Add backup option in passwordstore lookup

* Update passwordstore lookup documentation

* Add precision regarding backup param

* Fix empty line added at EOF

* Add version_added attribute for backup option

* Switch examples to multi-line YAML

* Fix documentation for overwrite option

* Add changelog fragment for passwordstore lookup

* Update version added for new feature to 2.7


Co-authored by: Stéphane Parunakian <stephane.parunakian@smile.fr>
2018-06-08 10:33:53 -04:00
jainnikhil30 7fb92b6f45 Update winrm.py (#41303)
fix the typos for winrm port
2018-06-08 14:38:23 +08:00
Sumit Jaiswal 91ecb87b73
eos handles error gracefully when maximum sessions is reached (#41242)
* to resolve #36977

* to resolve #36977

* fix review comment
2018-06-08 10:29:42 +05:30
Matt Martz ec42797627 minimal callback doesn't properly respect changed, bring into alignment with oneline (#41273) 2018-06-07 18:10:26 -04:00
Sloane Hertel 89cea78e30 Fix async for aws_s3 - fixes #40281 (#40826)
* Fix async for aws_s3

* Add a test that async is able to be used on aws_s3 tasks
2018-06-07 15:09:22 -04:00
Ganesh Nalawade 24c0f6f872
Fix ios_user integration test failure (#41252)
* If the command input is dict from module
  in that case the check to see if command is
  end or `!` to exclude it from executing on remote
  host is wrong. Fix the logic to check `end` and
  `!` commands
2018-06-07 19:05:07 +05:30
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