Commit graph

14291 commits

Author SHA1 Message Date
Ganesh Nalawade
c3c4ae87dd Add 'update' parameter in junos_config module (#19038)
* Fix # #5839 Add 'update' parameter in junos_config module

Add update parameter in junos_config module which supports
configuration action like merge, replace and overwrite.

* Fix documentation issue

* Fix review comment to add replace argument

Make replace and update argument mutually
exclusive, to support replace for backward
compatibility.
2016-12-20 07:27:26 -05:00
Peter Sprygada
f831ef692c update signature in network plugin (#19545)
Fix call to _update_module_args() to include module_name in the args
2016-12-20 07:07:42 -05:00
Ken Evensen
bcace3cfc4 Gconf2 module (#19540)
* Pull #19267 broke sysctl module.  Minor corrections

* Correct description.  Functional updates
2016-12-20 11:53:49 +00:00
tmshn
112d950794 [timezone module] Check if timedatectl command is actually available 2016-12-19 21:18:12 -05:00
Michael Herold
a532dd915a Adds description for ini_file "section: null" 2016-12-19 21:10:30 -05:00
Matthew Gamble
f24ab68f04 Improve and optimise pacman package installation
Previously, packages were installed one at a time in a loop. This caused
a couple of problems.

First, it was a performance issue - pacman would have to perform all of
its checks once per package. This is unnecessarily costly, especially
when you're trying to install several related packages at the same time.

Second, if a package you're trying to install depends on a virtual
package that is provided by several different packages (such as the
"libgl" package on Arch) and you aren't also installing something that
provides that virtual package at the same time, pacman will produce an
interactive prompt to allow the user to select a relevant package. This
is obviously incompatible with how ansible operates. Yes, this problem
could be avoided by installing packages in a different order, but the
order of installation shouldn't matter, and there may be situations
where it is not possible to control the order of installation.

With this refactoring, all of the above problems are avoided. The code
will now work out all of the packages that need to be installed from any
configured repositories and any packages that need to be installed from
local files, and then install all the repository packages in one go and
then all of the local file packages in one go.
2016-12-19 21:09:25 -05:00
Dag Wieers
93cfe73a76 Report detailed error when internal remote functions fail
This is a redesign in how plugins call _remote_checksum().

- _remote_stat() has been modified to report the real error as
  AnsiblError
- Action plugin **unarchive** calls _remote_stat() directly instead of
   _remote_checksum()
- Action plugin **unarchive** also handles the exceptions directly
- Ensure get_exception() returns native text

Two other action plugins, **template** and **fetch**, also do a remote checksum.
In **template** we already call _remote_stat(), just like we now do for
unarchive, in **fetch** we do call _remote_checksum() and we make the
exact same mistake as the unarchive plugin. So that one could use a
redesign as well.

This fixes #19494

Before:
```
[dag@moria ansible.testing]$ ansible-playbook -v test137.yml
Using /home/dag/home-made/ansible.testing/ansible.cfg as config file

PLAY [localhost]
******************************************************************************************************

TASK [unarchive]
******************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg":
"python isn't present on the system.  Unable to compute checksum"}

PLAY RECAP
******************************************************************************************************
localhost                  : ok=0    changed=0    unreachable=0
failed=1
```

After:
```
[dag@moria ansible.testing]$ ansible-playbook -v test137.yml
Using /home/dag/home-made/ansible.testing/ansible.cfg as config file

PLAY [localhost]
*************************************************************************************************************

TASK [unarchive]
*************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg":
"Failed to get information on remote file (/tmp/): sudo: unknown user:
foobar\nsudo: unable to initialize policy plugin\n"}

PLAY RECAP
*******************************************************************************************************************
localhost                  : ok=0    changed=0    unreachable=0
failed=1
```
2016-12-19 21:04:48 -05:00
Adrian Likins
2597c1236d Better error msg for basic.get_bin_path()
Include the searched paths in the error message.
2016-12-19 20:55:52 -05:00
Adrian Likins
35fef6fb84 Better error message for module unsupported params
Keep track of all the unsupported parameters, and include
all of them in the error message as well as a list of the
supported params.
2016-12-19 20:47:39 -05:00
Fabio Alessandro Locati
06abeea5ad Improve YAML examples - windows/win_package.py (#19407)
* Improve YAML examples - windows/win_package.py

* Fix quote

* Fix typo
2016-12-19 13:58:28 -08:00
Fabio Alessandro Locati
3c64ccd6e1 Make examples in YAML format - windows/win_acl.py (#18836)
* Make examples in YAML format - windows/win_acl.py

* Raw string
2016-12-19 13:57:21 -08:00
Peter Sprygada
c546c12b60 fixes incorrect module name for action plugin (#19535)
This fixes a bug introduced in the action plugin for setting the
module name value for logging
2016-12-19 16:54:31 -05:00
Rezart Qelibari
507b96ff30 user: make system=yes work on Darwin systems. (#19464)
* Update system/user.py module.

Add ability to add real system users with next free system uid (< 500) on macOS.

* Improve syntax in system/user.py module.

Remove complex if else line and replace by simple comparison which yields the same boolean value.

* Remove "True" comparison of user.py.

Remove comparison to true, as it is not pep8 conform.
2016-12-19 16:35:56 -05:00
Chris Houseknecht
71685b3258 Update module_args['rsync_opts'] when connection type is docker (#19531) 2016-12-19 16:08:31 -05:00
Brian Coca
9816addcdc removed too generic 'infrastructure' 2016-12-19 15:25:39 -05:00
Brian Coca
e542976bb7 removed redundant else/return 2016-12-19 15:11:29 -05:00
Toshio Kuratomi
226124956c Allow timeout decorator to handle @timeout as well as @timeout() 2016-12-19 15:09:50 -05:00
Brian Coca
b4bd6c80de fixes to facts timeout
also now handle timeout exception correctly everywhere
2016-12-19 15:09:50 -05:00
Brian Coca
f533f6603c show filename for module 2016-12-19 14:48:19 -05:00
Rob
cfa8ce767b Add new parameters to taskdefinition module - network_mode and task_r… (#19493)
* Add new parameters to taskdefinition module - network_mode and task_role_arn

* Add version_added field for doco

* Change version_added parameter to 2.3
2016-12-19 18:16:35 +00:00
Fabio Alessandro Locati
a080d44a47 Improve YAML examples - system/solaris_zone.py (#19410) 2016-12-19 16:49:47 +00:00
Peter Sprygada
7814546735 cast injected json string to bytes in local modules (#19519)
this change will cast the locally injected ansible args to bytes
from string
2016-12-19 11:34:18 -05:00
Peter Sprygada
2a5a2773c8 adds new module net_command for network devices (#19468)
* new module net_command for sending a command to a network device
* adds unit test cases for module
* only works with connection=network_cli
2016-12-19 11:21:37 -05:00
Rob
b77ab1a6c9 Add support to ec2_eip to associate with a secondary ip address (#19484) 2016-12-19 15:45:38 +00:00
Ken Evensen
58b067532f gconftool2 module (#19461)
* Pull #19267 broke sysctl module.  Minor corrections

* Commit of gconftool2 module
2016-12-19 14:57:31 +00:00
Alex Sergeyev
28a3a13656 Support MariaDB engine version 10.1 (#19483) 2016-12-19 14:28:29 +00:00
redbloodmage
0568adc272 Added some clarity on the token confusion. (#19473) 2016-12-19 13:42:31 +00:00
Peter Sprygada
8f97ddd98a removes network os guess static method (#19467)
For devices that do not support mutliplexing, we cannot automatically
determine the network os.  This removes the os guess static method
from the terminal plugin.  For this devices, the network_os
value must be configured
2016-12-19 07:47:29 -05:00
Matthew
c58461596a Support pacman packages using different types of compression (#19503)
It's possible to compress packages using several different compression
methods, or not compressed at all. Previously, the pacman module only
supported files compressed using xz. This update ensures that all
compression types currently supported by pacman are supported by the
ansible pacman module.

The list of supported compression methods at the time of writing can be
found here:
https://git.archlinux.org/pacman.git/tree/scripts/makepkg.sh.in#n747
2016-12-19 12:08:45 +00:00
Will Thames
87c0c33241 Fix include_role docs to be valid YAML (#19506)
Remove the colon from one of the documentation notes, which was
causing documentation schema validation to fail.
2016-12-19 10:45:01 +00:00
Brian Coca
48dee1b6d0 still needs static for task object 2016-12-16 23:52:11 -05:00
Dag Wieers
39c9c6b942 Ensure that command/shell errors are displayed
This fix ensures that if there are specific module errors (in our case
the python interpreter was not found) then command and shell returns a
proper error.

It also fixes a few other imperfections that we noticed during
troubleshooting:

- Return the real RC if it were available
- Improve a dictionary evaluation using .get()
- Return an RC of -1 if it is unknown (instead of returning 0)

This fixes #18846
2016-12-16 21:46:02 -05:00
Dag Wieers
41614fd8e6 Display proper error on group_vars syntax error
This fix ensures a proper error is shown when a group_vars files cannot
be parsed correctly. Without this patch you get:

```
[dag@moria ansible.testing]$ ansible-playbook test132.yml
ERROR! Unexpected Exception: dictionary update sequence element #0 has length 1; 2 is required
to see the full traceback, use -vvv
```

With this patch you get:
```
[dag@moria ansible.testing]$ ansible-playbook test132.yml
ERROR! Problem parsing file '/home/dag/home-made/ansible.testing/group_vars/test135': line 1, column 1
```

This fixes #18843
2016-12-16 21:13:41 -05:00
Brian Coca
5d82fe545f minor docs and option fixes 2016-12-16 16:17:52 -05:00
Brian Coca
884b529195 removed unused 'static' option
the task level directive is what actually controls this, this option was never used
2016-12-16 15:23:36 -05:00
Jake Morrison
00859a4ced Handle inability to read /proc for ansible_service_mgr. Fixes #18957 2016-12-16 12:28:13 -05:00
Adrian Likins
5cd7a08418 Check solaris 'smbios' is exists before running it
smbios could potentially be None here, possibly causing
the solaris 8/9 failures seen at #19282

Fixes #19282
2016-12-16 12:10:16 -05:00
Ryan S. Brown
5204024f35 s3_sync module: Add ANSIBLE_METADATA parameter 2016-12-16 09:28:45 -05:00
tedder
be7a568b33 New module s3_sync: boto3-powered s3 synchronization
Syncs groups of files faster than the `s3` module and support content
type detection/overriding and globbing.
2016-12-16 09:26:30 -05:00
Fabio Alessandro Locati
f1b5dde4cb Improve YAML examples - packaging/kibana_plugin.py (#19409) 2016-12-16 09:08:38 +00:00
Dag Wieers
2f90091f0a Add an important example for SSHd
Sudoers is a great example to show how you can prevent shutting yourself
out. But SSHd is at least as important to avoid syntax errors causing a
lot of grieve. So I think it deserves a spot in this list :-)
2016-12-15 20:42:51 -05:00
Fabio Alessandro Locati
fb0779f657 Improve YAML examples - windows/win_regedit.py (#19400) 2016-12-15 15:05:18 -08:00
Fabio Alessandro Locati
b6f2565d60 Improve YAML examples - windows/win_template.py (#19408) 2016-12-15 15:04:49 -08:00
Fabio Alessandro Locati
beb6ed08cd Improve YAML examples - windows/win_owner.py (#19406) 2016-12-15 15:00:28 -08:00
Fabio Alessandro Locati
12205598c3 Improve YAML examples - windows/win_acl_inheritance.py (#19405) 2016-12-15 15:00:03 -08:00
Fabio Alessandro Locati
5a87f26658 Improve YAML examples - windows/win_get_url.py (#19404) 2016-12-15 14:59:07 -08:00
Fabio Alessandro Locati
5f8f1fa782 Improve YAML examples - windows/win_iis_webapppool.py (#19403) 2016-12-15 14:57:26 -08:00
Fabio Alessandro Locati
83d0f621da Improve YAML examples - windows/win_iis_webapplication.py (#19402) 2016-12-15 14:56:29 -08:00
Fabio Alessandro Locati
f57418c2c1 Improve YAML examples - windows/win_user.py (#19401) 2016-12-15 14:56:04 -08:00
Fabio Alessandro Locati
9b3d9e1780 Improve YAML examples - windows/win_file_version.py (#19399) 2016-12-15 14:54:12 -08:00
Fabio Alessandro Locati
0aa16b36b7 Make the example in proper yaml format - windows/win_iis_virtualdirectory.py (#18829)
* Make the example in proper yaml format

* Add r
2016-12-15 14:53:30 -08:00
Fabio Alessandro Locati
75bcec0ef5 Fix conflict and typos (#18831) 2016-12-15 14:50:22 -08:00
Nathaniel Case
2405c0bbef Hopefully clear up some junos issues. (#17616) 2016-12-15 17:07:19 -05:00
Eric Beahan
dce8f3899e Modify an initial value causing exception when vlan_range param is present (#19019) 2016-12-15 16:31:34 -05:00
Tim Rupp
e0e1d3b561 Adds description parameter to pools (#19362)
This patch adds the description parameter as a supported param of
the bigip_pool module.

Tests for this change are available here

https://github.com/F5Networks/f5-ansible/blob/master/roles/bigip_pool/tasks/main.yaml#L732
2016-12-15 16:28:30 -05:00
Nathaniel Case
7900319fc3 Assorted python3 fixes for network code. (#18777) 2016-12-15 16:25:03 -05:00
ikelos
c49eac5645 Fix the junos zeroize function (#19142)
Currently this function directs to the standard NetworkModule,
whose run_commands function takes no arguments (other than self).

This directs the call to the connection's cli method to run the command
directly on the device.
2016-12-15 16:23:04 -05:00
Ganesh Nalawade
ee5d5c3e84 Fix #4103 Support json format in junos_command module (#19045) 2016-12-15 16:01:23 -05:00
Peter Sprygada
ad99d52679 adds feature to allow connection to set action plugin (#18762)
Connection plugin can define default action plugin to use by providing
action_handler instance variable.  This will override the default
action plugin normal
2016-12-15 15:47:39 -05:00
Peter Sprygada
0cef38cf02 adds feature to all modules to be run locally (#18763)
* adds new error AnsibleModuleExit to handle module returns
* adds new action plugin network for attaching connection to network modules
* adds new shared module local to receive connection
* splits out function to update task_args with common updates

This commit provides a mechansim for running local modules that require
a connection object for interative commands tyically implemented for
network devices.  It provides a way to locally import modules (post fork)
and run them using exception handling to exit.
2016-12-15 15:47:29 -05:00
Fabio Alessandro Locati
066872cdc6 Improve examples (#18830) 2016-12-15 10:43:50 -08:00
Fabio Alessandro Locati
8dc3b60d0f Remove unneeded quotes - windows/win_uri.py (#18828) 2016-12-15 10:38:02 -08:00
Fabio Alessandro Locati
cf5449c5d9 Remove unneeded quotes - windows/win_unzip.py (#18827) 2016-12-15 10:37:02 -08:00
Fabio Alessandro Locati
439f98005f Highly rewrite and fix the examples - windows/win_iis_webbinding.py (#18823) 2016-12-15 10:34:20 -08:00
Artur Molchanov
a8d5358d7f systemd module: Allow to stop activating service (#19383)
* systemd module: Allow to stop activating service

Allow to stop service with ActiveState=activating.

* systemd: Fix incompatibility with Python 2.4
2016-12-15 11:14:33 -05:00
John R Barker
7dc86648c4 Docs typo (#19380) 2016-12-15 13:32:28 +00:00
Ryan S. Brown
197658aff4 Handle when the AMI launch permissions are unset.
Use an empty list to avoid a TypeError because `'NoneType' is not iterable``
2016-12-14 19:45:14 -05:00
Michael Gugino
250f862573 Fix bug #5328 apache module loading (#19355)
* Fix bug #5328 apache module loading

Currently, the apache2_module module parses apache configs
for correctness when enabling or disabling apache2 modules.

This behavior introduced a conflict condition when transitioning
between mpm modules, such as mpm_worker and mpm_event.

This change accounts for the specific error condition raised
by ``apachectl -M``:
``AH00534: apache2: Configuration error: No MPM loaded.``
When loading or unloading a module with a name that contains 'mpm_',
apache2_module will ignore the error raised by apachectl if stderr
contains 'AH00534'.

Fixes #5328

* Add AH00534 warning

* Added changes from PR #5629

* Modified ignore_configcheck behavior
2016-12-14 13:18:19 -08:00
Toshio Kuratomi
0b440a9289 Code smell test for iteritems and itervalues (#19292)
* Code smell test for iteritems and itervalues

* Change the keydict object in authorized_keys so it doesn't throw a false postive

keydict is a bad data structure anyway.  We don't use the iteritems and
itervalues methods so just disable them so that the code-smell tests do
not trigger on it.

* Change release templates so they work with py3
2016-12-14 12:16:16 -08:00
Brian Coca
f550b4541f bad/missing fact plugin is a warning (#19350) 2016-12-14 14:25:19 -05:00
Steve Kuznetsov
d5324c11a0 Factored polling std{out,err} reads into a function
The process to poll for data in the stdout and/or stderr pipes during a
low-level command execution was repetitive. Factoring this out into a
function DRYs out the code.

Signed-off-by: Steve Kuznetsov <skuznets@redhat.com>
2016-12-14 10:14:31 -08:00
Tim Rupp
362c86d323 Fixes map call usage
For the comparisions that need to be done, this map call needs
to convert to a list because the six import in ansible changes
the behavior of map to return an iterator instead of a list
2016-12-14 10:00:47 -08:00
Ondra Machacek
f84f97d035 cloud: ovirt: Add support to upload/copy/move disks (#19337) 2016-12-14 12:43:25 -05:00
Brian Coca
ed933421fe correct template lookup path
now all paths get 'templates/'
2016-12-14 12:25:08 -05:00
Ondra Machacek
5400a06ac4 cloud: ovirt: Various fixes for oVirt modules (#19141)
*  cloud: ovirt: fix various issues in ovirt modules

* cloud: ovirt: add support for nfs version

* cloud: ovirt: Fix facts documentation

* Add proper documentation fragmet
* Add proper argument_spec
* Fix return values

* cloud: ovirt: fix pep8
2016-12-14 11:42:15 -05:00
Robin Roth
afca957396 Fix UnboundLocalError remote_head in git (#19057)
* Fix UnboundLocalError remote_head in git

Fixes #5505

The use of remote_head was a leftover of #4562.
remote_head is not necessary, since the repo is unchanged anyway and
after is set correctly.

Further changes:
* Set changed=True and msg once local_mods are detected and reset.
* Remove need_fetch that is always True (due to previous if) to improve
clarity
* Don't exit early for local_mods but run submodules update and
switch_version

* Add test for git with local modifications
2016-12-14 08:36:15 -08:00
Ondra Machacek
fa96438f4c cloud: ovirt: Add support to list nested entities parameters (#19300) 2016-12-14 11:15:50 -05:00
Andrea Tartaglia
59227d8c31 Removed dict.iteritems() in several other files.
This is for py3 compatibility #18506
2016-12-14 08:01:45 -08:00
Dag Wieers
7c71c678fa Fix regression in search path behaviour
This PR fixes a few issues:

- Missing role parent directory for relative paths
- Fix integration tests (add missing stage)
- Redesign integration tests
- Incorrect order with tasks-lookups
- Duplicate paths are listed
- Repetitive tasks/tasks or files/files were possible

==== using copy with test.txt
Before:
```
   491 1481281038.29393: search_path:
        /home/dag/home-made/ansible.testing/roles/test134/files/test.txt
        /home/dag/home-made/ansible.testing/roles/test134/tasks/test.txt
        /home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt
        /home/dag/home-made/ansible.testing/roles/test134/tasks/tasks/test.txt
        /home/dag/home-made/ansible.testing/files/test.txt
        /home/dag/home-made/ansible.testing/test.txt
```

After:
```
 32505 1481280963.22418: search_path:
        /home/dag/home-made/ansible.testing/roles/test134/files/test.txt
        /home/dag/home-made/ansible.testing/roles/test134/test.txt
        /home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt
        /home/dag/home-made/ansible.testing/roles/test134/tasks/test.txt
        /home/dag/home-made/ansible.testing/files/test.txt
        /home/dag/home-made/ansible.testing/test.txt
```

==== Using copy with files/test.txt

Before:
```
 31523 1481280499.63052: search_path:
        /home/dag/home-made/ansible.testing/roles/test134/files/test.txt
        /home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt
        /home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt
        /home/dag/home-made/ansible.testing/roles/test134/tasks/tasks/files/test.txt
        /home/dag/home-made/ansible.testing/files/files/test.txt
        /home/dag/home-made/ansible.testing/files/test.txt
```

After:
```
 31110 1481280299.38778: search_path:
        /home/dag/home-made/ansible.testing/roles/test134/files/test.txt
        /home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt
        /home/dag/home-made/ansible.testing/files/test.txt
```

==== Using template with files/test.txt.j2
Before:
```
 30074 1481280064.15191: search_path:
        /home/dag/home-made/ansible.testing/roles/test134/templates/files/test.txt.j2
        /home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt.j2
        /home/dag/home-made/ansible.testing/roles/test134/tasks/templates/files/test.txt.j2
        /home/dag/home-made/ansible.testing/roles/test134/tasks/tasks/files/test.txt.j2
        /home/dag/home-made/ansible.testing/templates/files/test.txt.j2
        /home/dag/home-made/ansible.testing/files/test.txt.j2
```

After:
```
 29201 1481279823.52752: search_path:
        /home/dag/home-made/ansible.testing/roles/test134/templates/files/test.txt.j2
        /home/dag/home-made/ansible.testing/roles/test134/files/test.txt.j2
        /home/dag/home-made/ansible.testing/roles/test134/tasks/templates/files/test.txt.j2
        /home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt.j2
        /home/dag/home-made/ansible.testing/templates/files/test.txt.j2
        /home/dag/home-made/ansible.testing/files/test.txt.j2
```

This fixes #19048
2016-12-14 10:33:14 -05:00
René Moser
18b7852940 cloudstack: utils: fail friendlier if no zones available (#19332) 2016-12-14 11:37:26 +01:00
Toshio Kuratomi
c6b42028c4 Fixes for uri under python3 and local (non-httptester) testing 2016-12-13 15:46:07 -08:00
Ken Evensen
6b62b9f48c Adding pamd module for Ansible (#19029) 2016-12-13 15:34:44 -05:00
Adrian Likins
08a5d506bb Fix errors on 'ansible-playbook --flush-cache' (#18754)
Add a unit test, and split out the flush cache logic to
it's own method.
Fixes #18708
2016-12-13 14:35:15 -05:00
Adrian Likins
6c4f554f5a Provide slightly better msg on fact cache error (#18759)
If the configured fact_cache plugin (fact_caching config)
fails, raise a fatal error instead of failing mysteriously
later.

Fixes #18751
2016-12-13 14:34:58 -05:00
Carlos E. Garcia
0b8011436d minor spelling changes 2016-12-13 13:51:13 -05:00
Michael Scherer
054a3fccf8 Cleanup import for sysctl module 2016-12-13 13:26:54 -05:00
Michael Scherer
f9460f3c80 Use type='path' instead of 'str' for deploy_helper 2016-12-13 13:25:45 -05:00
Michael Scherer
db8719cf8b Add support for NetBSD
While I only checked on NetBSD 7.0, it seems to use the same
rc system as FreeBSD so it should be working for now.
2016-12-13 13:24:34 -05:00
Michael Scherer
6ffd494efb Cleanup imports for user
Some class use shutil, who was not imported, and we want to
avoid '*' for future refactoring.
2016-12-13 11:53:18 -05:00
Lumír 'Frenzy' Balhar
84544ee8fd Fix AST nodes for Python 3 and enable dependent test_uri (#18597)
* Enable tests on python 3 for uri

* Added one more node type to SAFE_NODES into safe_eval module.

ast.USub represents unary operators. This is necessary for
parsing some unusual but still valid JSON files during testing
with Python 3.
2016-12-13 07:37:39 -08:00
Ondra Machacek
95ef9fd9f9 cloud: ovirt: Add ovirt_tags and ovirt_tags_facts modules (#19295) 2016-12-13 09:14:09 -05:00
Toshio Kuratomi
51491c9904 Remove itervalues (not available on py3) 2016-12-13 05:40:48 -08:00
Toshio Kuratomi
a8af6c6baf Fix some SSL errors in mail.py causing SMTP Syntax Errors (Rebase of https://github.com/ansible/ansible-modules-extras/pull/708 ) (#19253)
* Rebase of https://github.com/ansible/ansible-modules-extras/pull/708

708 was full of extraneous merge commits interwoven with commits to
implement the feature. In the end the only way I could clean this up
in reasonable time was to just take a regular diff between the PR and
the base.  This lost the history of intermediate commits but I've
preserved attribution to @dayton967 via git's --author field.

Although I preserved the logic of the PR, there were a few additional
things that I cleaned up:

* Fixed import of email.mime.multipart
* Used the argspec to set port and timeout to integers instead of having
  ad hoc code inside of the module.
* Used argspec's choices for secure instead of ad hoc code inside of the
  module.
* Removed some unused variables
* Made secure_state a python boolean instead of using 0 and 1
* Used secure with string comparisons instead of turning it into an
  integer code.  This is much more readable.
* Fixed catching of SMTPExceptions (SMTPException wasn't imported
  directly so it needed to use the smtplib namespace.)
2016-12-13 04:28:24 -08:00
René Moser
a28d898c29 cloudstack: cs_securitygroup_rule: fix impossible to set icmp_code and icmp_type to 0 (#19258) 2016-12-13 06:58:17 +01:00
Andrea Tartaglia
ef391a11ec Removed dict.iteritems() in modules. (#18859)
This is for py3 compatibility, addressed in #18506
2016-12-12 15:16:23 -08:00
Vlad Glagolev
4b27d08643 dropped 'BOOLEANS' choices, converted env vars to str 2016-12-12 14:25:19 -08:00
Clark Boylan
a65e34ce77 Fix synchronize retries (#18535)
* Fix synchronize retries

The synchronize module munges its task args on every invocation of
run(). This was problematic because the munged data was not fit for use
by a second pass of the synchronize module. Correct this by using a copy
of the task args on every invocation of run() so that the original args
are not affected.

Local testing using this playbook seems to confirm that things work as
expected:

  - hosts: all
  tasks:
    - delay: 2
      register: task_result
      retries: 1
      until: task_result.rc == 0
      synchronize:
        dest: /tmp/out
        mode: pull
        src: /tmp/nonexistent/

fixes #18281

* Update synchroncization fixture assertions

When we started operating on a copy of the task args the test assertions
were no longer asserting things about the munged state but of the
pristine state. Convert the copy of task args to a class member so that
it can be compared against later in testing and update the assertions to
check this munged copy.
* Shuffle objects around for cleaner testing

Attach the temporary args dict to the task rather than the action as
this makes updating the existing tests cleaner.
2016-12-12 13:33:30 -08:00
ikelos
9e5d4de49a Fix overwrite parameter in module_utils.junos (#18671)
The overwrite parameter is forcibly set to false, meaning a module
passing that parameter will have no effect.  The overwrite facility
is necessary to ensure that conflicting options can be written the
configuration (which, in replace mode, they cannot).

This change ensures that if overwrite is set, it will not be changed
to False in the logic.
2016-12-12 15:57:29 -05:00
Patrick Ogenstad
05e5474c52 Disable CLI errors when typing enable (#18531) 2016-12-12 15:55:22 -05:00
Juan Antonio Valiño García
40ddbe026d Fixes #18663. Bad handling of existing config in dellos9 module. (#18664)
* Fixes #18663. Bad handling of existing config in dellos9 module.

The dellos9 module doesn't build correctly the internal
structures used to represent the existing config of the managed
network device. This leads to apply changes every time the
playbook is run, even if the existing config is the same that the
one you are trying to push into the device.

Probably this problem exist also in the dellos6 and dellos10
modules, but I only fixed it in the dellos9 module.

The fix modifies two methods. The first one is `get_config`,
where the return clause didn't work correctly when the flow
doesn't enter in the `if` block. In that case the `contents`
variable is not an array an this should be handled.

The second fix is in the `get_sublevel_config` method. In this
case the indentation whitespaces of the parents should be rebuild
because further functions and methods required it to handle
correctly comparisons used to check if changes should be pushed
into device.

* Fixes #18663 for dellos10 module with the same patches as dellos9.
2016-12-12 15:51:32 -05:00