Commit Graph

1965 Commits (aa4b3f14c57735e0295a88c3960a701ed0261e15)

Author SHA1 Message Date
Adrian Likins 65393e4747 Fix ansible_distribution on Ubuntu 10.04 (#31108)
The /etc/os-release based distro detection doesn't
seem to work for Ubuntu 10.04 (no /etc/os-release?).

So it was testing the next case which was /etc/lsb-release to
see if it is 'Mandriva'. Since the check for existence of
(/etc/lsb-release, Mandrive) was the first non-empty dist
file match, 'ansible_distribution' was being set to 'Mandriva'
expecting to be corrected by the data from the dist file content.

But since the dist file parsing for Mandriva didn't match for
Ubuntu 10.04 /etc/lsb-release _and_ there is no Debian specific
lsb-release check, 'ansible_distribution' stayed at 'Mandriva'
and the dist file checking loop keeps going and eventually off
the end of the list before finding a better match.

Adding a debian/ubuntu specific check for /etc/lsb-release after
the debian os-release sets the info correctly and stops further
checking of dist files.

Fixes #30693
2017-10-03 15:32:33 -04:00
Adrian Likins 235d139e5d Fixes for facts distribution.py (#31110)
'distribution' facts were being set after checking
the existence of the dist file, and then being set
again with more detail after they were succesfully parsed.

But if the dist file was not succesfully parsed and
matched the required names, the loop continues
without resetting the earlier set facts. This is
how 'Mandriva' would end up being the 'distribution'
file for unrelated cases (it would find /etc/lsb-release,
set distro to 'Mandriva', then fail to parse/match and
continue the loop. If no other checks worked, 'Mandriva'
would stick).

* parse_dist_file_NA should check 'name' not distro for NA

parse_distribution_file_NA was checking the incoming
'distribution' fact to be 'NA', but the fact itself can
be specific at that point ('KDE Neon', for ex) but the
check is really if the 'name' it was passed is NA.

* for matches on OS_RELEASE_ALIAS (ie, 'Archlinux') do
not continue if the dist file content doesn't match. Previously
it had to because of the 'Mandriva' bug mentioned above.

This is a more general fix for #30693 than #30723

Fixes  #30693
Related to #30600
2017-10-03 14:01:40 -04:00
Pilou 44f5b2bd25 ansible_tower: fix broken import, reuse tower_argument_spec and documentation fragment (#29115)
* module_utils/ansible_tower: fix broken import

* tower_*: use tower_argument_spec & doc fragment

* tower doc fragment: Ansible requires Python 2.6+

* tower_job_wait: fix broken import (Py3 compat)
2017-10-02 16:21:24 -04:00
Abhijeet Kasurde 02b5c7a8a3 New module - vmware_guest_powerstate
Fix adds a new module 'vmware_guest_powerstate' to manage
power states of virtual machine.

Fixes: #30371

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-10-02 18:57:44 +02:00
James Tanner eca4897a08 Include the top level folder for esxi in the break condition 2017-10-02 12:31:51 -04:00
James Tanner 1c1c89927d Get the moid in a more failsafe manner 2017-10-02 12:31:51 -04:00
Damian Zaremba 92f777e815 module_utils.urls - Encode the proxy connect as binary (#30811)
* module_utils.urls - Encode the proxy connect as binary

Under Python3 the sendall method expects binary not a string.

Prior to this change the below exception was being thrown;
Traceback (most recent call last):
  File "/tmp/ansible_umxox7_x/ansible_modlib.zip/ansible/module_utils/urls.py", line 1044, in fetch_url
    client_key=client_key, cookies=cookies)
  File "/tmp/ansible_umxox7_x/ansible_modlib.zip/ansible/module_utils/urls.py", line 951, in open_url
    r = urllib_request.urlopen(*urlopen_args)
  File "/opt/blue-python/3.6/lib/python3.6/urllib/request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "/opt/blue-python/3.6/lib/python3.6/urllib/request.py", line 524, in open
    req = meth(req)
  File "/tmp/ansible_umxox7_x/ansible_modlib.zip/ansible/module_utils/urls.py", line 729, in http_request
    s.sendall((self.CONNECT_COMMAND % (self.hostname, self.port)).decode())
AttributeError: 'str' object has no attribute 'decode'

Encoding the value is inline with the lines below (Proxy-Authorization etc) which are being sent as binary.
2017-09-29 14:32:29 -07:00
Kedar K 916e6be888 - Fix to return error message back to the module. (#31035) 2017-09-29 17:06:30 +05:30
yaacov bf780c709d move manageiq_entities to module utils 2017-09-29 12:54:48 +02:00
jctanner 32cf69c00a Use the group-d1 moId instead of i8ln based names to identify the root folder. (#31077)
Addresses #29043
2017-09-28 20:36:54 -04:00
Toshio Kuratomi 5f22b4f8ad Reduce chance of mistakes with unsafe_shell check during refactor
Code like this:

if cond1 and cond2:
    pass
elif cond1:
    pass

Has a hidden dependency on the order that the conditions are checked.
This makes them fragile and subject to breakage during refactors.
Rewrite the code like this:

if cond1:
    if cond2:
        pass
    else:
        pass

The nested structure makes the ordering explicit and less likely for
someone to break the code when they refactor.
2017-09-28 16:48:22 -07:00
Adrian Likins 95abc1d82e 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
2017-09-28 10:36:22 -04:00
jctanner 0dd3a61a75 vmware_guest: tests for createvm+modifyvm tasks (#30959)
* Save the serialized values instead of their types
* Add tests for creating and modifying VMs without using a template
* Remove blank line
* Add tests for vm deletion
2017-09-27 18:10:08 -04:00
Will Thames 56fe9499d1 [cloud] Improve boto3_tag_list_to_ansible_dict backward compatibility (#30622)
Default to trying both `key` and `Key`, and corresponding
`value`/`Value`.

Alternative to #30542
2017-09-27 11:27:26 -04:00
Peter Sprygada 909100bd2c 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`
2017-09-26 11:50:57 -07:00
James Tanner 0bb3c4379c device operations are recursive if serialized 2017-09-26 14:41:33 -04:00
Adrian Likins 3eab636b3f Fix 'distribution' fact for ArchLinux (#30723)
* Fix 'distribution' fact for ArchLinux

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
2017-09-25 15:00:31 -04:00
jctanner ada404d0ac vmware_guest: refactor spec serialization (#30819)
* Refactor spec serialization so that native types are evaluated last.
* Remove redundant type checks

Fixes #30818
2017-09-25 09:24:57 -04:00
Anatoly Pugachev e93ecac0da 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.
2017-09-22 14:48:00 -04:00
Abhijeet Kasurde e1dcfda172 Add processor_vcpu fact for Darwin (#30708)
Fix adds fact related to vcpu in Darwin's setup.

Fixes: #30688

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-09-22 14:32:59 -04:00
Adrian Likins 12404f470a 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
2017-09-22 14:22:05 -04:00
jagmeetsingh91 d122a693d1 Feature to Specify AZURE blob storage type (#30660)
* Feature to Specify AZURE blob storage type

* Feature to Specify AZURE blob storage type

* Feature to Specify AZURE blob storage type

* Revert "Feature to Specify AZURE blob storage type"

This reverts commit 1d33997769ef3763a2eb434404c918134761635f.

	modified:   lib/ansible/module_utils/azure_rm_common.py

* Feature to Specify AZURE blob storage type
2017-09-22 10:17:00 -07:00
Ganesh Nalawade c86b945a7c Remove check_args for vyos modules (#30739)
*  With addition of provider sub option validation check_args()
   is no longer required.
2017-09-22 15:56:23 +05:30
Ganesh Nalawade d72eb08902 Fix nxos provider transport warning issue (#30610)
* Fix nxos provider transport warning issue

*  Add default value of transport arg in provider spec
*  Remove default value if transport arg in top level spec
   This ensure deprecation warning is seen only in case transport
   is given as a top level arg in task
*  Refactor nxos modules to reference transport value from provider
   spec

* Fix unit test

* Remove transport arg assignment in nxos action plugin

* As assigning transport value is handled in provider spec
  top level task arg assignment is no longer required
2017-09-22 10:32:25 +05:30
David Mahler 05ec0c9b8d Minor typo on deprecation warning (#30615) 2017-09-21 15:33:23 +05:30
Jordan Borean a940eb1e80 CamelConverter - more fixes picked up in testing (#30601) 2017-09-20 15:17:26 +10:00
Jordan Borean 1ea0293878 CamelConversion: fix to not convert string values (#30595) 2017-09-20 13:03:45 +10:00
Matt Clay 7714dcd04e Enable more pylint rules and fix reported issues. (#30539)
* Enable pylint unreachable test.
* Enable pylint suppressed-message test.
* Enable pylint redundant-unittest-assert test.
* Enable pylint bad-open-mode test.
* Enable pylint signature-differs test.
* Enable pylint unnecessary-pass test.
* Enable pylint unnecessary-lambda test.
* Enable pylint raising-bad-type test.
* Enable pylint logging-not-lazy test.
* Enable pylint logging-format-interpolation test.
* Enable pylint useless-else-on-loop test.
2017-09-18 23:20:32 -07:00
Jordan Borean 01563ccd5d windows: fix list type in legacy module utils (#30483)
* windows: fix list type in legacy module utils

* only change the return for the list type instead of affecting it all

* additional null check when using an array
2017-09-18 21:18:52 -07:00
Brian Coca 314e6d0d8a start of 'is chroot' fact
probably missing cornercases for some linux/bsd setups and other OSs
2017-09-18 16:16:41 -04:00
Toshio Kuratomi 47d303e255 Update the bundled six library to 1.11.0 2017-09-17 22:00:02 -07:00
Anil Kumar Muraleedharan 1921eaf096 Resolving bug on CNOS Image download on multiple devices. 2017-09-16 10:53:21 -07:00
Matt Davis 0e70057f56 CommandUtil C# API tweaks (#30453)
* changed RunCommand result from Tuple to CommandResult for easier future extensibility
* moved Win32 Dictionary->multi-null-string environment munging into C#
2017-09-15 23:09:15 -07:00
Matt Davis 6b5b465125 azure_rm_dnsrecordset rewrite (#30449)
As-merged, had several issues that prevented idempotent usage. Some args were defined at the wrong UI level. Dual-state args didn't match up with typical Ansible UI.
2017-09-15 18:12:46 -07:00
René Moser f128796782 cs_volume: fix CloudStackException dependency (#30389)
fixes pep8
2017-09-15 20:40:28 +02:00
Ganesh Nalawade 11310b8c4a Update removed_in_version to 2.9 for network module top level cred args (#30416)
* Update removed_in_version to 2.9 for network module top level credential args

* Add documentation
2017-09-15 21:20:07 +05:30
Pierre-Louis Bonicoli e9d202f944 module_utils/avi.py: fix broken import 2017-09-14 10:59:25 -07:00
Yanis Guenane 0648e339a7 openssl: remove static dict for keyUsage (#30339)
keyUsage and extendedKeyUsage are currently statically limited via a
static dict defined in modules_utils/crypto.py. If one specify a value
that isn't in there, idempotency won't work.

Instead of having static dict, we uses keyUsage and extendedKyeUsage
values OpenSSL NID and compare those rather than comparing strings.

Fixes: https://github.com/ansible/ansible/issues/30316
2017-09-14 12:03:00 -04:00
ethackal 4980ebf064 Fixes verify_ssl option when False in ansible_tower module util (#30308)
* Fixes verify_ssl option when False in ansible_tower module util

* fixed comparison to None per PEP-8 standards
2017-09-14 12:03:33 +02:00
Matt Clay ec59650528 Fix logic error in nxos get_config. 2017-09-13 23:48:15 -07:00
Toshio Kuratomi 62f49120cd Fix regression in format of lvm facts (#30326)
lvm information should not have leading whitespace in the key names

Fixes #30006
2017-09-14 13:50:47 +10:00
saichint 4e32c92166 nxos_udld_interface: improve interface detection (#28682)
* fix for nxos_udld_interface

* Tested Note added back
2017-09-13 11:06:56 -07:00
Jordan Borean 6d196eaa98 windows command changed to use CreateProcess (#30253)
* windows command changed to use CreateProcess

* change to get become to work
2017-09-13 09:58:49 -07:00
MarkusTeufelberger 2f06d572ba Add extended key usages to module_utils/crypto.py (#30128)
* Add extended key usages
2017-09-13 07:49:52 -07:00
aperigault 3622801ad4 Use ansible network env vars to authentication on fortigates (#29499) 2017-09-13 12:44:41 +01:00
Matt Clay 442af3744e Miscellaneous pylint fixes.
The following rules are no longer disabled:

- bad-format-string
- duplicate-key
- lost-exception
- trailing-newlines
- unexpected-keyword-arg
- useless-suppression
- using-constant-test
2017-09-13 01:53:08 -07:00
abirami-n adc533804a module_utils_fix_dellos6 (#28060) 2017-09-12 18:24:36 +01:00
Matt Davis 1e2ce4c8ab support missing drive letters in PS `path` type (#29884)
* fixes #26623
* Test-Path (and thus `-type path` in Get-AnsibleParam) fail on a nonexistent drive letter, since it can't be mapped to a PSProvider.
* added support and basic smoke tests for
2017-09-12 09:51:48 -07:00
Anil Kumar Muraleedharan 32f0c9f809 Bug Fixes for Vlan Name not assigned and Switch Error (#29953) 2017-09-12 16:14:52 +01:00
Ganesh Nalawade 599fe23ed6 Fix unwanted deprecation message in network module args (#28984)
* Fix unwanted deprecation message in network module argspec

Fixes #25663
Fixes #24537

*  segregate provider spec and top level arg spec
*  add deprecation key in top level arg spec
*  remove action plugin code to load provider and add
   that logic at a common place in network_common.py file

* Fix CI issue

* Minor change
2017-09-12 13:00:01 +02:00