* FortiOS modules for 2.9 - 9
* Undo ignore file
* Remove non valid identifiers
* Leave fortios_switch_controller_lldp_profile and fortios_switch_controller_managed_switch out of this PR
* Updated fortios_switch_controller_lldp_profile and fortios_switch_controller_managed_switch
* Remove pointless sanity tests on `bin` dir.
* Update action-plugin-docs test for collections.
* Update no-main-display test for collections.
* Update empty-init test for collections.
* Update no-assert test for collections.
* Move required-and-default-attributes test.
This test only applies to Ansible itself.
* Update use-argspec-type-path test for collections.
* Properly JSON encode AnsibleUnsafe, using a pre-processor. Fixes#47295
* Add AnsibleUnsafe json tests
* Require preprocess_unsafe to be enabled for that functionality
* Support older json
* sort keys in tests
* Decouple AnsibleJSONEncoder from isinstance checks in preparation to move to module_utils
* Move AnsibleJSONEncoder to module_utils, consolidate instances
* add missing boilerplate
* remove removed.py from ignore
* Relocate ansible-test self tests outside package.
We don't want to include the tests for verifying ansible-test within the ansible-test package.
* Add `test/ansible_test/` to classification.py.
* Fix test invocation.
* Relocate tests in MANIFEST.in.
* Improve package-data sanity test error checking.
* Only use includes for ansible-test in MANIFEST.in.
* Improve readability of MANIFEST.in.
* Run no-unwanted-files sanity test only on Ansible.
Since collections should be able to use binary modules there is not really any limit on what could exist in a collection `plugins` directory.
* Add support for symlinks in sanity target lists:
- Sanity tests that need to analyze symlinks can do so using the supplied target list.
- Tests that analyze directories will now only look at symlinks if requested.
- Directory symlinks will now be seen as directories instead of files.
* Enable symlinks on filename based sanity tests.
Sanity tests that evalulate filenames instead of content should include symlinks.
* Update symlinks sanity test.
Use the sanity test target list now that it can include symlinks.
* Renaming `onepassword_facts` to `onepassword_info`.
* Update module examples.
* Add changelog fragment.
* Add module rename to the 2.9 porting guide.
* Document the parameter types in the module docs.
* Fix incorrect parameter name.
* Update docs/docsite/rst/porting_guides/porting_guide_2.9.rst
Co-Authored-By: Felix Fontein <felix@fontein.de>
* Remove `onepassword_facts` as it has been renamed to `onepassword_info` including fixes for the sanity tests.
* PR Update to fmgr_fwpol_ipv4 -- now allows for failure or skip behavior option upon missing dependencies
* fmgr_fwpol_ipv4 minor docs fix
* Removed "system_package_print" line from test/sanity/ignore.txt as instructed by failed shippable test.
Actual PR module isn't affected.
* Rename hcloud_datacenter_facts to hcloud_datacenter_info
* Rename hcloud_location_facts to hcloud_location_info
* Rename hcloud_image_facts to hcloud_image_info
* Rename hcloud_floating_ip_facts to hcloud_floating_ip_info
* Rename hcloud_server_type_facts to hcloud_server_type_info
* Rename hcloud_server_facts to hcloud_server_info
* Rename hcloud_ssh_key_facts to hcloud_ssh_key_info
* Rename hcloud_volume_facts to hcloud_volume_info
* Fix typo in hcloud_image_info
* Add to porting guide and add changelog fragment
* Reword porting guide
* Install ansible-test
Modify the install script to install ansible-test and its supporting
code. Alternative to #60701 that doesn't change package_dir ansible for
fear that it might regress https://github.com/ansible/ansible/issues/10437
Also:
* No longer use package_data. Everything in the package dirs is going
to be installed. Anything that shouldn't be installed needs to be
moved elsewhere.
* modify the algorithm to store symlinks which are in the same tree
instead of same directory
* Add ansible_test files to package-data sanity test
* MANIFEST.in cleanups
* Add lib/ansible/config/*.yml
* Make most things in code directories (lib/ansible and test/lib/ansible_test/)
use explicit file extensions instead of wildcards for maintainability
* Exclude common file extensions that we don't want included in the code
directories
* Change package-data test to be more complete
* Now compares the repository, sdist, and install
* Compares both that everything in the sdist is in the repo and
everything in the install is in the sdist in addition to comparing that
everything in the repo that we want is in the install
* Leave out test artifacts
Only include the directory structure for test/results and test/cache not
any files that may have been generated by test runs
Remove test/utils files from the sdist as these are only needed for our CI
cleanup of docs in MANIFEST.in; getting rid of build files.
* Add the ability to output sdist and snapshot to specific directory
* Add a warning about modifying the heuristic to setup.py
* Address generated files
* Use make snapshot instead of sdist to generate changelog and man pages
and make sure they're included
* Ignore both the test/utils and generated test files (results, cache)
* Deal with Python3 __pycache__ byte code caches
* Don't check documentation, that isn't built for the sdist
* Restructure for clarity
* Add cli web docs to make clean
This was causing problems when attempting to test that the sdist didn't
have extra files
* Fix bug constructing python names from __pycache__ names
* Create a clean repo to work from
* Exclude test/legacy and be more explicit on extensions
* Exclude the legacy directory from sdist
* fix: check_mode, add suboptions, return the facts
* pip8, ansible_facts, get_payload
* add space to create PR
* remove space to create PR
* test tests of cp_network
* change for the test of network
* fixes to pass the tests
* fix tests
* Update ignore.txt
* FortiOS modules for 2.9 - 1
* Fix empty choices and avoid E337,E338 warnings
* Ansible comments on version_added and ignore.txt only on this PR files
* Add version_added also for state attribute
* Avoid null choices on dlp_sensor
* Change required flag according to argspec
* Move module_utils
* Add eos_interfaces and deprecate eos_interface
* Add boilerplate, update ignores.txt
* Try to reconcile eos provider documentation with argspec
* Try to work around unknown interfaces
* Move param_list_to_dict to utils
* Add [junos_lldp_global] model
* Add new resource module junos_lldp_global
* Targets model https://github.com/ansible/network/pull/30
* Deprecate junos_lldp module
* Run lldp integration test only if protocol supported
This will help prevent accidental merging of content to recently obsoleted directories when adding new files.
It may also help contributors who have modified obsolete files understand where their changes should now be made.
* Improved netapp_e_facts module.
Added the following facts:
- storage system segment size
- cache block size capabilities
- workload tags
- storage array hosts
- host groups
- list of mapped volumes for each initiator
* Remove proxy specific facts from netapp_e_facts module
* Add unit tests for netapp_e_facts module.
* Removed extraneous type check from nagios module, in order to allow python 3.x
* Removed now useless import types
* Added changelog fragment
* Update changelog.
* Rebased and removed check due to module adding earlier guardrails
* Updated changelog to mention earlier fix adding now completely removed guardrails
* Remove superfluous type checks. Fix docs type.
* Update ignore.txt.
* Relocate ansible-only sanity tests.
* Get "code smell" sanity tests from multiple dirs.
- `test/lib/ansible_test/_data/sanity/code-smell/` - General purpose tests used for both Ansible and Ansible Collections.
- `test/sanity/code-smell/` - Tests specific to Ansible, will not be used for Ansible Collections.
fixes issue with file download function on ASM file transfer endpoints
corrects doc fragments
removes not used parameters
corrects various sanity failures previously ignored across multiple modules
Refactored module to use eseries base class
Removed E322 and E326 for netapp_e_storage module from the ignore.txt file
Updated version_added quotes in netapp_e_storagepool
This new script does not depend on ansible-test and provides much more robust job matrix testing.
It is also run on every job in the matrix now, to detect issues with jobs being re-run after matrix changes are made.
* Improve netapp_e_hostgroup and add unit and integration tests.
netapp_e_hostgroup was refactored for maintainability and improved
documentation clarity.
* Remove ignore sanity check E338 for netapp_e_hostgroup module
* Add __future__ import (absolute_import, division, print_function) to test_netapp_e_hostgroup unit test.
* needed so ansible-test can always find the right ones to copy to a target
* renamed the underlying scripts to be properly accessible as Python modules
* Render elements in module doc and sanity test for suboptions
* Add support to render module elements value in ansible-doc output
module html
* Add validate-module sanity test of sunoptions.
* Add current validate module failures to ignore list
* Fix CI failure
* fix rebase conflict
* Fix CI issues
* Fix review comments
* Add validate-modules failure in ignore list
* Allow sanity tests to easily ignore themselves.
Useful for simple regex based sanity tests that error on their own script due to the regex or error message generated.
* Simplify no-smart-quotes sanity test.
Pruning of unversioned directories is handled by ansible-test.
* Remove directory pruning from boilerplate tests.
Files not passing these tests should be ignored instead.
* Add missing sanity ignore entries.
* When the release scripts were changed, this file to implement release
announcements was left out
* Add announce.py to the compile skip lists as only the release engineers
run this during package build.
* Add sanity test to ensure all non-py files are installed
* Fix mode and regex
* Fix role skel inventory package_data
* Add docs
* Update package_data for inventory files
* Address pylint concerns
* Another tweak to package_data
* Address review feedback
* Change index to 1
* add to ansible-only.txt
* Add junos_lag_interfaces resource module
* Add new resource module junos_lag_interfaces.
* Targets model https://github.com/ansible-network/resource_module_models/pull/29
* Deprecate junos_linkagg module
* Fix CI issues
* Fix junos integration test cases
* Fail if base lag interface is not configured
* Initial ansible-test support for collections.
* Include cloud config in delegation payload.
* Add missing types import and fix `t` shadowing.
* Fix plugin traceback when config_path not set.
* Fix encoding issues.
* Remove unused imports.
* More encoding fixes.
* Handle delegation outside exception handler.
* Inject ssh keys only if not already in place.
* More defensive approach to getting remote pwd.
* Add missing string format var.
* Correct PowerShell require regex.
* Rename `is_install` and `INSTALL_ROOT`.
* Generate galaxy.yml based on single source of truth
* Fix up tests and align file names
* Minor Makefile tweak
* Remove link in galaxy.yml file and make it a template file
* Moved collections docs to dev_guide
* change Makefile clean path
* Added readme to example meta file
* review fixes
* Use newer style for doc generation script
* Fix mistake in dev_guide index
* removed uneeded file, fixed links and added preview banner
* Moved banner for sanity test
* Windows - Add common util for web requests
* Use different method of retrieving options from module arg spec
* Added proper version_added for module options
* Fix linting errors
* Fix proxy issues and updated cred docs
* Fix FTP usage with proxy settings
* Removed uneeded function added in bad rebase
* Fix up client certificate auth
* fix new sanity checks
* Edit http agent code and update porting guide
We have some common code used by several docs scripts. Migrate that
into the build-only shared code repository.
* Move lib/ansible/utils/_build_helpers.py to the directory for common
build code
* Migrate docs/bin/dump_config.py to a build-ansible subcommand
* Migrate dump_keywords to the build-ansible framework
* Make the script more maintainable by using functions and good
variable names
* Port to Python3 idioms
* Fix bug so that private attributes will be undocumented
* Move generate_man to a build-ansible subcommand
* Port plugin_formatter to a build-ansible subcommand
* Rework command_plugins so that docs scripts can target Python-3.4+ and
releng-only subcommands can use more recent versions of Python.
The architecture is now that command_plugins/* need to be importable
on Python-3.4. The init_parsers() method needs to run on Python-3.4.
But the main() method can utilize features of more recent Python as
long as it fits within those parameters.
* Update docs build requirements
Port the plugin_formatter to build-ansible framework
* User now can be specify datastore cluster for deploying OVF
* Added find_resource_pool_by_cluster API
Fixes: #57849
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Add SNOW OAuth Support and Multi-record Query
* Add OAuth documentation to snow_record_find
* Fix lint and verification issue for PR 58410
* Fix E309 and E324 errors in PR 58410
* Fix E307, need advice on E309
* Fix E309 for PR 58410
* Re-add instance, username and password documentation
* Fix data type mismatch in documentation
* Remove doc_fragment overlap
* Refactor service now module space
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
ansible-test only passes files which have the .py suffix for sanity
tests on python files. This change will allow sanity tests to run on
the Python files in hacking/
* Rename test-module to test-module.py
* Symlink test-module for backwards compat since end users may be using
test-module
* Fix test-module sanity errors that are now triggered
* Rename ansible_profile to ansible-profile.py
* Rename build-ansible
The metaclass boilerplate is safe to apply en masse. The future import
boilerplate needs code to be inspected to be sure that there aren't any
py2isms that need to be fixed. Split these two checks so that we can
fix them independently
Be explicit about which files are grandfathered so we can fix them up one by one
* Handles:
PSAvoidTrailingWhitespace
PSAvoidGlobalVars
PSAvoidAssignmentToAutomaticVariable
PSAvoidUsingCmdletAliases
PSAvoidUsingWriteHost
PSUseDeclaredVarsMoreThanAssignments
PSUsePSCredentialType
PSAvoidUsingPositionalParameters
PSAvoidUsingEmptyCatchBlock
PSAvoidUsingWMICmdlet
Replaced Write-Host with Write-Output
Added smart reboot check for win_domain feature installation
Modify the Creation of the pagefileto fit to CIM
Changelog fragment addition
Ignore.txt without fixes
* Changes after community reviews
* Change Out-Null to '> $null'
* Fixes after jborean93 comments
* Test
* Revert "Test"
This reverts commit 35c5c0648fa9d2868a18094d84954e53ffa28880.
* Removed all > $null since they broke the module since the output got dumped
* run test again
* Revert "run test again"
This reverts commit 80eaf07143f9d8cb0116cbbc68a6a69c0ace840c.
* Changes after community review
* ignore PSUseDeclaredVarsMoreThanAssignments that are on a diffrent PR
* CI failed on extra line in ignore.txt
* Review changes
* PSlint errors
* Trail space
* send to null breaks the tests for Set-Workgroup
* Lint stuff
* win_domain_user issue of indent.
* Update win_domain_user.ps1
* Update win_domain_membership.ps1
* Fix redirect to null
* lint space issue
* removed return from set-workgroup
* removed send to null
* consul_session: Python 2.6 is always required on managed node
* consul_session: document all types
* consul_session: add doc for 'id' parameter
* consul_session: improve parameter descriptions
- use formatting functions in descriptions
- 'name' parameter is required when state=node
* consul_session: use required_if
* consul_session: add integration tests
* consul_session: use 'retry' with network dependent tasks
* Use ansible-ci-files bucket for consul binaries
Co-Authored-By: Matt Clay <matt@mystile.com>
* datadog_monitor: Fix docs with datatypes of params
Fixes: #58342
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* indentation and other minor fixes
* Improve type information in module documentation
- Removed some duplicate documentation
- Ensure org_id is always string
- Add type information for items which don't have it
* Fix whitespace
* 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
* 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
Resolve the two following errors:
ERROR: lib/ansible/modules/cloud/vmware/vsphere_copy.py:0:0: E309 version_added for new option (host) should be '2.9'. Currently None
ERROR: lib/ansible/modules/cloud/vmware/vsphere_copy.py:0:0: E309 version_added for new option (login) should be '2.9'. Currently None
* Moves developer docs for AWS, ovirt, and openstack modules out of lib/ansible/, integrates them with dev_guide, with abadger's fix to make python snippets pass rstcheck
* Fixed error handling in github_issue module
Due to recent changes in github3.py library module stopped working.
This fix adds extra error handling for new changes in library.
Fixes: #39627
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Check version
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Refactor github_issue
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* remove deprecated get_md5 from stat
fixes#55309
* removed get_md5 from tests involving stat
* keep get_md5 but hide it
* rst it
* ammended comment
* ws
* added ignore for hidden md5
* Implement a framework for having common code for release scripts
* Release scripts will go through hacking/build-ansible. build-ansible is
a pluggable script which will set a directory that has common code for
non-enduser scripts. It will then invoke the plugin which implements
that subcommand. Uses straight.plugin for loading each sub-command.
* We're going to add tools which are needed to test ansible (the changelog
generation, for instance) so we need to include the pieces relevant to
that in the tarball.
* Add straight.plugin to the sanity test requirements for the same
reason
* Skip compile test just for build-ansible plugins which won't be run as
part of sanity tests.
* Use module_utils.compat.ipaddress where possible.
* Simplify reverse pointer computation.
* Use dummy for unused variables.
* Remove from ignore list.
* Adjust fix.
* Fix text handling for Python 2.
* Add changelog.
* Remove code but leave the metadata so that they can be listed as
removed in documentation.
* Remove removed modules from validate-modules ignore
* Remove unittests for the removed nodules
* Remove links to removed modules and add list of removed moduels to the
2.9 porting guide
* module_utils fixes in collections
* fixed Windows module_utils in collections
* fixed more Python module_utils cases (from X import module)
* "medium style" Ansiballz modules now work properly with collections (ie, non-replacer but also not using basic.py)
* added more tests
* split Windows/POSIX exec
* sanity
* win_firewall_rule only changes specified arguments
defaults are controlled by com object
integration test for built in rule
* removed ignore psaliases for win_firewall_rule
* direction and action are no longer required
program and service respect default values
documentation updated to reflect that defaults apply to rule creation
added test to disable a rule and verify other values have not changed
* fixed extra whitespace
* Move each description sentance to a new entry
This reverts commit 85d836171b.
As discussed in WWG IRC meeting, we don't want Get-ADObject to be a dependency of win_domain_membership, and we need to be able to authenticate to the DC in some configs. We can revisit this change a different way for 2.9.
* Use six from ansible.module_utils for inventory scripts
Remove skips from sanity test
* Change all imports of ConfigParser to use module_utils.six.moves
* Remove commented out lines
* Fix six imports
* cloudstack: remove choice list for hypervisor param
* cloudstack: streamline network_type with returned value by the API
* cloudstack: remove E326
* add changelog fragment
* win_nssm: rename cmdlets to use approved verbs, rename service name parameters
* win_nssm: improve code style and cmdlets ordering
* win_nssm: always escape all command line parameters with Argv-ToString
fix error when the service name contains quotes
* win_nssm: use Fail-Json instead of exceptions and remove global try/catch
* win_nssm: small refactoring, inline some functions
* win_nssm: refactoring - add a generic cmdlet to idempotently set any nssm service parameter
* win_nssm: refactoring - inline some functions
To make the code more malleable for future changes
* win_nssm: change application, stdout_file and stderr_file options type to path
* win_nssm: deprecates app_parameters, rename app_parameters_free_form to arguments, and add support for list of parameters
* win_nssm: add support of check mode
* win_nssm: add working_directory option
* win_nssm: add display_name and description options
* win_nssm: minor changes
* win_nssm: remove some sanity exclusions
* win_nssm: avoid using aliases and minor style fixes
* win_nssm: doc and ui improvements
* win_nssm: remove sanity exclusions
* win_nssm: minor revision
* win_nssm: deprecates dependencies, start_mode, user and password parameters and some choices of state in favor of win_service
* win_nssm: fix style
* win_nssm: add executable option to specify the location of the NSSM utility
* win_nssm: add missing parameter types
* win_nssm: add diff mode support
* win_nssm: avoid displaying depreciation warning if default value is assigned
* win_nssm: fix variable scope
* win_nssm: use the explicit -LiteralPath parameter name instead of -Path
* win_nssm: fix documentation
* win_nssm: add porting guide entries
* win_nssm: add changelog fragment
* Add a force_replace_host flag to win_domain_membership
Satisfies https://github.com/ansible/ansible/issues/53539
* Rework backticks
* Bump version_added
* Check for existence of current hostname as well; use LDAPFilter during search
* Rename $force_replace_host to $allow_existing_computer_account
* Added docs, porting guide and minor nit in code
Announcements taken from https://github.com/ansible/community/wiki/RelEng:-ReleaseProcess
and then cleaned up:
* Update issue reporting blurb from feedback from acozine and gundalow
* Add a subject and to line for email output
* Ignore long line tests on the jinja templates (as jinja doesn't give
enough control to get rid of newlines when text wrapping)
* Skip shebang and compile tests for older pythons since this is a
release engineer-only script. (ok'd by mattclay)
changing status option to statuses in the documentation
Adding choices to the argument spec to match the documentation from AWS.
Adding 'REVOKED', 'FAILED' to statuses documentation to match implementation.
Removing E322, E323 ignores for aws_acm_facts
* Remove nose from unittests
This PR migrates the last of our unittests from using nose to using
pytest. We don't need to install nose in our testing environments
anymore
* cloudstack: streamline modules doc (part 4)
* Parameter types added
* Copyright format fixes
* Doc style fixes
* Examples format fixes
* validate-module errors fixes
* cs_network_offering: Rollback of the deletion of the choice list for supported_services param
* made adding package managers easier
added portage support
* moar pkg mgrs and moar info
- added 'pkg' pkg manager (freebsd)
- added pip
- more apt info
* updated clgo
* Updates from feedback
Co-Authored-By: bcoca <bcoca@users.noreply.github.com>
* incorporated more feedback and added docstrings
* moar from feedback
- made manager list dynamic and names based on class
- better not found msg
- made abstract metaclass again
- test is now init exception
- module to global
- better dedupe comments
* more targetted errors/warnings
* added strategy, reordered to conserve priority
* rpm > apt
* move break to top
* fix trate
* piping it
* lines and meta
* refactored common functions
- moved pip into it's own module
- cleaned up base clases
- ensure 'lower' match in package_facts
* missing license
* avoid facts
* update clog
* addressed feedback
* fix clog
* cleanup
* upd
* removed pip as that was removed
* renamed cpan
* added a single line since 2 lines are needed to be
readabnle instead of just 1 line, it is a huge problem otherwise
* fix internal ref
* not intended in this round
* updated as per fb
This PR includes:
* Adding parameter types
* Fix validate-modules issue
* Improve parameter types and resulting changes
This PR needs to be verified and tested by maintainer(s).
* Extend win_psmodule - rebased at 2019-01-07
* Change a way how defined parameters are added to the list
* Correct registering a repository
* Change way how tests for the check_mode: true are run
* Post-review updates
* Post-review updates -2
* Post-review updates -3
* Switch to PowerShell loop
* Minor updates
* Remove variants of an exception handling
* Change error handling
* Add a new check to ensure that module arguments are valid python identifiers
* Move the check up higher, out of the if docs block
* Skip validate-modules on py2
* Remove errant alias
* set valid_until equal to current time + spot_wait_timeout
* Add checksum check for downloaded file.
* refactoring
* fix typo
* add fixes
* mart try,catch handling
* revert lib/ansible/modules/cloud/amazon/ec2.py from upstream
* refactoring
* remove empty lines
* add checksum verification for existing file
* fix current file check
* refactoring destination file check
* add handling exceptions
* refactoring
* Added download file hash data from url
* fix string aligning
* fix bug with uri
* Added get hash from multy-string file
* Added URI support for checksum file location
* refactoing
* Remove any non-alphanumeric characters for hash from url
* fix discussions; add support for PS3
* refactoring
* add size return value
* checkout from upstream for lib/ansible/modules/cloud/amazon/ec2.py
* add Ansible.ModuleUtils.Legacy support; refactoring
* Copyright added
* Checking files size before and after downloading added.
* remove unused code
* Corrected regexp for dotted slashed file name prefix in hash-file
* hotfix typo error; add int tests
* remove legacy module support; split checksum to checksum, checksum_algorithm, checksum_url
* changed default hash algorithm
* Fixed case for ContentLength = -1
* Old comment removed
* fix typo
* Remove file size check before downloading
* add alias to ; fix tests
* adjust tests; fix lint warnings from PSScritpAnalyzer
* workaround for bug in win_chocolatey module on win2008
* remove win_get_url.ps1 from /test/sanity/pslint/ignore.txt
* add checksum_algorithm as retuen value
* first normalise before return Result
* resolve discussions
Signed-off-by: Viktor Utkin <viktor.utkin7@yandex.ru>
* fix discussions
fix http tests as discussed
* fix last discussions
* Reduce code duplication and add idempotency check
* fix sanity issue and remove testing code
* move back to using tmp file for checksum comparison
This PR includes:
- fixes to validate-modules issues
All modules already include parameter types.
The remaining files-modules have action plugins, so comparing to the arg_spec only is incorrect.
* Clean up from previous fork
* Minor doc update
* Fix doc string return type
* Minor doc updates
* Keeping fresh
* Various changes to documentation, cosmetics and code logic
Please test :-)
* Fix typo
* Various small changes as requested
* Remove traceback ref
* try catch changes
* Tidy description
* Correct data type in documentation
* Fix for 4.0
This PR includes:
* Adding parameter types
* Fix validate-modules issue
* Improve parameter types and resulting changes
This PR needs to be verified and tested by maintainer(s).
This PR includes:
- Adding parameter types
- Fix validate-modules issue
- Improve parameter types and resulting changes
This PR needs to be verified and tested by maintainer(s).
When fixing known errors, the error messages did not make it easy to
find what parameter was having issues (because it was not in the errpr).
Now it consistently starts with the parameter name, and then shows first
the argspec and then the documentation values.
This helps quick assessments.
* Remove docker_* modules from validate-modules ignore list.
* Adjust types of cacert_path, cert_path and key_path.
* Fix type of update_failure_action in docker_swarm_service.
* validate-modules: Documentation bool
This check allows to catch cases where type of argument is different than documentation does.
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Wrong comparison for 'str'
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Add ignore.txt
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Fix logic and clean up ignore.txt
* module_utils: Clean up parameter types (database)
This PR includes:
- Parameter types added
- Copyright format fixes
- Short license statement
- Description fixes (only for a few files, then I stopped :-))
* Fix validate-modules test ignores
* Introduce new "required_by' argument_spec option
This PR introduces a new **required_by** argument_spec option which allows you to say *"if parameter A is set, parameter B and C are required as well"*.
- The difference with **required_if** is that it can only add dependencies if a parameter is set to a specific value, not when it is just defined.
- The difference with **required_together** is that it has a commutative property, so: *"Parameter A and B are required together, if one of them has been defined"*.
As an example, we need this for the complex options that the xml module provides. One of the issues we often see is that users are not using the correct combination of options, and then are surprised that the module does not perform the requested action(s).
This would be solved by adding the correct dependencies, and mutual exclusives. For us this is important to get this shipped together with the new xml module in Ansible v2.4. (This is related to bugfix https://github.com/ansible/ansible/pull/28657)
```python
module = AnsibleModule(
argument_spec=dict(
path=dict(type='path', aliases=['dest', 'file']),
xmlstring=dict(type='str'),
xpath=dict(type='str'),
namespaces=dict(type='dict', default={}),
state=dict(type='str', default='present', choices=['absent',
'present'], aliases=['ensure']),
value=dict(type='raw'),
attribute=dict(type='raw'),
add_children=dict(type='list'),
set_children=dict(type='list'),
count=dict(type='bool', default=False),
print_match=dict(type='bool', default=False),
pretty_print=dict(type='bool', default=False),
content=dict(type='str', choices=['attribute', 'text']),
input_type=dict(type='str', default='yaml', choices=['xml',
'yaml']),
backup=dict(type='bool', default=False),
),
supports_check_mode=True,
required_by=dict(
add_children=['xpath'],
attribute=['value', 'xpath'],
content=['xpath'],
set_children=['xpath'],
value=['xpath'],
),
required_if=[
['count', True, ['xpath']],
['print_match', True, ['xpath']],
],
required_one_of=[
['path', 'xmlstring'],
['add_children', 'content', 'count', 'pretty_print', 'print_match', 'set_children', 'value'],
],
mutually_exclusive=[
['add_children', 'content', 'count', 'print_match','set_children', 'value'],
['path', 'xmlstring'],
],
)
```
* Rebase and fix conflict
* Add modules that use required_by functionality
* Update required_by schema
* Fix rebase issue
* k8s*: add a reference to k8s_auth in all the modules' descriptions
* k8s_auth: new k8s module for handling auth
* k8s_auth: ignore E203
Can't use module_utils.urls, since that lacks user CA support, which is
a critical feature of what this module does.
* gitlab_group: refactor module
* gitlab_user: refactor module
* gitlab_group, gitlab_user; pylint
* gitlab_project: refactor module
* gitlab_group, gitlab_project, gitlab_user: Enchance modules
- Add generic loop to update object
- Enchance return messages
- PyLint
* gitlab_runner: refactor module
* gitlab_hooks: refactor module
* gitlab_deploy_key: refactor module
* gitlab_group: enchance module and documentation
- Enchange function arguments
- Add check_mode break
- Rewrite module documentation
* gitlab_hook: enchance module and documentation
- Rewrite documentation
- Enchance function parameters
- Rename functions
* gitlab_project: enchance module and documentation
- Rewrite documentation
- Enchance function parameters
- Add try/except on project creation
* gitlab_runner: enchance module and documentation
- Rewrite documentation
- Fix Copyright
- Enchance function arguments
- Add check_mode break
- Add missing function: deletion
* gitlab_user: enchance module and documentation
- Rewrite documentation
- Enchance function parameters
- Add check_mode break
- Add try/except on user creation
* gitlab_deploy_key, gitlab_group, gitlab_hooks, gitlab_project,
gitlab_runner, gitlab_user: Fix residual bugs
- Fix Copyright
- Fix result messages
- Add missing check_mode break
* gitlab_deploy_key, gitlab_group, gitlab_hooks, gitlab_project, gitlab_runner, gitlab_user: pylint
* gitlab_runner: Add substitution function for 'cmp' in python3
* unit-test: remove deprecated gitlab module tests
- gitlab_deploy_key
- gitlab_hooks
- gitlab_project
Actually, they can't be reused because of the modification of the way that the module communicate with the Gitlab instance. It doesn't make direct call to the API, now it use a python library that do the job. So using a pytest mocker to test the module won't work.
* gitlab_deploy_key, gitlab_group, gitlab_hooks, gitlab_project, gitlab_runner, gitlab_user: add copyright
* gitlab_deploy_key, gitlab_group, gitlab_hooks, gitlab_project, gitlab_runner, gitlab_user: Support old parameters format
* module_utils Gitlab: Edit copyright
* gitlab_deploy_key, gitlab_group, gitlab_hooks, gitlab_project,
gitlab_runner, gitlab_user: Unifying module inputs
- Rename verify_ssl into validate_certs to match standards
- Remove unused alias parameters
- Unify parameters type and requirement
- Reorder list order
* gitlab_deploy_key, gitlab_group, gitlab_hooks, gitlab_project, gitlab_runner, gitlab_user: Unifying module outputs
- Use standard output parameter "msg" instead of "return"
- Use snail_case for return values instead of camelCase
* validate-module: remove sanity ignore
* BOTMETA: remove gitlab_* test
- This tests need to be completely rewriten because of the refactoring
of these modules
- TodoList Community Wiki was updated
* gitlab_user: Fix group identifier
* gitlab_project: Fix when group was empty
* gitlab_deploy_key: edit return msg
* module_utils gitlab: fall back to user namespace is project not found
* gitlab modules: Add units tests
* unit test: gitlab module fake current user
* gitlab_user: fix access_level verification
* gitlab unit tests: use decoration instead of with statement
* unit tests: gitlab module skip python 2.6
* unit tests: gitlab module skip library import if python 2.6
* gitlab unit tests: use builtin unittest class
* gitlab unit tests: use custom test class
* unit test: gitlab module lint
* unit tests: move gitlab utils
* unit test: gitlab fix imports
* gitlab_module: edit requirement
python-gitlab library require python >= 2.7
* gitlab_module: add myself as author
* gitlab_modules: add python encoding tag
* gitlab_modules: keep consistency between variable name "validate_certs"
* gitlab_modules: enchance documentation
* gitlab_runner: fix syntax error in documentation
* gitlab_module: use basic_auth module_utils and add deprecation warning
* gitlab_module: documentation corrections
* gitlab_module: python lint
* gitlab_module: deprecate options and aliases for ansible 2.10
* gitlab_group: don't use 'local_action' is documentation example
* gitlab_module: correct return messages
* gitlab_module: use module_util 'missing_required_lib' when python library is missing
* gitlab_module: fix typo in function name.
* gitlab_modules: unify return msg on check_mode
* gitlab_modules: don't use deprecated options in examples
* Add logic to catch version changes in docs
* Add in doc fragments before doing doc comparisons
* Handle new module scenario
* historical is only allowed in alreay present modules
* Don't repr StrictVersion
* Update junos_config.py
The current junos_config module documentation only lists "merge","override" and "replace" as update parameter choices. Looking into junos_python.py "update" is another option which is really helpful and in my opinion the most needed option.
'''
update=dict(default='merge', choices=['merge', 'override', 'replace', 'update'])
'''
+label: docsite_pr
* Fixup Update junos_config.py
The current junos_config module documentation only lists "merge","override" and "replace" as update parameter choices. Looking into junos_python.py "update" is another option which is really helpful and in my opinion the most needed option.
'''
update=dict(default='merge', choices=['merge', 'override', 'replace', 'update'])
'''
Co-Authored-By: crab86 <sgesenhoff@gmail.com>
* hpilo_boot: fix module doc to match code and logic
There is no explicit nor implied value for media.
In fact, not choosing media makes perfect sense.
* Remove ignored sanity test failure
* promote doc_fragments into actual plugins
change tests hardcoded path to doc fragments
avoid sanity in fragments
avoid improper testing of doc_fragments
also change runner paths
fix botmeta
updated comment for fragments
updated docs
* Integration tests now have their own list of allowed shebangs.
* Use `#!/usr/bin/env bash` instead of `#!/bin/bash`
since the location is different on various platforms.
* Add tests for WANT_JSON and old style modules
* quote source path
* Attempt to further appease tests
* Check for file and not just exists
* omg don't be dumb
* moar fixes
* shellcheck is the worst :)
* Test the custom modules for failure without arg files
* Fix backup issue in network config modules
* Fix `get_working_path` not found issue introduced due to
backup config code refactor (PR #50208)
* Further refactor config related action plugins to minimize
duplicate code
* Remove unwated imports in config action plugins
* Add common network class for action plugin and related code refactor
* Fix review comment
* Refactoring of cnos_interface module like what followed by other vendors
* To remove cnos-interface from E326 validation ignore list
* Effect of default parameters impacted UT
* no-smart-quotes: Skip files by path in code-smell
This is to ensure the generated docs do not trigger code-smell issues on
contributor systems.
* Implement feedback from review
* In some cases, it appears that Exception should have been used instead
as there's no need to catch sys.exit KeyboardInterrupt and similar.
* In a few cases, it appears that BaseException is used because
a library we depend on calls sys.exit() contrary to good coding
design. Comment those so that we know that those have been audited
and found to be correct and change to use (Exception, SystemExit)
instead.
* win become: refactor and add support for passwordless become
* make tests more stable
* fix up dep message for Load-CommandUtils
* Add further check for System impersonation token
* re-add support for become with accounts that have no password
* doc fixes and slight code improvements
* fix doc sanity issue
* Docs: Add a separate "seealso" section to the module docs
to list related modules and/or related references. This clears up the notes
section for things that are actual notes.
So you can add a section in your module documentation and four types of
references are possible.
seealso:
# Reference by module name
- module: aci_tenant
# Reference by module name, including description
- module: aci_tenant
description: ACI module to create tenants on a Cisco ACI fabric.
# Reference by rST documentation anchor
- ref: aci_guide
description: Detailed information on how to manage your ACI infrastructure using Ansible.
# Reference by Internet resource
- name: APIC Management Information Model reference
description: Complete reference of the APIC object model.
link: https://developer.cisco.com/docs/apic-mim-ref/
This PR also includes:
- Implements ansible-doc support
- Implements schema support for the seealso options
- Updates to the development documentation
- Rename filter convert_symbols_to_format to rst_ify, cfr the existing html_ify and tty_ify filters
- This makes the existing template a lot easier to read and fixes the confusion I had myself rereading the template (again).
- We fixed the possible suboption types (which was limited to 'bool' only)
* Use latest stable instead of devel docs
* win_credential_manager: new module to manage credentials
* fix sanity issues and removed CredSSP references
* renamed module to win_credential
* fix typo on test variable
* fix sanity ignore line
* Start of code-smell test that can find deprecated config items
* Strip deprecated.version from config item
* Don't use os.walk, rely on explictly passed list of files
* Properly disable the test
* Add docs
* Make config an orphan
* Added basic equivalent to PowerShell modules
* changes based on latest review
* Added tests
* ignore sanity test due to how tests are set up
* Changes to work with PSCore
* Added documentation and change updated more modules
* Add some speed optimisations to AddType
* fix some issues in the doc changes
* doc changes
* Resolve invalid-unary-operand-type.
* Resolve raising-format-tuple.
* Resolve stop-iteration-return.
* Use disable comment instead of fixing logic.
The affected line in _find_address_range will only fail on Python 3.7
and later if the function is called with an empty address list. As an
internal method it is never called in this way, making it a non-issue
for use via public methods.
Using a comment to disable the rule in favor of an ignore.txt entry
since there are no plans to change the logic in the code itself. This
will also prevent any potential future issues being added in other
parts of the code when updating it based on upstream changes.
* Update win_scheduled_task.py to document that the duration of a task trigger can be null, which will cause it to run indefinitely - docs update makes use of suboptions
* Add a fix for the validate-modules schema
* Remove unnecessary workaround
* add test: set RABBITMQ_NODENAME environment variable
The following error occurs:
TASK [rabbitmq_user : Add user] ***
fatal: [testhost]: FAILED! => {
"changed": false,
"cmd": "/usr/sbin/rabbitmqctl -q list_users",
"rc": 69,
"msg": "Error:********@c65c2bc59398'. Please see diagnostics information and suggestions below.\n\nMost common reasons for this are:\n\n * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)\n * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)\n * Target node is not running\n\nIn addition to the diagnostics info below:\n\n * See the CLI, clustering and networking guides on http://rabbitmq.com/documentation.html to learn more\n * Consult server logs on node test@c65c2bc59398\n\nDIAGNOSTICS\n===========\n\nattempted to contact:********@c65c2bc59398\n * effective user's home directory: /var/lib/rabbitmq\n * Erlang cookie hash: 3MxcYFrJzfhEL+FlUfLlQw==",
"stderr": [...],
"stderr_lines": [
"Error: unable to perform an operation on node 'test@c65c2bc59398'. Please see diagnostics information and suggestions below.", "",
"Most common reasons for this are:", "",
" * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)",
" * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)",
" * Target node is not running", "",
"In addition to the diagnostics info below:", "",
" * See the CLI, clustering and networking guides on http://rabbitmq.com/documentation.html to learn more",
" * Consult server logs on node test@c65c2bc59398", "",
"DIAGNOSTICS", "===========", "",
"attempted to contact: [test@c65c2bc59398]", "",
"test@c65c2bc59398:",
" * connected to epmd (port 4369) on c65c2bc59398",
" * epmd reports: node 'test' not running at all",
" other nodes on c65c2bc59398: [rabbit]",
" * suggestion: start the node", "",
"Current node details:",
" * node name: rabbitmqcli2@c65c2bc59398",
" * effective user's home directory: /var/lib/rabbitmq",
" * Erlang cookie hash: 3MxcYFrJzfhEL+FlUfLlQw==", ""
],
"stdout": "",
"stdout_lines": []
}
* node parameter: fix default value
'rabbit' is the default value mentioned in the module documentation.
* Allow to specify images by hash for docker_container and docker_image_facts.
* flake8
* More sanity checks.
* Added changelog.
* Added test.
* Make compatible with Python < 3.4.
* Remove out-commented imports.
* Add symlinks sanity test.
* Replace legacy test symlinks with actual content.
* Remove dir symlink from template_jinja2_latest.
* Update import test to use generated library dir.
* Fix copy test symlink setup.
* win_nssm: add failing tests for issue #44079
* win_nssm: use Run-Command instead of Invoke-Expression to prevent interpretation issue
Fix#44079
* win_nssm: add more failing tests
These tests highlight several issues with this module:
* Service not started when state=started
* Errors with app_parameters (see #25265)
* Exception when passing several dependencies separated by comma as specified in doc
* win_nssm: fix service not started when state=started
Nssm status returns a multiline output that doesn't match any of the strict patterns in the switch statement.
* win_nssm: fix incorrect separator in doc for service dependencies
The dependencies parameter works with space as separator, but not with comma as shown in the documentation
* win_nssm: fix error with app_parameters parameter
Fix#25265
* win_nssm: add idempotence tests
* win_nssm: fix several idempotence issues and misbehaviors
Add missing space between arguments when app_parameters contains several keys.
Use Argv-ToString and Escape-Argument to improve arguments handling (parameters with quotes, backslashes or spaces).
* win_nssm: test parameters with spaces, quotes or backslashes
* win_nssm: restore comma as separator for service dependencies
Revert commit ddd4b4b
* win_nssm: restore support of string as dict form for app_parameters and remove support of literal YAML dict
* win_nssm: wrong variable in tests
* Start of work on pylint plugin to catch due/past-due deprecated calls
* Improve deprecated pylint plugin
* Catch call to AnsibleModule.deprecate also
* Skip splatted kwargs, we can't infer that info
* Add error for invalid version in deprecation
* Skip version if it's a reference to a var
* Disable ansible-deprecated-no-version for displaying deprecated module info
* fix comments
* is None
* Force specifying a version, this can be disabled on a per case basis
* Disable ansible-deprecated-version by default
* Remove to look for 2.8 deprecated
* Revert "Remove to look for 2.8 deprecated"
This reverts commit 4e84034fd1.
* Add script and template used for creating issues for deprecated issues
* Fix underscore var
plugins/ is COMMUNITY
Set sensible defaults for directories
support:network for the platforms that we Networking SUPPORTS,
everything else is COMMUNITY
Mark other support:network (ansible-connection, etc)
Infoblox is support:core
contrib/ by definition should be support:community
Remove duplicated labels
Make yamllint happy(ier)
Adds sanity test to ensure BOTMETA.yml is valid
* orphans testing pages to avoid not-in-toctree errors
* orphans various pages pending reorg
* adds module_utils and special_vars to main TOC
* uses a glob for scenario_guide TOC
* normalize and Sentence-case headings on community pages, typos
* re-orgs community TOC, adds all pages to toctree
* removes scenario guides index page
* adds style guide to community index
* basic update to style guide
* fix typo that created a new error
* removes not-in-toctree from ignore errors list
* leave removing files for future cleanup task
- Add support for installing specific variants of a port.
- Add support for using yaml lists with 'name' parameter, rather than comma-separated lists.
- Add to and clarify documentation and examples.
- Use Macports nomenclature:
- s/package/port/g
- Rename update_cache to sync_ports but keep update_cache as an alias. Remove undocumented update-cache alias.
- Remove undocumented 'pkg' alias for 'name'. Replace with 'port' alias and document it.
- Print stdout and stderr output if `port sync` fails.
- Print stderr output, rather than stdout, if `port install/uninstall/activate/deactivate` fail.