diff --git a/changelogs/fragments/flatten-modules.yml b/changelogs/fragments/flatten-modules.yml new file mode 100644 index 00000000000..f98d0ba47bf --- /dev/null +++ b/changelogs/fragments/flatten-modules.yml @@ -0,0 +1,2 @@ +minor_changes: +- Flatten the directory hierarchy of modules diff --git a/docs/templates/list_of_CATEGORY_modules.rst.j2 b/docs/templates/list_of_CATEGORY_modules.rst.j2 index 9d4c18b0f29..92422406dee 100644 --- a/docs/templates/list_of_CATEGORY_modules.rst.j2 +++ b/docs/templates/list_of_CATEGORY_modules.rst.j2 @@ -1,10 +1,19 @@ {# avoids rST "isn't included in any toctree" errors for module docs #} :orphan: +{% if title %} .. _@{ title.lower() + '_' + plugin_type + 's' }@: +{% else %} +.. _@{ plugin_type + 's' }@: +{% endif %} +{% if title %} @{ title }@ @{ plugin_type + 's' }@ @{ '`' * title | length }@```````` +{% else %} +@{ plugin_type + 's' }@ +``````` +{% endif %} {% if blurb %} @{ blurb }@ diff --git a/docs/templates/modules_by_category.rst.j2 b/docs/templates/modules_by_category.rst.j2 index 0b8f4d0d285..77635284484 100644 --- a/docs/templates/modules_by_category.rst.j2 +++ b/docs/templates/modules_by_category.rst.j2 @@ -10,5 +10,8 @@ Module Index .. toctree:: :maxdepth: 1 {% for name in categories %} +{# strip out empty category names as a result flattening the dir structure #} +{% if name %} list_of_@{ name }@_modules +{% endif %} {% endfor %} diff --git a/lib/ansible/modules/inventory/add_host.py b/lib/ansible/modules/add_host.py similarity index 100% rename from lib/ansible/modules/inventory/add_host.py rename to lib/ansible/modules/add_host.py diff --git a/lib/ansible/modules/packaging/os/apt.py b/lib/ansible/modules/apt.py similarity index 100% rename from lib/ansible/modules/packaging/os/apt.py rename to lib/ansible/modules/apt.py diff --git a/lib/ansible/modules/packaging/os/apt_key.py b/lib/ansible/modules/apt_key.py similarity index 100% rename from lib/ansible/modules/packaging/os/apt_key.py rename to lib/ansible/modules/apt_key.py diff --git a/lib/ansible/modules/packaging/os/apt_repository.py b/lib/ansible/modules/apt_repository.py similarity index 100% rename from lib/ansible/modules/packaging/os/apt_repository.py rename to lib/ansible/modules/apt_repository.py diff --git a/lib/ansible/modules/files/assemble.py b/lib/ansible/modules/assemble.py similarity index 100% rename from lib/ansible/modules/files/assemble.py rename to lib/ansible/modules/assemble.py diff --git a/lib/ansible/modules/utilities/logic/assert.py b/lib/ansible/modules/assert.py similarity index 100% rename from lib/ansible/modules/utilities/logic/assert.py rename to lib/ansible/modules/assert.py diff --git a/lib/ansible/modules/utilities/logic/async_status.py b/lib/ansible/modules/async_status.py similarity index 100% rename from lib/ansible/modules/utilities/logic/async_status.py rename to lib/ansible/modules/async_status.py diff --git a/lib/ansible/modules/utilities/logic/async_wrapper.py b/lib/ansible/modules/async_wrapper.py similarity index 100% rename from lib/ansible/modules/utilities/logic/async_wrapper.py rename to lib/ansible/modules/async_wrapper.py diff --git a/lib/ansible/modules/files/blockinfile.py b/lib/ansible/modules/blockinfile.py similarity index 100% rename from lib/ansible/modules/files/blockinfile.py rename to lib/ansible/modules/blockinfile.py diff --git a/lib/ansible/modules/commands/command.py b/lib/ansible/modules/command.py similarity index 100% rename from lib/ansible/modules/commands/command.py rename to lib/ansible/modules/command.py diff --git a/lib/ansible/modules/commands/__init__.py b/lib/ansible/modules/commands/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/files/copy.py b/lib/ansible/modules/copy.py similarity index 100% rename from lib/ansible/modules/files/copy.py rename to lib/ansible/modules/copy.py diff --git a/lib/ansible/modules/system/cron.py b/lib/ansible/modules/cron.py similarity index 100% rename from lib/ansible/modules/system/cron.py rename to lib/ansible/modules/cron.py diff --git a/lib/ansible/modules/system/debconf.py b/lib/ansible/modules/debconf.py similarity index 100% rename from lib/ansible/modules/system/debconf.py rename to lib/ansible/modules/debconf.py diff --git a/lib/ansible/modules/utilities/logic/debug.py b/lib/ansible/modules/debug.py similarity index 100% rename from lib/ansible/modules/utilities/logic/debug.py rename to lib/ansible/modules/debug.py diff --git a/lib/ansible/modules/packaging/os/dnf.py b/lib/ansible/modules/dnf.py similarity index 100% rename from lib/ansible/modules/packaging/os/dnf.py rename to lib/ansible/modules/dnf.py diff --git a/lib/ansible/modules/packaging/os/dpkg_selections.py b/lib/ansible/modules/dpkg_selections.py similarity index 100% rename from lib/ansible/modules/packaging/os/dpkg_selections.py rename to lib/ansible/modules/dpkg_selections.py diff --git a/lib/ansible/modules/commands/expect.py b/lib/ansible/modules/expect.py similarity index 100% rename from lib/ansible/modules/commands/expect.py rename to lib/ansible/modules/expect.py diff --git a/lib/ansible/modules/utilities/logic/fail.py b/lib/ansible/modules/fail.py similarity index 100% rename from lib/ansible/modules/utilities/logic/fail.py rename to lib/ansible/modules/fail.py diff --git a/lib/ansible/modules/files/fetch.py b/lib/ansible/modules/fetch.py similarity index 100% rename from lib/ansible/modules/files/fetch.py rename to lib/ansible/modules/fetch.py diff --git a/lib/ansible/modules/files/file.py b/lib/ansible/modules/file.py similarity index 100% rename from lib/ansible/modules/files/file.py rename to lib/ansible/modules/file.py diff --git a/lib/ansible/modules/files/__init__.py b/lib/ansible/modules/files/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/files/find.py b/lib/ansible/modules/find.py similarity index 100% rename from lib/ansible/modules/files/find.py rename to lib/ansible/modules/find.py diff --git a/lib/ansible/modules/system/gather_facts.py b/lib/ansible/modules/gather_facts.py similarity index 100% rename from lib/ansible/modules/system/gather_facts.py rename to lib/ansible/modules/gather_facts.py diff --git a/lib/ansible/modules/net_tools/basics/get_url.py b/lib/ansible/modules/get_url.py similarity index 100% rename from lib/ansible/modules/net_tools/basics/get_url.py rename to lib/ansible/modules/get_url.py diff --git a/lib/ansible/modules/system/getent.py b/lib/ansible/modules/getent.py similarity index 100% rename from lib/ansible/modules/system/getent.py rename to lib/ansible/modules/getent.py diff --git a/lib/ansible/modules/source_control/git.py b/lib/ansible/modules/git.py similarity index 100% rename from lib/ansible/modules/source_control/git.py rename to lib/ansible/modules/git.py diff --git a/lib/ansible/modules/system/group.py b/lib/ansible/modules/group.py similarity index 100% rename from lib/ansible/modules/system/group.py rename to lib/ansible/modules/group.py diff --git a/lib/ansible/modules/inventory/group_by.py b/lib/ansible/modules/group_by.py similarity index 100% rename from lib/ansible/modules/inventory/group_by.py rename to lib/ansible/modules/group_by.py diff --git a/lib/ansible/modules/system/hostname.py b/lib/ansible/modules/hostname.py similarity index 100% rename from lib/ansible/modules/system/hostname.py rename to lib/ansible/modules/hostname.py diff --git a/lib/ansible/modules/utilities/logic/import_playbook.py b/lib/ansible/modules/import_playbook.py similarity index 100% rename from lib/ansible/modules/utilities/logic/import_playbook.py rename to lib/ansible/modules/import_playbook.py diff --git a/lib/ansible/modules/utilities/logic/import_role.py b/lib/ansible/modules/import_role.py similarity index 100% rename from lib/ansible/modules/utilities/logic/import_role.py rename to lib/ansible/modules/import_role.py diff --git a/lib/ansible/modules/utilities/logic/import_tasks.py b/lib/ansible/modules/import_tasks.py similarity index 100% rename from lib/ansible/modules/utilities/logic/import_tasks.py rename to lib/ansible/modules/import_tasks.py diff --git a/lib/ansible/modules/utilities/logic/include.py b/lib/ansible/modules/include.py similarity index 100% rename from lib/ansible/modules/utilities/logic/include.py rename to lib/ansible/modules/include.py diff --git a/lib/ansible/modules/utilities/logic/include_role.py b/lib/ansible/modules/include_role.py similarity index 100% rename from lib/ansible/modules/utilities/logic/include_role.py rename to lib/ansible/modules/include_role.py diff --git a/lib/ansible/modules/utilities/logic/include_tasks.py b/lib/ansible/modules/include_tasks.py similarity index 100% rename from lib/ansible/modules/utilities/logic/include_tasks.py rename to lib/ansible/modules/include_tasks.py diff --git a/lib/ansible/modules/utilities/logic/include_vars.py b/lib/ansible/modules/include_vars.py similarity index 100% rename from lib/ansible/modules/utilities/logic/include_vars.py rename to lib/ansible/modules/include_vars.py diff --git a/lib/ansible/modules/inventory/__init__.py b/lib/ansible/modules/inventory/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/system/iptables.py b/lib/ansible/modules/iptables.py similarity index 100% rename from lib/ansible/modules/system/iptables.py rename to lib/ansible/modules/iptables.py diff --git a/lib/ansible/modules/system/known_hosts.py b/lib/ansible/modules/known_hosts.py similarity index 100% rename from lib/ansible/modules/system/known_hosts.py rename to lib/ansible/modules/known_hosts.py diff --git a/lib/ansible/modules/files/lineinfile.py b/lib/ansible/modules/lineinfile.py similarity index 100% rename from lib/ansible/modules/files/lineinfile.py rename to lib/ansible/modules/lineinfile.py diff --git a/lib/ansible/modules/utilities/helper/meta.py b/lib/ansible/modules/meta.py similarity index 100% rename from lib/ansible/modules/utilities/helper/meta.py rename to lib/ansible/modules/meta.py diff --git a/lib/ansible/modules/net_tools/__init__.py b/lib/ansible/modules/net_tools/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/net_tools/basics/__init__.py b/lib/ansible/modules/net_tools/basics/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/packaging/os/package.py b/lib/ansible/modules/package.py similarity index 100% rename from lib/ansible/modules/packaging/os/package.py rename to lib/ansible/modules/package.py diff --git a/lib/ansible/modules/packaging/os/package_facts.py b/lib/ansible/modules/package_facts.py similarity index 100% rename from lib/ansible/modules/packaging/os/package_facts.py rename to lib/ansible/modules/package_facts.py diff --git a/lib/ansible/modules/packaging/__init__.py b/lib/ansible/modules/packaging/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/packaging/language/__init__.py b/lib/ansible/modules/packaging/language/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/packaging/os/__init__.py b/lib/ansible/modules/packaging/os/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/utilities/logic/pause.py b/lib/ansible/modules/pause.py similarity index 100% rename from lib/ansible/modules/utilities/logic/pause.py rename to lib/ansible/modules/pause.py diff --git a/lib/ansible/modules/system/ping.py b/lib/ansible/modules/ping.py similarity index 100% rename from lib/ansible/modules/system/ping.py rename to lib/ansible/modules/ping.py diff --git a/lib/ansible/modules/packaging/language/pip.py b/lib/ansible/modules/pip.py similarity index 100% rename from lib/ansible/modules/packaging/language/pip.py rename to lib/ansible/modules/pip.py diff --git a/lib/ansible/modules/commands/raw.py b/lib/ansible/modules/raw.py similarity index 100% rename from lib/ansible/modules/commands/raw.py rename to lib/ansible/modules/raw.py diff --git a/lib/ansible/modules/system/reboot.py b/lib/ansible/modules/reboot.py similarity index 100% rename from lib/ansible/modules/system/reboot.py rename to lib/ansible/modules/reboot.py diff --git a/lib/ansible/modules/files/replace.py b/lib/ansible/modules/replace.py similarity index 100% rename from lib/ansible/modules/files/replace.py rename to lib/ansible/modules/replace.py diff --git a/lib/ansible/modules/packaging/os/rpm_key.py b/lib/ansible/modules/rpm_key.py similarity index 100% rename from lib/ansible/modules/packaging/os/rpm_key.py rename to lib/ansible/modules/rpm_key.py diff --git a/lib/ansible/modules/commands/script.py b/lib/ansible/modules/script.py similarity index 100% rename from lib/ansible/modules/commands/script.py rename to lib/ansible/modules/script.py diff --git a/lib/ansible/modules/system/service.py b/lib/ansible/modules/service.py similarity index 100% rename from lib/ansible/modules/system/service.py rename to lib/ansible/modules/service.py diff --git a/lib/ansible/modules/system/service_facts.py b/lib/ansible/modules/service_facts.py similarity index 100% rename from lib/ansible/modules/system/service_facts.py rename to lib/ansible/modules/service_facts.py diff --git a/lib/ansible/modules/utilities/logic/set_fact.py b/lib/ansible/modules/set_fact.py similarity index 100% rename from lib/ansible/modules/utilities/logic/set_fact.py rename to lib/ansible/modules/set_fact.py diff --git a/lib/ansible/modules/utilities/logic/set_stats.py b/lib/ansible/modules/set_stats.py similarity index 100% rename from lib/ansible/modules/utilities/logic/set_stats.py rename to lib/ansible/modules/set_stats.py diff --git a/lib/ansible/modules/system/setup.py b/lib/ansible/modules/setup.py similarity index 99% rename from lib/ansible/modules/system/setup.py rename to lib/ansible/modules/setup.py index ccf40faa8e5..70756568be1 100644 --- a/lib/ansible/modules/system/setup.py +++ b/lib/ansible/modules/setup.py @@ -133,7 +133,7 @@ EXAMPLES = """ """ # import module snippets -from ...module_utils.basic import AnsibleModule +from ..module_utils.basic import AnsibleModule from ansible.module_utils.facts.namespace import PrefixFactNamespace from ansible.module_utils.facts import ansible_collector diff --git a/lib/ansible/modules/commands/shell.py b/lib/ansible/modules/shell.py similarity index 100% rename from lib/ansible/modules/commands/shell.py rename to lib/ansible/modules/shell.py diff --git a/lib/ansible/modules/net_tools/basics/slurp.py b/lib/ansible/modules/slurp.py similarity index 100% rename from lib/ansible/modules/net_tools/basics/slurp.py rename to lib/ansible/modules/slurp.py diff --git a/lib/ansible/modules/source_control/__init__.py b/lib/ansible/modules/source_control/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/files/stat.py b/lib/ansible/modules/stat.py similarity index 100% rename from lib/ansible/modules/files/stat.py rename to lib/ansible/modules/stat.py diff --git a/lib/ansible/modules/source_control/subversion.py b/lib/ansible/modules/subversion.py similarity index 100% rename from lib/ansible/modules/source_control/subversion.py rename to lib/ansible/modules/subversion.py diff --git a/lib/ansible/modules/system/__init__.py b/lib/ansible/modules/system/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/system/systemd.py b/lib/ansible/modules/systemd.py similarity index 100% rename from lib/ansible/modules/system/systemd.py rename to lib/ansible/modules/systemd.py diff --git a/lib/ansible/modules/system/sysvinit.py b/lib/ansible/modules/sysvinit.py similarity index 100% rename from lib/ansible/modules/system/sysvinit.py rename to lib/ansible/modules/sysvinit.py diff --git a/lib/ansible/modules/files/tempfile.py b/lib/ansible/modules/tempfile.py similarity index 100% rename from lib/ansible/modules/files/tempfile.py rename to lib/ansible/modules/tempfile.py diff --git a/lib/ansible/modules/files/template.py b/lib/ansible/modules/template.py similarity index 100% rename from lib/ansible/modules/files/template.py rename to lib/ansible/modules/template.py diff --git a/lib/ansible/modules/files/unarchive.py b/lib/ansible/modules/unarchive.py similarity index 100% rename from lib/ansible/modules/files/unarchive.py rename to lib/ansible/modules/unarchive.py diff --git a/lib/ansible/modules/net_tools/basics/uri.py b/lib/ansible/modules/uri.py similarity index 100% rename from lib/ansible/modules/net_tools/basics/uri.py rename to lib/ansible/modules/uri.py diff --git a/lib/ansible/modules/system/user.py b/lib/ansible/modules/user.py similarity index 100% rename from lib/ansible/modules/system/user.py rename to lib/ansible/modules/user.py diff --git a/lib/ansible/modules/utilities/__init__.py b/lib/ansible/modules/utilities/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/utilities/helper/__init__.py b/lib/ansible/modules/utilities/helper/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/utilities/logic/__init__.py b/lib/ansible/modules/utilities/logic/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/ansible/modules/utilities/logic/wait_for.py b/lib/ansible/modules/wait_for.py similarity index 100% rename from lib/ansible/modules/utilities/logic/wait_for.py rename to lib/ansible/modules/wait_for.py diff --git a/lib/ansible/modules/utilities/logic/wait_for_connection.py b/lib/ansible/modules/wait_for_connection.py similarity index 100% rename from lib/ansible/modules/utilities/logic/wait_for_connection.py rename to lib/ansible/modules/wait_for_connection.py diff --git a/lib/ansible/modules/packaging/os/yum.py b/lib/ansible/modules/yum.py similarity index 100% rename from lib/ansible/modules/packaging/os/yum.py rename to lib/ansible/modules/yum.py diff --git a/lib/ansible/modules/packaging/os/yum_repository.py b/lib/ansible/modules/yum_repository.py similarity index 100% rename from lib/ansible/modules/packaging/os/yum_repository.py rename to lib/ansible/modules/yum_repository.py diff --git a/test/integration/targets/infra/aliases b/test/integration/targets/infra/aliases index d342950a28f..887d7029da2 100644 --- a/test/integration/targets/infra/aliases +++ b/test/integration/targets/infra/aliases @@ -1,3 +1,3 @@ shippable/posix/group3 needs/file/hacking/test-module.py -needs/file/lib/ansible/modules/system/ping.py +needs/file/lib/ansible/modules/ping.py diff --git a/test/integration/targets/infra/runme.sh b/test/integration/targets/infra/runme.sh index 7996a43140d..c4d84572fe7 100755 --- a/test/integration/targets/infra/runme.sh +++ b/test/integration/targets/infra/runme.sh @@ -24,7 +24,7 @@ echo "$PB_OUT" | grep -F "assert works (True)" || exit 1 set -e -PING_MODULE_PATH="../../../../lib/ansible/modules/system/ping.py" +PING_MODULE_PATH="../../../../lib/ansible/modules/ping.py" # ensure test-module.py script works without passing Python interpreter path ../../../../hacking/test-module.py -m "$PING_MODULE_PATH" @@ -36,4 +36,4 @@ PING_MODULE_PATH="../../../../lib/ansible/modules/system/ping.py" ../../../../hacking/test-module.py -m library/test.py -I ansible_python_interpreter="$(which python)" <<< '{"ANSIBLE_MODULE_ARGS": {}}' # ensure exercising module code locally works -python -m ansible.modules.files.file <<< '{"ANSIBLE_MODULE_ARGS": {"path": "/path/to/file", "state": "absent"}}' +python -m ansible.modules.file <<< '{"ANSIBLE_MODULE_ARGS": {"path": "/path/to/file", "state": "absent"}}' diff --git a/test/lib/ansible_test/_data/sanity/import/importer.py b/test/lib/ansible_test/_data/sanity/import/importer.py index 1143db53666..f42ff787f0e 100755 --- a/test/lib/ansible_test/_data/sanity/import/importer.py +++ b/test/lib/ansible_test/_data/sanity/import/importer.py @@ -206,7 +206,7 @@ def main(): is_ansible_module = (path.startswith('lib/ansible/modules/') or path.startswith('plugins/modules/')) and os.path.basename(path) != '__init__.py' run_main = is_ansible_module - if path == 'lib/ansible/modules/utilities/logic/async_wrapper.py': + if path == 'lib/ansible/modules/async_wrapper.py': # async_wrapper is a non-standard Ansible module (does not use AnsibleModule) so we cannot test the main function run_main = False diff --git a/test/lib/ansible_test/_data/sanity/pylint/plugins/blacklist.py b/test/lib/ansible_test/_data/sanity/pylint/plugins/blacklist.py index 3da536bb2b8..611a30a20e5 100644 --- a/test/lib/ansible_test/_data/sanity/pylint/plugins/blacklist.py +++ b/test/lib/ansible_test/_data/sanity/pylint/plugins/blacklist.py @@ -125,7 +125,7 @@ class AnsibleBlacklistChecker(BaseChecker): 'sys.exit': BlacklistEntry('exit_json or fail_json', ignore_paths=( '/lib/ansible/module_utils/basic.py', - '/lib/ansible/modules/utilities/logic/async_wrapper.py', + '/lib/ansible/modules/async_wrapper.py', '/lib/ansible/module_utils/common/removed.py', ), modules_only=True), diff --git a/test/sanity/ignore.txt b/test/sanity/ignore.txt index 6cf5396e872..29b5726d5ec 100644 --- a/test/sanity/ignore.txt +++ b/test/sanity/ignore.txt @@ -107,115 +107,115 @@ lib/ansible/module_utils/urls.py pylint:blacklisted-name lib/ansible/module_utils/urls.py replace-urlopen lib/ansible/module_utils/yumdnf.py future-import-boilerplate lib/ansible/module_utils/yumdnf.py metaclass-boilerplate -lib/ansible/modules/commands/command.py validate-modules:doc-missing-type -lib/ansible/modules/commands/command.py validate-modules:nonexistent-parameter-documented -lib/ansible/modules/commands/command.py validate-modules:parameter-list-no-elements -lib/ansible/modules/commands/command.py validate-modules:undocumented-parameter -lib/ansible/modules/commands/expect.py validate-modules:doc-missing-type -lib/ansible/modules/files/assemble.py validate-modules:nonexistent-parameter-documented -lib/ansible/modules/files/blockinfile.py validate-modules:doc-choices-do-not-match-spec -lib/ansible/modules/files/blockinfile.py validate-modules:doc-default-does-not-match-spec -lib/ansible/modules/files/copy.py pylint:blacklisted-name -lib/ansible/modules/files/copy.py validate-modules:doc-default-does-not-match-spec -lib/ansible/modules/files/copy.py validate-modules:doc-type-does-not-match-spec -lib/ansible/modules/files/copy.py validate-modules:nonexistent-parameter-documented -lib/ansible/modules/files/copy.py validate-modules:undocumented-parameter -lib/ansible/modules/files/file.py pylint:ansible-bad-function -lib/ansible/modules/files/file.py validate-modules:doc-default-does-not-match-spec -lib/ansible/modules/files/file.py validate-modules:undocumented-parameter -lib/ansible/modules/files/find.py use-argspec-type-path # fix needed -lib/ansible/modules/files/find.py validate-modules:parameter-list-no-elements -lib/ansible/modules/files/find.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/files/lineinfile.py validate-modules:doc-choices-do-not-match-spec -lib/ansible/modules/files/lineinfile.py validate-modules:doc-default-does-not-match-spec -lib/ansible/modules/files/lineinfile.py validate-modules:nonexistent-parameter-documented -lib/ansible/modules/files/replace.py validate-modules:nonexistent-parameter-documented -lib/ansible/modules/files/stat.py validate-modules:parameter-invalid -lib/ansible/modules/files/stat.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/files/stat.py validate-modules:undocumented-parameter -lib/ansible/modules/files/unarchive.py validate-modules:nonexistent-parameter-documented -lib/ansible/modules/files/unarchive.py validate-modules:parameter-list-no-elements -lib/ansible/modules/net_tools/basics/get_url.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/net_tools/basics/uri.py pylint:blacklisted-name -lib/ansible/modules/net_tools/basics/uri.py validate-modules:doc-required-mismatch -lib/ansible/modules/net_tools/basics/uri.py validate-modules:parameter-list-no-elements -lib/ansible/modules/net_tools/basics/uri.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/packaging/language/pip.py pylint:blacklisted-name -lib/ansible/modules/packaging/language/pip.py validate-modules:doc-elements-mismatch -lib/ansible/modules/packaging/language/pip.py validate-modules:invalid-ansiblemodule-schema -lib/ansible/modules/packaging/os/apt.py validate-modules:doc-default-does-not-match-spec -lib/ansible/modules/packaging/os/apt.py validate-modules:parameter-invalid -lib/ansible/modules/packaging/os/apt.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/packaging/os/apt.py validate-modules:undocumented-parameter -lib/ansible/modules/packaging/os/apt_key.py validate-modules:mutually_exclusive-unknown -lib/ansible/modules/packaging/os/apt_key.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/packaging/os/apt_key.py validate-modules:undocumented-parameter -lib/ansible/modules/packaging/os/apt_repository.py validate-modules:doc-default-does-not-match-spec -lib/ansible/modules/packaging/os/apt_repository.py validate-modules:parameter-invalid -lib/ansible/modules/packaging/os/apt_repository.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/packaging/os/apt_repository.py validate-modules:undocumented-parameter -lib/ansible/modules/packaging/os/dnf.py validate-modules:doc-missing-type -lib/ansible/modules/packaging/os/dnf.py validate-modules:doc-required-mismatch -lib/ansible/modules/packaging/os/dnf.py validate-modules:parameter-invalid -lib/ansible/modules/packaging/os/dnf.py validate-modules:parameter-list-no-elements -lib/ansible/modules/packaging/os/dnf.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/packaging/os/dpkg_selections.py validate-modules:doc-missing-type -lib/ansible/modules/packaging/os/dpkg_selections.py validate-modules:doc-required-mismatch -lib/ansible/modules/packaging/os/package_facts.py validate-modules:doc-choices-do-not-match-spec -lib/ansible/modules/packaging/os/package_facts.py validate-modules:doc-missing-type -lib/ansible/modules/packaging/os/package_facts.py validate-modules:parameter-list-no-elements -lib/ansible/modules/packaging/os/package_facts.py validate-modules:return-syntax-error -lib/ansible/modules/packaging/os/rpm_key.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/packaging/os/yum.py pylint:blacklisted-name -lib/ansible/modules/packaging/os/yum.py validate-modules:doc-default-does-not-match-spec -lib/ansible/modules/packaging/os/yum.py validate-modules:doc-missing-type -lib/ansible/modules/packaging/os/yum.py validate-modules:parameter-invalid -lib/ansible/modules/packaging/os/yum.py validate-modules:parameter-list-no-elements -lib/ansible/modules/packaging/os/yum.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/packaging/os/yum.py validate-modules:undocumented-parameter -lib/ansible/modules/packaging/os/yum_repository.py validate-modules:doc-default-does-not-match-spec -lib/ansible/modules/packaging/os/yum_repository.py validate-modules:doc-missing-type -lib/ansible/modules/packaging/os/yum_repository.py validate-modules:parameter-list-no-elements -lib/ansible/modules/packaging/os/yum_repository.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/packaging/os/yum_repository.py validate-modules:undocumented-parameter -lib/ansible/modules/source_control/git.py pylint:blacklisted-name -lib/ansible/modules/source_control/git.py use-argspec-type-path -lib/ansible/modules/source_control/git.py validate-modules:doc-missing-type -lib/ansible/modules/source_control/git.py validate-modules:doc-required-mismatch -lib/ansible/modules/source_control/git.py validate-modules:parameter-list-no-elements -lib/ansible/modules/source_control/git.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/source_control/subversion.py validate-modules:doc-required-mismatch -lib/ansible/modules/source_control/subversion.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/source_control/subversion.py validate-modules:undocumented-parameter -lib/ansible/modules/system/getent.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/system/hostname.py validate-modules:invalid-ansiblemodule-schema -lib/ansible/modules/system/hostname.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/system/iptables.py pylint:blacklisted-name -lib/ansible/modules/system/iptables.py validate-modules:parameter-list-no-elements -lib/ansible/modules/system/known_hosts.py validate-modules:doc-default-does-not-match-spec -lib/ansible/modules/system/known_hosts.py validate-modules:doc-missing-type -lib/ansible/modules/system/known_hosts.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/system/service.py validate-modules:nonexistent-parameter-documented -lib/ansible/modules/system/service.py validate-modules:use-run-command-not-popen -lib/ansible/modules/system/setup.py validate-modules:doc-missing-type -lib/ansible/modules/system/setup.py validate-modules:parameter-list-no-elements -lib/ansible/modules/system/setup.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/system/systemd.py validate-modules:parameter-invalid -lib/ansible/modules/system/systemd.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/system/systemd.py validate-modules:return-syntax-error -lib/ansible/modules/system/sysvinit.py validate-modules:parameter-list-no-elements -lib/ansible/modules/system/sysvinit.py validate-modules:parameter-type-not-in-doc -lib/ansible/modules/system/sysvinit.py validate-modules:return-syntax-error -lib/ansible/modules/system/user.py validate-modules:doc-default-does-not-match-spec -lib/ansible/modules/system/user.py validate-modules:doc-default-incompatible-type -lib/ansible/modules/system/user.py validate-modules:parameter-list-no-elements -lib/ansible/modules/system/user.py validate-modules:use-run-command-not-popen -lib/ansible/modules/utilities/logic/async_status.py use-argspec-type-path -lib/ansible/modules/utilities/logic/async_status.py validate-modules!skip -lib/ansible/modules/utilities/logic/async_wrapper.py ansible-doc!skip # not an actual module -lib/ansible/modules/utilities/logic/async_wrapper.py pylint:ansible-bad-function -lib/ansible/modules/utilities/logic/async_wrapper.py use-argspec-type-path -lib/ansible/modules/utilities/logic/wait_for.py validate-modules:parameter-list-no-elements +lib/ansible/modules/command.py validate-modules:doc-missing-type +lib/ansible/modules/command.py validate-modules:nonexistent-parameter-documented +lib/ansible/modules/command.py validate-modules:parameter-list-no-elements +lib/ansible/modules/command.py validate-modules:undocumented-parameter +lib/ansible/modules/expect.py validate-modules:doc-missing-type +lib/ansible/modules/assemble.py validate-modules:nonexistent-parameter-documented +lib/ansible/modules/blockinfile.py validate-modules:doc-choices-do-not-match-spec +lib/ansible/modules/blockinfile.py validate-modules:doc-default-does-not-match-spec +lib/ansible/modules/copy.py pylint:blacklisted-name +lib/ansible/modules/copy.py validate-modules:doc-default-does-not-match-spec +lib/ansible/modules/copy.py validate-modules:doc-type-does-not-match-spec +lib/ansible/modules/copy.py validate-modules:nonexistent-parameter-documented +lib/ansible/modules/copy.py validate-modules:undocumented-parameter +lib/ansible/modules/file.py pylint:ansible-bad-function +lib/ansible/modules/file.py validate-modules:doc-default-does-not-match-spec +lib/ansible/modules/file.py validate-modules:undocumented-parameter +lib/ansible/modules/find.py use-argspec-type-path # fix needed +lib/ansible/modules/find.py validate-modules:parameter-list-no-elements +lib/ansible/modules/find.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/lineinfile.py validate-modules:doc-choices-do-not-match-spec +lib/ansible/modules/lineinfile.py validate-modules:doc-default-does-not-match-spec +lib/ansible/modules/lineinfile.py validate-modules:nonexistent-parameter-documented +lib/ansible/modules/replace.py validate-modules:nonexistent-parameter-documented +lib/ansible/modules/stat.py validate-modules:parameter-invalid +lib/ansible/modules/stat.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/stat.py validate-modules:undocumented-parameter +lib/ansible/modules/unarchive.py validate-modules:nonexistent-parameter-documented +lib/ansible/modules/unarchive.py validate-modules:parameter-list-no-elements +lib/ansible/modules/get_url.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/uri.py pylint:blacklisted-name +lib/ansible/modules/uri.py validate-modules:doc-required-mismatch +lib/ansible/modules/uri.py validate-modules:parameter-list-no-elements +lib/ansible/modules/uri.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/pip.py pylint:blacklisted-name +lib/ansible/modules/pip.py validate-modules:doc-elements-mismatch +lib/ansible/modules/pip.py validate-modules:invalid-ansiblemodule-schema +lib/ansible/modules/apt.py validate-modules:doc-default-does-not-match-spec +lib/ansible/modules/apt.py validate-modules:parameter-invalid +lib/ansible/modules/apt.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/apt.py validate-modules:undocumented-parameter +lib/ansible/modules/apt_key.py validate-modules:mutually_exclusive-unknown +lib/ansible/modules/apt_key.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/apt_key.py validate-modules:undocumented-parameter +lib/ansible/modules/apt_repository.py validate-modules:doc-default-does-not-match-spec +lib/ansible/modules/apt_repository.py validate-modules:parameter-invalid +lib/ansible/modules/apt_repository.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/apt_repository.py validate-modules:undocumented-parameter +lib/ansible/modules/dnf.py validate-modules:doc-missing-type +lib/ansible/modules/dnf.py validate-modules:doc-required-mismatch +lib/ansible/modules/dnf.py validate-modules:parameter-invalid +lib/ansible/modules/dnf.py validate-modules:parameter-list-no-elements +lib/ansible/modules/dnf.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/dpkg_selections.py validate-modules:doc-missing-type +lib/ansible/modules/dpkg_selections.py validate-modules:doc-required-mismatch +lib/ansible/modules/package_facts.py validate-modules:doc-choices-do-not-match-spec +lib/ansible/modules/package_facts.py validate-modules:doc-missing-type +lib/ansible/modules/package_facts.py validate-modules:parameter-list-no-elements +lib/ansible/modules/package_facts.py validate-modules:return-syntax-error +lib/ansible/modules/rpm_key.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/yum.py pylint:blacklisted-name +lib/ansible/modules/yum.py validate-modules:doc-default-does-not-match-spec +lib/ansible/modules/yum.py validate-modules:doc-missing-type +lib/ansible/modules/yum.py validate-modules:parameter-invalid +lib/ansible/modules/yum.py validate-modules:parameter-list-no-elements +lib/ansible/modules/yum.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/yum.py validate-modules:undocumented-parameter +lib/ansible/modules/yum_repository.py validate-modules:doc-default-does-not-match-spec +lib/ansible/modules/yum_repository.py validate-modules:doc-missing-type +lib/ansible/modules/yum_repository.py validate-modules:parameter-list-no-elements +lib/ansible/modules/yum_repository.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/yum_repository.py validate-modules:undocumented-parameter +lib/ansible/modules/git.py pylint:blacklisted-name +lib/ansible/modules/git.py use-argspec-type-path +lib/ansible/modules/git.py validate-modules:doc-missing-type +lib/ansible/modules/git.py validate-modules:doc-required-mismatch +lib/ansible/modules/git.py validate-modules:parameter-list-no-elements +lib/ansible/modules/git.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/subversion.py validate-modules:doc-required-mismatch +lib/ansible/modules/subversion.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/subversion.py validate-modules:undocumented-parameter +lib/ansible/modules/getent.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/hostname.py validate-modules:invalid-ansiblemodule-schema +lib/ansible/modules/hostname.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/iptables.py pylint:blacklisted-name +lib/ansible/modules/iptables.py validate-modules:parameter-list-no-elements +lib/ansible/modules/known_hosts.py validate-modules:doc-default-does-not-match-spec +lib/ansible/modules/known_hosts.py validate-modules:doc-missing-type +lib/ansible/modules/known_hosts.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/service.py validate-modules:nonexistent-parameter-documented +lib/ansible/modules/service.py validate-modules:use-run-command-not-popen +lib/ansible/modules/setup.py validate-modules:doc-missing-type +lib/ansible/modules/setup.py validate-modules:parameter-list-no-elements +lib/ansible/modules/setup.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/systemd.py validate-modules:parameter-invalid +lib/ansible/modules/systemd.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/systemd.py validate-modules:return-syntax-error +lib/ansible/modules/sysvinit.py validate-modules:parameter-list-no-elements +lib/ansible/modules/sysvinit.py validate-modules:parameter-type-not-in-doc +lib/ansible/modules/sysvinit.py validate-modules:return-syntax-error +lib/ansible/modules/user.py validate-modules:doc-default-does-not-match-spec +lib/ansible/modules/user.py validate-modules:doc-default-incompatible-type +lib/ansible/modules/user.py validate-modules:parameter-list-no-elements +lib/ansible/modules/user.py validate-modules:use-run-command-not-popen +lib/ansible/modules/async_status.py use-argspec-type-path +lib/ansible/modules/async_status.py validate-modules!skip +lib/ansible/modules/async_wrapper.py ansible-doc!skip # not an actual module +lib/ansible/modules/async_wrapper.py pylint:ansible-bad-function +lib/ansible/modules/async_wrapper.py use-argspec-type-path +lib/ansible/modules/wait_for.py validate-modules:parameter-list-no-elements lib/ansible/parsing/vault/__init__.py pylint:blacklisted-name lib/ansible/playbook/base.py pylint:blacklisted-name lib/ansible/playbook/collectionsearch.py required-and-default-attributes # https://github.com/ansible/ansible/issues/61460 @@ -500,21 +500,21 @@ test/units/module_utils/urls/test_Request.py replace-urlopen test/units/module_utils/urls/test_fetch_url.py replace-urlopen test/units/modules/conftest.py future-import-boilerplate test/units/modules/conftest.py metaclass-boilerplate -test/units/modules/files/test_copy.py future-import-boilerplate -test/units/modules/packaging/language/test_pip.py future-import-boilerplate -test/units/modules/packaging/language/test_pip.py metaclass-boilerplate -test/units/modules/packaging/os/test_apt.py future-import-boilerplate -test/units/modules/packaging/os/test_apt.py metaclass-boilerplate -test/units/modules/packaging/os/test_apt.py pylint:blacklisted-name -test/units/modules/packaging/os/test_yum.py future-import-boilerplate -test/units/modules/packaging/os/test_yum.py metaclass-boilerplate -test/units/modules/system/test_iptables.py future-import-boilerplate -test/units/modules/system/test_iptables.py metaclass-boilerplate -test/units/modules/system/test_known_hosts.py future-import-boilerplate -test/units/modules/system/test_known_hosts.py metaclass-boilerplate -test/units/modules/system/test_known_hosts.py pylint:ansible-bad-function -test/units/modules/system/test_systemd.py future-import-boilerplate -test/units/modules/system/test_systemd.py metaclass-boilerplate +test/units/modules/test_copy.py future-import-boilerplate +test/units/modules/test_pip.py future-import-boilerplate +test/units/modules/test_pip.py metaclass-boilerplate +test/units/modules/test_apt.py future-import-boilerplate +test/units/modules/test_apt.py metaclass-boilerplate +test/units/modules/test_apt.py pylint:blacklisted-name +test/units/modules/test_yum.py future-import-boilerplate +test/units/modules/test_yum.py metaclass-boilerplate +test/units/modules/test_iptables.py future-import-boilerplate +test/units/modules/test_iptables.py metaclass-boilerplate +test/units/modules/test_known_hosts.py future-import-boilerplate +test/units/modules/test_known_hosts.py metaclass-boilerplate +test/units/modules/test_known_hosts.py pylint:ansible-bad-function +test/units/modules/test_systemd.py future-import-boilerplate +test/units/modules/test_systemd.py metaclass-boilerplate test/units/modules/utils.py future-import-boilerplate test/units/modules/utils.py metaclass-boilerplate test/units/parsing/utils/test_addresses.py future-import-boilerplate diff --git a/test/units/modules/packaging/__init__.py b/test/units/modules/packaging/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/test/units/modules/packaging/language/__init__.py b/test/units/modules/packaging/language/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/test/units/modules/packaging/os/__init__.py b/test/units/modules/packaging/os/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/test/units/modules/system/__init__.py b/test/units/modules/system/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/test/units/modules/packaging/os/test_apt.py b/test/units/modules/test_apt.py similarity index 96% rename from test/units/modules/packaging/os/test_apt.py rename to test/units/modules/test_apt.py index d003ec40f4f..3e4303309f8 100644 --- a/test/units/modules/packaging/os/test_apt.py +++ b/test/units/modules/test_apt.py @@ -5,7 +5,7 @@ from units.compat import mock from units.compat import unittest try: - from ansible.modules.packaging.os.apt import ( + from ansible.modules.apt import ( expand_pkgspec_from_fnmatches, ) except Exception: diff --git a/test/units/modules/files/test_copy.py b/test/units/modules/test_copy.py similarity index 98% rename from test/units/modules/files/test_copy.py rename to test/units/modules/test_copy.py index ff8f03818eb..19cff255cc2 100644 --- a/test/units/modules/files/test_copy.py +++ b/test/units/modules/test_copy.py @@ -9,7 +9,7 @@ __metaclass__ = type import pytest -from ansible.modules.files.copy import AnsibleModuleError, split_pre_existing_dir +from ansible.modules.copy import AnsibleModuleError, split_pre_existing_dir from ansible.module_utils.basic import AnsibleModule diff --git a/test/units/modules/system/test_iptables.py b/test/units/modules/test_iptables.py similarity index 99% rename from test/units/modules/system/test_iptables.py rename to test/units/modules/test_iptables.py index 9cd5b2ed18d..0dc734b5644 100644 --- a/test/units/modules/system/test_iptables.py +++ b/test/units/modules/test_iptables.py @@ -1,6 +1,6 @@ from units.compat.mock import patch from ansible.module_utils import basic -from ansible.modules.system import iptables +from ansible.modules import iptables from units.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase, set_module_args diff --git a/test/units/modules/system/test_known_hosts.py b/test/units/modules/test_known_hosts.py similarity index 98% rename from test/units/modules/system/test_known_hosts.py rename to test/units/modules/test_known_hosts.py index 962cf05f5b4..9dbfc5ace80 100644 --- a/test/units/modules/system/test_known_hosts.py +++ b/test/units/modules/test_known_hosts.py @@ -6,7 +6,7 @@ from units.compat import unittest from ansible.module_utils._text import to_bytes from ansible.module_utils.basic import AnsibleModule -from ansible.modules.system.known_hosts import compute_diff, sanity_check +from ansible.modules.known_hosts import compute_diff, sanity_check class KnownHostsDiffTestCase(unittest.TestCase): diff --git a/test/units/modules/packaging/language/test_pip.py b/test/units/modules/test_pip.py similarity index 96% rename from test/units/modules/packaging/language/test_pip.py rename to test/units/modules/test_pip.py index 1ae3c16f731..5de82bb4a4a 100644 --- a/test/units/modules/packaging/language/test_pip.py +++ b/test/units/modules/test_pip.py @@ -4,7 +4,7 @@ import json import pytest -from ansible.modules.packaging.language import pip +from ansible.modules import pip pytestmark = pytest.mark.usefixtures('patch_ansible_module') diff --git a/test/units/modules/system/test_systemd.py b/test/units/modules/test_systemd.py similarity index 96% rename from test/units/modules/system/test_systemd.py rename to test/units/modules/test_systemd.py index 8471fd5c3bd..29dc679c048 100644 --- a/test/units/modules/system/test_systemd.py +++ b/test/units/modules/test_systemd.py @@ -1,6 +1,6 @@ from units.compat import unittest -from ansible.modules.system.systemd import parse_systemctl_show +from ansible.modules.systemd import parse_systemctl_show class ParseSystemctlShowTestCase(unittest.TestCase): diff --git a/test/units/modules/packaging/os/test_yum.py b/test/units/modules/test_yum.py similarity index 99% rename from test/units/modules/packaging/os/test_yum.py rename to test/units/modules/test_yum.py index 6aa672d21f9..38c06d3dc71 100644 --- a/test/units/modules/packaging/os/test_yum.py +++ b/test/units/modules/test_yum.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- from units.compat import unittest -from ansible.modules.packaging.os.yum import YumModule +from ansible.modules.yum import YumModule yum_plugin_load_error = """