Commit graph

8427 commits

Author SHA1 Message Date
Denver Janke
61cfccff1c Fix few bugs around renaming db instances. 2016-12-08 11:22:30 -05:00
Will Thames
daac0e3a3e Improved error handling
More tests, particular for failure testing
2016-12-08 11:22:30 -05:00
Patrik Lundin
25c3c03a11 Tweak error checking for "enabled" code.
Based on input from @jarmani:
* A return value of 2 now means a service does not exist. Instead of
  trying to handle the different meanings of rc after running "status",
  just look at stderr to know if something failed.
* Skip looking at stdout to make the code cleaner. Any errors should
  turn up on stderr.
2016-12-08 11:22:30 -05:00
Patrik Lundin
32cb025b85 Fail if "rcctl status" writes to stderr. 2016-12-08 11:22:30 -05:00
Patrik Lundin
03d4b76b14 Check rc and print error message if any.
It is probably good to use stdout before printing a generic error
message as well.
2016-12-08 11:22:29 -05:00
Patrik Lundin
38d8db473f Make "enabled" code aware of --check mode. 2016-12-08 11:22:29 -05:00
Jonathan Armani
d1433eca14 Add enable / disable of services for OpenBSD if rcctl is present 2016-12-08 11:22:29 -05:00
Will Thames
22a3b3f811 RDS rewrite to use boto.rds and boto.rds2
Using rds2 allows tags and the control over whether or not DBs are
publicly accessible.
Move RDS towards a pair of interfaces implementing the details of rds
and rds2
Added tests to ensure that all operations work correctly as well as
requirements files that allow virtualenvs to test either boto.rds or
boto.rds2
2016-12-08 11:22:29 -05:00
Antti Salminen
75e15e2ae9 Find the actual commit annotated tags refer to instead of the tag object. 2016-12-08 11:22:29 -05:00
willthames
ef88ff6dd8 Added the ability to remove snapshots
Added state option, and accompanying snapshot_id option for
when state=absent.
2016-12-08 11:22:29 -05:00
Michael DeHaan
f875cc5197 Remove potentially out of date or specific product references. 2016-12-08 11:22:29 -05:00
Michael DeHaan
76efaa6cfb More EC2 doc tweaks 2016-12-08 11:22:29 -05:00
Michael DeHaan
590d20db24 Misc EC2 doc tweaks. 2016-12-08 11:22:29 -05:00
Toshio Kuratomi
ddc81c7b93 Escape % in db+table names before adding to a format string being passed into db.execute()
Fixes #416
2016-12-08 11:22:29 -05:00
Dan
fe787f1bc9 Adds a login_unix_socket option to the postgresql_privs module. 2016-12-08 11:22:29 -05:00
Dan
ee65c55fb0 Adds a unix_socket/login_unix_socket option to the postgresql_user module. 2016-12-08 11:22:29 -05:00
Dan
789ee410f1 Adds a login_unix_socket option to the postgresql_db module. 2016-12-08 11:22:29 -05:00
René Moser
ceeeea84cd yum: add update_cache option
Yum does not always update to latest package version unless metadata cache has expired. By runing yum makecache, we ensure the metadata cache has been updated.

Signed-off-by: René Moser <mail@renemoser.net>
2016-12-08 11:22:29 -05:00
Toshio Kuratomi
5734838cd1 Fix module traceback instead of returning an error 2016-12-08 11:22:29 -05:00
Eric
11bd0fed9d Fix lineinfile documentation typo 2016-12-08 11:22:28 -05:00
Achilleas Pipinellis
872f6aa559 Clarify supported init systems. 2016-12-08 11:22:28 -05:00
follower
4889701874 Fix typo of "rules_egress"
Or is "rules_egree" supposed to be a plural? The sentence is difficult to parse.

Maybe the correct fix is to "Purge existing rules on security group that are not found in rules_egress"?
2016-12-08 11:22:28 -05:00
Pascal Borreli
187b07e6c0 Fixed typo 2016-12-08 11:22:28 -05:00
Fabrice Bernhard
3d437b068e Typo in comments
Credit goes to @kbsali
@pborreli : you did not see that one? :-)
2016-12-08 11:22:28 -05:00
Toshio Kuratomi
e8081baca9 Fix for single role_attr 2016-12-08 11:22:28 -05:00
Toshio Kuratomi
47b009b001 Add a bare grant to the list of allowed privileges 2016-12-08 11:22:28 -05:00
Toshio Kuratomi
b00e6464e9 Fix cornercase tracebaxk when detecting whether submodules changed 2016-12-08 11:22:28 -05:00
Devin Christensen
b2829cf6b9 Fix user_alter in postgresql_user 2016-12-08 11:22:28 -05:00
Devin Christensen
ff7a9eb625 Fix user_add in postgresql_user 2016-12-08 11:22:28 -05:00
Toshio Kuratomi
bed60553ca Escape mysql identifiers 2016-12-08 11:22:28 -05:00
Toshio Kuratomi
87b2afc272 Correct new function name 2016-12-08 11:22:28 -05:00
Toshio Kuratomi
3e9771f544 Normalize privs and flags to uppercase so comparisons against allowed names will work 2016-12-08 11:22:28 -05:00
Toshio Kuratomi
e0ac340f59 Make sure we quote or confirm good all user provided identifiers 2016-12-08 11:22:28 -05:00
Toshio Kuratomi
d3787840a4 Audit escaping of identifiers in the postgresql_user module 2016-12-08 11:22:28 -05:00
Toshio Kuratomi
32aaa07325 More robust quoting of database identifiers
Note: These aren't database values, those are already using the
appropriate Pyhton DB API method for quoting.
2016-12-08 11:22:27 -05:00
Toshio Kuratomi
f7fafa8c16 Cannot readlink() on a hard link 2016-12-08 11:22:27 -05:00
Toshio Kuratomi
3e09de7aef Fix git module checking out correct version after initial clone
Fixes #313
2016-12-08 11:22:27 -05:00
Toshio Kuratomi
1af6a85492 Correct variable name 2016-12-08 11:22:27 -05:00
Brian Coca
78fb3217d6 service now detects systemd is actually running, not just installed 2016-12-08 11:22:27 -05:00
Jonathan Mainguy
a71ce0615a fixes user module for rhel5 by using -n instead of -N, all other distros will still use -N 2016-12-08 11:22:27 -05:00
Henry Finucane
2363074dd8 If force=true, ignore python-apt's advice
This lets you downgrade packages, for instance.
2016-12-08 11:22:27 -05:00
IndyMichaelB
07d4ddfeff docfix for vsphere_guest.py
Corrected parameter name from user to username in documentation
2016-12-08 11:22:27 -05:00
Sam Kottler
bb9c7acc2f Remove trailing whitespace in digital_ocean_domain 2016-12-08 11:22:27 -05:00
Nejc Zupan
442c8a5457 digital ocean: Remove unsupported states 2016-12-08 11:22:27 -05:00
Toshio Kuratomi
81978cbacb Fix retrieval of package version in apt module 2016-12-08 11:22:27 -05:00
Toshio Kuratomi
83e43415da Documentation update for apt version wildcards from bryanlarsen 2016-12-08 11:22:27 -05:00
Toshio Kuratomi
9472a27345 Clean up the docker module just a little so that we can unittest the get_split_image_tag function 2016-12-08 11:22:27 -05:00
Toshio Kuratomi
f45e70fdbc Moving unittests to the main ansible repo for now 2016-12-08 11:22:27 -05:00
Toshio Kuratomi
615b954cd8 Update package_status and install to account for wildcarded versions. 2016-12-08 11:22:27 -05:00
Toshio Kuratomi
1ca1b80fe8 Decide to allow pkgname and version wildcards so that things like libxml2*=2.9* would work 2016-12-08 11:22:27 -05:00
Toshio Kuratomi
37fa22eb93 Cache pkg name list so we don't recreate the list for every package 2016-12-08 11:22:26 -05:00
Toshio Kuratomi
6b776da7bc Just make things a little more readable 2016-12-08 11:22:26 -05:00
Toshio Kuratomi
f2c1d49de7 Correct trivial spelling. 2016-12-08 11:22:26 -05:00
Toshio Kuratomi
945447e392 if __name__ does work with ansible modules 2016-12-08 11:22:26 -05:00
Michael Vogt
e360582c4a add apt unittest 2016-12-08 11:22:26 -05:00
Michael Vogt
80d520dde8 Allow foo=1.0* like expressions in apt 2016-12-08 11:22:26 -05:00
Robert Estelle
4e2d05b1f3 Remove incorrect executable permissions. 2016-12-08 11:22:26 -05:00
Adam Miller
c707107e1b fix gce_net add firewall rule example 2016-12-08 11:22:26 -05:00
John Batty
dd78dde449 Fix get_flavor_id() when flavor_ram is specified
Without this fix, _get_flavor_id() fails to find a matching flavor if
both:
* the flavor_ram parameter is specified
* the first flavor in the list does not match.

The bug is simply that the module.fail_json() call lies within the loop
iterating through the flavors.  This call should only be made if the
loop completes and no matching flavors have been found.
2016-12-08 11:22:26 -05:00
Brian Coca
5d16410518 corrected comparisson which had accidentally chaned in previous fixes 2016-12-08 11:22:26 -05:00
Brian Coca
9de01b8e10 better handling of deprecated aliases 2016-12-08 11:22:26 -05:00
Brian Coca
f91859c817 make sure 'present' is fully equivalente of 'installed' and remove installed from feedback in favoer of 'present' 2016-12-08 11:22:26 -05:00
James Martin
dd46f7275f asg will now be terminated if state=absent.
adds mutually exclusive options
2016-12-08 11:22:26 -05:00
James Cammarata
e9fbb5f1b6 Serialize tag attributes to ASG properties in ec2_asg
Fixes #108
2016-12-08 11:22:26 -05:00
James Martin
f59a1348ad Removes orphaned code. 2016-12-08 11:22:26 -05:00
James Martin
17cd9d18b0 fixes #240, #274, #108 2016-12-08 11:22:26 -05:00
Brian Coca
ba040784b8 let implied type do the spliting 2016-12-08 11:22:25 -05:00
Brian Coca
7d577e4447 minor fixes to wait_for to avoid tracebacks as per ansible core issue #9244 2016-12-08 11:22:25 -05:00
Jeff Geerling
5d103793ee Add mention of fetch module to the copy module docs. 2016-12-08 11:22:25 -05:00
Brian Coca
c071d6a85c switched to iterator as per comments 2016-12-08 11:22:25 -05:00
James Cammarata
a32a50568e Use new prompt detection in run_command to detect aptitude prompts
Also adds flags to aptitude command when force=yes is used, in order
to bypass the prompts given for untrusted packages.

Fixes #31
2016-12-08 11:22:25 -05:00
Martijn P. Rijkeboer
fcf527557d Fix whitespace around '=' in sysctl.conf. 2016-12-08 11:22:25 -05:00
José Moreira
82450c6811 Fixed small typo on ec2 task name 2016-12-08 11:22:25 -05:00
Francois Deppierraz
9620346c36 Fix a typo in nova_compute documentation string
Without this patch, ansible-doc was failing this way:

$ ansible-doc nova_compute
Traceback (most recent call last):
  File "/home/francois/WORK/dev/ansible/bin/ansible-doc", line 324, in <module>
    main()
  File "/home/francois/WORK/dev/ansible/bin/ansible-doc", line 316, in main
    text += get_man_text(doc)
  File "/home/francois/WORK/dev/ansible/bin/ansible-doc", line 112, in get_man_text
    desc = " ".join(opt['description'])
KeyError: 'description'
2016-12-08 11:22:25 -05:00
Brian Coca
a91b5fc170 made hostname work with python 2.4 2016-12-08 11:22:25 -05:00
Fwiffo
64e07acb19 typo in comments: of -> or 2016-12-08 11:22:25 -05:00
Toshio Kuratomi
34d65647bf Move from md5 to sha1 to work on FIPS-140 enabled systems 2016-12-08 11:22:25 -05:00
Michael DeHaan
98fdc389d0 Deprecate docker_image, use the docker module to deploy docker images, or shell out to docker to call docker build if you want from a playbook. 2016-12-08 11:22:25 -05:00
Brian Coca
a091d8c59a added missing init.py for utilities modules 2016-12-08 11:22:25 -05:00
Brian Coca
5a467bc72c added __init__.py to new cloud subcategories so builds work again 2016-12-08 11:22:25 -05:00
Michael DeHaan
d31ac79269 Move internal category to utilities to remove one more category from the left hand menu, keeping it concise. 2016-12-08 11:22:25 -05:00
Michael DeHaan
677ed39cb4 Renames. 2016-12-08 11:22:25 -05:00
Michael DeHaan
5d814d9fb2 Some more module categorization. 2016-12-08 11:22:25 -05:00
Brian Coca
32e85c0944 made subcategories for cloud modules for better organization 2016-12-08 11:22:24 -05:00
James Cammarata
bb9433f198 Fail in ec2 if exact_count is specified without using count_tag
Fixes ansible/ansible#9431
2016-12-08 11:22:24 -05:00
Toshio Kuratomi
dfd4433fba Fix git module handling of the recursive flag
Fixes: #169
2016-12-08 11:22:24 -05:00
Toshio Kuratomi
5fc463eee7 Update desctiprion, parameter name, and default value as discussed in #55 2016-12-08 11:22:24 -05:00
Lorin Hochstein
5c06bb6dca ec2_snapshot: document wait, wait_timeout params
Document the wait and wait_timeout params for ec2_snapshot.

This is important because snapshots can take a long time to complete,
and the module defaults to wait=yes.
2016-12-08 11:22:24 -05:00
Ashish Ranjan
57ce7b1ea1 fields in /proc/net/tcp* are not always delimited by single space 2016-12-08 11:22:24 -05:00
Adam Chainz
dddc5ffd2c Update syntax for cloudformation example 2016-12-08 11:22:24 -05:00
Jaanus Torp
7be83dc844 Fixed really annoying omission in the example without the task would complete without errors or warnings but delete all egress rules 2016-12-08 11:22:24 -05:00
Toshio Kuratomi
1429507489 Fix for systemd service scripts with newlines
Fixes #127
2016-12-08 11:22:24 -05:00
CptLausebaer
a572f85d43 correct requirement of parameter dest
The parameter "dest:" is required, but it is documented as "required: false".
2016-12-08 11:22:24 -05:00
Toshio Kuratomi
bcc058249c Use original_basename to set the dest path even if src is not set 2016-12-08 11:22:24 -05:00
Tim Gerla
26698246c3 Fix a typo of a function call 2016-12-08 11:22:24 -05:00
Richard Glew
dac24deeb4 Fixed bug #193 where parameter name was set incorrectly 2016-12-08 11:22:24 -05:00
Jorge Bastida
d82bfcb75f Initialize create_changed and replace_changed 2016-12-08 11:22:24 -05:00
Sapan Bhatia
d492544714 Added user, tenant and password to module parameters declaration -- these parameters are already handled by the implementation 2016-12-08 11:22:24 -05:00
Ted Timmons
6e900744f2 fix spelling 2016-12-08 11:22:23 -05:00
James Cammarata
dd2807ef3c Strip newlines off k=v pairs in command/shell argument parsing
Fixes ansible/ansible#9272
2016-12-08 11:22:23 -05:00
Lorin Hochstein
06218fe7d2 apt_key: add keyserver example to docs 2016-12-08 11:22:23 -05:00
Jon Hadfield
f63ad7894e Remove redundant check for creates argument. 2016-12-08 11:22:23 -05:00
Tadej Janež
9a845a03f4 Simplified condition in a stat module example testing if path is a directory. 2016-12-08 11:22:23 -05:00
James Cammarata
429ab56e14 Adding file doc fragment to those modules in files/ missing it 2016-12-08 11:22:23 -05:00
Joe Adams
6eda3cbee7 Added note to files/synchronize module about synchronizing two directories on the same host 2016-12-08 11:22:23 -05:00
Tongliang Liu
59477d2e9a Added support of returning owner's group name in stat module 2016-12-08 11:22:23 -05:00
anatoly techtonik
90091b1277 files.stat: Expose path in returned result
This is needed to apply subsequent operation on tested path
2016-12-08 11:22:23 -05:00
Matt Martz
cce5b600c0 Don't count DELETED servers when adding new servers 2016-12-08 11:22:23 -05:00
Matt Martz
6a6faeb506 Fix determination if a few configurations change in the launch config 2016-12-08 11:22:23 -05:00
Matt Martz
e905162571 Ensure that files is the right type, and that we send the formatted personality var 2016-12-08 11:22:23 -05:00
Matt Martz
591ba934c3 Support config_drive and user_data in rax_scaling_group 2016-12-08 11:22:23 -05:00
Eric Hanchrow
e4ac716663 Tweak docs to mention replace 2016-12-08 11:22:23 -05:00
Major Hayden
e3449b6691 Updating SELinux example doc in lininefile module
Encouraging users to use this Ansible module to enable SELinux seems
like a better idea. It also warms Dan Walsh's heart.

Signed-off-by: Major Hayden <major@mhtx.net>
2016-12-08 11:22:23 -05:00
Chad Nelson
20706f5f4d Chnge option name to track_submodule_branches.
Update documentation to reflect what the actual effect of the option.
2016-12-08 11:22:23 -05:00
Chad Nelson
5f30157a05 Give option on how git tracks submodules.
Allows user to decide if git submodule should track branches/tags or track commit hashes defined in the superproject.

Add track_branches parameter to the git module.

Defaults to track branches behavior.
2016-12-08 11:22:23 -05:00
Michael DeHaan
11b0ce5c32 Update README.md 2016-12-08 11:22:22 -05:00
Michael DeHaan
c7e9139a1b Fix filename error. 2016-12-08 11:22:22 -05:00
Michael DeHaan
ef2a2b9093 package files 2016-12-08 11:22:22 -05:00
Michael DeHaan
213e518165 file extensions! 2016-12-08 11:22:22 -05:00
Michael DeHaan
c7eec45b73 Restructuring. 2016-12-08 11:22:22 -05:00
Michael DeHaan
87a9034751 Core/extras split WIP. 2016-12-08 11:22:22 -05:00
Michael DeHaan
e5b3cb3b02 Core/Extras splitting WIP. 2016-12-08 11:22:22 -05:00
Michael DeHaan
b2bf4b9bf7 Not core. 2016-12-08 11:22:22 -05:00
Michael DeHaan
42ab1eab36 Fix typo in README filename 2016-12-08 11:22:22 -05:00
James Cammarata
cd42f73662 Moving snapshot of modules back from core 2016-12-08 11:21:46 -05:00
James Cammarata
9c67f6dcdc removed core and extras submodules 2016-12-07 15:44:53 -05:00
James Cammarata
1a4484be61 Submodule ref update 2016-12-06 10:51:49 -05:00
Toshio Kuratomi
36f29148a3 Update submodule refs 2016-12-06 07:05:07 -08:00
Matt Clay
6611845716 Update submodule refs. 2016-12-06 10:01:11 -05:00
Peter Sprygada
dc23667cc2 add back reverted change to network_cli (#18761)
This adds back the change to the network_cli plugin.  Ths change adds
the ensure_connect decorator to the open_shell() method to make sure
the connection is valid before trying to open a shell.

The issue was due to the addition of the decorator that will call
_connect() when there is no connection.  The _connect() method should
have been mocked in the test case.  This commit fixes the test
case as well

Change was originally reverted in c414ded69a
2016-12-05 21:42:09 -05:00
Toshio Kuratomi
117b88cd38 smart quotes, die die die. 2016-12-05 14:15:43 -08:00
Toshio Kuratomi
9f94414095 Fix indentation 2016-12-05 14:14:19 -08:00
Toshio Kuratomi
32ffa87732 Add docstring explaining whatw Attribute does 2016-12-05 13:09:48 -08:00
Toshio Kuratomi
868b20d982 Document the get_config function 2016-12-05 13:03:14 -08:00
Ondra Machacek
f1812b0f15 module_utils: ovirt: Add support to fetch nested object's attributes (#18666)
* module_utils: ovirt: Add support to fetch nested object's attributes

This patch fixes issue #3555

* Update documentation
2016-12-05 15:23:42 -05:00
Toshio Kuratomi
c414ded69a Revert "minor updates to network_cli connection plugin (#18742)"
This reverts commit 8e375913b0.

This breaks testing as the PlayContext is not mocked out for the test.
Temporarily reverting.
2016-12-05 10:54:42 -08:00
Toshio Kuratomi
5f5ea06ca4 make hash_params more robust in the face of many corner cases (#18701)
* make hash_params more robust in the face of many corner cases

Fixes #18680
Alternative fix to #18681

* add test case for role.hash_params

* Add role.hash_params test for more types

A set, a generator/iterable, and a Container that
is not Iterable.
2016-12-05 04:01:45 -08:00
Peter Sprygada
8e375913b0 minor updates to network_cli connection plugin (#18742)
* removes superfluous timeout kwargs from open_shell()
* cleans up play_context become check
* adds check for ssh session and calls _connect() if needed
2016-12-04 22:50:01 -05:00
Ruslan Tumarkin
9d8fc7afce Fux bug 18584 (#18718) 2016-12-04 10:46:41 +00:00
Matthew Krupcale
cb4153c285 FreeIPA module polymorphic restructuring, Python 3 support, and small fixes. (#18542)
* Moved JSON-RPC client IPAClient class to ansible.module_utils.ipa, which is extended by all ipa modules
* IPAClient: Changed to 2-clause BSD license
* IPAClient (lines 37-39): Added some additional imports for use with Python 3
* IPAClient (line 41): Explicitly extend Python base object
* IPAClient (line 57): Properly URL quoted the username/password form data as per https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1
* IPAClient (line 62): Data should be bytes or bytearray in Python 3 (still str in Python 2)
* IPAClient (line 65): Print error message, not returned body
* IPAClient (line 70): getheader() is not present in Python 3 version of HTTPMessage; get() is present in both Python 2/3
* IPAClient (line 88): Convert form data to bytes for Python 3 again
* IPAClient (line 91): Print error message, not returned body
* IPAClient (line 96-104): json.loads() requires a string; HTTPResponse.read() returns bytes in Python 3 and str in Python 2, so decode the bytes/string using the HTTPResponse returned charset (default to 'latin-1')
* Add author/copyright notice
2016-12-04 10:43:35 +00:00
Peter Sprygada
8e562018ed adds py3 compat changes to network_cli plugin (#18735)
now calculates StringIO receive buffer and if received data is less than
buffer size, resets offset to 0
2016-12-03 20:05:33 -05:00
Dag Wieers
b52159163b Add RHEV host detection support (#17177)
* Add RHEV host detection support

This adds RHEV host detection support based on a running 'vdsm' process and the existence of _/rhev/_ (which are both part of the vdsm RPM package in a RHEV installation). Without this change, a RHEV host would be reported as a kvm host (which is also true, but often not specific enough).

This closes #17058

* Only scan the process list when we determined /rhev/ exists

Small performance improvement, so we do not have to scan the process list if /rhev/ does not exist.
2016-12-02 12:24:47 -05:00
gl0bus
d5eff47fcc Extend OpenStack related hypervisor detection (#15166)
* fixed detection of ansible_virtualization_(role|path) facts for VM's running in
OpenStack Instances

* NOTE: this will break detection of ansible_virtualization_(role|path) facts
        if you are using Openstack Instaces with nested virtualization

* fixed detection of ansible_virtualization_(role|path) facts for VM's running in
OpenStack Instances

Fixes #15165

* NOTE: this will break detection of ansible_virtualization_(role|path) facts
        if you are using Openstack Instaces with nested virtualization
2016-12-02 12:23:43 -05:00
Michael Scherer
435dfc2b9c Add a bit more information for network facts on BSD
This was tested on FreeBSD 11, NetBSD 7 and OpenBSD 6.0
This currently detect ether, loopback and tunnel.
2016-12-02 12:20:48 -05:00
Yann Autissier
c048198567 fix setup module on Fedora Core 5 (#17175)
setup module fails with AttributeError: 'module' object has no attribute
'selinux_getpolicytype' in get_selinux_facts on Fedora Core 5
2016-12-02 12:20:01 -05:00
Jesse Keating
8e38f7475f Do not set docker use to None. (#18706)
The user variable defaults to None, and was being passed in as a user
named None. This was breaking rsync unless a specific user was set.

Fixes 16306
2016-12-02 10:29:24 -05:00
Chris Houseknecht
599e016315 For container enabled role, display warning only when not ANSIBLE_CONTAINER (#18717) 2016-12-02 10:08:10 -05:00
Toshio Kuratomi
8c03fec67a Remove method that isn't used here. (#18713)
We have two copies of this function and only the one in cli is used.
2016-12-02 00:30:41 -08:00
Toshio Kuratomi
74a10d7ca2 Transform vault_pass into text when we read it in from the user or a file. (#18699)
Fixes #18684
2016-12-01 23:42:43 -08:00
Toshio Kuratomi
0d9afa84d5 ssh-keyscan can fail to find keys for a host.
When it does, we need to fail otherwise other code will fail later.

Fixes #18676
2016-12-01 07:53:18 -08:00
Benoît Allard
56dcf2cc04 with_sequence: pass AnsibleError through
The parsing methods try as hard as possible to generate meaningful error messages that are all ignored and immediately overwritten by a new AnsibleError instance. Better use the original one instead.
2016-11-30 21:26:23 -08:00
Benoît Allard
7db4ed02ee with_sequence: Fix indentation
This doesn't need to run for every parameters. Once is enough.
2016-11-30 21:13:13 -08:00
Alberto Murillo
7542dae26b Fix fetching files with scp (#18673)
Commit ec2521f intended to fix the scp command to fetch files
from a remote machine but it has src and dest swapped.

This change correctly treats src as the location in the remote machine
and dest as the location in the local machine.

Signed-off-by: Alberto Murillo Silva <alberto.murillo.silva@intel.com>
2016-11-30 20:10:49 -08:00
Peter Sprygada
8137c7207d adds feature to try to auto determine network_os (#18674)
This updates the network_cli connection plugin to attempt to automatically
determine the remote device os.  The device network os discovery can
be overridden by setting the ansible_network_os value.
2016-11-30 16:28:47 -05:00
Peter Sprygada
6fe9a5e40c functional updates to ansible-connection (#18574)
* sends the serialized play_context into an already established connection
* hooks the alarm_handler() method in the connection plugin if it exists
* added configuration options for connect interval and retries
* adds syslog logging to Server() instance

This update will send the updated play_context back into an already
established connection in case privilege escalation / descalation activities
need to be performed.  This change will also hook the alarm_handler() method
in the connection instance (if available) and call it in case of a
sigalarm raised.

This update adds two new configuration options

* PERSISTENT_CONNECT_INTERVAL - time to wait in between connection attempts
* PERSISTENT_CONNECT_RETRIES - max number of retries
2016-11-30 16:26:49 -05:00
Yannig
900b3ffcba Implement docker support for synchronize module. (#18145)
* Implement docker support for synchronize module.

Note : you need rsync installation on your docker container.
Have a look at https://github.com/ansible/ansible/issues/16306 for more details.
Support Ansible options for remote access.

* Give user name to docker command.
2016-11-30 15:56:27 -05:00
Matt Davis
d95eac16eb bump submodule refs 2016-11-29 14:21:34 -08:00
Brian Coca
461dcf8ce3 log on target based on nolog, not verbosity (#18570)
* log on target based on nolog, not verbosity

fies #18569

* initialize module name

removing verbosity exposed missing name at certain stages, initialize to file name
and update later once module args are parsed
2016-11-29 16:43:29 -05:00
Virgil Dupras
bf48383610 Fix regression in jinja2 include search path (#18617)
* Fix regression in jinja2 include search path

Since commit 3c39bb5, the 'ansible_search_path' variable is used to set
jinja2's search path for {% include %} directives. However, this path is
the the proper one because our templates live in 'templates' subdirs in
our search path.

This is a regression because previously, our include search path would
include the dirname of the currently interpreted file, which worked most
of the time.

fixes #18526

* Fix template lookup search path

Improve fix in commit c96c853 so that the search path contain both
template-suffixed paths as well as original paths.

ref PR #18617

* Add integration test for template lookups

Tests regression at #18526

This test fails on current devel branch and succeeds on PR #18617
2016-11-29 16:23:06 -05:00
James Cammarata
786ac0ea3d Submodule update 2016-11-29 13:26:56 -06:00
Brian Coca
ca1514cf2a unified boolean function
optimized boolean function
fixes #17815
2016-11-29 12:34:30 -05:00
Adrian Likins
83676e9b40 Fix 'cancled' misspelling in --step debug 2016-11-29 09:48:19 -05:00
Toshio Kuratomi
3c6d71522e Fix for AnsiballZ when the remote clock is behind (#18660)
Some machines have system clocks which can fall behind (for instance,
a host without a CMOS battery like Raspberry Pi).  When managing those
machines we have to workaround the fact that the zip format does not
handle file timestamps before 1980.  The workaround is to substitute in
the timestamp from the controller instead of from the managed machine.

Fixes #18640
2016-11-29 01:21:13 -08:00
Daniel Miranda
57f4a9885e Make sure include_role inherit variables from parent role (#18627)
* Make sure include_role inherit variables from parent role

Setting the parent of task blocks generated by include_role after they
have been produced is not sufficient - it means the tasks don't have the
correct dependency chain set afterwards, and therefore, don't properly
inherit variables from outer roles.

In addition to manually setting the parents, pass the dep_chain when
compiling the role, such that variables are correctly imported.

Fixes #18540.

* Add tests for include_role

* Fix include_role variable inheritance for multiple parent levels
2016-11-28 17:54:27 -05:00
Matt Clay
00f8945159 Update submodule refs. 2016-11-28 13:22:34 -08:00
Adrian Likins
dbbd2d79ff Fix traceback in atomic_move (#18649)
Commit 8b08a28c89 removed a
call to get_exception() that was needed. Without it, the fail_json
references an undefined variable ('exception') and throws an exception.

Add the get_exception() back in where needed and update references.

Now the proper module failure is returned.

Fixes #18628
2016-11-28 15:19:42 -05:00
Matt Clay
6169d2d49f Update submodule refs. 2016-11-28 11:50:48 -08:00
John R Barker
02842767c6 Remove duplicated 'timeout' doc (#18657) 2016-11-28 13:15:20 -05:00
Peter Sprygada
9aa8547016 adds two new plugins that use ansible-connection for persistence (#18572)
* adds new connection plugin `network_cli` which builds on paramiko
* adds new plugin `terminal` used for manipulating network_cli terminals
* adds new field to play_context `network_os` settable as ansible_network_os

This commit adds the plugins necesary to establish a persistent cli connection
to network devices of ssh.  It builds on the paramiko connection plugin
to create a shell environment that will persistent through ansible-connection.
The `newtork_cli` plugin then uses the network_os in the instance of
PlayContext to load the appropriate network OS environment plugin for
handling opening and closing of shells as well as privilege escalation.
2016-11-28 12:49:40 -05:00
Peter Sprygada
7df5a0abd0 adds config option to auto add keys when using paramiko (#18598)
* updates paramiko_ssh to auto add keys
* updates constants with new config options

This commit adds a new feature that will allow paramiko to automatically
accept and save a host ssh key.  This feature is controlled by the
`host_key_auto_add` config setting in the paramiko section.  The default
is False to maintain current functionality.  It also includes a new
setting `look_for_keys` with the default to False for maintaining current the
current setting.
2016-11-28 11:31:12 -05:00
Peter Sprygada
a87d30f72f fixes exception raised when extracting timeout value from ModuleStub in eapi (#18651) 2016-11-28 16:00:15 +00:00
Peter Sprygada
9cb0e771d2 expose timeout param to socket (#18632)
The timeout param was exposed to the socket connection but was not
enforced for commands.  This update will now cause a command to timeout
based on the module parameter.
2016-11-28 15:38:49 +00:00
Peter Sprygada
69fb310878 updates the network shared docs to include the timeout parameter (#18635)
The network shared doc fragment was missing the timeout parameter from
the docstring.  This commit adds the timeout parameter back to the
doc fragment
2016-11-28 12:13:47 +00:00
Peter Sprygada
a757a77159 fixes timeout param in netconf provider for junos (#18634)
This change will now cause the netconf provider to honor the module
timeout value when making calls to pyez.
2016-11-26 22:24:48 -05:00
Peter Sprygada
eec6980f3e pass module timeout value to fetch_url in eapi connection (#18633)
This change causes the eapi connection to honor the module timeout
value when calling fetch_url
2016-11-26 22:22:55 -05:00
Alberto Murillo
ec2521f6af Fix ssh plugin to correctly fetch files when using scp (#18614)
Fetch module uses fetch_file() from plugin/connection/ssh.py to
retrieve files from the remote hosts which in turns uses
_file_transport_command(self, in_path, out_path, sftp_action) being
sftp_action = 'get'

When using scp rather than sftp, sftp_action variable is not used
and the scp command is formed in a way that the file is always
sent to the remote machine

This patch fixes _file_transport_command() to correctly form the scp
swaping src and dest if sftp_action is 'get'

Bug introduced at 8e47b9b
Fixes #18603

Signed-off-by: Alberto Murillo Silva <alberto.murillo.silva@intel.com>
2016-11-26 16:55:38 -06:00
Matt Clay
43714f859a Update submodule refs. 2016-11-24 20:01:59 -08:00
Ondra Machacek
b606078d69 Add param method to oVirt helper module (#18605)
This patch add new param method to fetch parameters
from the Ansible module, so modules don't have to use
the long name `self._module.params.get()`.
2016-11-24 16:03:22 +00:00
Brian Coca
fbe5878919 only access match if we actually match fact
fixes #18601
2016-11-23 19:01:20 -05:00
Brian Coca
778c983ef9 ansible_playbook_python (#18530)
* ansible_playbook_python

fixes #18471

* fix tests

* removed dupe
2016-11-23 16:30:46 -05:00
James Cammarata
4859e0a419 Look for _get_parent_attribute method in both src and dst dict
When determining which getter style to use for the object in question,
the BaseMeta class should look at both dict's to try and locate the method.

Fixes #18522
2016-11-23 12:51:38 -06:00
Brian Coca
4a325b5ea2 fixed issue with when/with error deferment
now it issues correct error (loop) when conditional depends on loop
compliment fixes #16222
2016-11-23 13:43:34 -05:00
Eric Chou
9d0b8c8545 modified POST body in axapi_authenticate_v3() and axapi_call_v3() (#18104) 2016-11-23 11:10:58 -05:00
Toshio Kuratomi
03dd186c63 Update submodule refs 2016-11-23 07:34:18 -08:00
Matt Clay
d61b2ed0a3 Support script interpreters for async_wrapper. (#18592) 2016-11-22 16:50:08 -08:00
Matt Clay
387fca28ab Update submodule refs. 2016-11-22 16:49:26 -08:00
Brian Coca
a715d03a83 dont fail on missing service during check mode 2016-11-22 16:16:55 -05:00
Toshio Kuratomi
255a5b5d75 Fix the Solaris POSIX acl fix
For setfacl on Solaris we need to specify permissions like r-x.
For chmod, we need to specify them as rx (r-x means to make the file
readable and *not* executable)
2016-11-22 12:36:43 -08:00
fallencliff
d5910ebdae update facts.py for solaris and hp-ux
for solaris,  add get_dmi_facts to get product_name fact, and update memtotal_mb to integer for consistency.

for hp-ux,  user machinfo to get product_serial fact
2016-11-22 15:09:00 -05:00
Toshio Kuratomi
bacdbc5f27 Update submodule refs 2016-11-22 11:31:34 -08:00
koralsky
4e194d71bd import reduce from six label:python3 (#18561)
* import 'reduce' from six
* import reduce in facts fix
2016-11-22 11:22:24 -08:00
Michael Noseworthy
bb5d8fb476 Fix unicode handling in fixup_perms2 errorhandling (#18565)
The _fixup_perms2 method checks to see if the user that is being sudo'd
is an unprivileged user or root. If it is an unprivileged user, some
checks are done to see if becoming this user would lock the ssh user out
of temp files, among other things. If this check fails, an error prints
telling the user to check the documentation for becoming an unprivileged
user.

On some systems, the stderr prints out the unprivileged user the ssh
user was trying to become contained in smartquotes. These quotes aren't
in the ASCII range, and so when we're trying to call `str.format()` to
combine the stderr message with the error text we get a
UnicodeEncodeError as python can't coerce the smartquotes using the
system default encoding. By calling `to_native()` on the error message
we can ensure that the error message is a native string for the
`Exception` handling, as `Exception` messages need to be native strings
to avoid errors (byte strings in python2, and text strings in python3)

Fixes: #18444
2016-11-22 11:19:47 -08:00
Nathaniel Case
8d0418f7c1 net_template doesn't need BOOLEANS
Note #17815
2016-11-22 11:49:21 -05:00
Nathaniel Case
3f4ac0b9f7 Fix for whitespace padding on JSON responses
Fixes #17825, closes #17829
2016-11-22 11:06:57 -05:00
James Cammarata
81aa12eb1b Rework how the Conditional class deals with undefined vars
Previously, the Conditional class did a simple check when an
AnsibleUndefinedVariable error was raised to see if certain strings were
present. This patch tries to be smarter by evaluating the variable contained
in the error string and compared to the defined/not defined conditionals in
the conditional string.

This also modifies the UndefinedError message from HostVars slightly to
match the format returned jinja2 in general, making it easier to match the
error message in the Conditional code.

Fixes #18514
2016-11-22 08:29:58 -06:00
Toshio Kuratomi
d90638ad40 Fix setfacl for Solaris with POSIX acl support.
Tested on Linux and freebsd.

Fixes #17919
2016-11-21 13:19:41 -08:00
James Cammarata
7e2305f953 Cache dynamically included blocks for later lookup via uuid
Fixes #18357
2016-11-21 13:02:24 -06:00
James Cammarata
26ec2ecfce Adding a persistent connection utility 2016-11-21 12:35:27 -06:00
Toshio Kuratomi
0b96d61162 Convert playbook basedir into unicode at the borders 2016-11-21 09:24:37 -08:00
James Cammarata
8ee3ef587a Check for negative defined logic in conditionals 2016-11-21 10:39:46 -06:00