* Improve general error behavior if a Docker error is not caught.
* Don't die when network doesn't exist.
* Add changelog.
* Make API version always available. Also catch errors when retrieving version.
* Fix error message.
* Adjust fallback error messages.
The following options can be set on a workflow template but the
functionallity to do so from this module was missing.
inventory
ask_variables_on_launch
ask_inventory_on_launch
Fixes#49728
Signed-off-by: Alberto Murillo <albertomurillosilva@gmail.com>
This adds a rudimentary wait functionality for the os_zone module.
It will wait for:
* Zone not in OpenStack API when choosing `absent`
* Zone `status` being `AVAILABLE` in OpenStack when choosing `present`
* ssh: Ensure debug messages are properly converted to text. Fixes#57843
* surrogate_then_replace is default, be less explicit
* We only needed to_text for display, not exceptions
* Change expected config source
* make it conditional
* rename property
* Add changelog fragment
* make it string
* Update changelogs/fragments/57969-docker_container-change-expected-config-source.yml
Co-Authored-By: Felix Fontein <felix@fontein.de>
* nxos_bgp_neighbor: Add bfd support
- Add support for bfd state in nxos_bgp_neighbor
- Feature Pull Request
- nxos_bgp_neighbor
- Tested on platforms: `N3K,N6K,N7K,N9K`
* bfd T/F now bfd enable/disable
* pep fix ws
* add IAM role assumption to aws_ec2 inventory
* Ensure inventory._options has necessary option keys populated since the plugin docs parser isn't accessible to unit tests yet
* Remove lexers which have been fixed in Pygments 2.4.0.
* Add Pygments >= 2.4.0 to test runner.
* Fix pages that triggered lexer errors.
Co-Authored-By: Sviatoslav Sydorenko <wk.cvs.github@sydorenko.org.ua>
* If case xml reply is transformed or namespace is removed in ncclient
device specific handler return modified xml response as string
* If data xml node is present in xml response return the xml string
with data node as root node
* If none above is true return raw xml string received from host
with rpc-reply as the root node
* Ignore `<rpc-reply>` node from candidate and
running configuration in xml diff
* Add route-policy as prerequisite to BGP coonfiguration
in integration test
* If dispatch() rpc response has data element
return the xml string from <data> element
else return the complete xml string from
<rpc-reply>.
Depends-On: #57909
Depends-On: #57919
* Update azure_rm_resource related document
* resolve shippable check error
* Resolve format error
* resolve format error---02
* Redefine the type variable
This fixes an index error issue when running tests on zuul.ansible.com
for iosxr. We can fix this by getting the last element in the list.
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
* Initial proposal for new parameter option for response format
- output_version parameter dictates the response key case
- new is snake_case, old is camelCase
- If new, conversion is done at the end of module execution
- This is purely a proposal and not a final draft
* Add support for ANSIBLE_MERAKI_FORMAT env var
- If env var is set to 'camelcase' it will output camelcase
- Otherwise, will default to snakecase
- Added note to documentation fragment
- As of now, all module documentation needs to be updated
* Fix pep8 errors and remove output_version args
* Restructure check in exit_json so it actually works
* Add changelog fragment
* Change output_format to a parameter with env var fallback
- ANSIBLE_MERAKI_FORMAT is the valid env var
- Added documentation
* Convert to camel_dict_to_snake_dict() which is from Ansible
- Fixed integration tests
* Fix yaml lint error
* exit_json camel_case conversion handles no data
- exit_json would fail if data wasn't provided
- Updated 3 integration tests for new naming convention
* convert_camel_to_snake() handles lists and dicts
- The native Ansible method doesn't handle first level lists
- convert_camel_to_snake() acts simply as a wrapper for the method
- There maybe a situation where nested lists are a problem, must test
- Fixed integration tests in some modules
* A few integration test fixes
* Convert response documentation to snake case
* assign a sane default to yum/dnf lock_timeout, in line with cli
Fixes#57189
Signed-off-by: Adam Miller <admiller@redhat.com>
* fix typo in changelog snippet
Signed-off-by: Adam Miller <admiller@redhat.com>
Ansible galaxy role download checked for `.tar.gz`, but `tarfile.is_tarfile(...)` can identify and open any valid tarfile. This change uses transparent stream compression to make `.tar.gz` and `.tar.bz2` formats valid with python 2.6.x/2.7.x (as well as `.tar.xz` with python 3.x).
These openstacksdk calls are awkward special-case wrappers around
patch_machine, and I would like to deprecate them in openstacksdk change
https://review.openstack.org/647730. Use much simpler update_machine instead.
* Updated testcase
* Added check mode support
* Added check for mutual exclusive for Name and UUID
Fixes: #57580
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
To get all instances gcp_compute made a call to the Google API for each
zone separately. Because of this if all zones needed to be queried
fetching hosts lasted 30+ seconds. Now the module will use a single
query that will return all the instances, so the execution should last
just a few seconds.
This commit also suppresses a warning from the google-auth library about
using user credentials because if an Ansible user wants to use user
credentials, there is no need to warn him about it.
* update vxlan
* add a changelog fragment for the PR 57264
* Update 57264-update-vxlan-to-fix-bugs.yml
update for change request
* Update ce_vxlan_vap.py
remove commented codes.
* Split Avi Credentials into two parts - secrets and login_info
* Fixed indentation issue
* Removed trailing whitespaces
* Added sub-options to avi credentials
* Added sub-options to avi credentials
* Updated argument specs to use fallback instead of getting defaults from environment variable
* Improve change reporting for meraki_ssid
- Documentation is more clear about dependencies
- Not all change reports are accurate without new algorithm
- Improved integration tests
* Rename changelog fragment
* Enable all tests in integration tests
- Fix type merging
* Add more integration tests for code coverage
* Update URL creation
* Add support for check mode
* Add diff support
- diff support is based on "have" and "want" data structures.
- Review needs to be done on the diffs for accuracy and usefulness.
- Changed change mode changed responses to be accurate.
* Remove config template based integration tests
* fixes bug introduced by commit 8cb73720f0599b08794cb7a3fbdf36d430214446: "TypeError: argument of type 'NoneType' is not iterable" when using module systemd without param 'name' (e.g. with daemon_reload)
* set ovirt disk active default value to True
* disk default activate only when creating
* correct comment syntax
* add changelog
* ovirt disk activate update docs
* Remove usage of global var log_path
* Add changelog and edit ignore.txt
* win_pagefile: not using testPath
* Revert "win_pagefile: not using testPath"
This reverts commit c8bc10234048257414454905e1c860a8f57a3b3f.
* PSLint error
* Update win_domain_membership.ps1
* Update win_domain_controller.ps1
* "setup.ps1" - Change $env:COMPUTERNAME to [System.Net.Dns]::GetHostName(), to support non NETBIOS compliant hostnames
* Change method to base on WMI
* changed ansible_domain to use WMI
* Fixed per review
* Fixed dot stuff
* Revert "Fixed dot stuff"
This reverts commit a1d5be00f1.
* dot stuff
* dot stuff 2.0
* Update setup.ps1
* Wrap this up to go
Folder creation API is only supported by vCenter, specifying
Standalone ESXi system will raise error.
This fix adds an user warning for suggesting this restriction.
Fixes: #49938
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* postgresql_idx: self.__exec_sql -> module_utils.postgres.exec_sql
* postgresql_idx: exec_sql, added a changelog fragment
* postgresql_idx: exec_sql, fix the changelog fragment
* postgresql modules: use postgres.exec_sql instead of __exec_sql methods
* postgresql modules: use exec_sql, added changelog fragment
* Update changelogs/fragments/57674-postgres_modules_use_exec_sql_instead_of_methods.yml
Co-Authored-By: Felix Fontein <felix@fontein.de>
* 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
* win_domain_group_membership - Fix missing @extra_vars on Get-ADObject to support dirrent domain and credentials for retrival
* win_domain_group_membership - Fix missing extra_vars on Get-ADObject
rds_instance is boto3 based module, add a note in rds module documentation
about the same.
Fixes: #54686
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
While including var files using _raw_params adds additional new line
character, which makes Ansible to fail to include that file in.
This fix removes extraneous new line character while parsing the var file.
Fixes: #57593
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
This uses to_text to ensure tostring() from lxml is decoded properly.
Depends-On: https://github.com/ansible/ansible/pull/57309
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
* Update dependence's name to firepower-kickstart
* Check response type before getting attributes
* Add unit test for construct_ansible_facts method
* Update error message
* 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
* Extended cloudfront_facts module to have a predictable return value for getting results.
* Updated RETURN docs with new field.
* Corrected the RETURN docs
* Fix typo in YAML
* Merge authentication options back into a single field to prevent losing options beyond the first
* Add integration test and changelog
* Fix multiple options for local type connections. Also fix sorting errors between local type connections that lack a src
* Build again because of github problems?
* Add spaces before comments
* Fix rds_instance module to run against an (older) existing RDS instance successfully
* Only pop Iops param if no storage_type is given. If given and set to wrong type we get to the AWS client error that informs the user
* Docs syntax fix
* Fix typo in docs
Co-Authored-By: stefanhorning <stefan@hornings.de>
* 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
* nxos_interface_ospf: Add bfd support
Add support for `bfd` state in `nxos_interface_ospf`
- Feature Pull Request
`nxos_interface_ospf`
* Fix pep issues
* sanity loop: syntax
* bfd states changed from T/F to enable/disable/default
* doc hdr fixes
* Implement a new module to support Batch Account.
* Fix the schema definition.
* Fix some lint errors.
* Normalize line endings.
* Remove not-recommended idempotency check.
* adding stubs for discussion
* Add one more output attribute.
* Leverage `idempotency_check` and `normalize_resource_id`.
* Fix line is too long error.
* normalize resource id implementation
* normalizing resource id fix indentation
* Fix linting issues.
* Fix runtime errors of Azure Python SDK.
* Add info module to Batch Account.
* Remove info module per suggestion.
* adding initial comparison function
* fix in idempotency check
* batch account update to support idempotence
* don't modify azure_rm_common for timebeing to avoid excessive ci
* adding first ci
* added more description on comparison function
* fixed storage account name
* fix
* fixed indent in common function + batch account name unpacking
* fix bug
* fixing sanity
* updated class relations
* fix in common
* updated disposition
* Add two more updatable/disposition in module_arg_spec
* updated common file
* Fix documentation for auto_storage_account.
* fixed line too long
* fixed keyvault reference
* fixed batch account creation
* fix pep8
* Regenerate code according to the feedbacks.
* test deleting batch account
* Add auto-generate comments to test file.
* renamed delete task, removed unstable
* clean up storage account
* 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
* 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
The extant documentation says that the fingerprint return value is a
single string, but it is currently being returned as a split list.
Convert the returned value to a string as documented, and add some
basic test-case coverage for the return values.
PR #55396
Make Git module support `--valid-pgpkeys` option, which allows
configuring a list of valid PGP fingerprints which are compared with the
used PGP fingerprint if verify_commit is true. This requires
verify_commit to be set to 'yes'.
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
Co-authored-by: Sviatoslav Sydorenko <webknjaz@redhat.com>
* Initial commit for meraki_malware module
- Allows for manipulation of malware configuration
* Add full documentation and improve code coverage
* Add diff support
* Type change
* Sanity check fixes
* Convert org_id from str to int for consistency
* Sanity fixes again
* Fix argument type errors
* Remove ignore items for some Meraki modules so shippable is happy
* 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
* Add support for check mode.
* Add diff support
- Need to analyze diff for accuracy
- Updated check mode changed value
* Improve test coverage
* Remove a duplicate integration test
* Add support for check mode
* Add changelog fragment
* Add diff support
- Fix a few changed status
- Removed auth_key check since that's done in module_utils now
* win_chocolatey - honour version when bootstrapping chocolatey
* skip upgrade all step
* Fix install latest step
* Remove test changes now that Chocolatey is released
* tweak the package version detection
If IAM Role is created without description using aws cli or UI,
then Ansible failed to update description for such IAM role.
This fixes such condition.
Fixes: #52942
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* nxos_vlan: fix broken purge behavior (issue #57101)
Symptoms/Analysis:
- `nxos_vlan` `purge: true` would fail when `purge` was trying to delete all unspecified vlans, including vlan 1.
- `nxos` devices do not allow removing vlan 1 and raise a cli exception error
- Previous fix#55144 caused a side effect when `purge` was used: vlan changes specified by `aggregate` were ignored; e.g.
- vlan 4 is not present; playbook specifies `aggregate: { vlan: 4 }, purge: true`
- results in proper purging but vlan 4 is not created
Solutions:
- ignore vlan 1 when purging
- remove the `not purge` check from state present logic
Added additional unit tests and integration tests.
Tested against all regression platforms.
* PEP fixes
* Add agg_show_vlan_brief.txt fixture
* Add warning for removing vlan 1
* change method name check
Handle exceptions raised while describing the metric alarms rather than
printing tracebacks.
Fixes: #55786
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Specify that the pattern is matched against the dirent basename
* Specify that regexen must match the whole name of the dirent. It has been a pitfall for me.
* Fix order for warning on templated conditionals
Fix bare variable warnings when the variable is a boolean
* changelog
* Add tests for cases that should and should not give warnings
If the behavior may change when the default behavior for CONDITIONAL_BARE_VARS becomes False there should be a warning. Boolean type conditionals will not change in behavior so don't warn.
* oops, forgot to add files
* typo
* New module postgresql_copy
* New module postgresql_copy: added tests
* New module postgresql_copy: changed tests
* New module postgresql_copy: doc format fixes
* New module postgresql_copy: fixes
* New module postgresql_copy: added upper, PostgreSQL
* New module postgresql_copy: fixed description
* New module postgresql_copy: added note about superuser
* New module postgresql_copy: remove SQLParseError
* New module postgresql_copy: fixed opt_need_quotes type
* New module postgresql_copy: fixed check_mode
* New module postgresql_copy: small fix
* 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
* Allow syslog_json callback options to be set in an Ansible configuration file.
The syslog_json documentation says that it supports options via an Ansible
configuration file. In fact, they can only be specified via environment
variables.
I've updated the module to use the standard "get_options" handling which means
that it can now support options via environment variables *or* the
configuration file.
Options can be set in the configuration file as follows:
```
callback_whitelist = syslog_json
[callback_syslog_json]
syslog_server = localhost
syslog_port = 514
syslog_facility = user
```
* Use the original, documented, names for the modules options.
In the documentation text change syslog_server to server, syslog_port to port
and syslog_facility to facility.
* Add an item to the changelog.
* Update 57232-syslog-json-configuration-options.yml
Fix a YAML syntax error / typo.
* Adding integration test for 127.0.0.1/32 and ::1/128.
* Making sure file is not corrupted when render fails
* Fixes#56430
* Adding changelog for MR 57147/Issue 56430
##### SUMMARY
Suggest to use sequential IDs - otherwise action is considered to be changed always.
##### ISSUE TYPE
- Docs Pull Request
+label: docsite_pr
* 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
* Add support for disableRemoteStatusPage
- New feature in the Meraki API
- Yes, it's a double negative, I may fix at some point
* Remove double negative
- All disables became enable and logic is reversed
- This isn't yet tested
* Switching computers!!!
* Apply changes to make the logic work, even reversed
* Attempt to fix some formatting errors
* Add documentation fragment
* Fix whitespace
* Add disable_my_meraki back, with deprecation notice
* Edit changelog notice
* Update deprecation version
* Update example to be a block and change deprecation message.
* Remove duplicate delegate_to
* Change deprecation notice.
The jinja2 query() function (or lookup with wantslist=True, which is
the same thing) should always return a list.
However, if you combine a query with errors='ignore' and take the
error path, the current code returns a None value. This is important
in a case such as
- name: Conditional include file
import_tasks: '{{ item }}'
vars:
params:
files:
- path/file1.yaml
- path/file2.yaml
loop: "{{ q('first_found', params, errors='ignore') }}"
If neither file1.yaml or file2.yaml exist, this should do nothing by
returning an empty list to the loop. Currently if you run the above
task you'll get a rather unhelpful:
Invalid data passed to 'loop', it requires a list, got this instead: .
This change ensures that when a query ignores an error, it returns a
empty list. The errors='ignore' case is tested in several variants
with first_found. The extant (but deprecated) "skip: True" for
first_found doesn't seem to be explicitly tested; a test is added here
to avoid regressions before removal in 2.12.
This fixes a regression you'll hit if you follow the suggestion in the
deprecation message included with
e17a2b502d to use errors=ignore over
"skip: True" for first_found. This change adds an example that points
out the query/lookup difference and also fixes the error message to
not mention the now deprecated "skip: True".
Closes#56775
* 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