Commit graph

33080 commits

Author SHA1 Message Date
Adrian Likins
4025b47629 Fix fact failures cause by ordering of collectors (#30777)
* Fix fact failures cause by ordering of collectors

Some fact collectors need info collected by other facts.
(for ex, service_mgr needs to know 'ansible_system').
This info is passed to the Collector.collect method via
the 'collected_facts' info.

But, the order the fact collectors were running in is
not a set order, so collectors like service_mgr could
run before the PlatformFactCollect ('ansible_system', etc),
so the 'ansible_system' fact would not exist yet.

Depending on the collector and the deps, this can result
in incorrect behavior and wrong or missing facts.

To make the ordering of the collectors more consistent
and predictable, the code that builds that list is now
driven by the order of collectors in default_collectors.py,
and the rest of the code tries to preserve it.

* Flip the loops when building collector names

iterate over the ordered default_collectors list
selecting them for the final list in order instead
of driving it from the unordered collector_names set.

This lets the list returned by select_collector_classes
to stay in the same order as default_collectors.collectors

For collectors that have implicit deps on other fact collectors,
the default collectors can be ordered to include those early.

* default_collectors.py now uses a handful of sub lists of
collectors that can be ordered in default_collectors.collectors.

fixes #30753
fixes #30623

(cherry picked from commit 95abc1d82e)
2017-09-28 10:56:18 -04:00
jborean93
f7b0908315 updated changelog for win_iis_webapppool fix 2017-09-28 16:17:35 +10:00
Jordan Borean
9a22c93606 fix for webapppool when specifying an attribute that holds a collection (#30729)
* fix for webapppool when specifying an attribute that holds a collection

* re-add always block on test

(cherry picked from commit a41077df20)
2017-09-28 16:16:52 +10:00
Toshio Kuratomi
085297259f New release v2.4.1.0-0.1.beta1 2017-09-27 21:29:22 -07:00
Toshio Kuratomi
1528a7ca60 Add ec2_snapshot_facts fix for python3 to changelog 2017-09-27 20:44:36 -07:00
Will Thames
1a3285b8a1 Fix ec2_snapshot_facts for python3
Avoid the following seen when running ec2_ami tests on python3,
presumably because the return type of `map` is different between
python2 and python3.

```
Traceback (most recent call last):
  File "/tmp/ansible_e44v27uj/ansible_module_ec2_snapshot_facts.py", line 242, in <module>
    main()
  File "/tmp/ansible_e44v27uj/ansible_module_ec2_snapshot_facts.py", line 238, in main
    list_ec2_snapshots(connection, module)
  File "/tmp/ansible_e44v27uj/ansible_module_ec2_snapshot_facts.py", line 193, in list_ec2_snapshots
    snapshots = connection.describe_snapshots(SnapshotIds=snapshot_ids, OwnerIds=owner_ids, RestorableByUserIds=restorable_by_user_ids, Filters=filters)
  File "/usr/local/lib/python3.5/dist-packages/botocore/client.py", line 312, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/usr/local/lib/python3.5/dist-packages/botocore/client.py", line 575, in _make_api_call
    api_params, operation_model, context=request_context)
  File "/usr/local/lib/python3.5/dist-packages/botocore/client.py", line 630, in _convert_to_request_dict
    api_params, operation_model)
  File "/usr/local/lib/python3.5/dist-packages/botocore/validate.py", line 291, in serialize_to_request
    raise ParamValidationError(report=report.generate_report())
botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid type for parameter OwnerIds, value: <map object at 0x7ff577511048>, type: <class 'map'>, valid types: <class 'list'>, <class 'tuple'>
```

https://github.com/ansible/ansible/pull/30435#issuecomment-330750498
(cherry picked from commit 5900fee67a)
2017-09-27 20:43:20 -07:00
Toshio Kuratomi
165432c9c1 lxc_container py3 fix in changelog 2017-09-27 20:34:37 -07:00
bit
d9a87fff5f lxc_container: open files as text, fixes #30571 (#30572)
call to_text on full config file

fixes issue #30571
(cherry picked from commit 0a114436fc)
2017-09-27 20:33:14 -07:00
jborean93
f88c8e1df9 Updated changelog for sensu_silence fix 2017-09-28 13:13:58 +10:00
Christian Albrecht
18490161b5 Fix sensu_silence module boolean parameter declaration (#30971)
(cherry picked from commit 0b0348d81c)
2017-09-28 13:13:14 +10:00
Brian Coca
ec380da0f2 fixed lookup dig docs
also clarified dig module uses dnspython

(cherry picked from commit bb874e5029)
(cherry picked from commit 54d7c384b6)
2017-09-27 21:00:45 -04:00
Brian Coca
fb2a533b81 fixed pull's ansible/git invocation options (#30938)
* fixed ansible/git invocation options

now falls back to using localhost as 'all' does not include implicit accidentally anymore

fixes #30636

(cherry picked from commit fc745920c7)
2017-09-27 19:51:06 -04:00
Toshio Kuratomi
5b08188318 Add crypttab pyhton3 fix to changelog 2017-09-27 11:59:28 -07:00
Jonathan Piron
441d238d5d Fix crypttab python3 compatibility issue (#30457)
In python2 str gives byte string. In Python3 it gives unicode string so it
can't be written in a binary mode opened file.
Use to_bytes helper function to ensure content being written will be
properly encoded in both python2 and python3.
(cherry picked from commit 54859a2132)
2017-09-27 11:58:41 -07:00
Brian Coca
ece8d2c577 since we never added toggle, disable cache
this restores previous behaviour, cache and a toggle will be added in 2.5
fixes #30717
2017-09-27 14:36:32 -04:00
Brian Coca
53f865d094 rmeove ext requirement for yaml inventory plugin
returns to the state before 2.4 made it a requirement
fixes #30855

(cherry picked from commit 82de2e1865)
2017-09-27 14:28:30 -04:00
Brian Coca
f993e213da added note about inventory_dir new behaviour (#30865)
* added note about inventory_dir new behaviour

(cherry picked from commit cd5cadfe69)
2017-09-27 12:30:59 -04:00
Brian Coca
e9649a0598 fixed wrong changelog entry 2017-09-27 11:48:58 -04:00
Thomas Steen Rasmussen
25fafc1280 Remove stray " and replace include: with import_tasks:
(cherry picked from commit 22fda12ac1)
2017-09-27 10:03:00 -04:00
Brian Coca
64737e1446 corrected import_play into to import_playbook (#30853)
* corrected import_play into to import_playbook

fixes #30744

(cherry picked from commit 17f094bb6a)
2017-09-26 17:28:07 -04:00
Brian Coca
457b70ee90 fix for slack callback breaks in 2.4 (#30932)
* fix for slack callback breaks in 2.4

fixes #30838

(cherry picked from commit 8378ac30b3)
2017-09-26 17:19:21 -04:00
Sloane Hertel
0195d3640b [cloud] Don't remove profile, security_token by default in aws_s3 (#30902) (#30930)
Comment above suggests only removing it for non-S3 services,
so let's actually enforce that.
2017-09-26 16:10:37 -04:00
Sloane Hertel
ed2a152b5e [cloud] Ensure target group ARNs are passed as a list in ec2_asg (#30905) (#30934)
While sets are useful for comparing whether target groups
need modifying, the AWS API expects a list or tuple, not a set
2017-09-26 16:09:53 -04:00
Sloane Hertel
91341de220 [cloudwatch_event] Due to an ImportError botocore is never successfully imported. (#30942) 2017-09-26 16:09:25 -04:00
Peter Sprygada
d532ab05ab fixes issue where filter wouldn't error on undefined var (#30921)
The filter will now correctly error on an undefined variable when trying
to template the key `value`

(cherry picked from commit 909100bd2c)
2017-09-26 14:52:05 -04:00
Matt Martz
f628881750 Update API example for 2.4
(cherry picked from commit d40eff720c)
2017-09-26 14:40:41 -04:00
Toshio Kuratomi
999404121f Add jenkins_plugin CVE fix to the changelog 2017-09-26 11:24:58 -07:00
Ivan Pepelnjak
0d61acc730 Add one-versus-many-matches logic to network filter plugin (#30511)
* Add one-versus-many-matches logic

* Fixed indentation (tabs ==> spaces)

(cherry picked from commit 9aa1da23f0)
2017-09-26 12:41:12 -04:00
Adrian Likins
042079aa87 Use vault_id when encrypted via vault-edit (#30772)
* Use vault_id when encrypted via vault-edit

On the encryption stage of
'ansible-vault edit --vault-id=someid@passfile somefile',
the vault id was not being passed to encrypt() so the files were
always saved with the default vault id in the 1.1 version format.

When trying to edit that file a second time, also with a --vault-id,
the file would be decrypted with the secret associated with the
provided vault-id, but since the encrypted file had no vault id
in the envelope there would be no match for 'default' secrets.
(Only the --vault-id was included in the potential matches, so
the vault id actually used to decrypt was not).

If that list was empty, there would be an IndexError when trying
to encrypted the changed file. This would result in the displayed
error:

ERROR! Unexpected Exception, this is probably a bug: list index out of range

Fix is two parts:

1) use the vault id when encrypting from edit

2) when matching the secret to use for encrypting after edit,
include the vault id that was used for decryption and not just
the vault id (or lack of vault id) from the envelope.

add unit tests for #30575 and intg tests for 'ansible-vault edit'

Fixes #30575

(cherry picked from commit a14d0f3586)
2017-09-26 12:31:58 -04:00
Brian Coca
fd361a2568 added cli rst docs to gitignore 2017-09-26 10:55:41 -04:00
Will Thames
a2525658f9 Remove print statements from play_context
Caused spurious output, particularly obvious when in `become` mode

(cherry picked from commit ef56f9a44c)
2017-09-26 10:16:11 -04:00
Toshio Kuratomi
a508bb205a Remove example of using params for the url_password
params could be logged so never use it for passwords.

Also add code to raise an error if passwords are used in that field.

References #30874

(cherry picked from commit 863fcb5ace)
2017-09-25 17:10:09 -07:00
Adrian Likins
2149d1092b Fix 'distribution' fact for ArchLinux (#30723)
Allow empty wasn't breaking out of the process_dist_files
loop, so a empty /etc/arch-release would continue searching
and eventually try /etc/os-release. The os-release parsing
works, but the distro name there is 'Arch Linux' which does
not match the 2.3 behavior of 'Archlinux'

Add a OS_RELEASE_ALIAS map for the cases where we need to get
the distro name from os-release but use an alias.

We can't include 'Archlinux' in SEARCH_STRING because a name match on its keys
but without a match on the content causes a fallback to using the first
whitespace seperated item from the file content as the name.
For os-release, that is in form 'NAME=Arch Linux'

With os-release returning the right name, this also supports the
case where there is no /etc/arch-release, but there is a /etc/os-release

Fixes #30600

* pep8 and comment cleanup

(cherry picked from commit 3eab636b3f)
2017-09-25 15:06:05 -04:00
Adrian Likins
3aa7941b72 facts: fix SPARC cpu count on linux (#30261)
On sparc64, /proc/cpuinfo has no usual 'model name', 'Processor', 'vendor_id', 'Vendor',
as a result "ansible_processor_vcpus" is always 1.
Add check element "ncpus active" to fix the issue.

(cherry picked from commit e93ecac0da)
2017-09-25 12:31:34 -04:00
Ganesh Nalawade
3680d28e58 Increase pause time in junos integration test (#30740) (#30799)
*  Increase pause time to a value greater
   than persistent connection timeout to clean
   out socket path.
(cherry picked from commit c3d226a739)
2017-09-23 18:42:00 +05:30
Brian Coca
2eac554eb4 use set to quicken group host membership
(cherry picked from commit 3f9a885b83)
2017-09-22 19:09:40 -04:00
Brian Coca
956b6ece86 dont validate group names in yaml plugin
(cherry picked from commit a819cfcad7)
2017-09-22 19:06:09 -04:00
Toshio Kuratomi
93559a7faf Add ssh path fix to changelog 2017-09-22 15:33:13 -07:00
Toshio Kuratomi
4afe8ed2ef Fix encoding error with path to ssh
As reported on the mailing list, if ssh_executable (from a config
setting) contains nonascii characters then we could get a UnicodeError
here.  Transform into bytes before passing to subprocess so that
subprocess doesn't transform to bytes for us.

(cherry picked from commit 86d8a4ff50)
2017-09-22 15:31:50 -07:00
Adrian Likins
bca1818b1e Fix pkg_mgr fact on OpenBSD (#30725)
* Fix pkg_mgr fact on OpenBSD

Add a OpenBSDPkgMgrFactCollector that hardcodes pkg_mgr
to 'openbsd_pkg'. The ansible collector will choose the
OpenBSD collector if the system is OpenBSD and the 'Generic'
one otherwise.

This removes PkgMgrFactCollectors depenency on the
'system' fact being in collected_facts, which also
avoids ordering issues (if the pkg mgr fact is collected
before the system fact...)

Fixes #30623

(cherry picked from commit 12404f470a)
2017-09-22 14:24:57 -04:00
Ganesh Nalawade
ce963984d1 Fix command argument typo in telnet module docs (#30731) (#30734)
* Fix command argument typo in telnet module docs (#30731)

(cherry picked from commit 6d3307e472)

* Update Change log
2017-09-22 15:20:09 +05:30
Brian Coca
304377aa82 added missing 2.4 clog entry 2017-09-21 23:56:46 -04:00
Toshio Kuratomi
5048f46340 Fix docker_service python3 incompatibility
Looks like this is supposed to operate on native strings so there's no
need to encode or decode at all here

Fixes #30354

(cherry picked from commit f66c74915c)
2017-09-21 19:51:31 -07:00
jborean93
c5f5277183 Updated changelog to include win_power_plan fix 2017-09-22 06:24:26 +10:00
Serge Nikalaichyk
22f352490d Fix OS version check in win_power_plan (#30538)
* Fixed win_power_plan OS version check

* Original error message case

(cherry picked from commit dc8aedb274)
2017-09-22 06:23:41 +10:00
jborean93
70c1320c08 Updated changelog with win_domain_membership fix 2017-09-22 06:11:58 +10:00
Jordan Borean
34ceed635d win_domain_membership: added better error handling and basic tests (#30674)
(cherry picked from commit fb628acb6e)
2017-09-22 06:10:14 +10:00
Hervé Beraud
9bc6cca9f8 [fix] no-unicode-literals sanity error on ansible.egg-info (#30446)
* [fix] no-unicode-literals sanity error on ansible.egg-info

(cherry picked from commit 0e9ae5b8cc)
2017-09-21 12:48:03 -07:00
Ryan Brown
fd42243936 Split ec2_elb_* modules in service of rename/interface changes (#30716)
* Split ec2_elb_* modules in service of rename/interface changes (#30532)

* Undeprecate ec2_elb_*
* Make ec2_elb* full fledged modules rather than aliases
* Split tests for ec2_elb_lb and elb_classicb_lb
* Change names in documentation of old and new elb modules

Add tests for ec2_elb_lb

* Update CHANGELOG with new status of ec2_elb_* vs. elb_classic_*
2017-09-21 14:43:45 -04:00
Sloane Hertel
bc0b069cb7 Remove invalid e.response from BotoCoreErrors in ec2_asg.py (#30121) (#30495) (#30715) 2017-09-21 13:53:04 -04:00