Commit graph

3227 commits

Author SHA1 Message Date
chkp-orso
bab1a3ceda PR to introduce cp_network and cp_publish as modules (#57621)
* network and install policy modules for example

network and install policy modules for example

* revert the changes in version

revert the changes in version

* documentation_fragment

documentation_fragment

* Checking the status code of the set request

* delete some of Rikis' files

* retrieve Rikis' files and call equals API method

* adding blanck line between functions

* implement host, address-range and group

* mostly sintax fixes

* try again with the old host and access rule

* small changes

* adding service udp and publish

* publish command

* little fix

* choises for state parameter

* support wait_for_task and API version

* imports

* refactor of function's name

* network module

* rename modules and return value from modules

* PR before examples to: tests, lookup, check_mode

* small fixes

* fixes for code review

* small fixes

* state parameter in examples and many /n

* white spaces

* 4 tries for how choices should be, and turn true to True
2019-06-11 12:27:03 +05:30
Anton Nikulin
4fa93d5b9b FTD configuration module: fix a bug with response parsing (#57480)
* Update dependence's name to firepower-kickstart

* Check response type before getting attributes

* Add unit test for construct_ansible_facts method

* Update error message
2019-06-10 18:30:35 +05:30
Sajna Shetty
e25269e1b3 Adding dell ome device_info module (#53438)
* Adding device_facts module for contribution

* changes added for pylint error

* Updated code to solve ansible-test compile error

* Changes to avoide comile error added

* Review Comments changes update

* Avoided blank line

* pylint error changes

* Removed ansible_facts return in error case

* Updated description

* modules renamed

* changing from ansible_facts to device_info

* avoide pep8 error

* Updated sample output

* version changed to 2.9

* Changed Copyright license to BSD

* Changed 3-clause BSD license to 2-clause BSD

* Added unit test support for ome_device_info

* version change

* removed pylint error in unit test modules

* Avoid Sanity error for unit test modules

* updated version
2019-06-10 06:41:48 -04:00
Andrey Klychkov
ffa172e3a6 postgresql: moved function exec_sql from the modules to module_utils (#57603) 2019-06-10 11:15:07 +02:00
Bill Dodd
e5972ccbab redfish_command: Avoid power on/off commands if system already in target state (#56069)
* avoid power on/off commands if system already in target state

* add changelog fragment
2019-06-10 09:50:04 +02:00
Bill Dodd
7eae4761b8 redfish: Add MACAddress property to GetNicInventory (#56864)
* add MACAddress property to GetNicInventory

* add changelog fragment
2019-06-10 09:45:56 +02:00
René Moser
c001391555
vultr_server: implement support for IDs to match resources (#55762) 2019-06-09 13:34:25 +02:00
tcraxs
07d446825a New module postgresql_sequence (#55027)
* postgresql_sequence: initial commit with new module and tests

* change return variables and adjust tests

* fix sanity checks

* fix linter errors

* change formatting functions and put params alphabetically

* add new examples and remove restrict option
* remove restrict option
* remove `required: false`
* add links to documentation
* change some minor parts in documentation
* add new integration tests for
** drop cascade
** change owner

* change usage of owner and created a test case for set owner during creation

* remove some documents and use docsfragments

* add aliases for minvalue and maxvalue

* change to warn if sequence not exists but should be removed

* use connect_to_db from module_utils/postgres.py

* add checkmode for several tests

* fix psycopg2 import and connect_to_db

* add a test for drop nonexistent sequence

* change get_info funcrtion to use only one SQL statement

* rewrite the module for cleaner code
* remove psycopg2
* change check_mode behavior
* add docstrings for class and methods
* add test for create sequence with owner in check_mode

* fix typo in set_schema()

* fix docu and cleanup the code
* adjust documentation for state, schema and newschema
* remove mutually_exclusive for 'absent'
* remove unused code comments
* remove warning for drop non-exicsting sequence
* change autocommit condition

* adjust state documentation
2019-06-07 13:34:57 +02:00
Chris Van Heuveln
7aa0d26fda nxos_bfd_global / NxosCmdRef initial commit (#56317)
* nxos_bfd_global: initial commit

This is an initial POC with just a few commands included.  The code has been written somewhat generically so that it can act as a best practices template for re-use in future modules. The implementation follows the yaml cmd_ref style to define each command's getter/setter/type/default. It supports platform-specific defaults.

The basic logic is to collect all relevant data in a `cmd_ref` dict and pass that around to various methods.

In the BFD case the devices don't provide JSON output so we have to screen-scrape with show runs.

BFD does not support present/absent states so there is no state param.

BFD has three different property types to handle. We can add add'l types as needed:

- int
- int_list (list of ints)
- str (needs support for 'no' keyword)

* Use get_capabilities to find platform type

* PR comment fixes, round 1

* Minor cleanups

* nxos_bfd_global: create NxosCmdRef in module_utils

This commit just takes the latest bfd global code and moves the bulk
of the code into new `class NxosCmdRef` in `module_utils/nxos/nxos.py`.

The only remaining code in `nxos_bfd_global.py` are the calls from `main()`.

* Add remaining command properties and documentation

* update argument_spec

* Add check for _exclude; add sanity test

* Add targets files for bfd

* Context and state absent updates

* Add dict support to cmd_ref

* Changed remaining list commands to dict usage

* Add idempotence check for dict

* Fix existing overwrite bug

* Move pattern matching logic into its own method

* add support for 'command: absent'

* Add `get_platform_shortname`; update BFD platform-specific settings

* /absent/deleted/

* /sh/show/ in prepare_nxos_tests

* add dict check to get_platform_shortname

* Add normalize_defaults()

* UTs for bfd_global

* support yaml for both py2/py3

* update cmd_ref doc header

* Fix python2.6 incompatibility with dict comprehensions

* Fix bfd_global doc header (yaml syntax fail)

* more shippable fixes

* yet more shippable fixes

* shippable: remove r' ' wrappers

* docfix - remove ':'

* escape regex ctl chars in yaml table

* remove extra blank lines

* Fix str(None) issue

* Command context updates

* import PY2,PY3 instead of import sys

* fix ordereddict import & parent_context

* try/except for yaml import

* fix import issue for ordereddict

* remove epdb

* nxosCmdRef_import_check() workaround for shippable

* fix PEP ws errors
2019-06-06 15:52:55 +05:30
Ondra Machacek
d88739367e ovirt: Resolve also list of hrefs (#57299) 2019-06-06 10:58:26 +02:00
Marcus Watkins
6e94b472e8 Fix #56640: Map k8s ansible keys to api keys (#57418)
* Fix #56643: Map ansible keys to api keys

* Remove errant print line

* Fix pep8 issue

* Fix doc line

* Added test for validate_certs -> verify_ssl translation for k8s module
2019-06-06 18:51:23 +10:00
Mike Wiebe
7c73dd3e78 nxos_install_os: Fix nxapi local failures (#55993)
* Fix nxapi failures

* Remove logit debug calls

* Remove msg_timestamps

* Fix code alignment issue
2019-06-06 09:35:08 +05:30
Kevin Breit
8bcf9b5734 meraki_network - Restructure execution logic (#56818)
* Restructure meraki_network to be simpler and work for all int tests

* Enable all integration tests and enhance error reports

* Slight tweaks to integration tests
2019-06-05 10:33:55 -04:00
Sumit Jaiswal
e620e27609
PR to fix the bug 57215 & 56300 under Nios Host_Record module (#57221)
* fix bug 57215 & 56300

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* fix bug 57215 & 56300

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* shippable error fix

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* review comment fix

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
2019-06-04 10:52:16 +05:30
Andrey Klychkov
86be0985ce removed_module func: removed extra spaces from msg and docstring (#57209) 2019-06-03 10:00:19 -04:00
Fabrice
7364e79c0d k8s: Fix .to_dict not needed (#56147)
* k8s: Fix .to_dict not needed

* Add changelog fragment
2019-06-01 11:42:48 +10:00
Matt Martz
8bd4e2a144 cert validation fixes - Attempt 2 (#55953)
* Attempt 2 of cert validation fixes

* Remove unused code

* Cleanup the tmp cert using atexit

* Fix linting issues

* Only add SSLValidationHandler when not HAS_SSLCONTEXT

* Catch value errors on non PEM certs

* Only catch NotImplementedError to avoid masking issues

* set self._context even with PyOpenSSLContext for conformity

* Fix error building

* normalize how we interact with the context we create

* Remove unused code

* Address test for py3.7 message difference

* open_url should pass the ca_path through

* Account for new error in url lookup test

* Guard some code behind whether or not we are validating certs

* Make _make_context public

* Move atexit.register up to where the tmp file is created
2019-05-31 16:35:25 -04:00
Ondra Machacek
6bceea4f51 kubevirt: Rewrite merge dict method 2019-05-30 07:41:21 -07:00
Tim Hunter
4c00fc7b32 update pkg_mgr.py for Amazon Linux support (#56618) 2019-05-30 10:18:31 +02:00
Kevin Breit
5008e1d479 meraki_config_template - Enable check mode (#54502)
* Add support for check mode

* Check mode returns proper changed status
- Added is_template_valid()
- Restructured check_mode so it will always return data
- Check mode should show proper changed status
- Code is untested and integration tests need to be expanded

* Fix deleting networks
- Add integration tests for deleting networks
- Refine tests based on changed/unchanged

* Remove one task from integration test
2019-05-29 16:30:26 -04:00
Kevin Breit
7864df8cb9 meraki - Rewrite update requirement check (#48394)
* Rewrite idempotency check
- Check now operates recursively and works on multiple types
- Order of lists matter

* Remove blank line for lint

* Fixed idempotency checks in meraki_ssid
- New sanitize() method for finding keys unique in compared dicts
- Fixed bug in meraki_ssid where SSID specified by number breaks
  - This will require a backport
- Converted ignored_keys from tuple to list

* Made changes required for idempotency

* Add changelog fragment

* Add unidirectional option for testing

* Disable option 1 check

* General fixes for is_update_required testing
- Added commented out debug statements in method
- Fixed ignored_keys modifications

* Remove old commented algorithm
2019-05-29 10:18:01 -04:00
Paul Belanger
532de89b44
Fix exception with load_provider function (#56959)
It is possible for provider.authorize to exist, but set to None. Rather
then loading this value blindly, assume the default is False.

   File "/home/zuul/src/github.com/ansible/ansible/lib/ansible/executor/task_executor.py", line 145, in run
     res = self._execute()
   File "/home/zuul/src/github.com/ansible/ansible/lib/ansible/executor/task_executor.py", line 635, in _execute
     result = self._handler.run(task_vars=variables)
   File "/home/zuul/src/github.com/ansible/ansible/lib/ansible/plugins/action/ios.py", line 50, in run
     provider = load_provider(ios_provider_spec, self._task.args)
   File "/home/zuul/src/github.com/ansible/ansible/lib/ansible/module_utils/network/common/utils.py", line 424, in load_provider
     provider['authorize'] = boolean(provider['authorize'])
   File "/home/zuul/src/github.com/ansible/ansible/lib/ansible/module_utils/parsing/convert_bool.py", line 26, in boolean
     raise TypeError("The value '%s' is not a valid boolean.  Valid booleans include: %s" % (to_text(value), ', '.join(repr(i) for i in BOOLEANS)))

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-05-28 12:19:34 -04:00
Andrey Klychkov
baac1df935 New module mysql_info - Gather information about MySQL servers (#55434)
* New module mysql_info: collect info about MySQL server instance

* mysql_info - CI tests

* mysql_info: fixes

* mysql_info: fixes Decimal

* mysql_info: fixes Decimal converters.py

* mysql_info: fixed err conn message and check_mode

* mysql_info: added decimal.Decimal to lib/ansible/parsing/ajson.py

* mysql_info: convert Decimal to float

* mysql_info: fix

* mysql_info: fix

* mysql_info: returned the args list as it was

* mysql_info: fix typo

* mysql_info: fixes

* mysql_info: removed aliases for login_db

* mysql_info: changed RETURN condition info

* mysql_info: fixed doc

* mysql_info: fixed role's parsing

* mysql_info: fixed role's parsing

* mysql_info: fixes

* mysql_info: fixed integration tests
2019-05-28 09:10:12 +02:00
Martin Ouimet
398f4b8233 Added the 'show commit config diff' output available from the IOSXR device (#54875) 2019-05-27 17:30:14 +05:30
Andrey Klychkov
86354ff1fb postgresql: remove depricated lib (#56641) 2019-05-24 15:08:16 -04:00
Martin Krizek
6e66ea9f78 Properly detect is_chroot fact on XFS for non-root (#56899)
Fixes #56437
2019-05-24 14:23:46 -04:00
Pilou
4f25435cd2 Handle openstacksdk < 0.10.0: fix AttributeError (#50285)
* openstacksdk < 0.10.0: fix AttributeError

`openstack.version.__version__` expression raises an `AttributeError`
exception when openstacksdk < 0.10.0 is used. `openstack.version` is
now imported as a module, which works for all openstacksdk versions.

Error was:

    The full traceback is:
    Traceback (most recent call last):
      File "$HOME/.ansible/tmp/ansible-tmp-1545612308.8-46792777824159/AnsiballZ_os_security_group.py", line 113, in <module>
        _ansiballz_main()
      File "$HOME/.ansible/tmp/ansible-tmp-1545612308.8-46792777824159/AnsiballZ_os_security_group.py", line 105, in _ansiballz_main
        invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
      File "$HOME/.ansible/tmp/ansible-tmp-1545612308.8-46792777824159/AnsiballZ_os_security_group.py", line 48, in invoke_module
        imp.load_module('__main__', mod, module, MOD_DESC)
      File "/tmp/ansible_os_security_group_payload_keFTIJ/__main__.py", line 163, in <module>
      File "/tmp/ansible_os_security_group_payload_keFTIJ/__main__.py", line 115, in main
      File "/tmp/ansible_os_security_group_payload_keFTIJ/ansible_os_security_group_payload.zip/ansible/module_utils/openstack.py", line 121, in openstack_cloud_from_module
    AttributeError: 'module' object has no attribute 'version'

* Add missing space & dot in error message

* Always require openstacksdk >= 0.12
2019-05-24 10:27:47 -05:00
Sam Doran
8f4f3750fe
Ensure uri module always returns status even on failure (#56240)
- Also return url and update docs for other values to indicate they are only returned on success.
- Add integration tests
- Use info variable for common return values
- Use -1 as default status rather than None. This is lines up with with existing code in urls.py
- Add unit tests to ensure status and url are returned on failure
2019-05-23 10:17:17 -04:00
Nathaniel Case
cebb363fcc eos_l2_interface handle "Interface does not exist" (#56787)
* Quick and dirty attempt to handle eapi error

* Well this should probably change

* Hopefully this works correctly?

* Fix check_rc handling with httpapi

* Add tests that should hopefully cover the error

* Fix warnings

* Improve tests
2019-05-23 17:02:46 +05:30
Gonéri Le Bouder
5005c353ef VMware: vcenter_folder: print full path of the new folder (#55237)
Print the full path of the freshly created folder in the output string.
2019-05-23 16:21:22 +05:30
Bill Dodd
0d842ff539 redfish: refactor service_root variable (#56198) 2019-05-23 10:57:22 +02:00
RobW3LGA
bb50fc3889 construct_deep_url() (#53475)
* Updates aci.py with the ability to add ACI objects to any depth

Changes start at line 411 (construct_deep_url() and supporting functions). One minor change to line 633 (the original construct_url()) to provide for testability:  ...join(sorted(self.child_classes)) vs ...join(self.child_classes)

I am also attaching two test files. One characterizing the existing construct_url() and the matching test set for construct_deep_url() to support my efforts and proof of parity

* Two PyTest files to support construct_deep_url

These two files provide testing parity, one characterizing the original construct_url() function and the other proofing construct_deep_url(). The ...deep_url.py test file goes five layers deep to provide better validation for the function

* Correcting previous upload to incorrect folder

These two files provide testing parity, one characterizing the original construct_url() function and the other proofing construct_deep_url(). The ...deep_url.py test file goes five layers deep to provide better validation for the function

* Deleting for file name change per Matt Clay

* Deleting for file name change per Matt Clay

* Correcting file names per Matt Clay

@mattclay Thanks again for your continued guidance and patience. Please cancel the previous (incorrect) request

* Wrong location for test file

* Wrong location for test file

* First attempt to comply with suggestions

lib/ansible/module_utils/network/aci/aci.py:517:0: SyntaxWarning: "is not" with a literal. Did you mean "!="?
lib/ansible/module_utils/network/aci/aci.py:534:0: SyntaxWarning: "is not" with a literal. Did you mean "!="?
lib/ansible/module_utils/network/aci/aci.py:558:161: E501 line too long (210 > 160 characters)

* First attempt to comply with suggestions

test/units/module_utils/network/aci/test_aci_construct_url.py:1:14: SyntaxError: import pytest
test/units/module_utils/network/aci/test_aci_deep_url.py:1:14: SyntaxError: import pytest
test/units/module_utils/network/aci/test_aci_construct_url.py:0:0: use "\n" for line endings instead of "\r\n"
test/units/module_utils/network/aci/test_aci_deep_url.py:0:0: use "\n" for line endings instead of "\r\n"
Shortened test function names (less descriptive)

* Second attempt to comply with suggestions

* Second attempt to comply with suggestions

* Third attempt to comply with suggestions

* Third attempt to comply with suggestions

* Pro Tip: Convert from 'CRLF' to 'LF' in VSCode

It's on the status bar to the right

* Added setup() support for tests

* Continued corrections to support testing

* Added two mocks to support testing

I could not find where to place fakes/mocks, so please let me know if the current location is incorrect

* Adding tmpdir property to mock_basic.py

* Added last blank line to mock_basic.py

To pass sanity test

* Attempt to correct setup() issues

* Attempt to correct setup() issues

* Attempt to correct setup() issues

* Attempt to correct setup() issues

* Withdrawing pending injectability tweak to aci.py

* Withdrawing pending injectability tweak to aci.py

* Withdrawing pending injectability tweak to aci.py

* Withdrawing pending injectability tweak to aci.py
2019-05-23 00:46:43 +02:00
Dag Wieers
4f89c1d508
Revert "ACI: Implement encoded query_string" (#56783)
This reverts commit 1690af04fe42c657cbf0092d18c86bb517fe86a7.
2019-05-22 15:44:22 +02:00
Abhijeet Kasurde
459776eb82
VMware: Add folder option for vmware_dvswitch (#56707)
* Added folder param
* Mark datacenter as optional parameter
* Updated docs
* Updated tests

Fixes: #54986

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2019-05-22 11:40:09 +05:30
Will Thames
4065692e13 k8s minor bug fixes (#56168)
Ensure `wait_condition`s with `Status: Unknown` actually
complete

Return k8s object after wait rather than k8s object before
wait when object is patched.
2019-05-22 08:08:22 +02:00
Ondra Machacek
a4144e15c0 kubevirt_vm: Improve create VM from template (#55927) 2019-05-21 09:31:58 +02:00
Jakob Ackermann
3b4b2e5021 [docker] support the lookup of images by digest (#56649)
* [docker] images: add support for lookup by sha256 digest

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* [tests] docker image by digest: work on a minimal test case

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* [docker] group branch conditions per lookup

Co-Authored-By: Felix Fontein <felix@fontein.de>

* [misc] add a news fragment for the added digest lookup for docker images

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2019-05-21 02:54:05 -04:00
Matt Martz
493cf817a9 Don't rely on netloc for determining hostname and port, just use hostname and port (#56270)
* Add changelog fragment
* Fix IPv6 address parsing for py2.6, and add tests
* make sure hostname isn't None
2019-05-20 16:50:54 -04:00
René Moser
ded7949879 vultr: streamline docs (#56563) 2019-05-20 14:52:37 -05:00
Zim Kalinowski
b37ae35ba0 azure_rm_azurefirewall (#56359)
* azure_rm_azurefirewall

* a few updates

* fixed mistake

* updated docs, fixed syntax

* updated priority

* use checkmode for idempotence test, as it's very long

* fix check mode
2019-05-20 10:38:55 -07:00
Andrey Klychkov
386cef18ed module_utils.postgres: added unittests (#56381) 2019-05-17 23:33:45 -07:00
Chaitanya Deshpande
b5935486da Updated utils to remove Avi SDK dependency and Avi 18.2.2 version update (#54894)
* Updated utils to remove Avi SDK dependency and Avi 18.2.2 version update

* Fixed the python 3.x errors failing for avi_disable_session_cache_as_fact not properly documented

* Updated version added fields for new parameters

* fixed pep8 errors

* made requests import optional

* removed setting requests to None

* Added try catch for the avi helper methods such that any import fails then module fail gracefully. This was needed to pass the requests library not found error

* removed deprecated modules. Also, trying another fix to deal with requests import error

* Fixed python3 errors

* fixed pep8, no-dict-iteritems and import test failures

* added version 2.8 for new field

* some more code cleanup and formatting

* updated the fail message and fixed plint errors

* added workaround for unicode pylint

* fixed the version added for new parameter app_learning_memory_percent and removed unicode_literals import

* Removed check of HAS_AVI for common argument spec

* Updated version added value from 2.8 to 2.9

* Version added value fixes of CI error
2019-05-17 13:12:06 -04:00
mjmayer
c8e179fbf1 Aws waf region (#48953)
* Add waiter for AWSRegional

* Add support for WAF Regional

* Add support for regional waf web acl

* Remove set_trace, pep formatting

* Add paginator for regional_waf

* Change name of param for waf_regional

This is more in line with how AWS refers to the service. Additional
 changes made to how client is called. Used ternary to reduce if
 statements

* Change parameter name to waf_regional

* Add support for removal waf regional condition

* Change parameter from cloudfront to waf_regional

* Added state: absent waf rule

* Remove set_trace

* Add integration tests for waf regional

* WIP: adding region parameter to tests

* Add support for waf facts module

* Add region to waf regional integration tests

* Update security policy for waf regional testing

* Add type to documentation for waf_regional param
2019-05-17 10:36:14 +10:00
Andrey Klychkov
75046f8410 postgresql_db: added tablespace support (#56390) 2019-05-16 12:13:40 +02:00
Kevin Breit
322cfa49d0 Meraki - Add check for auth_key parameter (#56199)
* auth_key parameter is required
- This will have to change when httpapi is implemented

* Add integration test

* Add assertion

* Enable VLANs on network

* Add required for auth_key
2019-05-15 11:45:07 -04:00
Nabeel AlSaber
e98e98757d Initial commit for Oracle Cloud Infrastructure modules 2019-05-14 13:51:45 -07:00
Nabeel AlSaber
ec2db1aed7 Initial commit - Oracle modules
Revert "Revert oracle (#56364)"

This reverts commit eefc90b66f.
2019-05-14 13:51:45 -07:00
Albert Siersema
0ee673a558 Issue55222 (#55223)
* Python 3.7 compatibility for re.Pattern (Fixes #55222)

* Python 3.7 compatibility for re.Pattern (Fixes #55222)
2019-05-14 18:58:43 +05:30
Gonéri Le Bouder
cf78759f5b vmware_vm_facts: fix the support with regular ESXi
Ensure the module still work with the ESXi where CustomFieldsManager
does not exist.

From: https://www.vmware.com/support/developer/converter-sdk/conv60_apireference/vim.CustomFieldsManager.html

    The CustomFieldsManager object is used to add and remove custom fields to
    managed entities.
    The custom fields values set on managed entities are available through the
    customValue property and through the summary objects for VirtualMachine
    and HostSystem. They are not available directly through this managed object.
    This functionality is only available through VirtualCenter.

Fixes: #56071
2019-05-13 17:25:16 -04:00
Matt Clay
eefc90b66f
Revert oracle (#56364)
* Revert "Update vcn module documentation (#55888)"

This reverts commit 94ef24974a.

* Revert "Initial commit for Oracle Cloud Infrastructure modules (#53156)"

This reverts commit 07b9f52fd5.

* Revert "Add Oracle module maintainers (#55889)"

This reverts commit b0f3df360a.
2019-05-13 10:24:12 -07:00