From d2b3f8d61210a385bac483effdae18b3161604e3 Mon Sep 17 00:00:00 2001 From: mrwho Date: Fri, 8 May 2026 23:14:42 +0300 Subject: [PATCH] fix --- .gitignore | 2 +- ansible.cfg | 18 +- .../ansible/utils/.github/workflows/tests.yml | 45 +- .../ansible/utils/.gitignore | 3 +- .../ansible/utils/.pre-commit-config.yaml | 12 +- .../ansible/utils/CHANGELOG.rst | 84 - .../ansible/utils/FILES.json | 7208 ++++++++--------- .../ansible/utils/MANIFEST.json | 4 +- .../ansible/utils/README.md | 30 +- .../ansible/utils/bindep.txt | 2 + .../ansible/utils/changelogs/changelog.yaml | 102 - .../docs/ansible.utils.ipaddr_filter.rst | 7 - .../docs/ansible.utils.ipmath_filter.rst | 14 +- ...ansible.utils.reduce_on_network_filter.rst | 2 +- .../docs/ansible.utils.update_fact_module.rst | 4 +- .../utils/docs/docsite/rst/filters_ipaddr.rst | 13 +- .../ansible/utils/meta/runtime.yml | 2 +- .../ansible/utils/plugins/action/cli_parse.py | 51 +- .../ansible/utils/plugins/action/fact_diff.py | 2 +- .../utils/plugins/action/update_fact.py | 22 +- .../ansible/utils/plugins/action/validate.py | 2 +- .../utils/plugins/filter/cidr_merge.py | 16 +- .../ansible/utils/plugins/filter/fact_diff.py | 2 +- .../ansible/utils/plugins/filter/ipaddr.py | 3 - .../ansible/utils/plugins/filter/ipcut.py | 40 +- .../ansible/utils/plugins/filter/ipmath.py | 14 +- .../ansible/utils/plugins/filter/ipsubnet.py | 2 +- .../utils/plugins/filter/next_nth_usable.py | 8 +- .../plugins/filter/previous_nth_usable.py | 7 +- .../utils/plugins/filter/reduce_on_network.py | 2 +- .../utils/plugins/filter/usable_range.py | 16 +- .../ansible/utils/plugins/filter/validate.py | 2 +- .../ansible/utils/plugins/lookup/validate.py | 2 +- .../module_utils/common/argspec_validate.py | 3 +- .../plugins/module_utils/common/to_paths.py | 2 +- .../plugins/module_utils/common/utils.py | 6 +- .../utils/plugins/modules/update_fact.py | 4 +- .../plugins/plugin_utils/base/cli_parser.py | 1 - .../plugin_utils/base/ipaddress_utils.py | 24 +- .../plugins/plugin_utils/base/validate.py | 16 +- .../utils/plugins/plugin_utils/from_xml.py | 4 +- .../utils/plugins/plugin_utils/index_of.py | 5 +- .../utils/plugins/plugin_utils/keep_keys.py | 52 +- .../sub_plugins/cli_parser/json_parser.py | 6 +- .../sub_plugins/cli_parser/textfsm_parser.py | 3 +- .../sub_plugins/cli_parser/ttp_parser.py | 21 +- .../sub_plugins/cli_parser/xml_parser.py | 3 +- .../plugins/sub_plugins/validate/config.py | 7 +- .../sub_plugins/validate/jsonschema.py | 7 +- .../ansible/utils/plugins/test/validate.py | 2 +- .../ansible/utils/sonar-project.properties | 39 - .../ansible/utils/test-requirements.txt | 4 +- .../ansible/utils/tests/config.yml | 2 +- .../ansible/utils/tests/conftest.py | 13 - .../utils_cli_parse/tasks/nxos_json.yaml | 2 +- .../utils_cli_parse/tasks/nxos_ttp.yaml | 8 +- .../targets/utils_from_xml/tasks/simple.yaml | 4 +- .../utils_index_of/tasks/examples_lookup.yaml | 18 +- .../targets/utils_index_of/tasks/simple.yaml | 44 +- .../tasks/next_nth_usable.yaml | 8 + .../tasks/previous_nth_usable.yaml | 8 + .../utils_keep_keys/tasks/complex1.yaml | 88 - .../targets/utils_keep_keys/tasks/simple.yaml | 53 +- .../targets/utils_keep_keys/vars/complex.yaml | 36 - .../targets/utils_keep_keys/vars/main.yaml | 26 +- .../utils_remove_keys/tasks/complex1.yaml | 143 - .../utils_remove_keys/vars/complex.yaml | 19 - .../utils_replace_keys/tasks/complex1.yaml | 127 - .../utils_replace_keys/tasks/simple.yaml | 4 - .../utils_replace_keys/vars/complex.yaml | 44 - .../tests/jsonschema/filter.yaml | 10 +- .../tests/jsonschema/lookup.yaml | 6 + .../tests/jsonschema/module.yaml | 7 +- .../utils_validate/tests/jsonschema/test.yaml | 9 +- .../ansible/utils/tests/unit/mock/loader.py | 2 +- .../ansible/utils/tests/unit/mock/procenv.py | 15 +- .../utils/tests/unit/mock/vault_helper.py | 2 +- .../utils/tests/unit/mock/yaml_helper.py | 45 +- .../tests/unit/module_utils/test_get_path.py | 10 +- .../tests/unit/module_utils/test_to_paths.py | 4 +- .../unit/plugins/action/test_update_fact.py | 101 +- .../unit/plugins/action/test_validate.py | 2 +- .../unit/plugins/filter/test_from_xml.py | 8 +- .../tests/unit/plugins/filter/test_ipaddr.py | 11 + .../tests/unit/plugins/filter/test_ipcut.py | 18 +- .../tests/unit/plugins/filter/test_ipv4.py | 14 + .../tests/unit/plugins/filter/test_ipv6.py | 14 + .../tests/unit/plugins/filter/test_ipwrap.py | 14 + .../unit/plugins/filter/test_keep_keys.py | 26 - .../plugins/plugin_utils/test_index_of.py | 20 +- .../plugin_utils/test_ipaddress_utils.py | 60 - .../cli_parsers/test_ttp_parser.py | 34 - .../sub_plugins/validate/test_config.py | 2 +- .../ansible/utils/tox-ansible.ini | 11 +- .../__pycache__/ipaddr.cpython-39.pyc | Bin 278 -> 240 bytes .../router-certbot.yml} | 17 +- playbooks/mrwho/router-nginx.yml | 144 + roles/nginx/tasks/nginx-config.yml | 6 + roles/nginx/tasks/nginx-stream.yml | 6 +- .../{nginx-stream.j2 => nginx-stream.conf.j2} | 0 100 files changed, 4216 insertions(+), 5001 deletions(-) delete mode 100644 collections/ansible_collections/ansible/utils/sonar-project.properties delete mode 100644 collections/ansible_collections/ansible/utils/tests/conftest.py delete mode 100644 collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/tasks/complex1.yaml delete mode 100644 collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/vars/complex.yaml delete mode 100644 collections/ansible_collections/ansible/utils/tests/integration/targets/utils_remove_keys/tasks/complex1.yaml delete mode 100644 collections/ansible_collections/ansible/utils/tests/integration/targets/utils_remove_keys/vars/complex.yaml delete mode 100644 collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/tasks/complex1.yaml delete mode 100644 collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/vars/complex.yaml delete mode 100644 collections/ansible_collections/ansible/utils/tests/unit/plugins/plugin_utils/test_ipaddress_utils.py rename playbooks/{certbot-dns.yml => mrwho/router-certbot.yml} (68%) create mode 100644 playbooks/mrwho/router-nginx.yml rename roles/nginx/templates/{nginx-stream.j2 => nginx-stream.conf.j2} (100%) diff --git a/.gitignore b/.gitignore index f88a84b..006e26e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ # ---> Ansible *.retry .ansible/ - +collections/ diff --git a/ansible.cfg b/ansible.cfg index 965cc80..31d1ee4 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -1,12 +1,14 @@ [defaults] -roles_path = roles -collections_paths = collections -filter_plugins = filter_plugins -retry_files_enabled = False -stdout_callback = yaml -interpreter_python = auto_silent -host_key_checking = False -deprecation_warnings=False +roles_path = roles +collections_paths = collections +filter_plugins = filter_plugins +retry_files_enabled = False +interpreter_python = auto_silent +host_key_checking = False +result_format = yaml +stdout_callback = default +callback_result_format = yaml +deprecation_warnings = False [ssh_connection] ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null diff --git a/collections/ansible_collections/ansible/utils/.github/workflows/tests.yml b/collections/ansible_collections/ansible/utils/.github/workflows/tests.yml index c64f73b..6f075eb 100644 --- a/collections/ansible_collections/ansible/utils/.github/workflows/tests.yml +++ b/collections/ansible_collections/ansible/utils/.github/workflows/tests.yml @@ -2,61 +2,28 @@ name: "CI" concurrency: - group: ${{ github.head_ref || github.run_id }}-${{ github.event_name }} + group: ${{ github.head_ref || github.run_id }} cancel-in-progress: true on: # yamllint disable-line rule:truthy - push: - branches: [main] - pull_request_target: + pull_request: branches: [main] workflow_dispatch: schedule: - cron: '0 0 * * *' jobs: - sonar: - name: SonarCloud - uses: ansible/ansible-content-actions/.github/workflows/sonarcloud.yaml@main - with: - python_version: "3.12" - test_command: "pytest tests/unit -v --cov-report xml --cov=./ -o 'addopts='" - secrets: - SONAR_TOKEN: ${{ secrets.ANSIBLE_COLLECTIONS_ORG_SONAR_TOKEN_CICD_BOT }} - changelog: uses: ansible/ansible-content-actions/.github/workflows/changelog.yaml@main - if: github.event_name == 'pull_request_target' - + if: github.event_name == 'pull_request' ansible-lint: uses: ansible/ansible-content-actions/.github/workflows/ansible_lint.yaml@main - sanity: uses: ansible/ansible-content-actions/.github/workflows/sanity.yaml@main - unit-galaxy: uses: ansible/ansible-content-actions/.github/workflows/unit.yaml@main - integration: uses: ansible/ansible-content-actions/.github/workflows/integration.yaml@main - - report-status: - if: ${{ always() && github.event_name == 'schedule' }} - needs: - - changelog - - ansible-lint - - sanity - - unit-galaxy - - integration - uses: ansible/ansible-content-actions/.github/workflows/upload_upstream_results.yaml@main - with: - job_context: ${{ toJSON(needs) }} - component_name: ${{ github.event.repository.name }} - UPLOAD_USER: ${{ vars.PDE_ORG_RESULTS_AGGREGATOR_UPLOAD_USER }} - UPLOAD_URL: ${{ vars.PDE_ORG_RESULTS_AGGREGATOR_UPLOAD_URL }} - secrets: - UPLOAD_PASSWORD: ${{ secrets.PDE_ORG_RESULTS_UPLOAD_PASSWORD }} - all_green: if: ${{ always() }} needs: @@ -65,8 +32,6 @@ jobs: - unit-galaxy - ansible-lint - integration - - sonar - - report-status runs-on: ubuntu-latest steps: - run: >- @@ -76,7 +41,5 @@ jobs: '${{ needs.integration.result }}', '${{ needs.sanity.result }}', '${{ needs.unit-galaxy.result }}', - '${{ needs.ansible-lint.result }}', - '${{ needs.sonar.result }}', - '${{ needs.report-status.result }}' + '${{ needs.ansible-lint.result }}' ])" diff --git a/collections/ansible_collections/ansible/utils/.gitignore b/collections/ansible_collections/ansible/utils/.gitignore index c3a808c..6ec57ca 100644 --- a/collections/ansible_collections/ansible/utils/.gitignore +++ b/collections/ansible_collections/ansible/utils/.gitignore @@ -135,5 +135,4 @@ dmypy.json .pyre/ # ide -.tests/integration/inventory -.vscode/ +.vscode diff --git a/collections/ansible_collections/ansible/utils/.pre-commit-config.yaml b/collections/ansible_collections/ansible/utils/.pre-commit-config.yaml index d24f3a5..598f72b 100644 --- a/collections/ansible_collections/ansible/utils/.pre-commit-config.yaml +++ b/collections/ansible_collections/ansible/utils/.pre-commit-config.yaml @@ -1,13 +1,13 @@ --- repos: - repo: https://github.com/ansible-network/collection_prep - rev: da78082ea59b03ad16cd7dbee267f53e8ff50bb5 + rev: 1.1.1 hooks: # - id: autoversion # removed as being handled by GHA push and release drafter - id: update-docs - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v6.0.0 + rev: v4.5.0 hooks: - id: check-merge-conflict - id: debug-statements @@ -16,7 +16,7 @@ repos: - id: trailing-whitespace - repo: https://github.com/asottile/add-trailing-comma - rev: v3.2.0 + rev: v3.1.0 hooks: - id: add-trailing-comma @@ -29,18 +29,18 @@ repos: - prettier-plugin-toml - repo: https://github.com/PyCQA/isort - rev: 6.0.1 + rev: 5.13.2 hooks: - id: isort name: Sort import statements using isort args: ["--filter-files"] - repo: https://github.com/psf/black - rev: 25.1.0 + rev: 23.12.1 hooks: - id: black - repo: https://github.com/pycqa/flake8 - rev: 7.3.0 + rev: 7.0.0 hooks: - id: flake8 diff --git a/collections/ansible_collections/ansible/utils/CHANGELOG.rst b/collections/ansible_collections/ansible/utils/CHANGELOG.rst index 335287e..95f5b22 100644 --- a/collections/ansible_collections/ansible/utils/CHANGELOG.rst +++ b/collections/ansible_collections/ansible/utils/CHANGELOG.rst @@ -4,90 +4,6 @@ Ansible Utils Collection Release Notes .. contents:: Topics -v6.0.2 -====== - -Bugfixes --------- - -- cidr_merge - Fix filter failing when used inside a Jinja2 macro called with ``with context`` by unwrapping Ansible lazy template lists before validation. -- cli_parse - Honor ttp_results.results flat_list in TTP parser so output is a single-level list instead of double-wrapped (https://github.com/ansible-collections/ansible.utils/issues/402). -- ipaddress_utils - Support Python 3.14+ by using the public ``version`` attribute instead of the removed private ``_version`` on ``ipaddress`` network objects (bpo-118710). -- update_fact - Use task_vars at top-level instead of the deprecated ``vars`` key for compatibility with ansible-core 2.24 (ansible/ansible issue - -v6.0.1 -====== - -Bugfixes --------- - -- Add a cleanup step that removes empty {} and [] values from lists in keep_keys_from_dict_n_list() - -Documentation Changes ---------------------- - -- Fix the description of the reduce_on_network filter. -- Fix the module name in ipmath filter. - -v6.0.0 -====== - -Release Summary ---------------- - -With this release, the minimum required version of `ansible-core` for this collection is `2.16.0`. The last version known to be compatible with `ansible-core` versions below `2.16` is v5.1.2. - -Major Changes -------------- - -- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now. - -v5.1.2 -====== - -Bugfixes --------- - -- keep_keys - Fixes keep_keys filter to retain the entire node when a key match occurs, rather than just the leaf node values. - -v5.1.1 -====== - -Bugfixes --------- - -- keep_keys - Fixes issue where all keys are removed when data is passed in as a dict. - -v5.1.0 -====== - -Minor Changes -------------- - -- Allows the cli_parse module to find parser.template_path inside roles or collections when a path relative to the role/collection directory is provided. -- Fix cli_parse module to require a connection. -- Previously, the ansible.utils.ipcut filter only supported IPv6 addresses, leading to confusing error messages when used with IPv4 addresses. This fix ensures that the filter now appropriately handles both IPv4 and IPv6 addresses. -- Removed conditional check for deprecated ansible.netcommon.cli_parse from ansible.utils.cli_parse -- The from_xml filter returns a python dictionary instead of a json string. - -Documentation Changes ---------------------- - -- Add a wildcard mask/hostmask documentation to ipaddr filter doc page to obtain an IP address's wildcard mask/hostmask. - -v5.0.0 -====== - -Release Summary ---------------- - -With this release, the minimum required version of `ansible-core` for this collection is `2.15.0`. The last version known to be compatible with `ansible-core` versions below `2.15` is v4.1.0. - -Major Changes -------------- - -- Bumping `requires_ansible` to `>=2.15.0`, since previous ansible-core versions are EoL now. - v4.1.0 ====== diff --git a/collections/ansible_collections/ansible/utils/FILES.json b/collections/ansible_collections/ansible/utils/FILES.json index dee0c45..acfc8da 100644 --- a/collections/ansible_collections/ansible/utils/FILES.json +++ b/collections/ansible_collections/ansible/utils/FILES.json @@ -7,55 +7,6 @@ "chksum_sha256": null, "format": 1 }, - { - "name": ".isort.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4ca0097b4a09ffae0f6cad7b280f8f7acf1b6cc0c4bfd28a79ddc81d3b840262", - "format": 1 - }, - { - "name": "changelogs", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "changelogs/fragments", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "changelogs/fragments/.keep", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "changelogs/config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "570abd82d0ec7ac5220615baee2491d67a7551d8483509a0949ffe0e4dd996c0", - "format": 1 - }, - { - "name": "changelogs/changelog.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4d38c3a36ddb7c8f742645431beb00c73a5827557b666612cc6d52c5001321a3", - "format": 1 - }, - { - "name": "README.md", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0513ac9081a038a2c66ba7083c29277826e7654e905590d38ce5cfc851ae7dd2", - "format": 1 - }, { "name": ".github", "ftype": "dir", @@ -63,13 +14,6 @@ "chksum_sha256": null, "format": 1 }, - { - "name": ".github/release-drafter.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", - "format": 1 - }, { "name": ".github/workflows", "ftype": "dir", @@ -78,10 +22,10 @@ "format": 1 }, { - "name": ".github/workflows/tests.yml", + "name": ".github/workflows/codecoverage.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd38daff467faf50e4b38719b6a3592cbceaf4ed453b9ddb32ccfd96f6e5c83c", + "chksum_sha256": "28c54e3df500125a471200a1bf1e69b3210a5afc41eb1f7b565ad3f1b57c81e0", "format": 1 }, { @@ -91,6 +35,13 @@ "chksum_sha256": "58fcbcfb57321441a102f21522b00acd8fa1346a465f5b46a6f02044962b2e9b", "format": 1 }, + { + "name": ".github/workflows/check_label.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9eb6abad2038b10cd6ea70310aa88d163f10c374d1728df29bb553eff2acfaba", + "format": 1 + }, { "name": ".github/workflows/token_refresh.yml", "ftype": "file", @@ -98,6 +49,13 @@ "chksum_sha256": "c079a657080c6e31600f25fc7afcb46a843890ef86cb9f3a1a574c08446eeb35", "format": 1 }, + { + "name": ".github/workflows/tests.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7be05f3f2b23dc51a5c8069b6bd3f83e14e523a476f57d7b5f0ac48e4076c691", + "format": 1 + }, { "name": ".github/workflows/release.yml", "ftype": "file", @@ -106,2852 +64,10 @@ "format": 1 }, { - "name": ".github/workflows/check_label.yml", + "name": ".github/release-drafter.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9eb6abad2038b10cd6ea70310aa88d163f10c374d1728df29bb553eff2acfaba", - "format": 1 - }, - { - "name": "tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/config.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "71ff5426485cc74b3c360a0941dc40661ef17ffc8983435481f55f9f4143ae4f", - "format": 1 - }, - { - "name": "tests/integration", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/requirements.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b75218b504713c1965fd2ade34d0a29db85713adb484dabaac17bc9967bf5a22", - "format": 1 - }, - { - "name": "tests/integration/targets", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_consolidate", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_consolidate/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_consolidate/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_consolidate/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7105aaee542a860d153d0269d8dcfc07d3630986f2898f2f0c6a8a848df6467d", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_consolidate/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_consolidate/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2b9863b06cb4ff53639a027557da3cd5ac6b6b08855a181fa95bbccea94a4568", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests/config", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests/config/module.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3899feac6b3f90205fed11d72cd13781de4d66f82dcffa497dd18d001d198298", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests/config/test.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "60c4bdf55c5ad5f5adeccc04df75d979f1b9739d6706bdf1e022d05e7e726a97", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests/config/filter.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ba908086e5fbc87673dac750de6dd341ddb7da9d9250571b759abd24a83fe35a", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests/config/lookup.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ba6482b4ff88840a1520a4a4a4f8ba25052b3fbc6b5e21a8e70abe93688e2728", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests/jsonschema", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests/jsonschema/module.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "23428ed6d785661ea4bf79f1f0fd9a5b32f8ffe7a26566969d31647c253e677e", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests/jsonschema/test.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "82a1730616aee47a3288d3d514627408187469a89827ecb5b15e91ff26bc7e4d", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests/jsonschema/filter.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "530267038d0cbf38491d75700c41fe315d20be30078a379aa143142493102f94", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tests/jsonschema/lookup.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "28972a1684eb402b4a1e8f257b9a07cafe7e70e342cc49a382ddb56bef0e61fa", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "56fa753c51c136c218723eba14767e0da3fa34f0745a9d138791a29df3c91565", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/criteria", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/criteria/oper_status_up.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2c1159ec568a023a818953cb77c8e1618af99a8ec217d6a3ac108d972b78790d", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/criteria/rules.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fff82706f9f040c45e3e8d927968dfb5297e7c99904c4aa5b34f6ad9262619b7", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/criteria/format_checker.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "734eab506a730d90e57069d5e1177135ffeb0ac68db61942576e49144b8a5094", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/criteria/check_list_data.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "80ed8bbc4b06991acb84b2b8c61bf8a45cfc0091c2b9b4b443f02fd030de16e8", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/criteria/enabled_check.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d37e8293e59f15873c54a47542cb0a9190b0f2f615126f276c6177816bb608ed", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/criteria/in_rate_check.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "eaf0cb45846bc2ebd25ecfbe85308fd7e3358e4900da1ce0d4c9418b42ab7aa7", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/criteria/crc_error_check.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a1ec6bca6330a50b33920472d576acf1d62287a8aadbcf9ee63aed6673a2d784", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/data", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/data/show_interface.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e9d872c87bec35f958131f5a57469184dcb8364000a3fd2c764e698b0f7e7148", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/data/warn.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9a5abf45b025490534361d18b5fd3e8c4ec56c52817d72a9d44c01d33e315d7c", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/data/test_list_data.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "acc07b62f23f458923737c4cd4a66bd05d1e71eb4f384003baaf2dcc760d6349", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/data/fail.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5bc357ee82697a6f8a4920451a0fdfc81f9f6af9522a134d26112abd20b41562", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/data/pass.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1c97ae3826430fb1d113b8ed534f4609057b61cf2864a79eb1d603cf02281d25", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/files/data/test_format_checker.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5d4327ea944ff2f274a6f4161c9c6f69782202d1455f383a973819e4fbb85f80", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_validate/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a0a2c468f24a66b8cea391acc05802e57275f212e1d4a467516bafd440f7765e", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/output", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/output/nxos_show_interface_ttp_parsed.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1470ac4a29d08f6ef1dbf1ec6bc90fcd5cfaf200e8ad1dfee8389478ba522be7", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/output/nxos_show_version_textfsm_parsed.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f397b4e90691b66a63829f2fa42874b5bea7e6558f712ce37582238e789746f7", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/output/nxos_show_interface_json_text.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6c28e733dc3473f0dd9a1cbe5c29b0f1be25906ddb0ecd9eb3c9cd5ec9cd4f83", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/output/nxos_show_interface_xml_parsed.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "278afc0fc6a54b10bec893de1cce2a912fe55ea37993627c9b869451ccfa8523", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/nxos_ttp.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "06c3a690985d1f9bdcbd9acddcab378e61924ecd6c1794e768199d012df2c87b", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/argspec.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "77982a1f454b2b6a7243fc01f68e48e1a8309baa510db00dc3f6bd3e0a0b4bdd", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/ubuntu_textfsm.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dca8446bfde97c3bcfae26d7d157d9600f9c3ca5f84f970b5d2e4aecb38cdfaf", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9254cb4133f860ba7fe60ffa731c6c6c1af94d85f9a94b464523e85d0523b6f5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/fedora_ttp.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "86028821b368a285f488ff0fed9f417682e8e979810221189d781c6e09554fca", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/ubuntu_ttp.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "86028821b368a285f488ff0fed9f417682e8e979810221189d781c6e09554fca", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/nxos_json.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1f1480a525accaf8e33cf554ae7d377764fd7af8cf242196b6e6a550cf1c929a", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/fedora_textfsm.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dca8446bfde97c3bcfae26d7d157d9600f9c3ca5f84f970b5d2e4aecb38cdfaf", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/centos_ttp.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "86028821b368a285f488ff0fed9f417682e8e979810221189d781c6e09554fca", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/nxos_textfsm.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3136ee047a0c7a86abe2d8b1bfaf6f71108b34836ac3a0784872ead1c4530e79", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/centos_textfsm.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dca8446bfde97c3bcfae26d7d157d9600f9c3ca5f84f970b5d2e4aecb38cdfaf", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/tasks/nxos_xml.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2da27258e5c5b2f59e994347df9c2024c1578366a598bdb9f92b7b6525375fde", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/templates", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/templates/nxos_show_interface.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bcebc3ef1d3e94fd156e655704999ee16837a1c95b90c6d8bbd567e47e4ce272", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/templates/centos_ifconfig.textfsm", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f10f192897c123e3e7fd0823384db59036d0c36b178bad57229e204688c2ba", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/templates/centos_df_-h.ttp", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "83912bee5ca45c074370bf195532ee3172a4b2e687055d5639e933d5522c33d2", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/templates/nxos_show_interface.ttp", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7b54c727fb9ab5731dbef7b5c271a41276278b15b7408bd24e25eda28e5c1a09", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/templates/fedora_df_-h.ttp", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "83912bee5ca45c074370bf195532ee3172a4b2e687055d5639e933d5522c33d2", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/templates/fedora_ifconfig.textfsm", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f10f192897c123e3e7fd0823384db59036d0c36b178bad57229e204688c2ba", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/templates/ubuntu_df_-h.ttp", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "83912bee5ca45c074370bf195532ee3172a4b2e687055d5639e933d5522c33d2", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/templates/ubuntu_ifconfig.textfsm", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f10f192897c123e3e7fd0823384db59036d0c36b178bad57229e204688c2ba", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/templates/nxos_show_version.textfsm", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dfd59adde11de6285a62179e45db7b4e20e9ca61f276f6567c86c8455f796887", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/files", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/files/nxos_show_interface.xml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "363ab311f6ce9d7598f3ec3ce5546b33d634a8f079cd739ec478adc2a08fc9db", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/files/nxos_show_interface.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "85baa8eed232e6d7dd7a470efb6b4f3efce552c847d1f73c80c651d1441000e5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_cli_parse/files/nxos_show_version.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7f264359b5e09e5093a59c73d9f844f55427b67177f0727ff3223f509d4fda83", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_get_path", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_get_path/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_get_path/tasks/argspec.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "11e998ff750cd816aac9742136193a407fed74fa25be42114a9b00fbf7ef4122", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_get_path/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_get_path/tasks/examples_lookup.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5633047145361740d866a7078aa2fab73b996ebd94533d1915a4aa287460e3ff", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_get_path/tasks/examples_filter.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f68eb7831768f881ad74e6cabc72c2b831369028c100f5281d51a1a00665edfb", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_get_path/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "04026349ef6f6ef67b4240091acbda13f9f1e4bee2e2d5c0eb78e43e69d0ff63", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_paths", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_paths/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_paths/tasks/argspec.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e49e34f5831d822317ba67cd1c78a0bc7d3c7790fb8458ee17debda2c9b56cfa", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_paths/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_paths/tasks/examples_lookup.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e7effabb7c07aeb379aceac6e0bc1dc79b3866a75af1780184cff1a716fa4a52", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_paths/tasks/examples_filter.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b51d0464be1d5eebb303d003c62a7d549fa97d28b926a2c2d5f105bd888413e4", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_paths/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aa868cb38568c82458b11d5cfc3af8b45caeea0a87f66cdedd57de808acd8eb1", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_paths/tasks/empty_members.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2fe1cff51babbc914c2fb685bdbbb4a3930ca6914bf9a2b814804f088702cc6a", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_keep_keys", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_keep_keys/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_keep_keys/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_keep_keys/tasks/complex1.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4eae129af1ca09b32bad123daeca8c452f4822876e4d46f317d65bef077bba97", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_keep_keys/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "796f35d281e21048beb40f24a7605521b5455aef469c2c97d7fad536c268072a", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_keep_keys/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_keep_keys/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1090c81fabfbe148d791c02b244f3563170549eb02873e3b8036388c089427ba", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_keep_keys/vars/complex.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "07a1fba5a1f3a9eb524f52b21846171288cb7f9c1ea8f3c688255afd1bcb28ec", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_index_of", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_index_of/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_index_of/tasks/argspec.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "98d3173c95800792d144508ea1cabdb032d318d1cc77b9f0416a21e6cb732d4a", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_index_of/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_index_of/tasks/examples_lookup.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "019107f5b5f7e38e163879098bf1325cfd99d44e68bf44d276c358967b4e08ef", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_index_of/tasks/examples_filter.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d430649f6347b6327300fa07b06751508823293284efcb2d85cb0121fba493c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_index_of/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a3c10cc057ea67c8590581741d9953a4e86601971c298c9d41b9995b12ffda63", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_from_xml", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_from_xml/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_from_xml/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_from_xml/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6fff2562510808695b54ba044364ea8f5a76d2a435cbf00938e4eda746dd908c", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv4_address.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "615dbbb31b07b9482dc6ae37305ab4d5b5c019a59bc10361ac40218d5de79203", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/reserved.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ffe3ff53d0356e042999d9b0a78e95d27d1fa5d8d0912163eb593f5b5594ecb9", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/in_any_network.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e56f13ad78aba2bb04ffd61f951cba00731bafd2fdaccab7bfdee64f88e2346e", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/public.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0e004a3450bd9e12583d55af195a3b07307cf91dba57ee7a43ba8717c3e3ff4b", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/subnet_of.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "83ff3bf515253a8a340e7690c88f580f56ec1e8397a1e67d4a34cd7f29ad6ef6", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/resolvable.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "66ec974d89255561d81d2a6a62ace155dd6cc4f028b8fd7f1e77ec3dc270fd27", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv4.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "afdc9774b465291d36a84a253f6b74b3be52e6534df4c09aed5edfe1702a38a4", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv6_address.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b288eb0fa02b285827f29fe3cfc07240e41728bdb5cf774d95e47fdb3a1724da", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/private.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9a0e6c4c080e3a1e916dbd47a051553d38b485e778d55c20ca85498c4e482376", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/multicast.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d8e39c219e278db46e2486ad411fe474860431184fb5e432fe36e226e26d508c", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv6_ipv4_mapped.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3bf41c07dfa38283acd03c2d9c837611736dba49158652a919afaeb6f3fafcfa", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv4_hostmask.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "97dbcf159a748ca1f99c839d55af01455cf68e005ca30008cd48215d097eb461", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv4_netmask.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "edbf017def035b5ca082756de8a91fcf4bfbcc4fc3414aa5fc60bd131a98129d", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv6_teredo.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1ff255343b3b1d352575ac914f4268ebca0dbbdb780f6827f75382ef4df536a", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ip_address.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "21061cd07a8a22833eb928c528ec030c11cd183896a31074bdc83fd1e898a637", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/supernet_of.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c43c74df672831d7ec50692236de868518702232a9f18655e666cd317182773e", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ip.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "93fe8c749063d99f6ee84648c75b90b12453f8144d0a26c145472a2f805ef5dd", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/in_one_network.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "14eed91cb6c11783729c61e43077f02a8143a472f7c711d8ec32bb845ea0aa47", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/unspecified.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "56dbed00bd55bbf9d35fa877fc0c09f3dc68dec8e0a59303911001ed781c589d", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/mac.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4ada1fd18ed85280d8f5bad674d7f5dfecec48ff379a8e707dbf7bbd8ab82111", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/in_network.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "179f6a091bc6a3b788e4ab31205bc1de8762f31d5cd134f8910748e8f3f77d17", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/loopback.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aad21feb2e6d9130c6d0e61c8babce281670ae4eccac0c9f5bfbebc7a868403d", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv6.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "17f7a28a9a7796ee29e99b080af194ba1923736bdc1e17cb6afb4bbfae1e3820", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv6_sixtofour.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0b1534121ecea3709d0fb5b8dd1506c57bc6a6dae5097cd7c90bd52bb9f6d16a", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_netaddr_test/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c00756f4c7d02ea4d04b4237141685543b0c673a354774e61b2acb48f45837bd", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_xml", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_xml/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_xml/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_xml/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7228288965760ffa35f3630bf7ebfc7a6b1709d5d97550e2a2da863b35648551", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_xml/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_to_xml/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b8405fb4146ef4dbfa941874b93d3c87e02310ddaabf8407f2691da3855f1093", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_fact_diff", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_fact_diff/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_fact_diff/tasks/argspec.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4d2b497c4f889ab78c078d4a267322691abe8a025dfb71a1dc64180167a93f8b", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_fact_diff/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_fact_diff/tasks/filter.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c54727ea05083048fe11d3277aca6667dd9687d1e95010b6982ae81defb9bc13", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_fact_diff/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f553cdcfd97be39cf9c0067d12e3b15bb3d783fb9f7d21559a1f3684f8483f2f", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_fact_diff/tasks/examples.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8ca4ff69a313d35d39d1faa6228c03971a9019395d85ab1fec417a331f3c8330", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_update_fact", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_update_fact/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_update_fact/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8ebea41c6f8a93be2240cd0c45732a3d596cf571cb64547dc113217da56b575b", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_param_list_compare", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_param_list_compare/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_param_list_compare/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_param_list_compare/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e507d9cb6b6a4a4e93e9c7cacacaadeab166f8aae0d1b4372526cc9fc4148829", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipcut.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "11eca908bac30ceb6d2296a483d2d9ca137f427f34656b435474e7b9b838e1a4", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipaddr.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6b8a511909c70c8f1b2f1e8c7a1a2f5d278d299f6b66ac14bce90c77446ddd9e", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipv6.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e9f05b478b7cad442c6fdc31f6abe887e32a8c205b0acc24c49712d87fccc18c", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipsubnet.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d3cfcf47ee32f59441573a19ab73383b433cbbc0788a9b8ffc0bb925cdffdf64", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/previous_nth_usable.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a718dbd073789f3df11377b665954af0aba4d855ff08ac96e1fe74f1b6425592", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipwrap.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b340a4d9688caa6c62d57c83a61350ef476be72e956ddc2652be11f83bda9d82", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/hwaddr.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d79ea40b43a1d173c26b0cbf3e86028476fc2ac535984110e9650fdb0cd5de85", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipmath.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e4f81b95ab97909d5700ff50ab0c20b93d8f5be9b581a343b880c415243e2e5c", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/network_in_usable.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f7a4cc15d93654bfee1af885d8a9d49608219d0aefd42b3207742bcb8e913e3e", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/nthhost.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "55b128379a8a764e2d12fb2d8ed54186572eecd15fce2ec9ca80391fdc56cea0", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/network_in_network.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e0b9961802edf76f585891f5b1128149be2c48718a337d7a26c3c15dbf0903e5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/reduce_on_network.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ce3a3f10c18b53a0e0530002482b206fe94f919afd70c47e553869adf08341f2", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipv6form.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0484829f9afd48bac830f255435c598be0a6dacf9af7ef8244beeebcd9d357ca", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipv4.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a8383abffdac0845a506803744ff43aafb6a69c2b748835ea3a5c9e07d73f969", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/slaac.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "104c76112b82ebbff3f9a8edc5d6e4f7403b813fc1ffdc1bed83fc6c1630bc0e", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ip4_hex.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "245f6e53dd8b2f6bcdde2ee8d7d2037de96e3438c8702475a2907423e3a036b3", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/macaddr.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0d9c2c75fdd7dba56d6dad2678ea8189dd3f72fba079b9c64f7327de94a8464d", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/cidr_merge.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7424055f53f023017fb31c9f657d4852ab6105645f23f70ecb9ef8d2b8e24594", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/tasks/next_nth_usable.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aad5470ecf7ba4bed7e2e443f46b45231f58ac615b5210565bc31464b2f2c151", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_ipaddr_filter/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "811f88ff83143ba7f25fa66defe9ecf378bb5076162ae102d8ae7478ac253416", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_replace_keys", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_replace_keys/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_replace_keys/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_replace_keys/tasks/complex1.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "31786a9190337d427ebf3c7e31e4bcf20fb263108e3af30f0d753d551522d08e", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_replace_keys/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d74d94b778c70df0eaf4cc262475bdbdeafc2fee3e7c6bc04a3ec472f77bf0a8", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_replace_keys/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_replace_keys/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7bd28edb6a57c74d136d92d4faa678d480d17c8db0239fa294da1ab69cb1437c", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_replace_keys/vars/complex.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cd08cdae201407ab139a3d836e375df79377136186767310393ee68a0d77a014", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_remove_keys", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_remove_keys/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_remove_keys/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_remove_keys/tasks/complex1.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0a88b140ac7f5ad68cf0457dbb59abf396ad451c9545c2ab8a5e9bd962032808", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_remove_keys/tasks/simple.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ac949eae4a5560d8ab122ea6a6dc2266bca438562a17071bc2339fe2e775dd09", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_remove_keys/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_remove_keys/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f64c5b12c89da7b8a953d4ee3d58e5ff102206f34cef5092be9aefa45c93d34b", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_remove_keys/vars/complex.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0b206a8db78a58cd7089608e4cfdd1236d41b40a9fedf0afa0cd285ac84adad2", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_usable_range", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_usable_range/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_usable_range/tasks/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_usable_range/tasks/example_filter.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "19a626c2c0fbe4235775b9bf9ae7b13e0c332faf940f6d733512b6f5ed3cb523", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_usable_range/tasks/argspec.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e7f5735cd4b1509e1d0b98d4857ede083995365ba6b5bf07639ac516e36e8c04", - "format": 1 - }, - { - "name": "tests/integration/targets/utils_usable_range/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/utils_usable_range/vars/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cb30024867cbb7d7176c4459c7c6f1c798967e788af4b537789305cbf9659ba1", - "format": 1 - }, - { - "name": "tests/integration/test_integration.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ff6a6be37cf9314c1dcdff0004949ef58a027b2a9b1c931ab0548e255a66dd25", - "format": 1 - }, - { - "name": "tests/unit", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/requirements.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fcea5298285c0542897536b02f5c7753645c7fa83abdcac6b0f3e15ec3d27160", - "format": 1 - }, - { - "name": "tests/unit/module_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/module_utils/test_dict_merge.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8f1ef47e9e46b2f40a0043243467b56b4884bd4ad181eb7ffd0e1881d7fe50b2", - "format": 1 - }, - { - "name": "tests/unit/module_utils/test_get_path.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "401919480f05d7310119e5358f260902c3d51e045bd38dba43bf28e1c2c5b907", - "format": 1 - }, - { - "name": "tests/unit/module_utils/test_to_paths.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a183ecce3dfa405705a2da9808d5e05e8f7dc689995c0fce6254fac01097a4d7", - "format": 1 - }, - { - "name": "tests/unit/module_utils/test_argspec_validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5f83ac9ca3034d6af7b3b8fd42d52daf073981d1191c7d26bd094d23966488ff", - "format": 1 - }, - { - "name": "tests/unit/module_utils/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/module_utils/fixtures/large.json", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "56dadab818a719846f64c0fcfd7d0c2c1eeb34cdb8cc646033311ef90b0770a1", - "format": 1 - }, - { - "name": "tests/unit/module_utils/fixtures/docstring.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1f147714958e065abe3622fa3e94ee26f70d06212de8cdbe54210c28a4e71b02", - "format": 1 - }, - { - "name": "tests/unit/module_utils/fixtures/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/module_utils/test_sort_list.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "df4ed8325d26693e4b170ac52084db62ccc7abb82b2a8706b491bb47c4c7501a", - "format": 1 - }, - { - "name": "tests/unit/module_utils/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/plugins", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/test", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ipv6.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c8f7bf3952f67b0aad7cf95b5644ab205530434e7dd9a2e563201ad88a61d6b8", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_multicast.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1e70c22a75e397e2ffcbada31b35ee8419f19045db11858e13043c61b10d4eb7", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_reserved.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7c06b1cffb5bf6d5a5f5154540cc58da0563a99c4fa4a2f302504c8ac089b679", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ipv4_address.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "de5141c7d33925c220f96f294bf2612aefbd50d8d46d44f209e9e2ca15e0df80", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ipv6_teredo.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "90d7673591333a46ae82870d88c081454a91993f9d46ebe94f284f2d59de591e", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_subnet_of.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d658246015b46f18ba15c6b0b69ae0746dbbffd7c0763450b266d620f0d57fe2", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ipv6_address.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a91f65dce674d2e3b049038f52429fb6f75cc160fec14ca03d711fc1915e0034", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_private.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "62aac1efc1576d3b792fc4a3c9565e06b4ef604d8cd46520efc63cd222120b35", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_in_one_network.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "46f22a802d660b6835844faa130fb932e1263dedcd286bc7797be02f7931d0f9", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ipv4_hostmask.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "add5c19519be801bdd9a25b86c62002594835e9d95499b8d053e8f58edee0292", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_mac.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1aab527425e836db9f88ef4f1c7ceb8b9a37600036149df373634f260a85c13d", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_in_network.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7d630c57f1c068e5a3a4f0459d366870303ed999c38774b02d4469a040d5daef", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_unspecified.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "396227565c79653d45bbd485dcec679ad3d3241193410e1ee82d3ec99f2c50d2", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_supernet_of.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "71a3934bc33250f504573bf31f66b83816c732fdcf992d0f3eaaeac0cfc25642", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4b8467971ce57d85ab5d556f433155616a200e66ac8a504e469215ce0e02028b", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ipv6_ipv4_mapped.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bb2bc0c4cbf9ebe9725da184fcdc473acd4fadfc7d520cb0b80db5bd2c3d4c6c", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ip.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9b675dab5552272808b03c47085d317face21b690b239c21ac02e0a11d0e34e8", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_in_any_network.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "481edf1f24d8aee5e85b4e3838975467662b94b1aa8d90ac1a01f37d439766c2", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_resolvable.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d4280507b9cb9f12927b94bf54cefae7f2de48666071b5755dcc586019670fa1", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ipv4.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "693395d9792afc9f495cbed165f9c7f01811b8d3c2482f9dabe0452812ff668e", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_loopback.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1b731fee48c23f26b2fe998ba7aab7a10e0ba36aecc1597e02e13a32220d4b9f", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ipv4_netmask.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "89631b6c8057acdfc77c078dc17e0648977928a361455ce9c9fa1a4ade33ae3b", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_public.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d6d78b92c0e0c283dd688712018e9af484669f6ffb50cdbd6e7257e44176ea5c", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ipv6_sixtofour.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6a490ca51048d833decd376e1d2f3820ee76b3b986fd23f356478f6b14a75a6e", - "format": 1 - }, - { - "name": "tests/unit/plugins/test/test_ip_address.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d1c7d5814a1cce278bdd8a67d5947dfdee8bb8fcf9d82b6d6eb987103449e9c4", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/validate", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/validate/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/validate/test_config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "50dc07300493e5b446442253ecffb7253358275cea10b8e32d8491535e743d49", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures/nxos_show_version.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "280b9a49752bd9ebddf26798b7df94115c3f3402877d350e60b3236a33fb3f68", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures/ios_show_ip_interface_brief.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cf7860ac3fe8175f2a062881ecc52f977f14fdcf92ae1a60df68edda493f645a", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures/nxos_show_version.ttp", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "19b19fa15a9d932cf92cb94ecdca1b5b3c64e7961cef2d6574264930e6dfe466", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures/nxos_show_version_invalid.textfsm", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "70efa127c6437e5a9428fb9701dad0e5bdf1425f0ad87c4d18ff3a4042154bc8", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures/nxos_show_version.textfsm", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e0ad0e83aca80d858e8c7301094b1c67e260223cf650af013980461928429916", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/test_json_parser.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a4cdde648197c46f6f387a94cde4376538f0de3f8a731c322f39534bd402ff47", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/test_xml_parser.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "387a56ea06526bdc0b0b39e4710fa461ce9e0df677ee778879e6c152231db5db", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/test_textfsm_parser.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1a6c853a771571f23a01266ed0d147859713c049e55e515d621df180b36d83cb", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/test_ttp_parser.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "998e5a05b52074874cd6c403b29c8c4f6f4ead2e35744133f673cecb0533613c", - "format": 1 - }, - { - "name": "tests/unit/plugins/sub_plugins/cli_parsers/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/plugins/action", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/action/test_fact_diff.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e43ee9cf54ee1720ed01afd71a65c7a7c56cc307bebe140c82c9dc73e89b66ac", - "format": 1 - }, - { - "name": "tests/unit/plugins/action/test_cli_parse.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "460fb03eb09c4f7db542e0760524fbeb84fa35be2a46452afa7e12b8f6dc0519", - "format": 1 - }, - { - "name": "tests/unit/plugins/action/test_update_fact.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a64db85d39376425039440235dd01370f039d2033dc94f7332ad7517fec66308", - "format": 1 - }, - { - "name": "tests/unit/plugins/action/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/action/fixtures/nxos_show_version.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dc4ab2b1c2a8c82c81cd1c61338d0d48737f751d4f859da0509168ea4c5d3dfd", - "format": 1 - }, - { - "name": "tests/unit/plugins/action/fixtures/nxos_show_version.textfsm", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a43d22b3a39174cdecc292f455723837a6dd4573af671ab7439cce2d362f0f1c", - "format": 1 - }, - { - "name": "tests/unit/plugins/action/fixtures/nxos_empty_parser.textfsm", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/plugins/action/test_validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7b36fdb514dd661b1fe53d263a7f154313d9b3e4d4d2e1ff0bef31c84d62deac", - "format": 1 - }, - { - "name": "tests/unit/plugins/action/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/plugins/plugin_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/plugin_utils/test_index_of.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1de5723a3913bd2b038b8afed80445e2c0e94718b906f3cceb6dfd889f39b0f6", - "format": 1 - }, - { - "name": "tests/unit/plugins/plugin_utils/test_ipaddress_utils.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5a0fa2277c55b9bfc214413e37761caf160bb8ac56d2ba87d6cd74e2a900f8b4", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_previous_nth_usable.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2940ec98b9252f37708c31c5c7be03397b382cbdb55617c48a91fe56203a5f37", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_ipv6.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "275c1392b44d7167e72ee6368e576d36ae730cff318bd5e69f1c8417dde3868f", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_next_nth_usable.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0980d4e0ef3664c878a618717efe41ccb836e781c068f028d8777e2b42c8ebb0", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_ipsubnet.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e49cb14e3509457970aeef8e6e5ad854d38784b61123e9f950f16f02b8033837", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_ipaddr.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dd2504bb5fa26d57f8056b8f9bda65dc0cc71821f34c881ec0ed1a8865927dd9", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_reduce_on_network.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8ccf14584cf204bf359bb0711b40e099945f3a5717c4a149944ef4c4be48d345", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_fact_diff.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d22bfd2bdcaf646b644a484e6e7baac2787c9d7e5b2bea2a9fdfec4d9640c80b", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_hwaddr.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2620d2aa47ec69704b63dcd186539279121f551d043776e2b81909beb0a3ebad", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_ipv6form.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f0f438cfffcfc7d5bd5a9f1808c44de11334da483c6da0e5feeba393029b04b9", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_keep_keys.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "88778b558318cdc5378b842c22e0c9f3255723e7ddd3213ad9e0a1c13e55e2a5", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_nthhost.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d64e623888afa66c5ad67ecaae097f23291dcac857b5319b25d0e74acb5b0db8", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_usable_range.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c7d295c3000fb8f4e4a6dd23fd945cbcf52e7d68928a20cbf89f6659a596e2a4", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_network_in_usable.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e4073fdb1071ca2a9f332c7800bed27c47d425400a4c7ac50d60d89f4fb1b017", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_network_in_network.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "afc6be94632b0a25f3adca23a4922bfe2c9c936c155da4d94cab3180c28b9863", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_ipwrap.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f956054947aa22ab3925f17636113e18b8ee749afe3f5b5024e000b137b6a86f", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_param_list_compare.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c65d22b9614e811d8eba570fca6c6194c59bf47b3b975f4853c48113a8ff7a6d", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_to_xml.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4e7ecded556df9d2432aa490781c7d2fc1907b5fe6621a1b3f6e8aca988b4cd3", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_remove_keys.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d76ed7cf44390b9f18e53ed705a417d66e51d2479c1ab81c5f8015570947ac95", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_cidr_merge.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fa2633572c17bdb2493badbe31a368b10ec18327bcae10350d181a7f4cefaacd", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_ipmath.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c16f8a9fca5ebc70ab8560c787c8a637079c2d79fd545059f6cd7eb1f92d46c1", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_ip4_hex.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d656d1d4ca804630601af52754c70daabc0f6fd357cec1eb1e94cdaa7db6e894", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dc44a7bc87a3424a4a2c2c4726a2e4cafdd8a3e2f7f55a5371b7ceec8a3be5fd", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_replace_keys.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5522cfab5edfdf3739180b05c3bb65152336d07106a82a33076d52eaf399a4fe", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_slaac.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d6f40ccd4972301f4d35acb137565f119b906e1a155bcf2ed7f9bdb3bafc37c0", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_from_xml.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cc9e57a960c7b68ec2ccb69c153bf18e9fd12574c0aebe108d0e723e784ee9b3", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_ipv4.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "844d841520c3c01e03532e37d104fa7aa5607aaa4008863f3f944214e4364057", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_macaddr.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5d586ac9c169f7dd133276ff0ac7078b4147face9fe39f7f6418a00473b25ded", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_ipcut.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5f5d5bc3c8aaf396624099a548491444e8f5dc5e90f02ab4d8c43ee72a461539", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/plugins/filter/test_consolidate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1dc8412704c61f5cb1b0cc52b6922a28e768cc6525453368ebebae8afbd8d6ce", - "format": 1 - }, - { - "name": "tests/unit/plugins/lookup", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/plugins/lookup/test_validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7f45d7fdf5374150d76ccd748e78be3235e70d25729031f2e0c798b372b7d7ec", - "format": 1 - }, - { - "name": "tests/unit/plugins/lookup/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/mock", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/mock/yaml_helper.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1d3e2533f7d9afac1e357cc4ecc48d7ef43a83f67ce76b50f6c5e970b3ecb191", - "format": 1 - }, - { - "name": "tests/unit/mock/loader.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f85a49855fb7b8ee5101674a03be99ddb9835d73a6c043a948f669a4a9acc5ab", - "format": 1 - }, - { - "name": "tests/unit/mock/vault_helper.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "db569af1e50567f99b491151d45c6d86c556f7871c191bcbb6fc6d72b4f0d733", - "format": 1 - }, - { - "name": "tests/unit/mock/path.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b4f978c74a0eb5de96c00fb6ebfa2c410cb6e60bbb2b8569a473eea9dbccf4cf", - "format": 1 - }, - { - "name": "tests/unit/mock/procenv.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9bd446529f74267168f411b0a26062bc95d8d95ebe0dbfe135e9bc0eeb1974f0", - "format": 1 - }, - { - "name": "tests/unit/mock/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/conftest.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ab9180dd534764758bc2066a16d013c1fb5e22bb0b1249fbe7d9ac0caef5e4f8", - "format": 1 - }, - { - "name": "requirements.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b1867544249e1acedd6385529f7378e93f91208c7f27d11f1a2bb4403c68b8dd", - "format": 1 - }, - { - "name": "meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "meta/runtime.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6698ae10ace1bbeba03d0d3df5feecfacb40c830b67544a79a31ab889d16427f", - "format": 1 - }, - { - "name": "tox-ansible.ini", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "452d40c05a61d3eabbc7e7b837b96b40e68816f8ce0a112f25b1b8374395f57c", - "format": 1 - }, - { - "name": "cspell.config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e1079e6d02ed34033bf83913e7b66ff7bd042e6d8ed4c113aea31123f557deb5", - "format": 1 - }, - { - "name": "LICENSE", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", - "format": 1 - }, - { - "name": "docs", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "docs/ansible.utils.reduce_on_network_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dceeac3c22ccd1eb5519f33158c6061a624214837138fac8b6a098b3c4394d31", - "format": 1 - }, - { - "name": "docs/ansible.utils.update_fact_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "36507b4ad9cf2803e6bb7266c0c5fb7f945041ad03a1df93ecd9c4ba126ab38b", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv6_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "05665d4cc703bf130c7593ad3e0a974e33bf1530318a32caf38bc2b9bd5ec3d0", - "format": 1 - }, - { - "name": "docs/ansible.utils.get_path_lookup.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0a5b58a4a23622668ac0b1ff8e8279973fba07c285d7621268259eecbcba8177", - "format": 1 - }, - { - "name": "docs/ansible.utils.index_of_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cf5a4c7351a8a43b70c4efbcc6932d0a75f35d1dbb3c040918c470452c6d68ef", - "format": 1 - }, - { - "name": "docs/ansible.utils.mac_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f0b1e210c490176d84983fca86cb4b83fd346e40176789ffb8d3c66b1dd17921", - "format": 1 - }, - { - "name": "docs/ansible.utils.reserved_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "abfaea7206a74c57fabcf1116cbd0fc0ad510c1cab57c9da5ac29ce552370263", - "format": 1 - }, - { - "name": "docs/ansible.utils.cidr_merge_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d214b5cda14a322db93269a17b361b4d8b56989b29a7808619cc5d177114a4c5", - "format": 1 - }, - { - "name": "docs/ansible.utils.ip_address_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0f9a4db063314e0acdf3dc69c1c669955a27927bbb6b25ea3fe69322d3a59390", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv4_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "495c65997da307de9e446f77e413d0d1ec26d245d855cabc838737a78aceec11", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv4_netmask_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b6d22ab2bffd5865608a1cdb0039226c116f4b086a0b15196e66181323acc4c6", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv4_hostmask_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "95cdff320db4d31cf5fb9abe6144b39b1cf7f1da47f827341b0c52ba5475911a", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipmath_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2c4470b90884e34a53ae9c26c6097a5113eed3b9b2212c90c3fa36c8f9859dea", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv6_teredo_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8019ff32d2d4a4b0796dc1f9a43a391edb75a5c9acc4a73c7b4b2216c54a242f", - "format": 1 - }, - { - "name": "docs/ansible.utils.unspecified_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1eec59f8934a04b53d1615f3b207586fcd8fad2981b85d0665f0f57026a6f29c", - "format": 1 - }, - { - "name": "docs/ansible.utils.from_xml_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1a197b87a3c3f47315f279e12775bf5c99f36ee003ff639e3f381e5342f98ed8", - "format": 1 - }, - { - "name": "docs/ansible.utils.in_network_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6054c4414e7df289acca584d8cde0025fda866f5fd8fd268c1cdba7c1cb7bd9d", - "format": 1 - }, - { - "name": "docs/ansible.utils.previous_nth_usable_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "94e6ce5e91e19ccb7249987bed4d5288f231e31900299698508ce3980f382e71", - "format": 1 - }, - { - "name": "docs/ansible.utils.supernet_of_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f5a987278d1a641a79c672006b8eeb37b1e937f4f85baaefb600a3a6e4affae4", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv6_ipv4_mapped_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a2f80757dd33fb9253ed11d8de3cb8aa0fb27f880fe3fe193caa1eb13ab5ed9e", - "format": 1 - }, - { - "name": "docs/ansible.utils.in_one_network_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9fc9e8aa7b1e66065f1fc6fe5d3813eabea32935c9010bd40bc8dd44cad350a7", - "format": 1 - }, - { - "name": "docs/docsite", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "docs/docsite/extra-docs.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "735531af48baf6de4e933219f147cf4b3187410f111ec9c188a06903675b757d", - "format": 1 - }, - { - "name": "docs/docsite/rst", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "docs/docsite/rst/filters_ipaddr.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ad58d0a9345d4a22feff279a58e27932c6b5ffea4f043a52f77ed889925df3da", - "format": 1 - }, - { - "name": "docs/ansible.utils.to_paths_lookup.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c3c9628ebc9e7ddfd0d478ff5b8dcbb15f86a0b85ce1607bc37e3e5e368421c1", - "format": 1 - }, - { - "name": "docs/ansible.utils.fact_diff_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c27b93299035cc8c6682dda0051e91d1db168007c2c73356808098cad41da3da", - "format": 1 - }, - { - "name": "docs/ansible.utils.public_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4cb3046bae484b3de9facc9a12f078a1412af6c42dc729df3b821e8d2075fd46", - "format": 1 - }, - { - "name": "docs/ansible.utils.loopback_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "68ffc927cd71df145413f9c9dcdee23b940ab394989ddd7ced63a5d75957e19e", - "format": 1 - }, - { - "name": "docs/ansible.utils.validate_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7b3e3f7b9576c04425c56142667cd0ffc8f021e2624fa86e23f9e9f20745c13e", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipwrap_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b26276300d797113d036be6eeac6fd76812cd8e3e32d8cae13e4421b4111d233", - "format": 1 - }, - { - "name": "docs/ansible.utils.nthhost_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4504d31bfe9857b381ab5027d6e8979cce559db48e515ee220b47e9f83ab628d", - "format": 1 - }, - { - "name": "docs/ansible.utils.network_in_network_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "25caf49346a61296cab62448dec2253f7fe8d1d551de18006cb651b0a962d49d", - "format": 1 - }, - { - "name": "docs/ansible.utils.remove_keys_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4d8e87cf05341c85a46097cf933e6705ca0de7a189f078165772d21604188f9f", - "format": 1 - }, - { - "name": "docs/ansible.utils.resolvable_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "62013972070a09452a421a061a891e8ceebc94ea610103b6b21e14441328bed1", - "format": 1 - }, - { - "name": "docs/ansible.utils.slaac_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dc9f60ef24b7ad1e30861adfb02e97efd3db05579c0790cb07e8535db03bc69b", - "format": 1 - }, - { - "name": "docs/ansible.utils.ip4_hex_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9568ea4894daa231731491939cdfb193bcc631f36580d0cb82e161e692870c15", - "format": 1 - }, - { - "name": "docs/ansible.utils.index_of_lookup.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9d3492d8a3db1ccc4e8449fc37e05a30449dec8a71cb0801d9056ad93af0cf57", - "format": 1 - }, - { - "name": "docs/ansible.utils.multicast_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "55c9f48ea04a80347fe42bc9c25fa0771578924f5afbff64a42feb04bbdb84be", - "format": 1 - }, - { - "name": "docs/ansible.utils.to_paths_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f31c47be2c7013bdf8a52668c84e5b4beed859fe0ad77459138e42a3f0d61425", - "format": 1 - }, - { - "name": "docs/ansible.utils.fact_diff_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0be4cf38c71bd11475f9a4dc73700ae11ec57cd0d27af3d3379c08e94e21de09", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv4_address_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4842230a2ce840862d3366ecce677e56ad38600b5b07a27de3afbdc4e5b1759c", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv6_address_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "30a2515d6260cfda2181cb101c26063dc5b18529cd60576d39a88160714f5af0", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipcut_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "150ecfe60509b1b0093de7ea4a911eb8ab291cd1b9398586fa96a69b09daa43f", - "format": 1 - }, - { - "name": "docs/ansible.utils.next_nth_usable_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0702412f10dce01ad520ef2c44622bdf4b4e7e1eadbdb3f7cecaf17c79cff102", - "format": 1 - }, - { - "name": "docs/ansible.utils.network_in_usable_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "74e58e97636306402fcc697a0478eabc57ecc2df6a02b8a8e00b8cbd23239db6", - "format": 1 - }, - { - "name": "docs/ansible.utils.macaddr_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "549d998af199f3f60df3c87594d015379d4a674e7fa311df1edea8e54f613270", - "format": 1 - }, - { - "name": "docs/ansible.utils.validate_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "81f6e37b6f9275cd8bb1240a7bfa7a8fcefbb744b68c027ab922321d4547d91f", - "format": 1 - }, - { - "name": "docs/ansible.utils.hwaddr_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "06004f98865238ad74c52a67c40b977315200c1dfd5b48e3666681b8a83f53f5", - "format": 1 - }, - { - "name": "docs/ansible.utils.validate_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b47930c113c23060d1281bade44f65abcfa57be02943ef2652710929fa9d6f27", - "format": 1 - }, - { - "name": "docs/ansible.utils.usable_range_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1075aa159a55fbe12b3a53076111d509078ed5f08c54327d4f1fc3f85a3a29d8", - "format": 1 - }, - { - "name": "docs/ansible.utils.keep_keys_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "57b1faf8874e35a682b8ac1f717bc43e3ab4b015bc7ac8bd984a458ab2444262", - "format": 1 - }, - { - "name": "docs/ansible.utils.get_path_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d93dd63925b87e4d57470f4cf6436b374a975bd6ee052a8283bfa8031923ed2b", - "format": 1 - }, - { - "name": "docs/ansible.utils.ip_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "423c666b424a893fed77918cd8afbd5acf4b95156ea109e4c1ae9b910333b39d", - "format": 1 - }, - { - "name": "docs/ansible.utils.cli_parse_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d18023f4a52a2bf40a6973bff87a1507abe081e772b98c5ad0a88790fb41d00b", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv6form_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f5cef46d5cde1a50882f319db18ea8421e11a92cfc51b0f9d25201040bdd4a23", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv6_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4cbb8f9b4687b1da3daf647c14e19c1d0eb7672f5af3b9387b308da8f2e1e9c1", - "format": 1 - }, - { - "name": "docs/ansible.utils.param_list_compare_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b9a763a3b44b126a7bad44558f4e7b6d861d9a42e4978cfd5bc1f655c03dc5d3", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv6_sixtofour_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "199d99f772c92d20a560fa5afbba8ac4df74a11eaccffb5c29a2d96c3e6dea02", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipv4_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "58d021685cdafba7cae88b47ae7b996e9cd4df7f4e3e4aa7e8519c06176f52bd", - "format": 1 - }, - { - "name": "docs/ansible.utils.replace_keys_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1861c5dccd6e4e9e24c5250c274237d4d5df62bbdcede41b78c1f808d2ddcf8", - "format": 1 - }, - { - "name": "docs/ansible.utils.in_any_network_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e9678218618d0bb3f526f0cdfaf3d09f24bbaadd6f7317b02cddc4f2bfc7598b", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipaddr_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4449faa340ee61c4825756955767c05920335b851465c299fca2ce5264ea3cb3", - "format": 1 - }, - { - "name": "docs/ansible.utils.ipsubnet_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "04d4c6c32fcc688b3e4f226317ade21885628d39101cf797dafc36a0dd86ac3c", - "format": 1 - }, - { - "name": "docs/ansible.utils.to_xml_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dcbfe90179444aba2c77f5edb8aa3f2f1e46509b19a3b46ac1ce825c145c88c6", - "format": 1 - }, - { - "name": "docs/ansible.utils.private_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4e36e2bd85c58c001cd29b548979ab23adbcdd02290f375293db88c23ca55ae3", - "format": 1 - }, - { - "name": "docs/ansible.utils.validate_lookup.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3cb9f3909679db84ec4e17f102eca4dc16872c39098254fa1dfae976e42136d9", - "format": 1 - }, - { - "name": "docs/ansible.utils.consolidate_filter.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bf891d59082405b69a8bbc998ede84fac3b908dfb98f06c5eb4081288a8fcc6f", - "format": 1 - }, - { - "name": "docs/ansible.utils.subnet_of_test.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bab2b4b9c50f9250332f845ab0d6e5b8d829301fa9c9cd1f168f31d306bfdad2", - "format": 1 - }, - { - "name": "sonar-project.properties", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9da122eb2bd196c4116012b781f562be23b5f756a986ac2149abe5419bb7fc01", - "format": 1 - }, - { - "name": ".prettierignore", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5f34b5c1df98658cfd45b86975b7f782b1e3486ea712f3372d6eba685a3a826c", - "format": 1 - }, - { - "name": "codecov.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d7119b3a96ece7bcd2df6e851e7e19783049f280918a801344d502c6ada4e582", - "format": 1 - }, - { - "name": "test-requirements.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c9fc4f51b5aa54c6eb69a8d5cd0571282d2a9401406e4b0e34040a7836e3b57d", - "format": 1 - }, - { - "name": ".ansible-lint", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b47f72e159f93a5ff07ea2534752e0fa977b214e9ac05c667fa83ac13be4e50c", - "format": 1 - }, - { - "name": ".config", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": ".config/ansible-lint.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e8e320c3f66ceea4d43d9962ef7b136906a5ce378685067eb2febf36cc0bb34a", - "format": 1 - }, - { - "name": ".config/dictionary.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9f02d159a5040696bada5c52a53d96ccccfb6f65d5a7c795f7cb6e188288e8cd", - "format": 1 - }, - { - "name": ".flake8", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e0ac43f26ecfa3094c442566f7ad9d637c2975a4072c2cbf438b59b3adcdf219", - "format": 1 - }, - { - "name": "bindep.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f0e2709e0a523d84f824ccfb6883f62e9d27f70bd7a38be0d18506223ccfe60e", - "format": 1 - }, - { - "name": ".gitignore", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7f77b242111d675ee011c419b5abe3cf814119edb0f4beb97498a0eb276dfe2f", + "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", "format": 1 }, { @@ -2961,727 +77,6 @@ "chksum_sha256": null, "format": 1 }, - { - "name": "plugins/test", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/test/ip_address.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cea11319e9678be2f3a3d5a16b30f082f5dad257a8b664e4328d62d57f0c2b49", - "format": 1 - }, - { - "name": "plugins/test/ipv4.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "096eb84875c30d1c00f61f0e8a39ee216432ce8cc83ce8677c17c51039019333", - "format": 1 - }, - { - "name": "plugins/test/unspecified.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b38ebc5ddc9100db236807514fea370a363a2896375330ac57ff502e78899786", - "format": 1 - }, - { - "name": "plugins/test/resolvable.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5bd0e507b6cbac09693ad5acd6f4761fdcda8f884c142100276bd0b8eed6a015", - "format": 1 - }, - { - "name": "plugins/test/in_one_network.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "992f70b784ac66f64793ba11700b801a9d9b078f29b7cbea01dc101dfc174e34", - "format": 1 - }, - { - "name": "plugins/test/ipv6_teredo.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "364e1b494bcbc6c2915d57631e89b0be09cb4537b0e593f7956f8e754c600083", - "format": 1 - }, - { - "name": "plugins/test/ipv6_sixtofour.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "afc48874147e2a79e7af67029cac6c28646f21126473d6819e4261f172bcc544", - "format": 1 - }, - { - "name": "plugins/test/public.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dadcb1f62a3b8becba746215e97b37a784d0e7e5a856b8a226edbed3fea1d1ba", - "format": 1 - }, - { - "name": "plugins/test/ipv4_netmask.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "77112181a46287e3c24aeb39143c9d8e148abb741a5c5068b442df0ce27f2bb4", - "format": 1 - }, - { - "name": "plugins/test/supernet_of.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2a6b4c721807169bbc864ea4d15c8e039178accc0ec489b2fa849f93ccae2ed4", - "format": 1 - }, - { - "name": "plugins/test/multicast.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "eccf99851826e32841328ccf4969d0f8e883165b43919d9e9c39f11a7de5b9bf", - "format": 1 - }, - { - "name": "plugins/test/private.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c9e72a11696482f5568dcaad79940dd7dd8d304a61ce3f942af4221a9ffd11c8", - "format": 1 - }, - { - "name": "plugins/test/ipv6_ipv4_mapped.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f009b340f69e20836ac3f708691928485f65f69e96dc19f70db74c20bada8c05", - "format": 1 - }, - { - "name": "plugins/test/in_network.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4c8fe55367ab444d628034575baa9cccb265fd7cdd86cfaf76a526eca9d09bfb", - "format": 1 - }, - { - "name": "plugins/test/ipv4_hostmask.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "19001bc8626d77ac20306bc2a41f8e71a2f277caeb2b3c563c5fbed932fc6fa0", - "format": 1 - }, - { - "name": "plugins/test/validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "751793fce95a014fa830db7e70a09a483b3826d96693bae8049a14dc77be43b0", - "format": 1 - }, - { - "name": "plugins/test/reserved.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a141375f7758aea9daa18dcdb7d83fc9949dc1e9f5061b4fca3434f6b09c878b", - "format": 1 - }, - { - "name": "plugins/test/ipv4_address.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "98748990e716b6666fa9fc5476168f34c16506b35230aa8c1170ab600c5796b9", - "format": 1 - }, - { - "name": "plugins/test/ip.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "96f1d90050b18b606f076c12a1ce924fd5e1ea479569cab057134b8309ac408f", - "format": 1 - }, - { - "name": "plugins/test/subnet_of.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4f7566252c1d60e649d1d6a14092cc3e01747c07c5b041c868428b58392cbc36", - "format": 1 - }, - { - "name": "plugins/test/mac.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "62299ae2f27faa59e12edb01e50747245f85a27b5bba995ab79a4c98eaf0b884", - "format": 1 - }, - { - "name": "plugins/test/loopback.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "080dab36d15bf9d39b67a2f2e67450a2be46c6e9614fe7a49e7c1e70033efdf8", - "format": 1 - }, - { - "name": "plugins/test/ipv6_address.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f3a72d0f685d93b8e84b99baa5c3d1db05bfddf4cd985dd53043611c8a0fee9e", - "format": 1 - }, - { - "name": "plugins/test/ipv6.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "85a3b8dcdb4d03b29c191533a0cb27108fb31fc767bebb1a8fbd691a38b5a137", - "format": 1 - }, - { - "name": "plugins/test/in_any_network.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d77f655933ad85fbac201217d15d508f63b303606494afd0d46f5a202b06e847", - "format": 1 - }, - { - "name": "plugins/sub_plugins", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/sub_plugins/validate", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/sub_plugins/validate/config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "faa0207a5ebc37cd6193a94fefb476760e0b1894675450d4c4a3bc209bf845c4", - "format": 1 - }, - { - "name": "plugins/sub_plugins/validate/jsonschema.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "96c2101136e3ed463f98453a411f0065fc4a7d1b681e9e839245222b15f895fc", - "format": 1 - }, - { - "name": "plugins/sub_plugins/fact_diff", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/sub_plugins/fact_diff/native.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a2479f9e5df195218a205fb173a285473865b0f8e62f7c6031689ede36dcab13", - "format": 1 - }, - { - "name": "plugins/sub_plugins/cli_parser", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/sub_plugins/cli_parser/json_parser.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a02d355a459588d59d1a0543a84325149d257ce3a61e288574466ae1f83b17f3", - "format": 1 - }, - { - "name": "plugins/sub_plugins/cli_parser/xml_parser.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d4acbf4403d20822ea1d76618883290d8feb61f8438bb2ceb0f92cb1d81e0e13", - "format": 1 - }, - { - "name": "plugins/sub_plugins/cli_parser/textfsm_parser.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "af52a0114e82e0c1378885e121f7fc72c9427223a0b8f97ccf92c63aeb20efbd", - "format": 1 - }, - { - "name": "plugins/sub_plugins/cli_parser/ttp_parser.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dc5c8388efc7e482bf2f96f7f0dc3397bd08c131e7f2b5d8e6c14f81e88a42ae", - "format": 1 - }, - { - "name": "plugins/module_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/module_utils/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/module_utils/common/get_path.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c4bc8fdf10776ac5f08e6292edcb7f55c4b8485b48616d0c598ba54df289aa77", - "format": 1 - }, - { - "name": "plugins/module_utils/common/utils.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d76ab2ee37404cee38430e2b3a900ef2928db374b0a366f246b8d03436eb7773", - "format": 1 - }, - { - "name": "plugins/module_utils/common/to_paths.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0bcea63efd7166e346214633f11c9d87bea381f108dfa78144238aa04f91740d", - "format": 1 - }, - { - "name": "plugins/module_utils/common/argspec_validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a4da5dfafef15ebaf9713e200fbbc763f22c08cf56f851b61e961804aa96a850", - "format": 1 - }, - { - "name": "plugins/action", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/action/fact_diff.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a6e8d1252ce67d01d544d7e468fad31f846903ad347788d432a257ebd72feebd", - "format": 1 - }, - { - "name": "plugins/action/cli_parse.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "361e3582566d9db3011582775e4863d9309fbe96c203f4ca8bd0b8243e9a6e6f", - "format": 1 - }, - { - "name": "plugins/action/validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c475ad8a5a8bcf98a2eaf27a0d2486eb4c590bdf3ffebac8b0e0d09785366e56", - "format": 1 - }, - { - "name": "plugins/action/update_fact.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dabfd81eb80178d0c75e79e9070dc271018b40abf400568418054358090214e8", - "format": 1 - }, - { - "name": "plugins/modules", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/modules/fact_diff.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fbb01903e17523b7dd8b9ee6a069a5910bc36dc8dda8c5771d4e514f2cefc594", - "format": 1 - }, - { - "name": "plugins/modules/cli_parse.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1803b4dc8f525b423a5dacc7ee404c05913c8a7c800b7e6314352c2fcad34cb6", - "format": 1 - }, - { - "name": "plugins/modules/validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "15ea93548cf0e748aee135b74cb08cf4046f968dd39a6b4f8046d4782b27c46e", - "format": 1 - }, - { - "name": "plugins/modules/update_fact.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2078d199f579fcdb002c6ba38d56a8ae3ac51d18f924b0201f7a4aae80bca9c0", - "format": 1 - }, - { - "name": "plugins/plugin_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/plugin_utils/index_of.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fcef3897723d3a9bc357a76e558d6235cd164ea6ec1d4d3a1f00edf8d9ce2a96", - "format": 1 - }, - { - "name": "plugins/plugin_utils/fact_diff.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3889ceb1d3d5616cecdea885d7137aff5dbc6451fc0679576b3c1cdbd5cb00e1", - "format": 1 - }, - { - "name": "plugins/plugin_utils/connection_base.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "89d3ba294058d651f4a5292bfe1d93d507a7719d303d3e665e069c80f44a9fe0", - "format": 1 - }, - { - "name": "plugins/plugin_utils/consolidate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "96320d44fe7c45eb0bd2ae05c85882d57a27da46f8b0af135762bba61d22c8da", - "format": 1 - }, - { - "name": "plugins/plugin_utils/remove_keys.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "17d513c637f1347a49a25aa99b3232a753c94e9507ffdb96c8a79a2eeb4a6f78", - "format": 1 - }, - { - "name": "plugins/plugin_utils/base", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/plugin_utils/base/utils.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6ed1b297442abf5715528e12a9c68f3389d4743ef38d20400efc170737a1b088", - "format": 1 - }, - { - "name": "plugins/plugin_utils/base/fact_diff.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5e7c19600d05863ca5986107de3b259ff0475e7ec163dab2d7d16bfa7ee55ee2", - "format": 1 - }, - { - "name": "plugins/plugin_utils/base/ipaddress_utils.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1972c4155eeb72258066f7d823a0c1d39b0ac05f4d5e45bfb2033b7a43201eff", - "format": 1 - }, - { - "name": "plugins/plugin_utils/base/validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0efc6c22e36fa4a8abad5b7681227be4adb131c7e839ada8d88fd9edf561b5cc", - "format": 1 - }, - { - "name": "plugins/plugin_utils/base/cli_parser.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8b4827f155c470700ca8e04d0104c4a0af9000dabc519c115bcb8c8380e4819d", - "format": 1 - }, - { - "name": "plugins/plugin_utils/base/ipaddr_utils.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f84645e04c4fe91599ec661a394b692e6060b333a326df5eea281b517d68c7e8", - "format": 1 - }, - { - "name": "plugins/plugin_utils/replace_keys.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "99f8242cb941634d3ab6a6c800c0e460344212dd1a9d8a99f700a2bf1c68bc0a", - "format": 1 - }, - { - "name": "plugins/plugin_utils/from_xml.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b235b561949c6525cf97351e48e39eacebbf8806b4c3f66038d8fb91a1d92854", - "format": 1 - }, - { - "name": "plugins/plugin_utils/keep_keys.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ae7de916f4e299f10a8b458f57dc13ab7c5f9bf9a3c02e77ecf64e0924340552", - "format": 1 - }, - { - "name": "plugins/plugin_utils/to_xml.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "49becc6bfa713f37dbda89285fc0db94f10e7ee767eca674556568e91e0d586b", - "format": 1 - }, - { - "name": "plugins/filter", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/filter/next_nth_usable.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8978623a1dd2bf3197ded73377255ccfb8cd9ba350d798ec7b8bbe7626163d8b", - "format": 1 - }, - { - "name": "plugins/filter/get_path.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3ec4ffeb16940d5ad6cf7fcf3f6db1eb92eaf222dd30089a03994b072684b040", - "format": 1 - }, - { - "name": "plugins/filter/param_list_compare.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f02eda7836771f03e5ed78f444a67d2cabaf45231a15998b6ebbc77f18227348", - "format": 1 - }, - { - "name": "plugins/filter/hwaddr.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "537fa774d0c9e930f0bda854f715998a8128768421e9c416d54df187f236be66", - "format": 1 - }, - { - "name": "plugins/filter/ipv4.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3c6de45a25dd966988f545d0daf22af1aad6ff70dae439952b5dc9b04214f308", - "format": 1 - }, - { - "name": "plugins/filter/slaac.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "93c561c589dc6c5bbe732a4d136616c7d9b5e6b105cb9cec40b26e0ef8a172a4", - "format": 1 - }, - { - "name": "plugins/filter/ipv6form.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "19971cd14e72dd73fb7426a81d406d17d96572ba912e2ae772395756a39259a1", - "format": 1 - }, - { - "name": "plugins/filter/nthhost.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "338ca4a46c62a49b94e4994593a23cc998e2de3284777cbed9367e8de7bf02f9", - "format": 1 - }, - { - "name": "plugins/filter/network_in_network.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "292e649c71a8981076624d907e2355fdcca5b77d34630a3ba1d94b10e949207f", - "format": 1 - }, - { - "name": "plugins/filter/index_of.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b8f72b0978db5536a546d0652287f6d59111ef6a21c281873fc51bd9345a8ff4", - "format": 1 - }, - { - "name": "plugins/filter/to_paths.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cfe1cb5a118b1d9547c2444d1ef9fd2dd8e0076587d58e724e756724768af228", - "format": 1 - }, - { - "name": "plugins/filter/fact_diff.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d8616043bf1bbe7c8ea611d75c5c96e17c0fcaaa978025059fd563bb9a8a993c", - "format": 1 - }, - { - "name": "plugins/filter/network_in_usable.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "555d3639de75196fc6d6d4b15000794ede40565f6d87c7515ddc2d96888ecb92", - "format": 1 - }, - { - "name": "plugins/filter/ipmath.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "09e70c045838ef1b1624af77c499bfcbac51dbc7b91390b941d6174b763d590d", - "format": 1 - }, - { - "name": "plugins/filter/consolidate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f1d5948e33206851f8e47c39b0447302d922121a6da921151d04e9e52e15c70a", - "format": 1 - }, - { - "name": "plugins/filter/validate.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9a9b807e81adb3ab5cf6d161318eaa8e2a69d720b3ad615f11f9f97ac5a695c5", - "format": 1 - }, - { - "name": "plugins/filter/remove_keys.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c65716a34c4c6c2687e10317201de892858cfe97733ae423b111c5d318e38e86", - "format": 1 - }, - { - "name": "plugins/filter/cidr_merge.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "511621957e1a97a301ccc18f3d5c8a690915e80e6cb7d62da601a0282d650988", - "format": 1 - }, - { - "name": "plugins/filter/macaddr.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b702ad98dbbaef44c7d5ceaa8355a317bcb1f0deb5f0224da98f639f789c2b2f", - "format": 1 - }, - { - "name": "plugins/filter/replace_keys.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3ed3f41aa165e732586a87a436b6b3a620aa4576d272d5dc24b570602d5cf9c3", - "format": 1 - }, - { - "name": "plugins/filter/ipaddr.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1f5a4407d2e91b7c344c795ba2189c1ffde8b98ef67ad84f50da030635788751", - "format": 1 - }, - { - "name": "plugins/filter/ipcut.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c2f53ebf787d839ac984dcf122209054b99c1b1cc808bc6afe6fbf7b56ac1513", - "format": 1 - }, - { - "name": "plugins/filter/previous_nth_usable.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "794ba4bed9bd2ff7848a15885f8283dee37afe4608bbf8c8c69ff0e82891cf61", - "format": 1 - }, - { - "name": "plugins/filter/ip4_hex.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "595a83cef32d8c49c02984cffe23f63eb93a3b7e27121ccf14f5ef52ba4b5909", - "format": 1 - }, - { - "name": "plugins/filter/usable_range.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "61aa7b14a5d71cf597971d0b2ee5d231e2f90c5db1ed6fee873511d974658810", - "format": 1 - }, - { - "name": "plugins/filter/ipwrap.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9c18c1eac1f64f96be33092541430edb3d5de0b8f47483db09cff2c101c80fc3", - "format": 1 - }, - { - "name": "plugins/filter/ipv6.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b8f517a01193ab2a7d9406971cb31a55488315ac0cde3b167bb6a7eae78caf93", - "format": 1 - }, - { - "name": "plugins/filter/ipsubnet.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ffa7ff0e64c7cbb059b93de592a9e8838e3722ff358df555300f4c8ce4baa406", - "format": 1 - }, - { - "name": "plugins/filter/from_xml.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5127b885570571c98046c6184c8366a42ec7b1c494e7e6c4c1046836ef184554", - "format": 1 - }, - { - "name": "plugins/filter/keep_keys.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b8ad427ca5be903162a49b9b73f437262b7ddc47eec1328c165d42b86b51755f", - "format": 1 - }, - { - "name": "plugins/filter/reduce_on_network.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "29323080187cabad1ff8ea8e15c08fff7c53ec9b207bacb1d7061b9db2883775", - "format": 1 - }, - { - "name": "plugins/filter/to_xml.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1200518068f615530e5e74fa4e1ee82657a5aee1af0e7a105b1b7ebeae3ce0d8", - "format": 1 - }, { "name": "plugins/lookup", "ftype": "dir", @@ -3714,21 +109,777 @@ "name": "plugins/lookup/validate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28863119f951ad1050b57553d1b4a9e83a6770cf514a73d5593e7755461c5d20", + "chksum_sha256": "aebc7fe0a05dd640321200d5e7fef2c86c99cf248b99836c965975688f16afd5", + "format": 1 + }, + { + "name": "plugins/action", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/action/cli_parse.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fe865e94a39039777563b836c4447af4e591aa4c2f660116522cba37ccf2d039", + "format": 1 + }, + { + "name": "plugins/action/fact_diff.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "944530790166a43d1cc2ad6089d1d1d04b1420b5c3eeed54430a12277581ef99", + "format": 1 + }, + { + "name": "plugins/action/update_fact.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "052ad392a5bce8feb8125133506a45b06603fff0001272fc28dcc30881b615cd", + "format": 1 + }, + { + "name": "plugins/action/validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4418cdfad3126b62051c1c5066a177306a62dc1c88406ba3ef0f3de654113cf5", + "format": 1 + }, + { + "name": "plugins/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/modules/cli_parse.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1803b4dc8f525b423a5dacc7ee404c05913c8a7c800b7e6314352c2fcad34cb6", + "format": 1 + }, + { + "name": "plugins/modules/fact_diff.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fbb01903e17523b7dd8b9ee6a069a5910bc36dc8dda8c5771d4e514f2cefc594", + "format": 1 + }, + { + "name": "plugins/modules/update_fact.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d8029ea407b66f90c88cbd83676fe340a1232d6896320183457e5502eb514bc3", + "format": 1 + }, + { + "name": "plugins/modules/validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15ea93548cf0e748aee135b74cb08cf4046f968dd39a6b4f8046d4782b27c46e", + "format": 1 + }, + { + "name": "plugins/module_utils", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/common/get_path.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c4bc8fdf10776ac5f08e6292edcb7f55c4b8485b48616d0c598ba54df289aa77", + "format": 1 + }, + { + "name": "plugins/module_utils/common/to_paths.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e1ebc611982da989657275368f3e593496405bd13d4a5dcbd611c664cc784f8c", + "format": 1 + }, + { + "name": "plugins/module_utils/common/argspec_validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "39febfd9b1f02fde688c270b85a29693adffa8baa9f1d31128a6b32fd3f64d85", + "format": 1 + }, + { + "name": "plugins/module_utils/common/utils.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "31f365a6ff3ea383c64823f5ea04935b66f1bc7c7ad4372d3dc529cc86e684e2", + "format": 1 + }, + { + "name": "plugins/test", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/test/supernet_of.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2a6b4c721807169bbc864ea4d15c8e039178accc0ec489b2fa849f93ccae2ed4", + "format": 1 + }, + { + "name": "plugins/test/ip_address.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cea11319e9678be2f3a3d5a16b30f082f5dad257a8b664e4328d62d57f0c2b49", + "format": 1 + }, + { + "name": "plugins/test/multicast.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "eccf99851826e32841328ccf4969d0f8e883165b43919d9e9c39f11a7de5b9bf", + "format": 1 + }, + { + "name": "plugins/test/ipv6_address.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f3a72d0f685d93b8e84b99baa5c3d1db05bfddf4cd985dd53043611c8a0fee9e", + "format": 1 + }, + { + "name": "plugins/test/subnet_of.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4f7566252c1d60e649d1d6a14092cc3e01747c07c5b041c868428b58392cbc36", + "format": 1 + }, + { + "name": "plugins/test/ipv4_address.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "98748990e716b6666fa9fc5476168f34c16506b35230aa8c1170ab600c5796b9", + "format": 1 + }, + { + "name": "plugins/test/unspecified.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b38ebc5ddc9100db236807514fea370a363a2896375330ac57ff502e78899786", + "format": 1 + }, + { + "name": "plugins/test/ipv6_teredo.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "364e1b494bcbc6c2915d57631e89b0be09cb4537b0e593f7956f8e754c600083", + "format": 1 + }, + { + "name": "plugins/test/in_any_network.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d77f655933ad85fbac201217d15d508f63b303606494afd0d46f5a202b06e847", + "format": 1 + }, + { + "name": "plugins/test/ipv4_hostmask.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "19001bc8626d77ac20306bc2a41f8e71a2f277caeb2b3c563c5fbed932fc6fa0", + "format": 1 + }, + { + "name": "plugins/test/ipv6_sixtofour.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "afc48874147e2a79e7af67029cac6c28646f21126473d6819e4261f172bcc544", + "format": 1 + }, + { + "name": "plugins/test/ipv6.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "85a3b8dcdb4d03b29c191533a0cb27108fb31fc767bebb1a8fbd691a38b5a137", + "format": 1 + }, + { + "name": "plugins/test/ipv4_netmask.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "77112181a46287e3c24aeb39143c9d8e148abb741a5c5068b442df0ce27f2bb4", + "format": 1 + }, + { + "name": "plugins/test/mac.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "62299ae2f27faa59e12edb01e50747245f85a27b5bba995ab79a4c98eaf0b884", + "format": 1 + }, + { + "name": "plugins/test/resolvable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5bd0e507b6cbac09693ad5acd6f4761fdcda8f884c142100276bd0b8eed6a015", + "format": 1 + }, + { + "name": "plugins/test/validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5de8085727c146364a5cfdfd9989c3c72936b3f28aed5384aa3d98096d8499f9", + "format": 1 + }, + { + "name": "plugins/test/public.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dadcb1f62a3b8becba746215e97b37a784d0e7e5a856b8a226edbed3fea1d1ba", + "format": 1 + }, + { + "name": "plugins/test/in_one_network.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "992f70b784ac66f64793ba11700b801a9d9b078f29b7cbea01dc101dfc174e34", + "format": 1 + }, + { + "name": "plugins/test/private.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c9e72a11696482f5568dcaad79940dd7dd8d304a61ce3f942af4221a9ffd11c8", + "format": 1 + }, + { + "name": "plugins/test/ipv4.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "096eb84875c30d1c00f61f0e8a39ee216432ce8cc83ce8677c17c51039019333", + "format": 1 + }, + { + "name": "plugins/test/ip.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "96f1d90050b18b606f076c12a1ce924fd5e1ea479569cab057134b8309ac408f", + "format": 1 + }, + { + "name": "plugins/test/in_network.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4c8fe55367ab444d628034575baa9cccb265fd7cdd86cfaf76a526eca9d09bfb", + "format": 1 + }, + { + "name": "plugins/test/loopback.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "080dab36d15bf9d39b67a2f2e67450a2be46c6e9614fe7a49e7c1e70033efdf8", + "format": 1 + }, + { + "name": "plugins/test/reserved.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a141375f7758aea9daa18dcdb7d83fc9949dc1e9f5061b4fca3434f6b09c878b", + "format": 1 + }, + { + "name": "plugins/test/ipv6_ipv4_mapped.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f009b340f69e20836ac3f708691928485f65f69e96dc19f70db74c20bada8c05", + "format": 1 + }, + { + "name": "plugins/plugin_utils", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/plugin_utils/fact_diff.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3889ceb1d3d5616cecdea885d7137aff5dbc6451fc0679576b3c1cdbd5cb00e1", + "format": 1 + }, + { + "name": "plugins/plugin_utils/keep_keys.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5a9884ffa745d38e76ab1a5e5d4ccf06019dd21eb4004be7a1c73ba55117b216", + "format": 1 + }, + { + "name": "plugins/plugin_utils/consolidate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "96320d44fe7c45eb0bd2ae05c85882d57a27da46f8b0af135762bba61d22c8da", + "format": 1 + }, + { + "name": "plugins/plugin_utils/remove_keys.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "17d513c637f1347a49a25aa99b3232a753c94e9507ffdb96c8a79a2eeb4a6f78", + "format": 1 + }, + { + "name": "plugins/plugin_utils/index_of.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "54b89a6c481475f213a2233f497b7bd6eec37f2b2b52765a5d8a1e48efb20f52", + "format": 1 + }, + { + "name": "plugins/plugin_utils/connection_base.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "89d3ba294058d651f4a5292bfe1d93d507a7719d303d3e665e069c80f44a9fe0", + "format": 1 + }, + { + "name": "plugins/plugin_utils/base", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/plugin_utils/base/fact_diff.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5e7c19600d05863ca5986107de3b259ff0475e7ec163dab2d7d16bfa7ee55ee2", + "format": 1 + }, + { + "name": "plugins/plugin_utils/base/ipaddr_utils.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f84645e04c4fe91599ec661a394b692e6060b333a326df5eea281b517d68c7e8", + "format": 1 + }, + { + "name": "plugins/plugin_utils/base/validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9e19d8da82d0af9891ad14977366193f3eb7caf51819f8b6fc6099eedc7c758e", + "format": 1 + }, + { + "name": "plugins/plugin_utils/base/ipaddress_utils.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c5239e0511f46858bd7169e8bbc2262dc1fc86b5ac7f37d96cfd49b5491e250e", + "format": 1 + }, + { + "name": "plugins/plugin_utils/base/cli_parser.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1954b143c93cc8768ecc8f439f44738366ede93244ebcbe12ea4b9a96e028f4c", + "format": 1 + }, + { + "name": "plugins/plugin_utils/base/utils.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6ed1b297442abf5715528e12a9c68f3389d4743ef38d20400efc170737a1b088", + "format": 1 + }, + { + "name": "plugins/plugin_utils/to_xml.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "49becc6bfa713f37dbda89285fc0db94f10e7ee767eca674556568e91e0d586b", + "format": 1 + }, + { + "name": "plugins/plugin_utils/replace_keys.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "99f8242cb941634d3ab6a6c800c0e460344212dd1a9d8a99f700a2bf1c68bc0a", + "format": 1 + }, + { + "name": "plugins/plugin_utils/from_xml.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ad392fe022d3c2ce88daf823e634e2060ca722cd370b1bfe8eccae04b2f9bffb", + "format": 1 + }, + { + "name": "plugins/sub_plugins", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/sub_plugins/validate", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/sub_plugins/validate/jsonschema.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0eb6c18e381fee9531223e593a5baee888933baad3c545ddf0d2c15ddd1160a2", + "format": 1 + }, + { + "name": "plugins/sub_plugins/validate/config.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0a744f7543ec776412dab52857aca2b324bc14526d042f4572dfc8f055d9b8ce", + "format": 1 + }, + { + "name": "plugins/sub_plugins/cli_parser", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/sub_plugins/cli_parser/xml_parser.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7492d16f9edffd72d42e82e91ef611071bc6f9c20131e1b1b5829814787c6f0d", + "format": 1 + }, + { + "name": "plugins/sub_plugins/cli_parser/ttp_parser.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "25449badac48fb9e6d026238b01ba30484f020618a8afcf1edd6f22cd3dce174", + "format": 1 + }, + { + "name": "plugins/sub_plugins/cli_parser/json_parser.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7a9ea4a244a755604aac78aad2fd06b1446c6fa8613445d5f397c40db55c1ca6", + "format": 1 + }, + { + "name": "plugins/sub_plugins/cli_parser/textfsm_parser.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3c0958e6bde7978e06dd4ece8b05748065983af858002fecf0086123609fc7bd", + "format": 1 + }, + { + "name": "plugins/sub_plugins/fact_diff", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/sub_plugins/fact_diff/native.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a2479f9e5df195218a205fb173a285473865b0f8e62f7c6031689ede36dcab13", + "format": 1 + }, + { + "name": "plugins/filter", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/filter/get_path.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3ec4ffeb16940d5ad6cf7fcf3f6db1eb92eaf222dd30089a03994b072684b040", + "format": 1 + }, + { + "name": "plugins/filter/next_nth_usable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ad84e47fcf69f1bab8d390003f0c6bf93df183d532ac68c57252ac8ef4e68fb1", + "format": 1 + }, + { + "name": "plugins/filter/usable_range.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b38fdf0f93feba1be5898bfb0af62144bb591f4dab0f5cc291ce72d70b93b56e", + "format": 1 + }, + { + "name": "plugins/filter/fact_diff.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dc0f8b28ff75dd863cbd5c6986f176204e204c745a979dc4b78cd89f22d952da", + "format": 1 + }, + { + "name": "plugins/filter/keep_keys.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b8ad427ca5be903162a49b9b73f437262b7ddc47eec1328c165d42b86b51755f", + "format": 1 + }, + { + "name": "plugins/filter/consolidate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f1d5948e33206851f8e47c39b0447302d922121a6da921151d04e9e52e15c70a", + "format": 1 + }, + { + "name": "plugins/filter/remove_keys.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c65716a34c4c6c2687e10317201de892858cfe97733ae423b111c5d318e38e86", + "format": 1 + }, + { + "name": "plugins/filter/ipv6form.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "19971cd14e72dd73fb7426a81d406d17d96572ba912e2ae772395756a39259a1", + "format": 1 + }, + { + "name": "plugins/filter/index_of.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b8f72b0978db5536a546d0652287f6d59111ef6a21c281873fc51bd9345a8ff4", + "format": 1 + }, + { + "name": "plugins/filter/previous_nth_usable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "60b550ba0f9e4afeb0db54e70e2c02fa7d12c14f3388d11fb24d3fefd2a51436", + "format": 1 + }, + { + "name": "plugins/filter/ipmath.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "29f0b614d1ad648514eb619f02de360d479759924bbe79aca66a1ec775fdb4a8", + "format": 1 + }, + { + "name": "plugins/filter/ipcut.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "68f81128b079b86a4f47a52991609d20405f1f21f17c428671971745aa872994", + "format": 1 + }, + { + "name": "plugins/filter/ip4_hex.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "595a83cef32d8c49c02984cffe23f63eb93a3b7e27121ccf14f5ef52ba4b5909", + "format": 1 + }, + { + "name": "plugins/filter/slaac.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "93c561c589dc6c5bbe732a4d136616c7d9b5e6b105cb9cec40b26e0ef8a172a4", + "format": 1 + }, + { + "name": "plugins/filter/macaddr.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b702ad98dbbaef44c7d5ceaa8355a317bcb1f0deb5f0224da98f639f789c2b2f", + "format": 1 + }, + { + "name": "plugins/filter/ipsubnet.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ab7f64ca7b708643f99bac87c642f80549c233d29b2b9433200a33df3bc58ae2", + "format": 1 + }, + { + "name": "plugins/filter/to_paths.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cfe1cb5a118b1d9547c2444d1ef9fd2dd8e0076587d58e724e756724768af228", + "format": 1 + }, + { + "name": "plugins/filter/to_xml.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1200518068f615530e5e74fa4e1ee82657a5aee1af0e7a105b1b7ebeae3ce0d8", + "format": 1 + }, + { + "name": "plugins/filter/ipv6.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b8f517a01193ab2a7d9406971cb31a55488315ac0cde3b167bb6a7eae78caf93", + "format": 1 + }, + { + "name": "plugins/filter/nthhost.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "338ca4a46c62a49b94e4994593a23cc998e2de3284777cbed9367e8de7bf02f9", + "format": 1 + }, + { + "name": "plugins/filter/network_in_network.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "292e649c71a8981076624d907e2355fdcca5b77d34630a3ba1d94b10e949207f", + "format": 1 + }, + { + "name": "plugins/filter/param_list_compare.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f02eda7836771f03e5ed78f444a67d2cabaf45231a15998b6ebbc77f18227348", + "format": 1 + }, + { + "name": "plugins/filter/network_in_usable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "555d3639de75196fc6d6d4b15000794ede40565f6d87c7515ddc2d96888ecb92", + "format": 1 + }, + { + "name": "plugins/filter/validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "29141fcc4d8549d340e48f52b7f55da839a899b15f7d5f2c29c04d65646ab40a", + "format": 1 + }, + { + "name": "plugins/filter/cidr_merge.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1696ddbc8006f734b96ca793b0d97b20fd916d5e79689927116b9502e6b39720", + "format": 1 + }, + { + "name": "plugins/filter/ipwrap.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9c18c1eac1f64f96be33092541430edb3d5de0b8f47483db09cff2c101c80fc3", + "format": 1 + }, + { + "name": "plugins/filter/replace_keys.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3ed3f41aa165e732586a87a436b6b3a620aa4576d272d5dc24b570602d5cf9c3", + "format": 1 + }, + { + "name": "plugins/filter/ipv4.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3c6de45a25dd966988f545d0daf22af1aad6ff70dae439952b5dc9b04214f308", + "format": 1 + }, + { + "name": "plugins/filter/from_xml.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5127b885570571c98046c6184c8366a42ec7b1c494e7e6c4c1046836ef184554", + "format": 1 + }, + { + "name": "plugins/filter/reduce_on_network.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c55954c5d20e0243f2e3333d011c4021ae4294f29e1a7c4cbf369950dee0eab0", + "format": 1 + }, + { + "name": "plugins/filter/hwaddr.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "537fa774d0c9e930f0bda854f715998a8128768421e9c416d54df187f236be66", + "format": 1 + }, + { + "name": "plugins/filter/ipaddr.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "12e73edbd14f49ea629e53c8f17d4261f40f87e2c582f599073c69cbe66d0d27", + "format": 1 + }, + { + "name": "meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "meta/runtime.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "211f3feb7161242e79e1eb543dff5881ec95b6153bd488b48fe7869239f153de", + "format": 1 + }, + { + "name": ".ansible-lint", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b47f72e159f93a5ff07ea2534752e0fa977b214e9ac05c667fa83ac13be4e50c", + "format": 1 + }, + { + "name": ".config", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": ".config/dictionary.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9f02d159a5040696bada5c52a53d96ccccfb6f65d5a7c795f7cb6e188288e8cd", + "format": 1 + }, + { + "name": ".config/ansible-lint.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e8e320c3f66ceea4d43d9962ef7b136906a5ce378685067eb2febf36cc0bb34a", "format": 1 }, { "name": ".pre-commit-config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28247159d1b5ed84b8ccbb678a34847e09b91c8d2c9dcbcd377abbd78b3efa37", - "format": 1 - }, - { - "name": "CHANGELOG.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "71f0c96ac529e145f49c5f79624bb8018ae43a8828b9a2d6205466782df50836", + "chksum_sha256": "6b98b35c7cda8dc6b578e799cc48d83fc49e323a6113da66f46ff67aa7bbf566", "format": 1 }, { @@ -3738,12 +889,2805 @@ "chksum_sha256": "1aec538a80e3fbf00bfd922d2dcd4ffbc831018d75faffea7b4c3cd3a4f44730", "format": 1 }, + { + "name": "README.md", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0c3f32b1ee520bcb76eccc149100ab557dc9c85ee7ac76f653fe5a89fec56e3d", + "format": 1 + }, + { + "name": "changelogs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "changelogs/fragments", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "changelogs/fragments/.keep", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "changelogs/config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "570abd82d0ec7ac5220615baee2491d67a7551d8483509a0949ffe0e4dd996c0", + "format": 1 + }, + { + "name": "changelogs/changelog.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "90a9d15965542693dd12b57db25e965566d7eb7bb215b578303c4468b026fd2d", + "format": 1 + }, + { + "name": ".isort.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4ca0097b4a09ffae0f6cad7b280f8f7acf1b6cc0c4bfd28a79ddc81d3b840262", + "format": 1 + }, { "name": ".yamllint", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "827ef9e031ecdcaf137be239d33ef93fcbbc3611cbb6b30b0e507d0e03373d0e", "format": 1 + }, + { + "name": "test-requirements.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "222cbdd413170ef428c54a537e78255a2388333502fb66a108c42432d6732064", + "format": 1 + }, + { + "name": ".prettierignore", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5f34b5c1df98658cfd45b86975b7f782b1e3486ea712f3372d6eba685a3a826c", + "format": 1 + }, + { + "name": "tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_keep_keys", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_keep_keys/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_keep_keys/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ef8940b0190398df13528e09eeeb4d70c7033b6dfbd55020d98cb65f87bd49e1", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_keep_keys/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_keep_keys/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_keep_keys/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dde35ae44213bd57cf8d06af380a0ec047374e13f4b56a8af11c87da95cbd50e", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_index_of", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_index_of/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_index_of/tasks/examples_lookup.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3606cec6d01105e1e0116a63ffc6cb3293184abafcf1472a8e473d1a16711f9c", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_index_of/tasks/examples_filter.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d430649f6347b6327300fa07b06751508823293284efcb2d85cb0121fba493c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_index_of/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_index_of/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1835e807efc8882163e2da83587baf64fa1c73611f649af1feba94b246c08a4a", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_index_of/tasks/argspec.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "98d3173c95800792d144508ea1cabdb032d318d1cc77b9f0416a21e6cb732d4a", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_remove_keys", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_remove_keys/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_remove_keys/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f64c5b12c89da7b8a953d4ee3d58e5ff102206f34cef5092be9aefa45c93d34b", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_remove_keys/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_remove_keys/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_remove_keys/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ac949eae4a5560d8ab122ea6a6dc2266bca438562a17071bc2339fe2e775dd09", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "811f88ff83143ba7f25fa66defe9ecf378bb5076162ae102d8ae7478ac253416", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/previous_nth_usable.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dba3b3b6be41729598da9ae343316e666d219e6fcc7c60bec22b163a8a7fc2c0", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipmath.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e4f81b95ab97909d5700ff50ab0c20b93d8f5be9b581a343b880c415243e2e5c", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipv6form.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0484829f9afd48bac830f255435c598be0a6dacf9af7ef8244beeebcd9d357ca", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/network_in_usable.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f7a4cc15d93654bfee1af885d8a9d49608219d0aefd42b3207742bcb8e913e3e", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipcut.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "11eca908bac30ceb6d2296a483d2d9ca137f427f34656b435474e7b9b838e1a4", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/cidr_merge.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7424055f53f023017fb31c9f657d4852ab6105645f23f70ecb9ef8d2b8e24594", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipv4.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a8383abffdac0845a506803744ff43aafb6a69c2b748835ea3a5c9e07d73f969", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/macaddr.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0d9c2c75fdd7dba56d6dad2678ea8189dd3f72fba079b9c64f7327de94a8464d", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipwrap.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b340a4d9688caa6c62d57c83a61350ef476be72e956ddc2652be11f83bda9d82", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/hwaddr.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d79ea40b43a1d173c26b0cbf3e86028476fc2ac535984110e9650fdb0cd5de85", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/reduce_on_network.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ce3a3f10c18b53a0e0530002482b206fe94f919afd70c47e553869adf08341f2", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/nthhost.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "55b128379a8a764e2d12fb2d8ed54186572eecd15fce2ec9ca80391fdc56cea0", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/next_nth_usable.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6d78051f7821f65a7ec231f6bf4d668fb5547aaf71598fbd5442c36044ca3d25", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/network_in_network.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e0b9961802edf76f585891f5b1128149be2c48718a337d7a26c3c15dbf0903e5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipaddr.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6b8a511909c70c8f1b2f1e8c7a1a2f5d278d299f6b66ac14bce90c77446ddd9e", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipv6.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e9f05b478b7cad442c6fdc31f6abe887e32a8c205b0acc24c49712d87fccc18c", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ipsubnet.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d3cfcf47ee32f59441573a19ab73383b433cbbc0788a9b8ffc0bb925cdffdf64", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/slaac.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "104c76112b82ebbff3f9a8edc5d6e4f7403b813fc1ffdc1bed83fc6c1630bc0e", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_ipaddr_filter/tasks/ip4_hex.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "245f6e53dd8b2f6bcdde2ee8d7d2037de96e3438c8702475a2907423e3a036b3", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_usable_range", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_usable_range/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_usable_range/vars/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cb30024867cbb7d7176c4459c7c6f1c798967e788af4b537789305cbf9659ba1", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_usable_range/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_usable_range/tasks/argspec.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e7f5735cd4b1509e1d0b98d4857ede083995365ba6b5bf07639ac516e36e8c04", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_usable_range/tasks/example_filter.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "19a626c2c0fbe4235775b9bf9ae7b13e0c332faf940f6d733512b6f5ed3cb523", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_usable_range/tasks/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/files", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/files/nxos_show_interface.xml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "363ab311f6ce9d7598f3ec3ce5546b33d634a8f079cd739ec478adc2a08fc9db", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/files/nxos_show_version.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7f264359b5e09e5093a59c73d9f844f55427b67177f0727ff3223f509d4fda83", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/files/nxos_show_interface.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "85baa8eed232e6d7dd7a470efb6b4f3efce552c847d1f73c80c651d1441000e5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/templates", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/templates/nxos_show_version.textfsm", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dfd59adde11de6285a62179e45db7b4e20e9ca61f276f6567c86c8455f796887", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/templates/ubuntu_ifconfig.textfsm", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1f10f192897c123e3e7fd0823384db59036d0c36b178bad57229e204688c2ba", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/templates/ubuntu_df_-h.ttp", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "83912bee5ca45c074370bf195532ee3172a4b2e687055d5639e933d5522c33d2", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/templates/fedora_df_-h.ttp", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "83912bee5ca45c074370bf195532ee3172a4b2e687055d5639e933d5522c33d2", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/templates/nxos_show_interface.ttp", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7b54c727fb9ab5731dbef7b5c271a41276278b15b7408bd24e25eda28e5c1a09", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/templates/centos_df_-h.ttp", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "83912bee5ca45c074370bf195532ee3172a4b2e687055d5639e933d5522c33d2", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/templates/nxos_show_interface.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bcebc3ef1d3e94fd156e655704999ee16837a1c95b90c6d8bbd567e47e4ce272", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/templates/fedora_ifconfig.textfsm", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1f10f192897c123e3e7fd0823384db59036d0c36b178bad57229e204688c2ba", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/templates/centos_ifconfig.textfsm", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1f10f192897c123e3e7fd0823384db59036d0c36b178bad57229e204688c2ba", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/output", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/output/nxos_show_interface_ttp_parsed.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1470ac4a29d08f6ef1dbf1ec6bc90fcd5cfaf200e8ad1dfee8389478ba522be7", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/output/nxos_show_interface_json_text.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6c28e733dc3473f0dd9a1cbe5c29b0f1be25906ddb0ecd9eb3c9cd5ec9cd4f83", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/output/nxos_show_interface_xml_parsed.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "278afc0fc6a54b10bec893de1cce2a912fe55ea37993627c9b869451ccfa8523", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/output/nxos_show_version_textfsm_parsed.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f397b4e90691b66a63829f2fa42874b5bea7e6558f712ce37582238e789746f7", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/ubuntu_textfsm.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dca8446bfde97c3bcfae26d7d157d9600f9c3ca5f84f970b5d2e4aecb38cdfaf", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/nxos_ttp.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ab03e39f60d54339a10c8477ad323223de6508a729ab0d3635f234d15dcb2ec5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/fedora_textfsm.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dca8446bfde97c3bcfae26d7d157d9600f9c3ca5f84f970b5d2e4aecb38cdfaf", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/nxos_xml.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2da27258e5c5b2f59e994347df9c2024c1578366a598bdb9f92b7b6525375fde", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/nxos_json.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "732de9a24704cdad80002b5e469b7b82148ec777bceea0e093aba10548fc0638", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/nxos_textfsm.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3136ee047a0c7a86abe2d8b1bfaf6f71108b34836ac3a0784872ead1c4530e79", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/centos_textfsm.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dca8446bfde97c3bcfae26d7d157d9600f9c3ca5f84f970b5d2e4aecb38cdfaf", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/centos_ttp.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "86028821b368a285f488ff0fed9f417682e8e979810221189d781c6e09554fca", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9254cb4133f860ba7fe60ffa731c6c6c1af94d85f9a94b464523e85d0523b6f5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/argspec.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "77982a1f454b2b6a7243fc01f68e48e1a8309baa510db00dc3f6bd3e0a0b4bdd", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/fedora_ttp.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "86028821b368a285f488ff0fed9f417682e8e979810221189d781c6e09554fca", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_cli_parse/tasks/ubuntu_ttp.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "86028821b368a285f488ff0fed9f417682e8e979810221189d781c6e09554fca", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_fact_diff", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_fact_diff/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_fact_diff/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_fact_diff/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f553cdcfd97be39cf9c0067d12e3b15bb3d783fb9f7d21559a1f3684f8483f2f", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_fact_diff/tasks/argspec.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4d2b497c4f889ab78c078d4a267322691abe8a025dfb71a1dc64180167a93f8b", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_fact_diff/tasks/filter.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c54727ea05083048fe11d3277aca6667dd9687d1e95010b6982ae81defb9bc13", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_fact_diff/tasks/examples.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8ca4ff69a313d35d39d1faa6228c03971a9019395d85ab1fec417a331f3c8330", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_from_xml", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_from_xml/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_from_xml/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_from_xml/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8cc0c47302d38b9929e0d184b11cc10cf0359d1fc4a732039a4fb6b7ea111efd", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/criteria", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/criteria/in_rate_check.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "eaf0cb45846bc2ebd25ecfbe85308fd7e3358e4900da1ce0d4c9418b42ab7aa7", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/criteria/check_list_data.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "80ed8bbc4b06991acb84b2b8c61bf8a45cfc0091c2b9b4b443f02fd030de16e8", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/criteria/enabled_check.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d37e8293e59f15873c54a47542cb0a9190b0f2f615126f276c6177816bb608ed", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/criteria/crc_error_check.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a1ec6bca6330a50b33920472d576acf1d62287a8aadbcf9ee63aed6673a2d784", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/criteria/format_checker.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "734eab506a730d90e57069d5e1177135ffeb0ac68db61942576e49144b8a5094", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/criteria/oper_status_up.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2c1159ec568a023a818953cb77c8e1618af99a8ec217d6a3ac108d972b78790d", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/criteria/rules.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fff82706f9f040c45e3e8d927968dfb5297e7c99904c4aa5b34f6ad9262619b7", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/data", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/data/show_interface.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e9d872c87bec35f958131f5a57469184dcb8364000a3fd2c764e698b0f7e7148", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/data/fail.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5bc357ee82697a6f8a4920451a0fdfc81f9f6af9522a134d26112abd20b41562", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/data/test_list_data.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "acc07b62f23f458923737c4cd4a66bd05d1e71eb4f384003baaf2dcc760d6349", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/data/test_format_checker.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5d4327ea944ff2f274a6f4161c9c6f69782202d1455f383a973819e4fbb85f80", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/data/warn.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9a5abf45b025490534361d18b5fd3e8c4ec56c52817d72a9d44c01d33e315d7c", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/files/data/pass.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1c97ae3826430fb1d113b8ed534f4609057b61cf2864a79eb1d603cf02281d25", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a0a2c468f24a66b8cea391acc05802e57275f212e1d4a467516bafd440f7765e", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests/jsonschema", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests/jsonschema/lookup.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "97f702bb945e3a25440077a7f1c1671b63b92be19158b5aeeb7ab697f2488707", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests/jsonschema/filter.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "76f0a20334ee425bf11eaaa8a6d1eac22190389887c60f9c25453c960545adaf", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests/jsonschema/module.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d1a87d40a955e4045360cb5b5537d4f3b46d925f03a91e00082ef0fba4a85333", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests/jsonschema/test.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "407252f2fe336072e3563bcb900454718ec15fcb0342f4298d6133c5f4b66f1b", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests/config", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests/config/lookup.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ba6482b4ff88840a1520a4a4a4f8ba25052b3fbc6b5e21a8e70abe93688e2728", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests/config/filter.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ba908086e5fbc87673dac750de6dd341ddb7da9d9250571b759abd24a83fe35a", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests/config/module.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3899feac6b3f90205fed11d72cd13781de4d66f82dcffa497dd18d001d198298", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tests/config/test.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "60c4bdf55c5ad5f5adeccc04df75d979f1b9739d6706bdf1e022d05e7e726a97", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_validate/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "56fa753c51c136c218723eba14767e0da3fa34f0745a9d138791a29df3c91565", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_param_list_compare", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_param_list_compare/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_param_list_compare/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_param_list_compare/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e507d9cb6b6a4a4e93e9c7cacacaadeab166f8aae0d1b4372526cc9fc4148829", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_get_path", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_get_path/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_get_path/tasks/examples_lookup.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5633047145361740d866a7078aa2fab73b996ebd94533d1915a4aa287460e3ff", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_get_path/tasks/examples_filter.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f68eb7831768f881ad74e6cabc72c2b831369028c100f5281d51a1a00665edfb", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_get_path/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_get_path/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "04026349ef6f6ef67b4240091acbda13f9f1e4bee2e2d5c0eb78e43e69d0ff63", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_get_path/tasks/argspec.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "11e998ff750cd816aac9742136193a407fed74fa25be42114a9b00fbf7ef4122", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_xml", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_xml/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_xml/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b8405fb4146ef4dbfa941874b93d3c87e02310ddaabf8407f2691da3855f1093", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_xml/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_xml/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_xml/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7228288965760ffa35f3630bf7ebfc7a6b1709d5d97550e2a2da863b35648551", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_consolidate", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_consolidate/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_consolidate/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2b9863b06cb4ff53639a027557da3cd5ac6b6b08855a181fa95bbccea94a4568", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_consolidate/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_consolidate/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_consolidate/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7105aaee542a860d153d0269d8dcfc07d3630986f2898f2f0c6a8a848df6467d", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_update_fact", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_update_fact/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_update_fact/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8ebea41c6f8a93be2240cd0c45732a3d596cf571cb64547dc113217da56b575b", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c00756f4c7d02ea4d04b4237141685543b0c673a354774e61b2acb48f45837bd", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/subnet_of.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "83ff3bf515253a8a340e7690c88f580f56ec1e8397a1e67d4a34cd7f29ad6ef6", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv6_teredo.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1ff255343b3b1d352575ac914f4268ebca0dbbdb780f6827f75382ef4df536a", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/multicast.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d8e39c219e278db46e2486ad411fe474860431184fb5e432fe36e226e26d508c", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv4_address.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "615dbbb31b07b9482dc6ae37305ab4d5b5c019a59bc10361ac40218d5de79203", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ip.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "93fe8c749063d99f6ee84648c75b90b12453f8144d0a26c145472a2f805ef5dd", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/loopback.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "aad21feb2e6d9130c6d0e61c8babce281670ae4eccac0c9f5bfbebc7a868403d", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/in_any_network.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e56f13ad78aba2bb04ffd61f951cba00731bafd2fdaccab7bfdee64f88e2346e", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/supernet_of.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c43c74df672831d7ec50692236de868518702232a9f18655e666cd317182773e", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/public.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0e004a3450bd9e12583d55af195a3b07307cf91dba57ee7a43ba8717c3e3ff4b", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv6_sixtofour.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0b1534121ecea3709d0fb5b8dd1506c57bc6a6dae5097cd7c90bd52bb9f6d16a", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv6_address.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b288eb0fa02b285827f29fe3cfc07240e41728bdb5cf774d95e47fdb3a1724da", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/unspecified.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "56dbed00bd55bbf9d35fa877fc0c09f3dc68dec8e0a59303911001ed781c589d", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/reserved.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ffe3ff53d0356e042999d9b0a78e95d27d1fa5d8d0912163eb593f5b5594ecb9", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv6.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "17f7a28a9a7796ee29e99b080af194ba1923736bdc1e17cb6afb4bbfae1e3820", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv4.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "afdc9774b465291d36a84a253f6b74b3be52e6534df4c09aed5edfe1702a38a4", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv6_ipv4_mapped.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3bf41c07dfa38283acd03c2d9c837611736dba49158652a919afaeb6f3fafcfa", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ip_address.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "21061cd07a8a22833eb928c528ec030c11cd183896a31074bdc83fd1e898a637", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/private.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9a0e6c4c080e3a1e916dbd47a051553d38b485e778d55c20ca85498c4e482376", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/in_one_network.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "14eed91cb6c11783729c61e43077f02a8143a472f7c711d8ec32bb845ea0aa47", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv4_netmask.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "edbf017def035b5ca082756de8a91fcf4bfbcc4fc3414aa5fc60bd131a98129d", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/mac.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4ada1fd18ed85280d8f5bad674d7f5dfecec48ff379a8e707dbf7bbd8ab82111", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/ipv4_hostmask.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "97dbcf159a748ca1f99c839d55af01455cf68e005ca30008cd48215d097eb461", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/resolvable.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "66ec974d89255561d81d2a6a62ace155dd6cc4f028b8fd7f1e77ec3dc270fd27", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_netaddr_test/tasks/in_network.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "179f6a091bc6a3b788e4ab31205bc1de8762f31d5cd134f8910748e8f3f77d17", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_paths", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_paths/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_paths/tasks/examples_lookup.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e7effabb7c07aeb379aceac6e0bc1dc79b3866a75af1780184cff1a716fa4a52", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_paths/tasks/examples_filter.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b51d0464be1d5eebb303d003c62a7d549fa97d28b926a2c2d5f105bd888413e4", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_paths/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_paths/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "aa868cb38568c82458b11d5cfc3af8b45caeea0a87f66cdedd57de808acd8eb1", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_paths/tasks/argspec.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e49e34f5831d822317ba67cd1c78a0bc7d3c7790fb8458ee17debda2c9b56cfa", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_to_paths/tasks/empty_members.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2fe1cff51babbc914c2fb685bdbbb4a3930ca6914bf9a2b814804f088702cc6a", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_replace_keys", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_replace_keys/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_replace_keys/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7bd28edb6a57c74d136d92d4faa678d480d17c8db0239fa294da1ab69cb1437c", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_replace_keys/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/utils_replace_keys/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2512b8be56ef8a8cb314d955a252bbd15f65856975e95294d6855c39c17587c5", + "format": 1 + }, + { + "name": "tests/integration/targets/utils_replace_keys/tasks/simple.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e9b9656746b1aaf502a733cf8af5350f2c7cd2abbb229c3684ce9e213dc95156", + "format": 1 + }, + { + "name": "tests/integration/test_integration.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ff6a6be37cf9314c1dcdff0004949ef58a027b2a9b1c931ab0548e255a66dd25", + "format": 1 + }, + { + "name": "tests/integration/requirements.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b75218b504713c1965fd2ade34d0a29db85713adb484dabaac17bc9967bf5a22", + "format": 1 + }, + { + "name": "tests/config.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4129945061440c8d8c281590b8054b194f5958833c722aa40e878b09038c380e", + "format": 1 + }, + { + "name": "tests/unit", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/mock", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/mock/loader.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2343d1f644250d4b616f0bf0a826fdee8fe306243d8412d44dd0e033352b262b", + "format": 1 + }, + { + "name": "tests/unit/mock/yaml_helper.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fc4f4d5d2968ced8e3a04653354945d720e7c6369aad67ba7724c5981c82b6ea", + "format": 1 + }, + { + "name": "tests/unit/mock/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/mock/vault_helper.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3bf7834d18bd34473d0f4b898253177229a131f14364874efba584ff985e4a41", + "format": 1 + }, + { + "name": "tests/unit/mock/procenv.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3ff983479d7aa4b90efe73337f723c14224edabcdfde4efe49f24cd905f45f1a", + "format": 1 + }, + { + "name": "tests/unit/mock/path.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b4f978c74a0eb5de96c00fb6ebfa2c410cb6e60bbb2b8569a473eea9dbccf4cf", + "format": 1 + }, + { + "name": "tests/unit/plugins", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/lookup", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/lookup/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/plugins/lookup/test_validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7f45d7fdf5374150d76ccd748e78be3235e70d25729031f2e0c798b372b7d7ec", + "format": 1 + }, + { + "name": "tests/unit/plugins/action", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/action/test_fact_diff.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e43ee9cf54ee1720ed01afd71a65c7a7c56cc307bebe140c82c9dc73e89b66ac", + "format": 1 + }, + { + "name": "tests/unit/plugins/action/test_update_fact.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a2bf8f765ce4b7629d58b011ffbcc75b7843f4ea0a477472d417ab9a1daca24d", + "format": 1 + }, + { + "name": "tests/unit/plugins/action/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/action/fixtures/nxos_empty_parser.textfsm", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/plugins/action/fixtures/nxos_show_version.textfsm", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a43d22b3a39174cdecc292f455723837a6dd4573af671ab7439cce2d362f0f1c", + "format": 1 + }, + { + "name": "tests/unit/plugins/action/fixtures/nxos_show_version.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dc4ab2b1c2a8c82c81cd1c61338d0d48737f751d4f859da0509168ea4c5d3dfd", + "format": 1 + }, + { + "name": "tests/unit/plugins/action/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/plugins/action/test_cli_parse.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "460fb03eb09c4f7db542e0760524fbeb84fa35be2a46452afa7e12b8f6dc0519", + "format": 1 + }, + { + "name": "tests/unit/plugins/action/test_validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9ce84b43bd1b99cbeb188f765e0f1a10ebde3a191a38d588e52a903c4f683283", + "format": 1 + }, + { + "name": "tests/unit/plugins/test", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_subnet_of.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d658246015b46f18ba15c6b0b69ae0746dbbffd7c0763450b266d620f0d57fe2", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_in_network.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7d630c57f1c068e5a3a4f0459d366870303ed999c38774b02d4469a040d5daef", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ipv4_hostmask.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "add5c19519be801bdd9a25b86c62002594835e9d95499b8d053e8f58edee0292", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_resolvable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d4280507b9cb9f12927b94bf54cefae7f2de48666071b5755dcc586019670fa1", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_in_one_network.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "46f22a802d660b6835844faa130fb932e1263dedcd286bc7797be02f7931d0f9", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_private.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "62aac1efc1576d3b792fc4a3c9565e06b4ef604d8cd46520efc63cd222120b35", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ipv4_netmask.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "89631b6c8057acdfc77c078dc17e0648977928a361455ce9c9fa1a4ade33ae3b", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_public.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d6d78b92c0e0c283dd688712018e9af484669f6ffb50cdbd6e7257e44176ea5c", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ipv4.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "693395d9792afc9f495cbed165f9c7f01811b8d3c2482f9dabe0452812ff668e", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ipv6_teredo.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "90d7673591333a46ae82870d88c081454a91993f9d46ebe94f284f2d59de591e", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ipv4_address.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "de5141c7d33925c220f96f294bf2612aefbd50d8d46d44f209e9e2ca15e0df80", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4b8467971ce57d85ab5d556f433155616a200e66ac8a504e469215ce0e02028b", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ipv6_ipv4_mapped.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bb2bc0c4cbf9ebe9725da184fcdc473acd4fadfc7d520cb0b80db5bd2c3d4c6c", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ipv6_address.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a91f65dce674d2e3b049038f52429fb6f75cc160fec14ca03d711fc1915e0034", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ip_address.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d1c7d5814a1cce278bdd8a67d5947dfdee8bb8fcf9d82b6d6eb987103449e9c4", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_mac.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1aab527425e836db9f88ef4f1c7ceb8b9a37600036149df373634f260a85c13d", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ipv6_sixtofour.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6a490ca51048d833decd376e1d2f3820ee76b3b986fd23f356478f6b14a75a6e", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_unspecified.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "396227565c79653d45bbd485dcec679ad3d3241193410e1ee82d3ec99f2c50d2", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_in_any_network.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "481edf1f24d8aee5e85b4e3838975467662b94b1aa8d90ac1a01f37d439766c2", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_supernet_of.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "71a3934bc33250f504573bf31f66b83816c732fdcf992d0f3eaaeac0cfc25642", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_multicast.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1e70c22a75e397e2ffcbada31b35ee8419f19045db11858e13043c61b10d4eb7", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_reserved.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7c06b1cffb5bf6d5a5f5154540cc58da0563a99c4fa4a2f302504c8ac089b679", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ip.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9b675dab5552272808b03c47085d317face21b690b239c21ac02e0a11d0e34e8", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_loopback.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1b731fee48c23f26b2fe998ba7aab7a10e0ba36aecc1597e02e13a32220d4b9f", + "format": 1 + }, + { + "name": "tests/unit/plugins/test/test_ipv6.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c8f7bf3952f67b0aad7cf95b5644ab205530434e7dd9a2e563201ad88a61d6b8", + "format": 1 + }, + { + "name": "tests/unit/plugins/plugin_utils", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/plugin_utils/test_index_of.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1e7124833615311a888a8add869657853f41ba67798c284e49c0d4888ec7f2fa", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/test_json_parser.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a4cdde648197c46f6f387a94cde4376538f0de3f8a731c322f39534bd402ff47", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures/nxos_show_version.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "280b9a49752bd9ebddf26798b7df94115c3f3402877d350e60b3236a33fb3f68", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures/nxos_show_version.textfsm", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e0ad0e83aca80d858e8c7301094b1c67e260223cf650af013980461928429916", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures/nxos_show_version.ttp", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "19b19fa15a9d932cf92cb94ecdca1b5b3c64e7961cef2d6574264930e6dfe466", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures/nxos_show_version_invalid.textfsm", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "70efa127c6437e5a9428fb9701dad0e5bdf1425f0ad87c4d18ff3a4042154bc8", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/fixtures/ios_show_ip_interface_brief.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cf7860ac3fe8175f2a062881ecc52f977f14fdcf92ae1a60df68edda493f645a", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/test_textfsm_parser.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1a6c853a771571f23a01266ed0d147859713c049e55e515d621df180b36d83cb", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/test_xml_parser.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "387a56ea06526bdc0b0b39e4710fa461ce9e0df677ee778879e6c152231db5db", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/cli_parsers/test_ttp_parser.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0ed8c629a527b7f02196735cd40b58954de5067878df9ed368fb9ac55effa55e", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/validate", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/validate/test_config.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7e1806206bbdc7d122851e64a5a8a2962a667e7fb1368891b039ea10d880da80", + "format": 1 + }, + { + "name": "tests/unit/plugins/sub_plugins/validate/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_nthhost.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d64e623888afa66c5ad67ecaae097f23291dcac857b5319b25d0e74acb5b0db8", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_ipv6form.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f0f438cfffcfc7d5bd5a9f1808c44de11334da483c6da0e5feeba393029b04b9", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_fact_diff.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d22bfd2bdcaf646b644a484e6e7baac2787c9d7e5b2bea2a9fdfec4d9640c80b", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_network_in_network.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "afc6be94632b0a25f3adca23a4922bfe2c9c936c155da4d94cab3180c28b9863", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_ipaddr.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "98d3bae45dce4a2f91c901fbd2d0cf5875e612dd7daf5fdcf8b27be9ed77683c", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_ipwrap.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d18ae8e036438873bcaec3bd7fe6137c9d0929d2481ed2899b40ad6a7f901e85", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_hwaddr.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2620d2aa47ec69704b63dcd186539279121f551d043776e2b81909beb0a3ebad", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_usable_range.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c7d295c3000fb8f4e4a6dd23fd945cbcf52e7d68928a20cbf89f6659a596e2a4", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_ipcut.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e5fdf693cb5159fede04b5094c9268902ba69ceea73ef35c85a6f81824d34052", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_reduce_on_network.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8ccf14584cf204bf359bb0711b40e099945f3a5717c4a149944ef4c4be48d345", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_param_list_compare.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c65d22b9614e811d8eba570fca6c6194c59bf47b3b975f4853c48113a8ff7a6d", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_keep_keys.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2b91b9860329439b4355c5f2cb1e89835ca61ea948d260baed93f57858185c32", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_to_xml.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4e7ecded556df9d2432aa490781c7d2fc1907b5fe6621a1b3f6e8aca988b4cd3", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_ipsubnet.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e49cb14e3509457970aeef8e6e5ad854d38784b61123e9f950f16f02b8033837", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_ipv4.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6d1b99aad3d116523b262cffee6ab317ef75c2cb96c87f110f8a52ab295f4973", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dc44a7bc87a3424a4a2c2c4726a2e4cafdd8a3e2f7f55a5371b7ceec8a3be5fd", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_ipmath.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c16f8a9fca5ebc70ab8560c787c8a637079c2d79fd545059f6cd7eb1f92d46c1", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_replace_keys.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5522cfab5edfdf3739180b05c3bb65152336d07106a82a33076d52eaf399a4fe", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_next_nth_usable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0980d4e0ef3664c878a618717efe41ccb836e781c068f028d8777e2b42c8ebb0", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_consolidate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1dc8412704c61f5cb1b0cc52b6922a28e768cc6525453368ebebae8afbd8d6ce", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_macaddr.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5d586ac9c169f7dd133276ff0ac7078b4147face9fe39f7f6418a00473b25ded", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_from_xml.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "01fe5504bddedec8fc5afc6de2b7b4ddc884fbf87148a52b9d1ece85b7482dfd", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_ip4_hex.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d656d1d4ca804630601af52754c70daabc0f6fd357cec1eb1e94cdaa7db6e894", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_network_in_usable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e4073fdb1071ca2a9f332c7800bed27c47d425400a4c7ac50d60d89f4fb1b017", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_previous_nth_usable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2940ec98b9252f37708c31c5c7be03397b382cbdb55617c48a91fe56203a5f37", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_slaac.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d6f40ccd4972301f4d35acb137565f119b906e1a155bcf2ed7f9bdb3bafc37c0", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_remove_keys.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d76ed7cf44390b9f18e53ed705a417d66e51d2479c1ab81c5f8015570947ac95", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_cidr_merge.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fa2633572c17bdb2493badbe31a368b10ec18327bcae10350d181a7f4cefaacd", + "format": 1 + }, + { + "name": "tests/unit/plugins/filter/test_ipv6.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7d0b81fe64f7e706c2043f1ab4e61f35536172922b281e47078996469a444636", + "format": 1 + }, + { + "name": "tests/unit/module_utils", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/module_utils/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/module_utils/fixtures/docstring.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1f147714958e065abe3622fa3e94ee26f70d06212de8cdbe54210c28a4e71b02", + "format": 1 + }, + { + "name": "tests/unit/module_utils/fixtures/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/module_utils/fixtures/large.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "56dadab818a719846f64c0fcfd7d0c2c1eeb34cdb8cc646033311ef90b0770a1", + "format": 1 + }, + { + "name": "tests/unit/module_utils/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/module_utils/test_argspec_validate.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5f83ac9ca3034d6af7b3b8fd42d52daf073981d1191c7d26bd094d23966488ff", + "format": 1 + }, + { + "name": "tests/unit/module_utils/test_to_paths.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "39db96610cc324a48b70fcd56b6d47995712fef01a6124ef5b87f390a7c2aabf", + "format": 1 + }, + { + "name": "tests/unit/module_utils/test_dict_merge.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8f1ef47e9e46b2f40a0043243467b56b4884bd4ad181eb7ffd0e1881d7fe50b2", + "format": 1 + }, + { + "name": "tests/unit/module_utils/test_sort_list.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "df4ed8325d26693e4b170ac52084db62ccc7abb82b2a8706b491bb47c4c7501a", + "format": 1 + }, + { + "name": "tests/unit/module_utils/test_get_path.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5bf169349a95316a5b30e3fe0181f00849447213b2247f072ff8788e339f1c67", + "format": 1 + }, + { + "name": "tests/unit/requirements.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fcea5298285c0542897536b02f5c7753645c7fa83abdcac6b0f3e15ec3d27160", + "format": 1 + }, + { + "name": "codecov.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d7119b3a96ece7bcd2df6e851e7e19783049f280918a801344d502c6ada4e582", + "format": 1 + }, + { + "name": "tox-ansible.ini", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fd009473385d7a79691dba3f6326b5dce9ded1705cc672917cf80e03317bf38b", + "format": 1 + }, + { + "name": ".gitignore", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c444cf81acd9153b71cd9ff418b980724cac7d29c77b57d453053923dffbdcc3", + "format": 1 + }, + { + "name": "cspell.config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e1079e6d02ed34033bf83913e7b66ff7bd042e6d8ed4c113aea31123f557deb5", + "format": 1 + }, + { + "name": "LICENSE", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "format": 1 + }, + { + "name": ".flake8", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e0ac43f26ecfa3094c442566f7ad9d637c2975a4072c2cbf438b59b3adcdf219", + "format": 1 + }, + { + "name": "CHANGELOG.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2427bdf40969757f62caf9b4315e943c5bbe39a84fd2802c19afa0f332759b74", + "format": 1 + }, + { + "name": "requirements.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b1867544249e1acedd6385529f7378e93f91208c7f27d11f1a2bb4403c68b8dd", + "format": 1 + }, + { + "name": "docs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "docs/ansible.utils.previous_nth_usable_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "94e6ce5e91e19ccb7249987bed4d5288f231e31900299698508ce3980f382e71", + "format": 1 + }, + { + "name": "docs/ansible.utils.unspecified_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1eec59f8934a04b53d1615f3b207586fcd8fad2981b85d0665f0f57026a6f29c", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv6_sixtofour_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "199d99f772c92d20a560fa5afbba8ac4df74a11eaccffb5c29a2d96c3e6dea02", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv6_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "05665d4cc703bf130c7593ad3e0a974e33bf1530318a32caf38bc2b9bd5ec3d0", + "format": 1 + }, + { + "name": "docs/ansible.utils.slaac_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dc9f60ef24b7ad1e30861adfb02e97efd3db05579c0790cb07e8535db03bc69b", + "format": 1 + }, + { + "name": "docs/ansible.utils.macaddr_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "549d998af199f3f60df3c87594d015379d4a674e7fa311df1edea8e54f613270", + "format": 1 + }, + { + "name": "docs/ansible.utils.fact_diff_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c27b93299035cc8c6682dda0051e91d1db168007c2c73356808098cad41da3da", + "format": 1 + }, + { + "name": "docs/ansible.utils.replace_keys_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1861c5dccd6e4e9e24c5250c274237d4d5df62bbdcede41b78c1f808d2ddcf8", + "format": 1 + }, + { + "name": "docs/ansible.utils.validate_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b47930c113c23060d1281bade44f65abcfa57be02943ef2652710929fa9d6f27", + "format": 1 + }, + { + "name": "docs/ansible.utils.cidr_merge_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d214b5cda14a322db93269a17b361b4d8b56989b29a7808619cc5d177114a4c5", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv4_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "58d021685cdafba7cae88b47ae7b996e9cd4df7f4e3e4aa7e8519c06176f52bd", + "format": 1 + }, + { + "name": "docs/ansible.utils.multicast_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "55c9f48ea04a80347fe42bc9c25fa0771578924f5afbff64a42feb04bbdb84be", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv4_address_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4842230a2ce840862d3366ecce677e56ad38600b5b07a27de3afbdc4e5b1759c", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv6form_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f5cef46d5cde1a50882f319db18ea8421e11a92cfc51b0f9d25201040bdd4a23", + "format": 1 + }, + { + "name": "docs/ansible.utils.validate_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "81f6e37b6f9275cd8bb1240a7bfa7a8fcefbb744b68c027ab922321d4547d91f", + "format": 1 + }, + { + "name": "docs/ansible.utils.cli_parse_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d18023f4a52a2bf40a6973bff87a1507abe081e772b98c5ad0a88790fb41d00b", + "format": 1 + }, + { + "name": "docs/ansible.utils.to_xml_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dcbfe90179444aba2c77f5edb8aa3f2f1e46509b19a3b46ac1ce825c145c88c6", + "format": 1 + }, + { + "name": "docs/ansible.utils.validate_lookup.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3cb9f3909679db84ec4e17f102eca4dc16872c39098254fa1dfae976e42136d9", + "format": 1 + }, + { + "name": "docs/ansible.utils.resolvable_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "62013972070a09452a421a061a891e8ceebc94ea610103b6b21e14441328bed1", + "format": 1 + }, + { + "name": "docs/ansible.utils.fact_diff_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0be4cf38c71bd11475f9a4dc73700ae11ec57cd0d27af3d3379c08e94e21de09", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipsubnet_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "04d4c6c32fcc688b3e4f226317ade21885628d39101cf797dafc36a0dd86ac3c", + "format": 1 + }, + { + "name": "docs/ansible.utils.remove_keys_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4d8e87cf05341c85a46097cf933e6705ca0de7a189f078165772d21604188f9f", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv4_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "495c65997da307de9e446f77e413d0d1ec26d245d855cabc838737a78aceec11", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv6_address_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "30a2515d6260cfda2181cb101c26063dc5b18529cd60576d39a88160714f5af0", + "format": 1 + }, + { + "name": "docs/ansible.utils.in_network_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6054c4414e7df289acca584d8cde0025fda866f5fd8fd268c1cdba7c1cb7bd9d", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipaddr_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b3e3890d2cf44c611439f215c3e9105af9975f72c5bbd4766ddbdec49c4d01b2", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipcut_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "150ecfe60509b1b0093de7ea4a911eb8ab291cd1b9398586fa96a69b09daa43f", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv6_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4cbb8f9b4687b1da3daf647c14e19c1d0eb7672f5af3b9387b308da8f2e1e9c1", + "format": 1 + }, + { + "name": "docs/ansible.utils.validate_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7b3e3f7b9576c04425c56142667cd0ffc8f021e2624fa86e23f9e9f20745c13e", + "format": 1 + }, + { + "name": "docs/ansible.utils.index_of_lookup.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9d3492d8a3db1ccc4e8449fc37e05a30449dec8a71cb0801d9056ad93af0cf57", + "format": 1 + }, + { + "name": "docs/ansible.utils.loopback_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "68ffc927cd71df145413f9c9dcdee23b940ab394989ddd7ced63a5d75957e19e", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv6_teredo_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8019ff32d2d4a4b0796dc1f9a43a391edb75a5c9acc4a73c7b4b2216c54a242f", + "format": 1 + }, + { + "name": "docs/ansible.utils.to_paths_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f31c47be2c7013bdf8a52668c84e5b4beed859fe0ad77459138e42a3f0d61425", + "format": 1 + }, + { + "name": "docs/ansible.utils.from_xml_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1a197b87a3c3f47315f279e12775bf5c99f36ee003ff639e3f381e5342f98ed8", + "format": 1 + }, + { + "name": "docs/ansible.utils.supernet_of_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f5a987278d1a641a79c672006b8eeb37b1e937f4f85baaefb600a3a6e4affae4", + "format": 1 + }, + { + "name": "docs/ansible.utils.ip_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "423c666b424a893fed77918cd8afbd5acf4b95156ea109e4c1ae9b910333b39d", + "format": 1 + }, + { + "name": "docs/ansible.utils.subnet_of_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bab2b4b9c50f9250332f845ab0d6e5b8d829301fa9c9cd1f168f31d306bfdad2", + "format": 1 + }, + { + "name": "docs/ansible.utils.network_in_usable_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "74e58e97636306402fcc697a0478eabc57ecc2df6a02b8a8e00b8cbd23239db6", + "format": 1 + }, + { + "name": "docs/ansible.utils.get_path_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d93dd63925b87e4d57470f4cf6436b374a975bd6ee052a8283bfa8031923ed2b", + "format": 1 + }, + { + "name": "docs/ansible.utils.hwaddr_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "06004f98865238ad74c52a67c40b977315200c1dfd5b48e3666681b8a83f53f5", + "format": 1 + }, + { + "name": "docs/ansible.utils.update_fact_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9a249c8e78a9da1ccc2f3a3f8532e0a3950652f678a22c232d9785e6adbdab2a", + "format": 1 + }, + { + "name": "docs/ansible.utils.mac_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f0b1e210c490176d84983fca86cb4b83fd346e40176789ffb8d3c66b1dd17921", + "format": 1 + }, + { + "name": "docs/ansible.utils.public_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4cb3046bae484b3de9facc9a12f078a1412af6c42dc729df3b821e8d2075fd46", + "format": 1 + }, + { + "name": "docs/ansible.utils.ip4_hex_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9568ea4894daa231731491939cdfb193bcc631f36580d0cb82e161e692870c15", + "format": 1 + }, + { + "name": "docs/docsite", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "docs/docsite/extra-docs.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "735531af48baf6de4e933219f147cf4b3187410f111ec9c188a06903675b757d", + "format": 1 + }, + { + "name": "docs/docsite/rst", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "docs/docsite/rst/filters_ipaddr.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c9775fb372228245e46eeff7beefdf3cd765ecfccd7e688eda2ec689e2ac2195", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipmath_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0ad6e54b6e827dcf8235a8e237d94fd2ed8f7fbe34dd47aff5b5ed6fdd45e33c", + "format": 1 + }, + { + "name": "docs/ansible.utils.nthhost_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4504d31bfe9857b381ab5027d6e8979cce559db48e515ee220b47e9f83ab628d", + "format": 1 + }, + { + "name": "docs/ansible.utils.usable_range_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1075aa159a55fbe12b3a53076111d509078ed5f08c54327d4f1fc3f85a3a29d8", + "format": 1 + }, + { + "name": "docs/ansible.utils.reduce_on_network_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b8a63a854939b7468f04a5d15680840c679c4d080a0b367a61693c3a27995f10", + "format": 1 + }, + { + "name": "docs/ansible.utils.private_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4e36e2bd85c58c001cd29b548979ab23adbcdd02290f375293db88c23ca55ae3", + "format": 1 + }, + { + "name": "docs/ansible.utils.get_path_lookup.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0a5b58a4a23622668ac0b1ff8e8279973fba07c285d7621268259eecbcba8177", + "format": 1 + }, + { + "name": "docs/ansible.utils.network_in_network_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "25caf49346a61296cab62448dec2253f7fe8d1d551de18006cb651b0a962d49d", + "format": 1 + }, + { + "name": "docs/ansible.utils.param_list_compare_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b9a763a3b44b126a7bad44558f4e7b6d861d9a42e4978cfd5bc1f655c03dc5d3", + "format": 1 + }, + { + "name": "docs/ansible.utils.keep_keys_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "57b1faf8874e35a682b8ac1f717bc43e3ab4b015bc7ac8bd984a458ab2444262", + "format": 1 + }, + { + "name": "docs/ansible.utils.in_any_network_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e9678218618d0bb3f526f0cdfaf3d09f24bbaadd6f7317b02cddc4f2bfc7598b", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv4_hostmask_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "95cdff320db4d31cf5fb9abe6144b39b1cf7f1da47f827341b0c52ba5475911a", + "format": 1 + }, + { + "name": "docs/ansible.utils.reserved_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "abfaea7206a74c57fabcf1116cbd0fc0ad510c1cab57c9da5ac29ce552370263", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv6_ipv4_mapped_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a2f80757dd33fb9253ed11d8de3cb8aa0fb27f880fe3fe193caa1eb13ab5ed9e", + "format": 1 + }, + { + "name": "docs/ansible.utils.index_of_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cf5a4c7351a8a43b70c4efbcc6932d0a75f35d1dbb3c040918c470452c6d68ef", + "format": 1 + }, + { + "name": "docs/ansible.utils.to_paths_lookup.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c3c9628ebc9e7ddfd0d478ff5b8dcbb15f86a0b85ce1607bc37e3e5e368421c1", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipv4_netmask_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b6d22ab2bffd5865608a1cdb0039226c116f4b086a0b15196e66181323acc4c6", + "format": 1 + }, + { + "name": "docs/ansible.utils.ipwrap_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b26276300d797113d036be6eeac6fd76812cd8e3e32d8cae13e4421b4111d233", + "format": 1 + }, + { + "name": "docs/ansible.utils.ip_address_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0f9a4db063314e0acdf3dc69c1c669955a27927bbb6b25ea3fe69322d3a59390", + "format": 1 + }, + { + "name": "docs/ansible.utils.in_one_network_test.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9fc9e8aa7b1e66065f1fc6fe5d3813eabea32935c9010bd40bc8dd44cad350a7", + "format": 1 + }, + { + "name": "docs/ansible.utils.consolidate_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bf891d59082405b69a8bbc998ede84fac3b908dfb98f06c5eb4081288a8fcc6f", + "format": 1 + }, + { + "name": "docs/ansible.utils.next_nth_usable_filter.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0702412f10dce01ad520ef2c44622bdf4b4e7e1eadbdb3f7cecaf17c79cff102", + "format": 1 + }, + { + "name": "bindep.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "80645079eb025b3a905b4775ac545d080a3d7d35d537c31e04f7197c94315ab5", + "format": 1 } ], "format": 1 diff --git a/collections/ansible_collections/ansible/utils/MANIFEST.json b/collections/ansible_collections/ansible/utils/MANIFEST.json index d8ac865..829a990 100644 --- a/collections/ansible_collections/ansible/utils/MANIFEST.json +++ b/collections/ansible_collections/ansible/utils/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "ansible", "name": "utils", - "version": "6.0.2", + "version": "4.1.0", "authors": [ "Ansible Community" ], @@ -30,7 +30,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "19dcf67b45414d5687c1e9811735ab46014a9a7fd8b1f04fbfd1ea26e2baf98f", + "chksum_sha256": "364b8a7ea619abce47e2b659b41dd8442aaf031f027a38888c9f0c48ee30181c", "format": 1 }, "format": 1 diff --git a/collections/ansible_collections/ansible/utils/README.md b/collections/ansible_collections/ansible/utils/README.md index 93109f7..91feb0c 100644 --- a/collections/ansible_collections/ansible/utils/README.md +++ b/collections/ansible_collections/ansible/utils/README.md @@ -1,36 +1,16 @@ # Ansible Utilities Collection +[![Codecov](https://codecov.io/gh/ansible-collections/ansible.utils/branch/main/graph/badge.svg)](https://codecov.io/gh/ansible-collections/ansible.utils) [![CI](https://github.com/ansible-collections/ansible.utils/actions/workflows/tests.yml/badge.svg?branch=main&event=schedule)](https://github.com/ansible-collections/ansible.utils/actions/workflows/tests.yml) The Ansible ``ansible.utils`` collection includes a variety of plugins that aid in the management, manipulation and visibility of data for the Ansible playbook developer. -## Support - -As a Red Hat Ansible [Certified Content](https://catalog.redhat.com/software/search?target_platforms=Red%20Hat%20Ansible%20Automation%20Platform), this collection is entitled to [support](https://access.redhat.com/support/) through [Ansible Automation Platform](https://www.redhat.com/en/technologies/management/ansible) (AAP). - -If a support case cannot be opened with Red Hat and the collection has been obtained either from [Galaxy](https://galaxy.ansible.com/ui/) or [GitHub](https://github.com/ansible-collections/ansible.utils), there is community support available at no charge. - -You can join us on [#network:ansible.com](https://matrix.to/#/#network:ansible.com) room or the [Ansible Forum Network Working Group](https://forum.ansible.com/g/network-wg). - -For more information you can check the communication section below. - -## Communication - -* Join the Ansible forum: - * [Get Help](https://forum.ansible.com/c/help/6): get help or help others. - * [Posts tagged with 'network'](https://forum.ansible.com/tag/network): subscribe to participate in collection-related conversations.``` - * [Ansible Network Automation Working Group](https://forum.ansible.com/g/network-wg/): by joining the team you will automatically get subscribed to the posts tagged with [network](https://forum.ansible.com/tags/network). - * [Social Spaces](https://forum.ansible.com/c/chat/4): gather and interact with fellow enthusiasts. - * [News & Announcements](https://forum.ansible.com/c/news/5): track project-wide announcements including social events. - -* The Ansible [Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn): used to announce releases and important changes. - -For more information about communication, see the [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html). - ## Ansible version compatibility -This collection has been tested against the following Ansible versions: **>=2.16.0**. +This collection has been tested against following Ansible versions: **>=2.14.0**. +For collections that support Ansible 2.9, please ensure you update your `network_os` to use the +fully qualified collection name (for example, `cisco.ios.ios`). Plugins and modules within a collection may be tested with only specific Ansible versions. A collection may contain metadata that identifies these versions. PEP440 is the schema used to describe the versions of Ansible. @@ -172,7 +152,7 @@ Please read and familiarize yourself with this document. ## Release notes -Release notes are available [here](CHANGELOG.rst) +Release notes are available [here](https://github.com/ansible-collections/ansible.utils/blob/main/changelogs/CHANGELOG.rst) For automated release announcements refer [here](https://twitter.com/AnsibleContent). diff --git a/collections/ansible_collections/ansible/utils/bindep.txt b/collections/ansible_collections/ansible/utils/bindep.txt index 70fd8df..ba9c980 100644 --- a/collections/ansible_collections/ansible/utils/bindep.txt +++ b/collections/ansible_collections/ansible/utils/bindep.txt @@ -2,3 +2,5 @@ # see https://docs.openstack.org/infra/bindep/ for additional information. gcc-c++ [doc test platform:rpm] +python3-devel [test platform:rpm] +python3 [test platform:rpm] diff --git a/collections/ansible_collections/ansible/utils/changelogs/changelog.yaml b/collections/ansible_collections/ansible/utils/changelogs/changelog.yaml index 3aac1bb..404d7ae 100644 --- a/collections/ansible_collections/ansible/utils/changelogs/changelog.yaml +++ b/collections/ansible_collections/ansible/utils/changelogs/changelog.yaml @@ -436,105 +436,3 @@ releases: fragments: - ipaddress_is_global_fallback.yaml release_date: "2024-04-15" - 5.0.0: - changes: - major_changes: - - Bumping `requires_ansible` to `>=2.15.0`, since previous ansible-core versions - are EoL now. - release_summary: - With this release, the minimum required version of `ansible-core` - for this collection is `2.15.0`. The last version known to be compatible with - `ansible-core` versions below `2.15` is v4.1.0. - fragments: - - bump_215.yaml - release_date: "2024-06-10" - 5.1.0: - changes: - doc_changes: - - Add a wildcard mask/hostmask documentation to ipaddr filter doc page to obtain - an IP address's wildcard mask/hostmask. - minor_changes: - - Allows the cli_parse module to find parser.template_path inside roles or collections - when a path relative to the role/collection directory is provided. - - Fix cli_parse module to require a connection. - - Previously, the ansible.utils.ipcut filter only supported IPv6 addresses, - leading to confusing error messages when used with IPv4 addresses. This fix - ensures that the filter now appropriately handles both IPv4 and IPv6 addresses. - - Removed conditional check for deprecated ansible.netcommon.cli_parse from - ansible.utils.cli_parse - - The from_xml filter returns a python dictionary instead of a json string. - fragments: - - 200.yaml - - 203.yaml - - 204.yaml - - 324.yaml - - 358_ipcut.yaml - - add_template_path.yaml - - fix_cli_parse.yaml - - fix_from_xml.yaml - - todo_condition.yml - release_date: "2024-08-05" - 5.1.1: - changes: - bugfixes: - - keep_keys - Fixes issue where all keys are removed when data is passed in - as a dict. - fragments: - - 0-readme.yml - - keep_keys.yaml - release_date: "2024-09-05" - 5.1.2: - changes: - bugfixes: - - keep_keys - Fixes keep_keys filter to retain the entire node when a key match - occurs, rather than just the leaf node values. - fragments: - - keep_keys_greedy.yaml - release_date: "2024-09-30" - 6.0.0: - changes: - major_changes: - - Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions - are EoL now. - release_summary: - With this release, the minimum required version of `ansible-core` - for this collection is `2.16.0`. The last version known to be compatible with - `ansible-core` versions below `2.16` is v5.1.2. - fragments: - - bump_216.yaml - - ipaddr.yaml - - test_ansibleundefined.yaml - release_date: "2025-04-08" - 6.0.1: - changes: - bugfixes: - - Add a cleanup step that removes empty {} and [] values from lists in keep_keys_from_dict_n_list() - doc_changes: - - Fix the description of the reduce_on_network filter. - - Fix the module name in ipmath filter. - fragments: - - fix_data_tagging.yaml - - fix_description.yaml - - fix_keep_keys_list_retention.yaml - - fix_module_name.yaml - - fix_sanity.yaml - release_date: "2025-12-31" - 6.0.2: - changes: - bugfixes: - - cidr_merge - Fix filter failing when used inside a Jinja2 macro called with - ``with context`` by unwrapping Ansible lazy template lists before validation. - - cli_parse - Honor ttp_results.results flat_list in TTP parser so output is - a single-level list instead of double-wrapped (https://github.com/ansible-collections/ansible.utils/issues/402). - - ipaddress_utils - Support Python 3.14+ by using the public ``version`` attribute - instead of the removed private ``_version`` on ``ipaddress`` network objects - (bpo-118710). - - update_fact - Use task_vars at top-level instead of the deprecated ``vars`` - key for compatibility with ansible-core 2.24 (ansible/ansible issue - fragments: - - 402-flat_list.yml - - 426-update_fact_task_vars.yml - - cidr_merge-macro_context.yml - - fix_deprecations.yaml - - ipaddress_utils-python314.yml - release_date: "2026-04-09" diff --git a/collections/ansible_collections/ansible/utils/docs/ansible.utils.ipaddr_filter.rst b/collections/ansible_collections/ansible/utils/docs/ansible.utils.ipaddr_filter.rst index 4c1f07f..006f078 100644 --- a/collections/ansible_collections/ansible/utils/docs/ansible.utils.ipaddr_filter.rst +++ b/collections/ansible_collections/ansible/utils/docs/ansible.utils.ipaddr_filter.rst @@ -19,16 +19,9 @@ Synopsis -------- - This filter is designed to return the input value if a query is True, and False if a query is False - This way it can be easily used in chained filters -- For more details on how to use this plugin, please refer to ``_ -Requirements ------------- -The below requirements are needed on the local Ansible controller node that executes this filter. - -- netaddr>=0.10.1 - Parameters ---------- diff --git a/collections/ansible_collections/ansible/utils/docs/ansible.utils.ipmath_filter.rst b/collections/ansible_collections/ansible/utils/docs/ansible.utils.ipmath_filter.rst index fd4cdf5..3bc10df 100644 --- a/collections/ansible_collections/ansible/utils/docs/ansible.utils.ipmath_filter.rst +++ b/collections/ansible_collections/ansible/utils/docs/ansible.utils.ipmath_filter.rst @@ -84,32 +84,32 @@ Examples # Ipmath filter plugin with different arthmetic. # Get the next fifth address based on an IP address - debug: - msg: "{{ '192.168.1.5' | ansible.utils.ipmath(5) }}" + msg: "{{ '192.168.1.5' | ansible.netcommon.ipmath(5) }}" # Get the tenth previous address based on an IP address - debug: - msg: "{{ '192.168.1.5' | ansible.utils.ipmath(-10) }}" + msg: "{{ '192.168.1.5' | ansible.netcommon.ipmath(-10) }}" # Get the next fifth address using CIDR notation - debug: - msg: "{{ '192.168.1.1/24' | ansible.utils.ipmath(5) }}" + msg: "{{ '192.168.1.1/24' | ansible.netcommon.ipmath(5) }}" # Get the previous fifth address using CIDR notation - debug: - msg: "{{ '192.168.1.6/24' | ansible.utils.ipmath(-5) }}" + msg: "{{ '192.168.1.6/24' | ansible.netcommon.ipmath(-5) }}" # Get the previous tenth address using cidr notation # It returns a address of the previous network range - debug: - msg: "{{ '192.168.2.6/24' | ansible.utils.ipmath(-10) }}" + msg: "{{ '192.168.2.6/24' | ansible.netcommon.ipmath(-10) }}" # Get the next tenth address in IPv6 - debug: - msg: "{{ '2001::1' | ansible.utils.ipmath(10) }}" + msg: "{{ '2001::1' | ansible.netcommon.ipmath(10) }}" # Get the previous tenth address in IPv6 - debug: - msg: "{{ '2001::5' | ansible.utils.ipmath(-10) }}" + msg: "{{ '2001::5' | ansible.netcommon.ipmath(-10) }}" # TASK [debug] ********************************************************************************************************** # ok: [localhost] => { diff --git a/collections/ansible_collections/ansible/utils/docs/ansible.utils.reduce_on_network_filter.rst b/collections/ansible_collections/ansible/utils/docs/ansible.utils.reduce_on_network_filter.rst index 033451b..8d1a481 100644 --- a/collections/ansible_collections/ansible/utils/docs/ansible.utils.reduce_on_network_filter.rst +++ b/collections/ansible_collections/ansible/utils/docs/ansible.utils.reduce_on_network_filter.rst @@ -120,7 +120,7 @@ Common return values are documented `here -
Returns the filtered list of addresses belonging to the network.
+
Returns whether an address or a network passed as argument is in a network.

diff --git a/collections/ansible_collections/ansible/utils/docs/ansible.utils.update_fact_module.rst b/collections/ansible_collections/ansible/utils/docs/ansible.utils.update_fact_module.rst index 749f8ce..c134edd 100644 --- a/collections/ansible_collections/ansible/utils/docs/ansible.utils.update_fact_module.rst +++ b/collections/ansible_collections/ansible/utils/docs/ansible.utils.update_fact_module.rst @@ -195,9 +195,9 @@ Examples update_list: [] update: - path: addresses[{{ idx }}].network - value: "{{ item['raw'] | ansible.utils.ipaddr('network') }}" + value: "{{ item['raw'] | ansible.netcommon.ipaddr('network') }}" - path: addresses[{{ idx }}].prefix - value: "{{ item['raw'] | ansible.utils.ipaddr('prefix') }}" + value: "{{ item['raw'] | ansible.netcommon.ipaddr('prefix') }}" - debug: var: update_list diff --git a/collections/ansible_collections/ansible/utils/docs/docsite/rst/filters_ipaddr.rst b/collections/ansible_collections/ansible/utils/docs/docsite/rst/filters_ipaddr.rst index be5b32b..79ede7a 100644 --- a/collections/ansible_collections/ansible/utils/docs/docsite/rst/filters_ipaddr.rst +++ b/collections/ansible_collections/ansible/utils/docs/docsite/rst/filters_ipaddr.rst @@ -340,15 +340,6 @@ If needed, you can extract subnet and prefix information from the 'host/prefix' # {{ host_prefix | ansible.utils.ipaddr('host/prefix') | ansible.utils.ipaddr('prefix') }} [64, 24] -To get the wildcard mask from host_prefix - -.. code-block:: jinja - - wildcard {{ host_prefix | ansible.utils.ipaddr('hostmask')}} - - # from host_prefix '192.0.2.0/24' following will be generated - wildcard 0.0.0.255 - Converting subnet masks to CIDR notation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -857,3 +848,7 @@ the filter ``slaac()`` generates an IPv6 address for a given network and a MAC A Playbook organization by roles :ref:`playbooks_best_practices` Tips and tricks for playbooks + `User Mailing List `_ + Have a question? Stop by the google group! + :ref:`communication_irc` + How to join Ansible chat channels diff --git a/collections/ansible_collections/ansible/utils/meta/runtime.yml b/collections/ansible_collections/ansible/utils/meta/runtime.yml index 49c7554..ce6befd 100644 --- a/collections/ansible_collections/ansible/utils/meta/runtime.yml +++ b/collections/ansible_collections/ansible/utils/meta/runtime.yml @@ -1,2 +1,2 @@ --- -requires_ansible: ">=2.16.0" +requires_ansible: ">=2.14.0" diff --git a/collections/ansible_collections/ansible/utils/plugins/action/cli_parse.py b/collections/ansible_collections/ansible/utils/plugins/action/cli_parse.py index 88e5866..de8b418 100644 --- a/collections/ansible_collections/ansible/utils/plugins/action/cli_parse.py +++ b/collections/ansible_collections/ansible/utils/plugins/action/cli_parse.py @@ -16,7 +16,7 @@ import json from importlib import import_module from ansible.errors import AnsibleActionFail -from ansible.module_utils.common.text.converters import to_native, to_text +from ansible.module_utils._text import to_native, to_text from ansible.module_utils.connection import Connection from ansible.module_utils.connection import ConnectionError as AnsibleConnectionError from ansible.plugins.action import ActionBase @@ -37,7 +37,7 @@ ARGSPEC_CONDITIONALS = { class ActionModule(ActionBase): """action module""" - _requires_connection = True + _requires_connection = False PARSER_CLS_NAME = "CliParser" @@ -100,6 +100,19 @@ class ActionModule(ActionBase): """ requested_parser = self._task.args.get("parser").get("name") cref = dict(zip(["corg", "cname", "plugin"], requested_parser.split("."))) + if cref["cname"] == "netcommon" and cref["plugin"] in [ + "json", + "textfsm", + "ttp", + "xml", + ]: + cref["cname"] = "utils" + msg = ( + "Use 'ansible.utils.{plugin}' for parser name instead of '{requested_parser}'." + " This feature will be removed from 'ansible.netcommon' collection in a release" + " after 2022-11-01".format(plugin=cref["plugin"], requested_parser=requested_parser) + ) + self._display.warning(msg) parserlib = "ansible_collections.{corg}.{cname}.plugins.sub_plugins.cli_parser.{plugin}_parser".format( **cref, @@ -113,6 +126,33 @@ class ActionModule(ActionBase): ) return parser except Exception as exc: + # TODO: The condition is added to support old sub-plugin structure. + # Remove the if condition after ansible.netcommon.cli_parse module is removed + # from ansible.netcommon collection + if cref["cname"] == "netcommon" and cref["plugin"] in [ + "native", + "content_templates", + "ntc", + "pyats", + ]: + parserlib = ( + "ansible_collections.{corg}.{cname}.plugins.cli_parsers.{plugin}_parser".format( + **cref, + ) + ) + try: + parsercls = getattr(import_module(parserlib), self.PARSER_CLS_NAME) + parser = parsercls( + task_args=self._task.args, + task_vars=task_vars, + debug=self._debug, + ) + return parser + except Exception as exc: + self._result["failed"] = True + self._result["msg"] = "Error loading parser: {err}".format(err=to_native(exc)) + return None + self._result["failed"] = True self._result["msg"] = "Error loading parser: {err}".format(err=to_native(exc)) return None @@ -165,11 +205,8 @@ class ActionModule(ActionBase): cmd_as_fname = self._task.args.get("parser").get("command").replace(" ", "_") fname = "{os}_{cmd}.{ext}".format(os=oper_sys, cmd=cmd_as_fname, ext=template_extension) source = self._find_needle("templates", fname) - else: - source = self._task.args.get("parser").get("template_path") - source = self._find_needle("templates", source) - self._debug("template_path in task args updated to {source}".format(source=source)) - self._task.args["parser"]["template_path"] = source + self._debug("template_path in task args updated to {source}".format(source=source)) + self._task.args["parser"]["template_path"] = source def _get_template_contents(self): """Retrieve the contents of the parser template diff --git a/collections/ansible_collections/ansible/utils/plugins/action/fact_diff.py b/collections/ansible_collections/ansible/utils/plugins/action/fact_diff.py index 7ce805f..d9bab66 100644 --- a/collections/ansible_collections/ansible/utils/plugins/action/fact_diff.py +++ b/collections/ansible_collections/ansible/utils/plugins/action/fact_diff.py @@ -12,7 +12,7 @@ import re from importlib import import_module -from ansible.module_utils.common.text.converters import to_native +from ansible.module_utils._text import to_native from ansible.plugins.action import ActionBase from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( diff --git a/collections/ansible_collections/ansible/utils/plugins/action/update_fact.py b/collections/ansible_collections/ansible/utils/plugins/action/update_fact.py index e56a0ce..32393ed 100644 --- a/collections/ansible_collections/ansible/utils/plugins/action/update_fact.py +++ b/collections/ansible_collections/ansible/utils/plugins/action/update_fact.py @@ -11,10 +11,9 @@ __metaclass__ = type import ast import re -from collections.abc import MutableMapping, MutableSequence - from ansible.errors import AnsibleActionFail -from ansible.module_utils.common.text.converters import to_native +from ansible.module_utils._text import to_native +from ansible.module_utils.common._collections_compat import MutableMapping, MutableSequence from ansible.plugins.action import ActionBase from jinja2 import Template, TemplateSyntaxError @@ -163,30 +162,23 @@ class ActionModule(ActionBase): self._result["changed"] = False self._check_argspec() results = set() - full_replaces = set() # keys that were fully replaced (no path) self._ensure_valid_jinja() - # Use task_vars (top-level) instead of task_vars["vars"] to avoid the - # deprecated internal "vars" dictionary (ansible-core 2.24, issue #426). for entry in self._task.args["updates"]: parts = self._field_split(entry["path"]) obj, path = parts[0], parts[1:] results.add(obj) - if obj not in task_vars: + if obj not in task_vars["vars"]: msg = "'{obj}' was not found in the current facts.".format(obj=obj) raise AnsibleActionFail(msg) - retrieved = task_vars.get(obj) + retrieved = task_vars["vars"].get(obj) if path: self.set_value(retrieved, path, entry["value"]) else: - if retrieved != entry["value"]: - self._result.setdefault("ansible_facts", {})[obj] = entry["value"] - full_replaces.add(obj) + if task_vars["vars"][obj] != entry["value"]: + task_vars["vars"][obj] = entry["value"] self._result["changed"] = True for key in results: - if key in full_replaces: - value = self._result.get("ansible_facts", {}).get(key) - else: - value = task_vars.get(key) + value = task_vars["vars"].get(key) self._result[key] = value return self._result diff --git a/collections/ansible_collections/ansible/utils/plugins/action/validate.py b/collections/ansible_collections/ansible/utils/plugins/action/validate.py index 11d156e..8b4868d 100644 --- a/collections/ansible_collections/ansible/utils/plugins/action/validate.py +++ b/collections/ansible_collections/ansible/utils/plugins/action/validate.py @@ -12,7 +12,7 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from ansible.errors import AnsibleActionFail, AnsibleError -from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils._text import to_text from ansible.plugins.action import ActionBase from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/cidr_merge.py b/collections/ansible_collections/ansible/utils/plugins/filter/cidr_merge.py index d489997..cf5bf44 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/cidr_merge.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/cidr_merge.py @@ -129,26 +129,12 @@ RETURN = """ """ -def _unwrap_lazy_list(value): - """ - If value is an Ansible lazy template list, return a list of raw elements without - triggering templar.template() resolution. This avoids Template.__new__() errors - when the filter is used inside a Jinja2 macro called with ``with context``. - """ - if value is not None and hasattr(value, "_yield_non_lazy_list_items"): - return list(value._yield_non_lazy_list_items()) - return value - - @pass_environment def _cidr_merge(*args, **kwargs): - """Merge CIDRs; compatible with pipe syntax (value | cidr_merge).""" + """Convert the given data from json to xml.""" keys = ["value", "action"] data = dict(zip(keys, args[1:])) data.update(kwargs) - # Unwrap lazy list when present to avoid resolution bug in macro context (no template.j2 change). - if "value" in data: - data["value"] = _unwrap_lazy_list(data["value"]) aav = AnsibleArgSpecValidator(data=data, schema=DOCUMENTATION, name="cidr_merge") valid, errors, updated_data = aav.validate() if not valid: diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/fact_diff.py b/collections/ansible_collections/ansible/utils/plugins/filter/fact_diff.py index e6ebcdb..a690124 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/fact_diff.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/fact_diff.py @@ -172,7 +172,7 @@ RETURN = """ - Returns diff between before and after facts. """ from ansible.errors import AnsibleFilterError -from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils._text import to_text from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( AnsibleArgSpecValidator, diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/ipaddr.py b/collections/ansible_collections/ansible/utils/plugins/filter/ipaddr.py index a61c087..33f496a 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/ipaddr.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/ipaddr.py @@ -51,7 +51,6 @@ DOCUMENTATION = """ description: - This filter is designed to return the input value if a query is True, and False if a query is False - This way it can be easily used in chained filters - - For more details on how to use this plugin, please refer to ``_ options: value: description: @@ -76,8 +75,6 @@ DOCUMENTATION = """ type: str description: type of filter. example ipaddr, ipv4, ipv6, ipwrap notes: - requirements: - - netaddr>=0.10.1 """ EXAMPLES = r""" diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/ipcut.py b/collections/ansible_collections/ansible/utils/plugins/filter/ipcut.py index b8d47a7..4e61a45 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/ipcut.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/ipcut.py @@ -105,15 +105,10 @@ def _ipcut(*args, **kwargs): def ipcut(value, amount): + ipv6_oct = [] try: ip = netaddr.IPAddress(value) - if ip.version == 6: - ip_bits = ip.bits().replace(":", "") - elif ip.version == 4: - ip_bits = ip.bits().replace(".", "") - else: - msg = "Unknown IP Address Version: {0}".format(ip.version) - raise AnsibleFilterError(msg) + ipv6address = ip.bits().replace(":", "") except (netaddr.AddrFormatError, ValueError): msg = "You must pass a valid IP address; {0} is invalid".format(value) raise AnsibleFilterError(msg) @@ -125,27 +120,20 @@ def ipcut(value, amount): raise AnsibleFilterError(msg) else: if amount < 0: - ipsub = ip_bits[amount:] + ipsub = ipv6address[amount:] else: - ipsub = ip_bits[0:amount] + ipsub = ipv6address[0:amount] - if ip.version == 6: - ipv4_oct = [] - for i in range(0, len(ipsub), 16): - oct_sub = i + 16 - ipv4_oct.append( - hex(int(ipsub[i:oct_sub], 2)).replace("0x", ""), - ) - result = str(":".join(ipv4_oct)) - else: # ip.version == 4: - ipv4_oct = [] - for i in range(0, len(ipsub), 8): - oct_sub = i + 8 - ipv4_oct.append( - str(int(ipsub[i:oct_sub], 2)), - ) - result = str(".".join(ipv4_oct)) - return result + ipsubfinal = [] + + for i in range(0, len(ipsub), 16): + oct_sub = i + 16 + ipsubfinal.append(ipsub[i:oct_sub]) + + for i in ipsubfinal: + x = hex(int(i, 2)) + ipv6_oct.append(x.replace("0x", "")) + return str(":".join(ipv6_oct)) class FilterModule(object): diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/ipmath.py b/collections/ansible_collections/ansible/utils/plugins/filter/ipmath.py index 53fed84..21e0df3 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/ipmath.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/ipmath.py @@ -63,32 +63,32 @@ EXAMPLES = r""" # Ipmath filter plugin with different arthmetic. # Get the next fifth address based on an IP address - debug: - msg: "{{ '192.168.1.5' | ansible.utils.ipmath(5) }}" + msg: "{{ '192.168.1.5' | ansible.netcommon.ipmath(5) }}" # Get the tenth previous address based on an IP address - debug: - msg: "{{ '192.168.1.5' | ansible.utils.ipmath(-10) }}" + msg: "{{ '192.168.1.5' | ansible.netcommon.ipmath(-10) }}" # Get the next fifth address using CIDR notation - debug: - msg: "{{ '192.168.1.1/24' | ansible.utils.ipmath(5) }}" + msg: "{{ '192.168.1.1/24' | ansible.netcommon.ipmath(5) }}" # Get the previous fifth address using CIDR notation - debug: - msg: "{{ '192.168.1.6/24' | ansible.utils.ipmath(-5) }}" + msg: "{{ '192.168.1.6/24' | ansible.netcommon.ipmath(-5) }}" # Get the previous tenth address using cidr notation # It returns a address of the previous network range - debug: - msg: "{{ '192.168.2.6/24' | ansible.utils.ipmath(-10) }}" + msg: "{{ '192.168.2.6/24' | ansible.netcommon.ipmath(-10) }}" # Get the next tenth address in IPv6 - debug: - msg: "{{ '2001::1' | ansible.utils.ipmath(10) }}" + msg: "{{ '2001::1' | ansible.netcommon.ipmath(10) }}" # Get the previous tenth address in IPv6 - debug: - msg: "{{ '2001::5' | ansible.utils.ipmath(-10) }}" + msg: "{{ '2001::5' | ansible.netcommon.ipmath(-10) }}" # TASK [debug] ********************************************************************************************************** # ok: [localhost] => { diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/ipsubnet.py b/collections/ansible_collections/ansible/utils/plugins/filter/ipsubnet.py index d6f308e..36e09c2 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/ipsubnet.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/ipsubnet.py @@ -24,7 +24,7 @@ from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddr_utils im __metaclass__ = type -from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils._text import to_text try: diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/next_nth_usable.py b/collections/ansible_collections/ansible/utils/plugins/filter/next_nth_usable.py index 4927148..1f766d0 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/next_nth_usable.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/next_nth_usable.py @@ -118,23 +118,17 @@ def next_nth_usable(value, offset): Returns the next nth usable ip within a network described by value. """ try: - v = None vtype = ipaddr(value, "type") if vtype == "address": v = ipaddr(value, "cidr") elif vtype == "network": v = ipaddr(value, "subnet") - if v is not None: - v = netaddr.IPNetwork(v) - else: - return False + v = netaddr.IPNetwork(v) except Exception: return False - if not isinstance(offset, int): raise AnsibleFilterError("Must pass in an integer") - if v.size > 1: first_usable, last_usable = _first_last(v) nth_ip = int(netaddr.IPAddress(int(v.ip) + offset)) diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/previous_nth_usable.py b/collections/ansible_collections/ansible/utils/plugins/filter/previous_nth_usable.py index 2533bb7..6f767dd 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/previous_nth_usable.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/previous_nth_usable.py @@ -117,18 +117,13 @@ def previous_nth_usable(value, offset): Returns the previous nth usable ip within a network described by value. """ try: - v = None vtype = ipaddr(value, "type") if vtype == "address": v = ipaddr(value, "cidr") elif vtype == "network": v = ipaddr(value, "subnet") - if v is not None: - v = netaddr.IPNetwork(v) - else: - return False - + v = netaddr.IPNetwork(v) except Exception: return False diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/reduce_on_network.py b/collections/ansible_collections/ansible/utils/plugins/filter/reduce_on_network.py index 06a59b0..6f00ef2 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/reduce_on_network.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/reduce_on_network.py @@ -85,7 +85,7 @@ RETURN = """ data: type: bool description: - - Returns the filtered list of addresses belonging to the network. + - Returns whether an address or a network passed as argument is in a network. """ diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/usable_range.py b/collections/ansible_collections/ansible/utils/plugins/filter/usable_range.py index 321fc1a..174cbbb 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/usable_range.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/usable_range.py @@ -20,10 +20,6 @@ from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import _v __metaclass__ = type -from ansible.errors import AnsibleFilterError -from ansible.module_utils.common.text.converters import to_text - - DOCUMENTATION = """ name: usable_range author: Priyam Sahoo (@priyamsahoo) @@ -152,6 +148,10 @@ RETURN = """ - List of usable IP addresses under the key C(usable_ips) """ +from ansible.errors import AnsibleFilterError +from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils.six import ensure_text + @_need_ipaddress def _usable_range(ip): @@ -162,11 +162,11 @@ def _usable_range(ip): try: if ip_network(ip).version == 4: - ips = [to_text(usable_ips) for usable_ips in IPv4Network(to_text(ip))] - no_of_ips = IPv4Network(to_text(ip)).num_addresses + ips = [to_text(usable_ips) for usable_ips in IPv4Network(ensure_text(ip))] + no_of_ips = IPv4Network(ensure_text(ip)).num_addresses if ip_network(ip).version == 6: - ips = [to_text(usable_ips) for usable_ips in IPv6Network(to_text(ip))] - no_of_ips = IPv6Network(to_text(ip)).num_addresses + ips = [to_text(usable_ips) for usable_ips in IPv6Network(ensure_text(ip))] + no_of_ips = IPv6Network(ensure_text(ip)).num_addresses except Exception as e: raise AnsibleFilterError( diff --git a/collections/ansible_collections/ansible/utils/plugins/filter/validate.py b/collections/ansible_collections/ansible/utils/plugins/filter/validate.py index bcca81f..85e9eb7 100644 --- a/collections/ansible_collections/ansible/utils/plugins/filter/validate.py +++ b/collections/ansible_collections/ansible/utils/plugins/filter/validate.py @@ -70,7 +70,7 @@ RETURN = """ """ from ansible.errors import AnsibleError, AnsibleFilterError -from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils._text import to_text from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( check_argspec, diff --git a/collections/ansible_collections/ansible/utils/plugins/lookup/validate.py b/collections/ansible_collections/ansible/utils/plugins/lookup/validate.py index af6dac1..fbe542c 100644 --- a/collections/ansible_collections/ansible/utils/plugins/lookup/validate.py +++ b/collections/ansible_collections/ansible/utils/plugins/lookup/validate.py @@ -82,7 +82,7 @@ RETURN = """ """ from ansible.errors import AnsibleError, AnsibleLookupError -from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils._text import to_text from ansible.plugins.lookup import LookupBase from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( diff --git a/collections/ansible_collections/ansible/utils/plugins/module_utils/common/argspec_validate.py b/collections/ansible_collections/ansible/utils/plugins/module_utils/common/argspec_validate.py index d471340..18aad12 100644 --- a/collections/ansible_collections/ansible/utils/plugins/module_utils/common/argspec_validate.py +++ b/collections/ansible_collections/ansible/utils/plugins/module_utils/common/argspec_validate.py @@ -27,6 +27,7 @@ __metaclass__ = type import re from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.six import iteritems from ansible_collections.ansible.utils.plugins.module_utils.common.utils import dict_merge @@ -174,7 +175,7 @@ class AnsibleArgSpecValidator: :type temp_schema: dict """ options_obj = doc_obj.get("options") - for okey, ovalue in options_obj.items(): + for okey, ovalue in iteritems(options_obj): temp_schema[okey] = {} for metakey in list(ovalue): if metakey == "suboptions": diff --git a/collections/ansible_collections/ansible/utils/plugins/module_utils/common/to_paths.py b/collections/ansible_collections/ansible/utils/plugins/module_utils/common/to_paths.py index a4dc96a..f868119 100644 --- a/collections/ansible_collections/ansible/utils/plugins/module_utils/common/to_paths.py +++ b/collections/ansible_collections/ansible/utils/plugins/module_utils/common/to_paths.py @@ -14,7 +14,7 @@ __metaclass__ = type import re -from collections.abc import Mapping, MutableMapping +from ansible.module_utils.common._collections_compat import Mapping, MutableMapping def to_paths(var, prepend, wantlist): diff --git a/collections/ansible_collections/ansible/utils/plugins/module_utils/common/utils.py b/collections/ansible_collections/ansible/utils/plugins/module_utils/common/utils.py index 1ba2a70..4ad6356 100644 --- a/collections/ansible_collections/ansible/utils/plugins/module_utils/common/utils.py +++ b/collections/ansible_collections/ansible/utils/plugins/module_utils/common/utils.py @@ -8,9 +8,11 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from collections.abc import Mapping from copy import deepcopy +from ansible.module_utils.common._collections_compat import Mapping +from ansible.module_utils.six import iteritems + def sort_list(val): if isinstance(val, list): @@ -55,7 +57,7 @@ def dict_merge(base, other): combined = dict() - for key, value in deepcopy(base).items(): + for key, value in iteritems(deepcopy(base)): if isinstance(value, dict): if key in other: item = other.get(key) diff --git a/collections/ansible_collections/ansible/utils/plugins/modules/update_fact.py b/collections/ansible_collections/ansible/utils/plugins/modules/update_fact.py index 0cfe70c..687662e 100644 --- a/collections/ansible_collections/ansible/utils/plugins/modules/update_fact.py +++ b/collections/ansible_collections/ansible/utils/plugins/modules/update_fact.py @@ -144,9 +144,9 @@ EXAMPLES = r""" update_list: [] update: - path: addresses[{{ idx }}].network - value: "{{ item['raw'] | ansible.utils.ipaddr('network') }}" + value: "{{ item['raw'] | ansible.netcommon.ipaddr('network') }}" - path: addresses[{{ idx }}].prefix - value: "{{ item['raw'] | ansible.utils.ipaddr('prefix') }}" + value: "{{ item['raw'] | ansible.netcommon.ipaddr('prefix') }}" - debug: var: update_list diff --git a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/cli_parser.py b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/cli_parser.py index 7fbdd0b..3433e64 100644 --- a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/cli_parser.py +++ b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/cli_parser.py @@ -1,7 +1,6 @@ """ The base class for cli_parsers """ - from __future__ import absolute_import, division, print_function diff --git a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/ipaddress_utils.py b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/ipaddress_utils.py index 30f5eb6..3693adc 100644 --- a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/ipaddress_utils.py +++ b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/ipaddress_utils.py @@ -17,7 +17,7 @@ from functools import wraps from ansible import errors from ansible.errors import AnsibleError from ansible.module_utils.basic import missing_required_lib -from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils.six import ensure_text from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( check_argspec, @@ -38,7 +38,7 @@ def ip_network(ip): if not HAS_IPADDRESS: raise AnsibleError(missing_required_lib("ipaddress")) - return ipaddress.ip_network(to_text(ip)) + return ipaddress.ip_network(ensure_text(ip)) def ip_address(ip): @@ -47,7 +47,7 @@ def ip_address(ip): if not HAS_IPADDRESS: raise AnsibleError(missing_required_lib("ipaddress")) - return ipaddress.ip_address(to_text(ip)) + return ipaddress.ip_address(ensure_text(ip)) def _need_ipaddress(func): @@ -60,29 +60,15 @@ def _need_ipaddress(func): return wrapper -def _get_network_version(network): - """ - Python 3.14 changes the _version attribute to version, so we have to try both. - """ - if hasattr(network, "_version"): - return network._version - return network.version - - def _is_subnet_of(network_a, network_b): - """ - Return True if network_a is a subnet of network_b (same logic as ipaddress). - Uses the public .version attribute for compatibility with Python 3.14+ where - the private _version was removed (see bpo-118710 / cpython@c530ce1). - """ try: - if _get_network_version(network_a) != _get_network_version(network_b): + if network_a._version != network_b._version: return False return ( network_b.network_address <= network_a.network_address and network_b.broadcast_address >= network_a.broadcast_address ) - except (AttributeError, TypeError): + except Exception: return False diff --git a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/validate.py b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/validate.py index 4ad3947..9e88280 100644 --- a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/validate.py +++ b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/base/validate.py @@ -1,7 +1,6 @@ """ The base class for validator """ - from __future__ import absolute_import, division, print_function @@ -12,7 +11,8 @@ import os from importlib import import_module from ansible.errors import AnsibleError -from ansible.module_utils.common.text.converters import to_native, to_text +from ansible.module_utils._text import to_native, to_text +from ansible.module_utils.six import iteritems from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( check_argspec, @@ -74,7 +74,7 @@ class ValidateBase(object): if not options: return None - for option_name, option_value in options.items(): + for option_name, option_value in iteritems(options): option_var_name_list = option_value.get("vars", []) option_env_name_list = option_value.get("env", []) @@ -181,10 +181,10 @@ def _load_validator(engine, data, criteria, plugin_vars=None, cls_name="Validate return validator, result except Exception as exc: result["failed"] = True - result["msg"] = ( - "For engine '{engine}' error loading the corresponding validate plugin: {err}".format( - engine=engine, - err=to_native(exc), - ) + result[ + "msg" + ] = "For engine '{engine}' error loading the corresponding validate plugin: {err}".format( + engine=engine, + err=to_native(exc), ) return None, result diff --git a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/from_xml.py b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/from_xml.py index c261629..9216a05 100644 --- a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/from_xml.py +++ b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/from_xml.py @@ -13,6 +13,8 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +import json + from ansible.errors import AnsibleFilterError @@ -44,7 +46,7 @@ def from_xml(data, engine): if not HAS_XMLTODICT: _raise_error("Missing required library xmltodict") try: - res = xmltodict.parse(data, dict_constructor=dict) + res = json.dumps(xmltodict.parse(data)) except Exception: _raise_error("Input Xml is not valid") return res diff --git a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/index_of.py b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/index_of.py index 7d12766..45181cc 100644 --- a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/index_of.py +++ b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/index_of.py @@ -14,7 +14,8 @@ __metaclass__ = type import json -from ansible.module_utils.common.text.converters import to_native +from ansible.module_utils._text import to_native +from ansible.module_utils.six import integer_types, string_types from jinja2.exceptions import TemplateSyntaxError @@ -157,7 +158,7 @@ def index_of( if result: res.append(idx) - elif isinstance(key, (str, int, bool)): + elif isinstance(key, (string_types, integer_types, bool)): if not all(isinstance(entry, dict) for entry in data): all_tipes = [type(_to_well_known_type(entry)).__name__ for entry in data] msg = ( diff --git a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/keep_keys.py b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/keep_keys.py index b91ca06..b0f425d 100644 --- a/collections/ansible_collections/ansible/utils/plugins/plugin_utils/keep_keys.py +++ b/collections/ansible_collections/ansible/utils/plugins/plugin_utils/keep_keys.py @@ -1,3 +1,4 @@ +# # -*- coding: utf-8 -*- # Copyright 2021 Red Hat # GNU General Public License v3.0+ @@ -30,34 +31,37 @@ def _raise_error(msg): def keep_keys_from_dict_n_list(data, target, matching_parameter): if isinstance(data, list): list_data = [keep_keys_from_dict_n_list(each, target, matching_parameter) for each in data] - return [r for r in list_data if r not in ([], {}, None)] + return list_data if isinstance(data, dict): keep = {} for k, val in data.items(): - key_matches = any( - ( - k == t - if matching_parameter == "equality" - else ( - (re.match(t, k) is not None) - if matching_parameter == "regex" - else ( - k.startswith(t) - if matching_parameter == "starts_with" - else k.endswith(t) - ) - ) - ) - for t in target - ) - if key_matches: - keep[k] = val - elif isinstance(val, (list, dict)): - nested_keep = keep_keys_from_dict_n_list(val, target, matching_parameter) - if nested_keep not in ([], {}, None): - keep[k] = nested_keep + for key in target: + match = None + if not isinstance(val, (list, dict)): + if matching_parameter == "regex": + match = re.match(key, k) + if match: + keep[k] = val + elif matching_parameter == "starts_with": + if k.startswith(key): + keep[k], match = val, True + elif matching_parameter == "ends_with": + if k.endswith(key): + keep[k], match = val, True + else: + if k == key: + keep[k], match = val, True + else: + list_data = keep_keys_from_dict_n_list(val, target, matching_parameter) + if isinstance(list_data, list) and not match: + list_data = [r for r in list_data if r not in ([], {})] + if all(isinstance(s, str) for s in list_data): + continue + if list_data in ([], {}): + continue + keep[k] = list_data return keep - return None + return data def keep_keys(data, target, matching_parameter="equality"): diff --git a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/json_parser.py b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/json_parser.py index 6797693..b0c5159 100644 --- a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/json_parser.py +++ b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/json_parser.py @@ -3,7 +3,6 @@ json parser This is the json parser for use with the cli_parse module and action plugin """ - from __future__ import absolute_import, division, print_function @@ -38,7 +37,8 @@ EXAMPLES = r""" import json -from ansible.module_utils.common.text.converters import to_native +from ansible.module_utils._text import to_native +from ansible.module_utils.six import string_types from ansible_collections.ansible.utils.plugins.plugin_utils.base.cli_parser import CliParserBase @@ -66,7 +66,7 @@ class CliParser(CliParserBase): """ text = self._task_args.get("text") try: - if not isinstance(text, str): + if not isinstance(text, string_types): text = json.dumps(text) parsed = json.loads(text) except Exception as exc: diff --git a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/textfsm_parser.py b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/textfsm_parser.py index b90769f..188465c 100644 --- a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/textfsm_parser.py +++ b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/textfsm_parser.py @@ -4,7 +4,6 @@ textfsm parser This is the textfsm parser for use with the cli_parse module and action plugin https://github.com/google/textfsm """ - from __future__ import absolute_import, division, print_function @@ -40,8 +39,8 @@ EXAMPLES = r""" import os +from ansible.module_utils._text import to_native from ansible.module_utils.basic import missing_required_lib -from ansible.module_utils.common.text.converters import to_native from ansible_collections.ansible.utils.plugins.plugin_utils.base.cli_parser import CliParserBase diff --git a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/ttp_parser.py b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/ttp_parser.py index c22f957..f8d9c70 100644 --- a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/ttp_parser.py +++ b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/ttp_parser.py @@ -4,7 +4,6 @@ ttp parser This is the ttp parser for use with the cli_parse module and action plugin https://github.com/dmulyalin/ttp """ - from __future__ import absolute_import, division, print_function @@ -40,8 +39,8 @@ EXAMPLES = r""" import os +from ansible.module_utils._text import to_native from ansible.module_utils.basic import missing_required_lib -from ansible.module_utils.common.text.converters import to_native from ansible_collections.ansible.utils.plugins.plugin_utils.base.cli_parser import CliParserBase @@ -119,23 +118,7 @@ class CliParser(CliParserBase): if parser_param.get("vars") else {} ) - # TTP's result() uses keyword "structure", but we accept "results" from users - result_kwargs = dict(ttp_results) - if "results" in result_kwargs: - result_kwargs["structure"] = result_kwargs.pop("results") - results = parser.result(**result_kwargs) - # When flat_list is requested, flatten one level if we got [[...]] - requested_flat = ( - ttp_results.get("results") == "flat_list" - or ttp_results.get("structure") == "flat_list" - ) - if ( - requested_flat - and isinstance(results, list) - and len(results) == 1 - and isinstance(results[0], list) - ): - results = results[0] + results = parser.result(**ttp_results) except Exception as exc: msg = "Template Text Parser returned an error while parsing. Error: {err}" return {"errors": [msg.format(err=to_native(exc))]} diff --git a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/xml_parser.py b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/xml_parser.py index ced34f7..6e53201 100644 --- a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/xml_parser.py +++ b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/cli_parser/xml_parser.py @@ -4,7 +4,6 @@ xml parser This is the xml parser for use with the cli_parse module and action plugin https://github.com/martinblech/xmltodict """ - from __future__ import absolute_import, division, print_function @@ -38,8 +37,8 @@ EXAMPLES = r""" register: nxos_xml_text """ +from ansible.module_utils._text import to_native from ansible.module_utils.basic import missing_required_lib -from ansible.module_utils.common.text.converters import to_native from ansible_collections.ansible.utils.plugins.plugin_utils.base.cli_parser import CliParserBase diff --git a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/validate/config.py b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/validate/config.py index 41aed8e..eff3044 100644 --- a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/validate/config.py +++ b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/validate/config.py @@ -9,7 +9,7 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type DOCUMENTATION = """ - author: Katherine Case (@Qalthos) + author: Nathaniel Case (@Qalthos) name: config short_description: Define configurable options for configuration validate plugin description: @@ -51,7 +51,8 @@ import re from io import StringIO from ansible.errors import AnsibleError -from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils._text import to_text +from ansible.module_utils.six import string_types from ansible_collections.ansible.utils.plugins.module_utils.common.utils import to_list from ansible_collections.ansible.utils.plugins.plugin_utils.base.validate import ValidateBase @@ -87,7 +88,7 @@ class Validate(ValidateBase): """ try: - if isinstance(self._criteria, str): + if isinstance(self._criteria, string_types): self._criteria = yaml.load(StringIO(self._criteria), Loader=SafeLoader) except yaml.parser.ParserError as exc: msg = ( diff --git a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/validate/jsonschema.py b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/validate/jsonschema.py index b0373d9..1fda0af 100644 --- a/collections/ansible_collections/ansible/utils/plugins/sub_plugins/validate/jsonschema.py +++ b/collections/ansible_collections/ansible/utils/plugins/sub_plugins/validate/jsonschema.py @@ -54,8 +54,9 @@ DOCUMENTATION = """ import json from ansible.errors import AnsibleError +from ansible.module_utils._text import to_text from ansible.module_utils.basic import missing_required_lib -from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils.six import string_types from ansible.utils.display import Display from ansible_collections.ansible.utils.plugins.module_utils.common.utils import to_list @@ -137,7 +138,7 @@ class Validate(ValidateBase): :return: None: In case all arguments passed are valid """ try: - if isinstance(self._data, str): + if isinstance(self._data, string_types): self._data = json.loads(self._data) else: self._data = json.loads(json.dumps(self._data)) @@ -154,7 +155,7 @@ class Validate(ValidateBase): try: criteria = [] for item in to_list(self._criteria): - if isinstance(self._criteria, str): + if isinstance(self._criteria, string_types): criteria.append(json.loads(item)) else: criteria.append(json.loads(json.dumps(item))) diff --git a/collections/ansible_collections/ansible/utils/plugins/test/validate.py b/collections/ansible_collections/ansible/utils/plugins/test/validate.py index f003c3b..9873af8 100644 --- a/collections/ansible_collections/ansible/utils/plugins/test/validate.py +++ b/collections/ansible_collections/ansible/utils/plugins/test/validate.py @@ -74,7 +74,7 @@ RETURN = """ """ from ansible.errors import AnsibleError -from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils._text import to_text from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( check_argspec, diff --git a/collections/ansible_collections/ansible/utils/sonar-project.properties b/collections/ansible_collections/ansible/utils/sonar-project.properties deleted file mode 100644 index d6eb69e..0000000 --- a/collections/ansible_collections/ansible/utils/sonar-project.properties +++ /dev/null @@ -1,39 +0,0 @@ -# Complete documentation with many more options at: -# https://docs.sonarqube.org/latest/analysis/analysis-parameters/ - -## The unique project identifier. This is mandatory. -# Do not duplicate or reuse! -# Available characters: [a-zA-Z0-9_:\.\-] -# Must have least one non-digit. -# Recommended format: : -sonar.projectKey=ansible-collections_ansible.utils - -sonar.organization=ansible-collections - -# Customize what paths to scan. Default is . -sonar.sources=plugins -sonar.inclusions=plugins/**/*.py - -# Verbose name of project displayed in WUI. Default is set to the projectKey. This field is optional. -sonar.projectName=ansible.utils - -# Version of project. This field is optional. -#sonar.projectVersion=1.0 - -# Exclude manifests directory as these are pulled in programmatically, or are partial files to be applied via kustomize -# Exclude cli from scanning until we can add tests -sonar.exclusions=tests/** - -# Define test directories -sonar.tests=tests/unit -sonar.test.inclusions=tests/unit/** - -# Tell sonar scanner where coverage files exist -# Note: coverage.xml is created by pytest-cov in Code Coverage workflow -sonar.python.coverage.reportPaths=coverage.xml - -# Python versions used in CI (matching coverage workflow) -sonar.python.version=3.12 - -# Ignore code dupe for the migrations -# sonar.cpd.exclusions= diff --git a/collections/ansible_collections/ansible/utils/test-requirements.txt b/collections/ansible_collections/ansible/utils/test-requirements.txt index 451e09f..bf95538 100644 --- a/collections/ansible_collections/ansible/utils/test-requirements.txt +++ b/collections/ansible_collections/ansible/utils/test-requirements.txt @@ -1,11 +1,9 @@ # Unit test runner pytest-ansible pytest-xdist -typing-extensions + # For integration tests pexpect git+https://github.com/ansible-network/pytest-ansible-network-integration.git ipaddress ; python_version < '3.0' netaddr==0.10.1 -textfsm -ttp diff --git a/collections/ansible_collections/ansible/utils/tests/config.yml b/collections/ansible_collections/ansible/utils/tests/config.yml index 6fe2c43..c26ea59 100644 --- a/collections/ansible_collections/ansible/utils/tests/config.yml +++ b/collections/ansible_collections/ansible/utils/tests/config.yml @@ -1,3 +1,3 @@ --- modules: - python_requires: ">=3.10" + python_requires: ">=3.9" diff --git a/collections/ansible_collections/ansible/utils/tests/conftest.py b/collections/ansible_collections/ansible/utils/tests/conftest.py deleted file mode 100644 index 7866eb8..0000000 --- a/collections/ansible_collections/ansible/utils/tests/conftest.py +++ /dev/null @@ -1,13 +0,0 @@ -# -# Capture any deprecation warnings of e.g. ansible.module_utils for pytest -# -import warnings - -import ansible.utils.display - - -ansible.utils.display.Display().deprecated = lambda msg, *args, **kwargs: warnings.warn( - msg, - DeprecationWarning, - stacklevel=3, -) diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_cli_parse/tasks/nxos_json.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_cli_parse/tasks/nxos_json.yaml index 34d88e9..32e1233 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_cli_parse/tasks/nxos_json.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_cli_parse/tasks/nxos_json.yaml @@ -16,4 +16,4 @@ with_items: - "{{ nxos_json_text['parsed'] is defined }}" - "{{ nxos_json_text['parsed'][0][0][0]['admin_state'] is defined }}" - # - "{{ nxos_json_text['parsed'] == nxos_json_text_parsed }}" + - "{{ nxos_json_text['parsed'] == nxos_json_text_parsed }}" diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_cli_parse/tasks/nxos_ttp.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_cli_parse/tasks/nxos_ttp.yaml index d96f842..f6a04ad 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_cli_parse/tasks/nxos_ttp.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_cli_parse/tasks/nxos_ttp.yaml @@ -1,11 +1,11 @@ --- - name: Set fact ansible.builtin.set_fact: - nxos_ttp_text_parsed: "{{ lookup('ansible.builtin.file', role_path ~ '/output/nxos_show_interface_ttp_parsed.json') | from_json }}" + nxos_ttp_text_parsed: "{{ lookup('ansible.builtin.file', '{{ role_path }}/output/nxos_show_interface_ttp_parsed.json') | from_json }}" - name: "Pass text and template_path {{ parser }}" ansible.utils.cli_parse: - text: "{{ lookup('ansible.builtin.file', role_path ~ '/files/nxos_show_interface.txt') }}" + text: "{{ lookup('ansible.builtin.file', '{{ role_path }}/files/nxos_show_interface.txt') }}" parser: name: ansible.utils.ttp template_path: "{{ role_path }}/templates/nxos_show_interface.ttp" @@ -16,7 +16,7 @@ ansible.builtin.assert: that: - "{{ POpqMQoJWTiDpEW is defined }}" - - "{{ (nxos_ttp_text['parsed'][0][0] | selectattr('interface', 'search', 'mgmt0') | list | length) > 0 }}" + - nxos_ttp_text['parsed'][0][0] | selectattr('interface', 'search', 'mgmt0') | list | length - "{{ nxos_ttp_text['parsed'] == nxos_ttp_text_parsed }}" - name: "Pass text and custom variable {{ parser }}" @@ -51,4 +51,4 @@ ansible.builtin.assert: that: item with_items: - - "{{ ((nxos_ttp_results['parsed'][0] | from_yaml)[0] | selectattr('interface', 'search', 'mgmt0') | list | length) > 0 }}" + - "{{ (nxos_ttp_results['parsed'][0] | from_yaml)[0] | selectattr('interface', 'search', 'mgmt0') | list | length }}" diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_from_xml/tasks/simple.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_from_xml/tasks/simple.yaml index aae1074..edc529e 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_from_xml/tasks/simple.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_from_xml/tasks/simple.yaml @@ -19,12 +19,10 @@ - name: Integration tests with and without default engine as xmltodict and ansible.builtin.assert: - that: "{{ output == test_item.test }}" + that: "{{ output == item.test }}" loop: - test: "{{ data | ansible.utils.from_xml() }}" - test: "{{ data | ansible.utils.from_xml('xmltodict') }}" - loop_control: - loop_var: test_item - name: Setup invalid xml as input to ansible.utils.from_xml. ansible.builtin.set_fact: diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_index_of/tasks/examples_lookup.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_index_of/tasks/examples_lookup.yaml index 56ce0b5..885d9d0 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_index_of/tasks/examples_lookup.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_index_of/tasks/examples_lookup.yaml @@ -52,15 +52,15 @@ # ok: [sw01] => (item=2) => # msg: 3 is > than 1 -# - name: Find numbers greater than 1, using with -# ansible.builtin.debug: -# msg: "{{ data[item] }} is {{ params.test }} than {{ params.value }}" -# with_ansible.utils.index_of: "{{ params }}" -# vars: -# params: -# data: "{{ data }}" -# test: ">" -# value: 1 +- name: Find numbers greater than 1, using with + ansible.builtin.debug: + msg: "{{ data[item] }} is {{ params.test }} than {{ params.value }}" + with_ansible.utils.index_of: "{{ params }}" + vars: + params: + data: "{{ data }}" + test: ">" + value: 1 # TASK [Find numbers greater than 1, using with] ***************************** # ok: [nxos101] => (item=1) => diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_index_of/tasks/simple.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_index_of/tasks/simple.yaml index 9be8d76..3634015 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_index_of/tasks/simple.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_index_of/tasks/simple.yaml @@ -43,10 +43,10 @@ # - test: "{{ lookup('ansible.utils.index_of', complex.a, 'integer') }}" # result: "3" - # - test: "{{ complex.b | ansible.utils.index_of('==', 1, 'b1') }}" - # result: 0 - # - test: "{{ lookup('ansible.utils.index_of', complex.b, '==', 1, 'b1') }}" - # result: 0 + - test: "{{ complex.b | ansible.utils.index_of('==', 1, 'b1') }}" + result: "0" + - test: "{{ lookup('ansible.utils.index_of', complex.b, '==', 1, 'b1') }}" + result: "0" - test: "{{ complex.c.c1 | ansible.utils.index_of('!=', 'c') }}" result: [0, 1] @@ -75,15 +75,35 @@ ansible.builtin.assert: that: "{{ item.test == item.result }}" loop: + - test: "{{ complex.a.b.c.d | ansible.utils.index_of('eq', 'ansible', 'e1') }}" + result: "0" + - test: "{{ lookup('ansible.utils.index_of', complex.a.b.c.d, 'eq', 'ansible', 'e1') }}" + result: "0" - test: "{{ complex.a.b.c.d | ansible.utils.index_of('eq', 'ansible', 'e1', wantlist=true) }}" result: [0] - test: "{{ lookup('ansible.utils.index_of', complex.a.b.c.d, 'eq', 'ansible', 'e1', wantlist=true) }}" result: [0] -# - name: Test a missing key in the list of dictionaries -# ansible.builtin.assert: -# that: "{{ item.test == item.result }}" -# loop: -# - test: "{{ complex.a.b.c.d | ansible.utils.index_of('eq', true, 'e2') }}" -# result: 0 -# - test: "{{ lookup('ansible.utils.index_of', complex.a.b.c.d, 'eq', true, 'e2') }}" -# result: 0 + +- name: Test a missing key in the list of dictionaries + ansible.builtin.assert: + that: "{{ item.test == item.result }}" + loop: + - test: "{{ complex.a.b.c.d | ansible.utils.index_of('eq', true, 'e2') }}" + result: "0" + - test: "{{ lookup('ansible.utils.index_of', complex.a.b.c.d, 'eq', true, 'e2') }}" + result: "0" + +- name: Test a missing key in the list of dictionaries, fail on missing + ansible.builtin.assert: + that: "{{ item.test == item.result }}" + loop: + - test: "{{ complex.a.b.c.d | ansible.utils.index_of('eq', true, 'e2', fail_on_missing=true) }}" + result: "0" + - test: "{{ lookup('ansible.utils.index_of', complex.a.b.c.d, 'eq', true, 'e2', fail_on_missing=true) }}" + result: "0" + ignore_errors: true + register: result + +- name: Ensure the previous test failed + ansible.builtin.assert: + that: "{{ result.failed and 'not found in' in result.msg }}" diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_ipaddr_filter/tasks/next_nth_usable.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_ipaddr_filter/tasks/next_nth_usable.yaml index 88baf28..dca7e97 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_ipaddr_filter/tasks/next_nth_usable.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_ipaddr_filter/tasks/next_nth_usable.yaml @@ -6,3 +6,11 @@ - name: Assert result for next_nth_usable. ansible.builtin.assert: that: "{{ result1 == '192.168.122.3' }}" + +- name: Next_nth_usable filter + ansible.builtin.set_fact: + result1: "{{ '192.168.122.254/24' | ansible.utils.next_nth_usable(2) }}" + +- name: Assert result for ipv4. + ansible.builtin.assert: + that: "{{ result1 == '' }}" diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_ipaddr_filter/tasks/previous_nth_usable.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_ipaddr_filter/tasks/previous_nth_usable.yaml index 1342a7d..4254543 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_ipaddr_filter/tasks/previous_nth_usable.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_ipaddr_filter/tasks/previous_nth_usable.yaml @@ -6,3 +6,11 @@ - name: Assert result for previous_nth_usable. ansible.builtin.assert: that: "{{ result1 == '192.168.122.8' }}" + +- name: Previous_nth_usable filter + ansible.builtin.set_fact: + result1: "{{ '192.168.122.1/24' | ansible.utils.previous_nth_usable(2) }}" + +- name: Assert result for ipv4. + ansible.builtin.assert: + that: "{{ result1 == '' }}" diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/tasks/complex1.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/tasks/complex1.yaml deleted file mode 100644 index 7bb6df0..0000000 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/tasks/complex1.yaml +++ /dev/null @@ -1,88 +0,0 @@ ---- -- name: Include expected output data - ansible.builtin.include_vars: - file: complex.yaml - -- name: Test keep_keys - tags: keep_keys - block: - - name: Setup data as facts for complex keep_keys integration test l1 - ansible.builtin.set_fact: - l1: - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } - - - name: Test keep_keys debug - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.keep_keys(target=['p1', 'p2']) }}" - register: result - - - name: Test keep_keys assert - ansible.builtin.assert: - that: result['msg'] == keep['l1'] - - - name: Debug l1 for starts_with 'p' - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.keep_keys(target=['p1', 'p2'], matching_parameter='starts_with') }}" - register: result_l1_starts_with_p - - - name: Assert result dicts l1 for starts_with 'p' - ansible.builtin.assert: - that: - - result_l1_starts_with_p['msg'] == keep['l1_starts_with_p'] - - - name: Debug l1 for ends_with - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.keep_keys(target=['p1', 'p2'], matching_parameter='ends_with') }}" - register: result_l1_ends_with - - - name: Assert result dicts l1 for ends_with - ansible.builtin.assert: - that: - - result_l1_ends_with['msg'] == keep['l1_ends_with'] - - - name: Debug l1 for ends_with '2' - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.keep_keys(target=['2'], matching_parameter='ends_with') }}" - register: result_l1_ends_with_2 - - - name: Assert result dicts l1 for ends_with '2' - ansible.builtin.assert: - that: - - result_l1_ends_with_2['msg'] == keep['l1_ends_with_2'] - - - name: Test keep_keys regex - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.keep_keys(target=['p1', 'p2'], matching_parameter='regex') }}" - register: result_l1_regex - - - name: Assert result dicts l1 for regex - ansible.builtin.assert: - that: - - result_l1_regex['msg'] == keep['l1_regex'] - -- name: Test map keep_keys - tags: map_keep_keys - block: - - name: Setup data as facts for complex keep integration test l2 - ansible.builtin.set_fact: - l2: - - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } - - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } - - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } - - - name: Test map keep_keys debug - ansible.builtin.debug: - msg: "{{ l2 | map('ansible.utils.keep_keys', target=['p1', 'p2']) | list }}" - register: result - - - name: Test map keep_keys assert - ansible.builtin.assert: - that: result['msg'] == keep['l2'] diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/tasks/simple.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/tasks/simple.yaml index f007348..5a7b1cd 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/tasks/simple.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/tasks/simple.yaml @@ -33,7 +33,7 @@ - name: Assert result dicts ansible.builtin.assert: that: - - keep_values['starts_with'] == result['msg'] + - keep['starts_with'] == result['msg'] - name: Setup data as facts for equivalent ansible.builtin.set_fact: @@ -70,54 +70,3 @@ ansible.builtin.assert: that: - keep_default['default'] == result['msg'] - -- name: Setup data for multiple keys in dict - ansible.builtin.set_fact: - tomcat_data: - tomcat: - tomcat1: - name: tomcat1 - tomcat2: - name: tomcat2 - tomcat3: - name: tomcat3 - tomcat3: - name: tomcat3 - tomcat4: - name: tomcat3 - tomcat3: - tomcat3: - name: tomcattest - checktomcat3: stringinput - tomcats_block: - - tomcat1 - - tomcat2 -- name: Debug - ansible.builtin.debug: - msg: "{{ tomcat_data['tomcat'] | ansible.utils.keep_keys(target=['tomcats_block']) }}" - register: result - -- name: Assert result dicts - ansible.builtin.assert: - that: - - keep_tomcat['tomcat'] == result['msg'] - -- name: Test to keep keys when initial node is matched - ansible.builtin.debug: - msg: "{{ tomcat_data['tomcat'] | ansible.utils.keep_keys(target=['tomcat1', 'tomcat2']) }}" - register: result - -- name: Assert result dicts - ansible.builtin.assert: - that: - - keep_tomcat['greedy_values'] == result['msg'] - -- name: Test to keep keys to check if nested dict is matched - ansible.builtin.debug: - msg: "{{ tomcat_data['tomcat'] | ansible.utils.keep_keys(target=['tomcat3']) }}" - register: result - -- name: Assert result dicts - ansible.builtin.assert: - that: - - keep_tomcat['nested_values'] == result['msg'] diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/vars/complex.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/vars/complex.yaml deleted file mode 100644 index aebfc06..0000000 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/vars/complex.yaml +++ /dev/null @@ -1,36 +0,0 @@ ---- -keep: - l1: - - { p1: a, p2: a } - - { p1: b, p2: b } - - { p1: c, p2: c } - l2: - - - { p1: a, p2: a } - - { p1: b, p2: b } - - { p1: c, p2: c } - - - { p1: a, p2: a } - - { p1: b, p2: b } - - { p1: c, p2: c } - - - { p1: a, p2: a } - - { p1: b, p2: b } - - { p1: c, p2: c } - l3: - - { p1_key_o1: a, p2_key_o2: a, p3_key_o3: a } - - { p1_key_o4: b, p2_key_o5: b, p3_key_o6: b } - - { p1_key_o7: c, p2_key_o8: c, p3_key_o9: c } - l1_starts_with_p: - - { p1: a, p2: a } - - { p1: b, p2: b } - - { p1: c, p2: c } - l1_ends_with: - - { p1: a, p2: a } - - { p1: b, p2: b } - - { p1: c, p2: c } - l1_ends_with_2: - - { p2: a } - - { p2: b } - - { p2: c } - l1_regex: - - { p1: a, p2: a } - - { p1: b, p2: b } - - { p1: c, p2: c } diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/vars/main.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/vars/main.yaml index f520fe0..d7d0d90 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/vars/main.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_keep_keys/vars/main.yaml @@ -1,5 +1,5 @@ --- -keep_values: +keep: starts_with: - interface_name: eth0 - interface_name: eth1 @@ -22,27 +22,3 @@ keep_default: is_enabled: true - interface_name: eth2 is_enabled: false - -keep_tomcat: - tomcat: - tomcats_block: - - tomcat1 - - tomcat2 - greedy_values: - tomcat1: - name: tomcat1 - tomcat2: - name: tomcat2 - tomcat3: - name: tomcat3 - nested_values: - tomcat2: - tomcat3: - name: tomcat3 - tomcat3: - name: tomcat3 - tomcat4: - tomcat3: - tomcat3: - name: tomcattest - checktomcat3: stringinput diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_remove_keys/tasks/complex1.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_remove_keys/tasks/complex1.yaml deleted file mode 100644 index 07c41da..0000000 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_remove_keys/tasks/complex1.yaml +++ /dev/null @@ -1,143 +0,0 @@ ---- -- name: Include expected output data - ansible.builtin.include_vars: - file: complex.yaml - -- name: Test for remove_keys - vars: - target: - - { p3: a } - - { p3: b } - - { p3: c } - tags: remove_keys - block: - - name: Test remove_keys debug - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.remove_keys(target=['p1', 'p2']) }}" - register: result_l1 - - name: Test remove_keys assert - ansible.builtin.assert: - that: - - result_l1["msg"] == target - -- name: Test map remove_keys - vars: - target: - - - { p3: a } - - { p3: b } - - { p3: c } - - - { p3: a } - - { p3: b } - - { p3: c } - - - { p3: a } - - { p3: b } - - { p3: c } - tags: remove_keys - block: - - name: Test remove_keys map debug - ansible.builtin.debug: - msg: "{{ l2 | map('ansible.utils.remove_keys', target=['p1', 'p2']) | list }}" - register: result_l2 - - name: Convert to yaml - ansible.builtin.debug: - var: result_l2|to_yaml - when: debug_test|d(false)|bool - - name: Test remove_keys map assert - ansible.builtin.assert: - that: - - result_l2["msg"] == target - -- name: Test remove_keys starts_with - vars: - target: - - { p3: a } - - { p3: b } - - { p3: c } - tags: remove_keys_starts_with_2 - block: - - name: Test remove_keys starts_with debug msg - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.remove_keys(target=['p1', 'p2'], matching_parameter='starts_with') }}" - register: result_3 - - name: Test remove_keys starts_with convert to yaml - ansible.builtin.debug: - var: result_3|to_yaml - when: debug_test|d(false)|bool - - name: Test remove_keys assert - ansible.builtin.assert: - that: result_3["msg"] == target - -- name: Test remove_keys starts_with 'p' - tags: remove_keys_starts_with_1 - block: - - name: Test remove_keys starts_with 'p' debug - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.remove_keys(target=['p'], matching_parameter='starts_with') }}" - register: result_4 - - name: Test remove_keys starts_with 'p' convert to yaml - ansible.builtin.debug: - var: result_4|to_yaml - when: debug_test|d(false)|bool - - name: Test remove_keys assert - ansible.builtin.assert: - that: result_4["msg"] == [] - -- name: Test remove_keys ends_with - vars: - target: - - { p3: a } - - { p3: b } - - { p3: c } - tags: remove_keys_ends_with_2 - block: - - name: Test remove_keys ends_with - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.remove_keys(target=['p1', 'p2'], matching_parameter='ends_with') }}" - register: result_5 - - name: Test remove_keys ends_with conver to yaml - ansible.builtin.debug: - var: result_5|to_yaml - when: debug_test|d(false)|bool - - name: Test remove_keys ends_with assert - ansible.builtin.assert: - that: result_5["msg"] == target - -- name: Test remove_keys ends_with '2' - vars: - target: - - { p1: a, p3: a } - - { p1: b, p3: b } - - { p1: c, p3: c } - tags: remove_keys_ends_with_1 - block: - - name: Test remove_keys ends_with '2' debug - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.remove_keys(target=['2'], matching_parameter='ends_with') }}" - register: result_6 - - name: Test remove_keys ends_with '2' debug convert to yaml - ansible.builtin.debug: - var: result_6|to_yaml - when: debug_test|d(false)|bool - - name: Test remove_keys ends_with '2' assert - ansible.builtin.assert: - that: result_6["msg"] == target - -- name: Test remove_keys regex - vars: - target: - - { p3: a } - - { p3: b } - - { p3: c } - tags: remove_keys_regex - block: - - name: Test remove_keys regex debug - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.remove_keys(target=['p1', 'p2'], matching_parameter='regex') }}" - register: result_7 - - name: Test remove_keys regex debug conver to yaml - ansible.builtin.debug: - var: result_7|to_yaml - when: debug_test|d(false)|bool - - name: Test remove_keys regex assert - ansible.builtin.assert: - that: result_7["msg"] == target diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_remove_keys/vars/complex.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_remove_keys/vars/complex.yaml deleted file mode 100644 index 8bdec7c..0000000 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_remove_keys/vars/complex.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -l1: - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } -l2: - - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } - - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } - - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } -l3: - - { p1_key_o1: a, p2_key_o2: a, p3_key_o3: a } - - { p1_key_o4: b, p2_key_o5: b, p3_key_o6: b } - - { p1_key_o7: c, p2_key_o8: c, p3_key_o9: c } diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/tasks/complex1.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/tasks/complex1.yaml deleted file mode 100644 index 9cd3658..0000000 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/tasks/complex1.yaml +++ /dev/null @@ -1,127 +0,0 @@ ---- -- name: Include expected output data - ansible.builtin.include_vars: - file: complex.yaml - -- name: Block for l1 tests - block: - - name: Setup data as facts for complex replace integration test l1 - ansible.builtin.set_fact: - l1: - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } - - - name: Debug l1 - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.replace_keys(target=[{'before': 'p1', 'after': 'x1'}, {'before': 'p2', 'after': 'x2'}]) }}" - register: result_l1 - - - name: Assert result dicts l1 - ansible.builtin.assert: - that: - - result_l1['msg'] == replace['l1'] - - - name: Debug l1 for starts_with 'p' - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.replace_keys(target=[{'before': 'p', 'after': 'x'}], matching_parameter='starts_with') }}" - register: result_l1_starts_with_p - - - name: Assert result dicts l1 for starts_with 'p' - ansible.builtin.assert: - that: - - result_l1_starts_with_p['msg'] == replace['l1_starts_with_p'] - - - name: Debug l1 for ends_with - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.replace_keys(target=[{'before': 'p1', 'after': 'x1'}, {'before': 'p2', 'after': 'x2'}], matching_parameter='ends_with') }}" - register: result_l1_ends_with - - - name: Assert result dicts l1 for ends_with - ansible.builtin.assert: - that: - - result_l1_ends_with['msg'] == replace['l1_ends_with'] - - - name: Debug l1 for ends_with '2' - ansible.builtin.debug: - msg: "{{ l1 | ansible.utils.replace_keys(target=[{'before': '2', 'after': '9'}], matching_parameter='ends_with') }}" - register: result_l1_ends_with_2 - - - name: Assert result dicts l1 for ends_with '2' - ansible.builtin.assert: - that: - - result_l1_ends_with_2['msg'] == replace['l1_ends_with_2'] - -- name: Block for l2 tests - block: - - name: Setup data as facts for complex replace integration test l2 - ansible.builtin.set_fact: - l2: - - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } - - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } - - - { p1: a, p2: a, p3: a } - - { p1: b, p2: b, p3: b } - - { p1: c, p2: c, p3: c } - - - name: Debug l2 - ansible.builtin.debug: - msg: "{{ l2 | map('ansible.utils.replace_keys', target=[{'before': 'p1', 'after': 'x1'}, {'before': 'p2', 'after': 'x2'}]) | list }}" - register: result_l2 - - - name: Assert result dicts l2 - ansible.builtin.assert: - that: - - result_l2['msg'] == replace['l2'] - -- name: Block for l3 tests - block: - - name: Setup data as facts for replace integration test l3 - ansible.builtin.set_fact: - l3: - - { p1_key_o1: a, p2_key_o2: a, p3_key_o3: a } - - { p1_key_o4: b, p2_key_o5: b, p3_key_o6: b } - - { p1_key_o7: c, p2_key_o8: c, p3_key_o9: c } - - - name: Debug l3 - ansible.builtin.debug: - msg: "{{ l3 | ansible.utils.replace_keys(target=[{'before': 'p1_key_o1', 'after': 'p1_key_oX1'}, {'before': 'p2_key_o2', 'after': 'p2_key_oX2'}]) }}" - register: result_l3 - - - name: Assert result dicts l3 - ansible.builtin.assert: - that: - - result_l3['msg'] == replace['l3'] - - - name: Debug l3 for starts_with - ansible.builtin.debug: - msg: "{{ l3 | ansible.utils.replace_keys(target=[{'before': 'p1', 'after': 'x1'}, {'before': 'p2', 'after': 'x2'}], matching_parameter='starts_with') }}" - register: result_l3_starts_with - - - name: Assert result dicts l3 for starts_with - ansible.builtin.assert: - that: - - result_l3_starts_with['msg'] == replace['l3_starts_with'] - - - name: Debug l3 for ends_with - ansible.builtin.debug: - msg: "{{ l3 | ansible.utils.replace_keys(target=[{'before': 'o1', 'after': 'x1'}, {'before': 'o2', 'after': 'x2'}], matching_parameter='ends_with') }}" - register: result_l3_ends_with - - - name: Assert result dicts l3 for ends_with - ansible.builtin.assert: - that: - - result_l3_ends_with['msg'] == replace['l3_ends_with'] - - - name: Debug l3 for regex - ansible.builtin.debug: - msg: "{{ l3 | ansible.utils.replace_keys(target=[{'before': '^(.*)_key_o2$', 'after': 'XY_key_o2'}], matching_parameter='regex') }}" - register: result_l3_regex - - - name: Assert result dicts l3 for regex - ansible.builtin.assert: - that: - - result_l3_regex['msg'] == replace['l3_regex'] diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/tasks/simple.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/tasks/simple.yaml index 6145fb2..a8f4ce2 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/tasks/simple.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/tasks/simple.yaml @@ -25,10 +25,6 @@ mtu: 600 enabled: false -- name: Include expected output data - ansible.builtin.include_vars: - file: main.yaml - - name: Debug ansible.builtin.debug: msg: "{{ data | ansible.utils.replace_keys(target=[{'before': 'interface_name', 'after': 'name'}]) }}" diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/vars/complex.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/vars/complex.yaml deleted file mode 100644 index 2df84f6..0000000 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_replace_keys/vars/complex.yaml +++ /dev/null @@ -1,44 +0,0 @@ ---- -replace: - l1: - - { "p3": "a", "x1": "a", "x2": "a" } - - { "p3": "b", "x1": "b", "x2": "b" } - - { "p3": "c", "x1": "c", "x2": "c" } - l2: - - - { "p3": "a", "x1": "a", "x2": "a" } - - { "p3": "b", "x1": "b", "x2": "b" } - - { "p3": "c", "x1": "c", "x2": "c" } - - - { "p3": "a", "x1": "a", "x2": "a" } - - { "p3": "b", "x1": "b", "x2": "b" } - - { "p3": "c", "x1": "c", "x2": "c" } - - - { "p3": "a", "x1": "a", "x2": "a" } - - { "p3": "b", "x1": "b", "x2": "b" } - - { "p3": "c", "x1": "c", "x2": "c" } - l3: - - { "p1_key_oX1": "a", "p2_key_oX2": "a", "p3_key_o3": "a" } - - { "p1_key_o4": "b", "p2_key_o5": "b", "p3_key_o6": "b" } - - { "p1_key_o7": "c", "p2_key_o8": "c", "p3_key_o9": "c" } - l3_starts_with: - - { "p3_key_o3": "a", "x1": "a", "x2": "a" } - - { "p3_key_o6": "b", "x1": "b", "x2": "b" } - - { "p3_key_o9": "c", "x1": "c", "x2": "c" } - l1_starts_with_p: - - { "x": "a" } - - { "x": "b" } - - { "x": "c" } - l1_ends_with: - - { "p3": "a", "x1": "a", "x2": "a" } - - { "p3": "b", "x1": "b", "x2": "b" } - - { "p3": "c", "x1": "c", "x2": "c" } - l3_ends_with: - - { "p3_key_o3": "a", "x1": "a", "x2": "a" } - - { "p1_key_o4": "b", "p2_key_o5": "b", "p3_key_o6": "b" } - - { "p1_key_o7": "c", "p2_key_o8": "c", "p3_key_o9": "c" } - l1_ends_with_2: - - { "9": "a", "p1": "a", "p3": "a" } - - { "9": "b", "p1": "b", "p3": "b" } - - { "9": "c", "p1": "c", "p3": "c" } - l3_regex: - - { "XY_key_o2": "a", "p1_key_o1": "a", "p3_key_o3": "a" } - - { "p1_key_o4": "b", "p2_key_o5": "b", "p3_key_o6": "b" } - - { "p1_key_o7": "c", "p2_key_o8": "c", "p3_key_o9": "c" } diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/filter.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/filter.yaml index ddcb437..e67522c 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/filter.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/filter.yaml @@ -63,11 +63,11 @@ - name: read data and criteria from file ansible.builtin.set_fact: - data: "{{ lookup('ansible.builtin.file', 'data/show_interface.json') | from_json }}" - oper_status_up_criteria: "{{ lookup('ansible.builtin.file', 'criteria/oper_status_up.json') | from_json }}" - enabled_check_criteria: "{{ lookup('ansible.builtin.file', 'criteria/enabled_check.json') | from_json }}" - crc_error_check_criteria: "{{ lookup('ansible.builtin.file', 'criteria/crc_error_check.json') | from_json }}" - in_rate_check_criteria: "{{ lookup('ansible.builtin.file', 'criteria/in_rate_check.json') | from_json }}" + data: "{{ lookup('ansible.builtin.file', 'data/show_interface.json') }}" + oper_status_up_criteria: "{{ lookup('ansible.builtin.file', 'criteria/oper_status_up.json') }}" + enabled_check_criteria: "{{ lookup('ansible.builtin.file', 'criteria/enabled_check.json') }}" + crc_error_check_criteria: "{{ lookup('ansible.builtin.file', 'criteria/crc_error_check.json') }}" + in_rate_check_criteria: "{{ lookup('ansible.builtin.file', 'criteria/in_rate_check.json') }}" - name: validate data using jsonschema engine (invalid data read from file) ansible.builtin.set_fact: diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/lookup.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/lookup.yaml index dfe3b89..c20f961 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/lookup.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/lookup.yaml @@ -91,6 +91,12 @@ ansible.builtin.set_fact: data_criteria_checks: "{{ lookup('ansible.utils.validate', data, [oper_status_up_criteria, enabled_check_criteria, crc_error_check_criteria], engine='ansible.utils.jsonschema') }}" +- ansible.builtin.assert: + that: + - "data_criteria_checks[0].data_path == 'GigabitEthernet0/0/0/0.oper_status'" + - "data_criteria_checks[1].data_path == 'GigabitEthernet0/0/0/1.enabled'" + - "data_criteria_checks[2].data_path == 'GigabitEthernet0/0/0/1.counters.in_crc_errors'" + - name: validate data using jsonschema engine (valid data read from file) ansible.builtin.set_fact: data_criteria_checks: "{{ lookup('ansible.utils.validate', data, in_rate_check_criteria, engine='ansible.utils.jsonschema') }}" diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/module.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/module.yaml index e96dd58..b26a0ce 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/module.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/module.yaml @@ -110,14 +110,13 @@ - ansible.builtin.assert: that: - "'errors' in result" - - "'GigabitEthernet0/0/0/0.oper_status' in result['errors'][0]" - - "'GigabitEthernet0/0/0/1.enabled' in result['errors'][1]" - - "'GigabitEthernet0/0/0/1.counters.in_crc_errors' in result['errors'][2]" + - "result['errors'][0].data_path == 'GigabitEthernet0/0/0/0.oper_status'" + - "result['errors'][1].data_path == 'GigabitEthernet0/0/0/1.enabled'" + - "result['errors'][2].data_path == 'GigabitEthernet0/0/0/1.counters.in_crc_errors'" - "'Validation errors were found' in result.msg" - "'patternProperties.^.*.properties.oper_status.pattern' in result.msg" - "'patternProperties.^.*.properties.enabled.enum' in result.msg" - "'patternProperties.^.*.properties.counters.properties.in_crc_errors.maximum' in result.msg" - ignore_errors: true - name: validate data using jsonschema engine (valid data read from file) ansible.utils.validate: diff --git a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/test.yaml b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/test.yaml index 7606e81..882ab43 100644 --- a/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/test.yaml +++ b/collections/ansible_collections/ansible/utils/tests/integration/targets/utils_validate/tests/jsonschema/test.yaml @@ -89,14 +89,13 @@ - name: read data and criteria from file ansible.builtin.set_fact: - data: "{{ lookup('ansible.builtin.file', 'data/test_format_checker.json') | from_json }}" - criteria_1: "{{ lookup('ansible.builtin.file', 'criteria/format_checker.json') | from_json }}" + data: "{{ lookup('ansible.builtin.file', 'data/test_format_checker.json') }}" + criteria_1: "{{ lookup('ansible.builtin.file', 'criteria/format_checker.json') }}" -- name: validate data using jsonschema engine +- name: validate data using jsonschema engine (valid data read from file) ansible.builtin.set_fact: is_data_valid: "{{ data is ansible.utils.validate(engine='ansible.utils.jsonschema', criteria=[criteria_1], draft='draft7') }}" -- name: assert the data is invalid - ansible.builtin.assert: +- ansible.builtin.assert: that: - "is_data_valid == true" diff --git a/collections/ansible_collections/ansible/utils/tests/unit/mock/loader.py b/collections/ansible_collections/ansible/utils/tests/unit/mock/loader.py index 0ec1746..0fc53ed 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/mock/loader.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/mock/loader.py @@ -24,7 +24,7 @@ __metaclass__ = type import os from ansible.errors import AnsibleParserError -from ansible.module_utils.common.text.converters import to_bytes, to_text +from ansible.module_utils._text import to_bytes, to_text from ansible.parsing.dataloader import DataLoader diff --git a/collections/ansible_collections/ansible/utils/tests/unit/mock/procenv.py b/collections/ansible_collections/ansible/utils/tests/unit/mock/procenv.py index 4dcedfb..e6e0946 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/mock/procenv.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/mock/procenv.py @@ -29,7 +29,8 @@ from contextlib import contextmanager from io import BytesIO, StringIO from unittest import TestCase -from ansible.module_utils.common.text.converters import to_bytes +from ansible.module_utils._text import to_bytes +from ansible.module_utils.six import PY3 @contextmanager @@ -40,8 +41,11 @@ def swap_stdin_and_argv(stdin_data="", argv_data=tuple()): real_stdin = sys.stdin real_argv = sys.argv - fake_stream = StringIO(stdin_data) - fake_stream.buffer = BytesIO(to_bytes(stdin_data)) + if PY3: + fake_stream = StringIO(stdin_data) + fake_stream.buffer = BytesIO(to_bytes(stdin_data)) + else: + fake_stream = BytesIO(to_bytes(stdin_data)) try: sys.stdin = fake_stream @@ -60,7 +64,10 @@ def swap_stdout(): """ old_stdout = sys.stdout - fake_stream = StringIO() + if PY3: + fake_stream = StringIO() + else: + fake_stream = BytesIO() try: sys.stdout = fake_stream diff --git a/collections/ansible_collections/ansible/utils/tests/unit/mock/vault_helper.py b/collections/ansible_collections/ansible/utils/tests/unit/mock/vault_helper.py index ca15f98..6006ba9 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/mock/vault_helper.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/mock/vault_helper.py @@ -17,7 +17,7 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible.module_utils.common.text.converters import to_bytes +from ansible.module_utils._text import to_bytes from ansible.parsing.vault import VaultSecret diff --git a/collections/ansible_collections/ansible/utils/tests/unit/mock/yaml_helper.py b/collections/ansible_collections/ansible/utils/tests/unit/mock/yaml_helper.py index 2cfd7d6..2e85759 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/mock/yaml_helper.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/mock/yaml_helper.py @@ -6,6 +6,7 @@ import io import yaml +from ansible.module_utils.six import PY3 from ansible.parsing.yaml.dumper import AnsibleDumper from ansible.parsing.yaml.loader import AnsibleLoader @@ -21,11 +22,17 @@ class YamlTestUtils(object): def _dump_stream(self, obj, stream, dumper=None): """Dump to a py2-unicode or py3-string stream.""" - return yaml.dump(obj, stream, Dumper=dumper) + if PY3: + return yaml.dump(obj, stream, Dumper=dumper) + else: + return yaml.dump(obj, stream, Dumper=dumper, encoding=None) def _dump_string(self, obj, dumper=None): """Dump to a py2-unicode or py3-string""" - return yaml.dump(obj, Dumper=dumper) + if PY3: + return yaml.dump(obj, Dumper=dumper) + else: + return yaml.dump(obj, Dumper=dumper, encoding=None) def _dump_load_cycle(self, obj): # Each pass though a dump or load revs the 'generation' @@ -82,8 +89,22 @@ class YamlTestUtils(object): stream_obj_from_stream = io.StringIO() stream_obj_from_string = io.StringIO() - yaml.dump(obj_from_stream, stream_obj_from_stream, Dumper=AnsibleDumper) - yaml.dump(obj_from_stream, stream_obj_from_string, Dumper=AnsibleDumper) + if PY3: + yaml.dump(obj_from_stream, stream_obj_from_stream, Dumper=AnsibleDumper) + yaml.dump(obj_from_stream, stream_obj_from_string, Dumper=AnsibleDumper) + else: + yaml.dump( + obj_from_stream, + stream_obj_from_stream, + Dumper=AnsibleDumper, + encoding=None, + ) + yaml.dump( + obj_from_stream, + stream_obj_from_string, + Dumper=AnsibleDumper, + encoding=None, + ) yaml_string_stream_obj_from_stream = stream_obj_from_stream.getvalue() yaml_string_stream_obj_from_string = stream_obj_from_string.getvalue() @@ -91,8 +112,20 @@ class YamlTestUtils(object): stream_obj_from_stream.seek(0) stream_obj_from_string.seek(0) - yaml_string_obj_from_stream = yaml.dump(obj_from_stream, Dumper=AnsibleDumper) - yaml_string_obj_from_string = yaml.dump(obj_from_string, Dumper=AnsibleDumper) + if PY3: + yaml_string_obj_from_stream = yaml.dump(obj_from_stream, Dumper=AnsibleDumper) + yaml_string_obj_from_string = yaml.dump(obj_from_string, Dumper=AnsibleDumper) + else: + yaml_string_obj_from_stream = yaml.dump( + obj_from_stream, + Dumper=AnsibleDumper, + encoding=None, + ) + yaml_string_obj_from_string = yaml.dump( + obj_from_string, + Dumper=AnsibleDumper, + encoding=None, + ) assert yaml_string == yaml_string_obj_from_stream assert yaml_string == yaml_string_obj_from_stream == yaml_string_obj_from_string diff --git a/collections/ansible_collections/ansible/utils/tests/unit/module_utils/test_get_path.py b/collections/ansible_collections/ansible/utils/tests/unit/module_utils/test_get_path.py index 07c6fe9..53bfbee 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/module_utils/test_get_path.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/module_utils/test_get_path.py @@ -3,6 +3,7 @@ # GNU General Public License v3.0+ # (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + from __future__ import absolute_import, division, print_function @@ -10,14 +11,14 @@ __metaclass__ = type from unittest import TestCase -from jinja2 import Environment +from ansible.template import Templar from ansible_collections.ansible.utils.plugins.module_utils.common.get_path import get_path class TestGetPath(TestCase): def setUp(self): - self._environment = Environment() + self._environment = Templar(loader=None).environment def test_get_path_pass(self): var = {"a": {"b": {"c": {"d": [0, 1]}}}} @@ -37,7 +38,6 @@ class TestGetPath(TestCase): var = {"a": {"b": {"c": {"d": [0, 1]}}}} path = "a.b.e" expected = "dict object' has no attribute 'e'" - try: + with self.assertRaises(Exception) as exc: get_path(var, path, environment=self._environment, wantlist=False) - except Exception as exc: - self.assertIn(expected, str(exc)) + self.assertIn(expected, str(exc.exception)) diff --git a/collections/ansible_collections/ansible/utils/tests/unit/module_utils/test_to_paths.py b/collections/ansible_collections/ansible/utils/tests/unit/module_utils/test_to_paths.py index ebeaa42..c5e09e7 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/module_utils/test_to_paths.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/module_utils/test_to_paths.py @@ -15,7 +15,7 @@ import os from unittest import TestCase -from jinja2 import Environment +from ansible.template import Templar from ansible_collections.ansible.utils.plugins.module_utils.common.get_path import get_path from ansible_collections.ansible.utils.plugins.module_utils.common.to_paths import to_paths @@ -23,7 +23,7 @@ from ansible_collections.ansible.utils.plugins.module_utils.common.to_paths impo class TestToPaths(TestCase): def setUp(self): - self._environment = Environment() + self._environment = Templar(loader=None).environment def test_to_paths(self): var = {"a": {"b": {"c": {"d": [0, 1]}}}} diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/action/test_update_fact.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/action/test_update_fact.py index 61b9a6b..a0653d2 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/action/test_update_fact.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/action/test_update_fact.py @@ -137,23 +137,24 @@ class TestUpdate_Fact(TestCase): """Check for a missing fact""" self._plugin._task.args = {"updates": [{"path": "a.b.c", "value": 5}]} with self.assertRaises(Exception) as error: - self._plugin.run(task_vars={}) + self._plugin.run(task_vars={"vars": {}}) self.assertIn("'a' was not found in the current facts.", str(error.exception)) def test_run_simple(self): """Confirm a valid argspec passes""" - task_vars = {"a": {"b": [1, 2, 3]}} - expected = copy.deepcopy(task_vars) + task_vars = {"vars": {"a": {"b": [1, 2, 3]}}} + expected = copy.deepcopy(task_vars["vars"]) expected["a"]["b"] = 5 - expected["changed"] = True + expected.update({"changed": True}) self._plugin._task.args = {"updates": [{"path": "a.b", "value": 5}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_multiple(self): """Confirm multiple paths passes""" - task_vars = {"a": {"b1": [1, 2, 3], "b2": {"c": "123", "d": False}}} - expected = {"a": {"b1": [1, 2, 3, 4], "b2": {"c": 456, "d": True}}, "changed": True} + task_vars = {"vars": {"a": {"b1": [1, 2, 3], "b2": {"c": "123", "d": False}}}} + expected = {"a": {"b1": [1, 2, 3, 4], "b2": {"c": 456, "d": True}}} + expected.update({"changed": True}) self._plugin._task.args = { "updates": [ {"path": "a.b1.3", "value": 4}, @@ -166,60 +167,60 @@ class TestUpdate_Fact(TestCase): def test_run_replace_in_list(self): """Replace in list""" - task_vars = {"a": {"b": [1, 2, 3]}} - expected = copy.deepcopy(task_vars) + task_vars = {"vars": {"a": {"b": [1, 2, 3]}}} + expected = copy.deepcopy(task_vars["vars"]) expected["a"]["b"][1] = 5 - expected["changed"] = True + expected.update({"changed": True}) self._plugin._task.args = {"updates": [{"path": "a.b.1", "value": 5}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_append_to_list(self): """Append to list""" - task_vars = {"a": {"b": [1, 2, 3]}} - expected = copy.deepcopy(task_vars) + task_vars = {"vars": {"a": {"b": [1, 2, 3]}}} + expected = copy.deepcopy(task_vars["vars"]) expected["a"]["b"].append(4) - expected["changed"] = True + expected.update({"changed": True}) self._plugin._task.args = {"updates": [{"path": "a.b.3", "value": 4}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_bracket_single_quote(self): """Bracket notation sigle quote""" - task_vars = {"a": {"b": [1, 2, 3]}} - expected = copy.deepcopy(task_vars) + task_vars = {"vars": {"a": {"b": [1, 2, 3]}}} + expected = copy.deepcopy(task_vars["vars"]) expected["a"]["b"].append(4) - expected["changed"] = True + expected.update({"changed": True}) self._plugin._task.args = {"updates": [{"path": "a['b'][3]", "value": 4}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_bracket_double_quote(self): """Bracket notation double quote""" - task_vars = {"a": {"b": [1, 2, 3]}} - expected = copy.deepcopy(task_vars) + task_vars = {"vars": {"a": {"b": [1, 2, 3]}}} + expected = copy.deepcopy(task_vars["vars"]) expected["a"]["b"].append(4) - expected["changed"] = True + expected.update({"changed": True}) self._plugin._task.args = {"updates": [{"path": 'a["b"][3]', "value": 4}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_int_dict_keys(self): """Integer dict keys""" - task_vars = {"a": {0: [1, 2, 3]}} - expected = copy.deepcopy(task_vars) + task_vars = {"vars": {"a": {0: [1, 2, 3]}}} + expected = copy.deepcopy(task_vars["vars"]) expected["a"][0][0] = 0 - expected["changed"] = True + expected.update({"changed": True}) self._plugin._task.args = {"updates": [{"path": "a.0.0", "value": 0}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_int_as_string(self): """Integer dict keys as string""" - task_vars = {"a": {"0": [1, 2, 3]}} - expected = copy.deepcopy(task_vars) + task_vars = {"vars": {"a": {"0": [1, 2, 3]}}} + expected = copy.deepcopy(task_vars["vars"]) expected["a"]["0"][0] = 0 - expected["changed"] = True + expected.update({"changed": True}) self._plugin._task.args = {"updates": [{"path": 'a["0"].0', "value": 0}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) @@ -228,44 +229,46 @@ class TestUpdate_Fact(TestCase): """Invalid path format""" self._plugin._task.args = {"updates": [{"path": "a.'b'", "value": 0}]} with self.assertRaises(Exception) as error: - self._plugin.run(task_vars={}) + self._plugin.run(task_vars={"vars": {}}) self.assertIn("malformed", str(error.exception)) def test_run_invalid_path_bracket_after_dot(self): """Invalid path format""" self._plugin._task.args = {"updates": [{"path": "a.['b']", "value": 0}]} with self.assertRaises(Exception) as error: - self._plugin.run(task_vars={}) + self._plugin.run(task_vars={"vars": {}}) self.assertIn("malformed", str(error.exception)) def test_run_invalid_key_start_with_dot(self): """Invalid key format""" self._plugin._task.args = {"updates": [{"path": ".abc", "value": 0}]} with self.assertRaises(Exception) as error: - self._plugin.run(task_vars={}) + self._plugin.run(task_vars={"vars": {}}) self.assertIn("malformed", str(error.exception)) def test_run_no_update_list(self): """Confirm no change when same""" - task_vars = {"a": {"b": [1, 2, 3]}} - expected = copy.deepcopy(task_vars) - expected["changed"] = False + task_vars = {"vars": {"a": {"b": [1, 2, 3]}}} + expected = copy.deepcopy(task_vars["vars"]) + expected["a"]["b"] = [1, 2, 3] + expected.update({"changed": False}) self._plugin._task.args = {"updates": [{"path": "a.b.0", "value": 1}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_no_update_dict(self): """Confirm no change when same""" - task_vars = {"a": {"b": [1, 2, 3]}} - expected = copy.deepcopy(task_vars) - expected["changed"] = False + task_vars = {"vars": {"a": {"b": [1, 2, 3]}}} + expected = copy.deepcopy(task_vars["vars"]) + expected["a"]["b"] = [1, 2, 3] + expected.update({"changed": False}) self._plugin._task.args = {"updates": [{"path": "a.b", "value": [1, 2, 3]}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_missing_key(self): """Confirm error when key not found""" - task_vars = {"a": {"b": 1}} + task_vars = {"vars": {"a": {"b": 1}}} self._plugin._task.args = {"updates": [{"path": "a.c.d", "value": 1}]} with self.assertRaises(Exception) as error: self._plugin.run(task_vars=task_vars) @@ -273,7 +276,7 @@ class TestUpdate_Fact(TestCase): def test_run_list_not_int(self): """Confirm error when key not found""" - task_vars = {"a": {"b": [1]}} + task_vars = {"vars": {"a": {"b": [1]}}} self._plugin._task.args = {"updates": [{"path": "a.b['0']", "value": 2}]} with self.assertRaises(Exception) as error: self._plugin.run(task_vars=task_vars) @@ -281,7 +284,7 @@ class TestUpdate_Fact(TestCase): def test_run_list_not_long(self): """List not long enough""" - task_vars = {"a": {"b": [0]}} + task_vars = {"vars": {"a": {"b": [0]}}} self._plugin._task.args = {"updates": [{"path": "a.b.2", "value": 2}]} with self.assertRaises(Exception) as error: self._plugin.run(task_vars=task_vars) @@ -300,23 +303,27 @@ class TestUpdate_Fact(TestCase): def test_run_not_dotted_success_one(self): """Test with a not dotted key""" - task_vars = {"a": 0} - expected = {"a": 1, "ansible_facts": {"a": 1}, "changed": True} + task_vars = {"vars": {"a": 0}} + expected = copy.deepcopy(task_vars["vars"]) + expected["a"] = 1 + expected.update({"changed": True}) self._plugin._task.args = {"updates": [{"path": "a", "value": 1}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_not_dotted_success_three(self): """Test with a not dotted key longer""" - task_vars = {"abc": 0} - expected = {"abc": 1, "ansible_facts": {"abc": 1}, "changed": True} + task_vars = {"vars": {"abc": 0}} + expected = copy.deepcopy(task_vars["vars"]) + expected["abc"] = 1 + expected.update({"changed": True}) self._plugin._task.args = {"updates": [{"path": "abc", "value": 1}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_not_dotted_fail_missing(self): """Test with a not dotted key, missing""" - task_vars = {"abc": 0} + task_vars = {"vars": {"abc": 0}} self._plugin._task.args = {"updates": [{"path": "123", "value": 1}]} with self.assertRaises(Exception) as error: self._plugin.run(task_vars=task_vars) @@ -324,19 +331,19 @@ class TestUpdate_Fact(TestCase): def test_run_not_dotted_success_same(self): """Test with a not dotted key, no change""" - task_vars = {"a": 0} - expected = copy.deepcopy(task_vars) - expected["changed"] = False + task_vars = {"vars": {"a": 0}} + expected = copy.deepcopy(task_vars["vars"]) + expected.update({"changed": False}) self._plugin._task.args = {"updates": [{"path": "a", "value": 0}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) def test_run_looks_like_a_bool(self): """Test with a key that looks like a bool""" - task_vars = {"a": {"True": 0}} - expected = copy.deepcopy(task_vars) + task_vars = {"vars": {"a": {"True": 0}}} + expected = copy.deepcopy(task_vars["vars"]) expected["a"]["True"] = 1 - expected["changed"] = True + expected.update({"changed": True}) self._plugin._task.args = {"updates": [{"path": "a['True']", "value": 1}]} result = self._plugin.run(task_vars=task_vars) self.assertEqual(result, expected) diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/action/test_validate.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/action/test_validate.py index 8832a32..dc1f861 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/action/test_validate.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/action/test_validate.py @@ -104,7 +104,7 @@ VALID_DATA = {"name": "ansible", "email": "ansible@redhat.com"} IN_VALID_DATA = {"name": "ansible", "email": "redhatcom"} CRITERIA_FORMAT_SUPPORT_CHECK = { - "$schema": "https://json-schema.org/draft/2020-12/schema", + "$schema": "https://json-schema.org/schema#", "type": "object", "properties": {"name": {"type": "string"}, "email": {"format": "email"}}, "required": ["email"], diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_from_xml.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_from_xml.py index 18c2b0a..4643f53 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_from_xml.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_from_xml.py @@ -22,12 +22,8 @@ VALID_DATA = ( "" ) -OUTPUT = { - "netconf-state": { - "@xmlns": "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring", - "schemas": {"schema": None}, - }, -} +OUTPUT = """{"netconf-state": \ +{"@xmlns": "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring", "schemas": {"schema": null}}}""" class TestFromXml(TestCase): diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipaddr.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipaddr.py index 1582ec3..2849fb8 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipaddr.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipaddr.py @@ -16,9 +16,11 @@ from unittest import TestCase import pytest from ansible.errors import AnsibleFilterError +from ansible.template import AnsibleUndefined from ansible_collections.ansible.utils.plugins.filter.cidr_merge import cidr_merge from ansible_collections.ansible.utils.plugins.filter.ip4_hex import ip4_hex +from ansible_collections.ansible.utils.plugins.filter.ipaddr import _ipaddr from ansible_collections.ansible.utils.plugins.filter.ipmath import ipmath from ansible_collections.ansible.utils.plugins.filter.ipsubnet import ipsubnet from ansible_collections.ansible.utils.plugins.filter.network_in_network import network_in_network @@ -63,6 +65,15 @@ class TestIpFilter(TestCase): self.assertEqual(cidr_merge(subnets), ["1.12.1.1/32", "1.12.1.255/32"]) self.assertEqual(cidr_merge(subnets, "span"), "1.12.1.0/24") + def test_ipaddr_undefined_value(self): + """Check ipaddr filter undefined value""" + args = ["", AnsibleUndefined(name="my_ip"), ""] + with pytest.raises( + AnsibleFilterError, + match="Unrecognized type <> for ipaddr filter ", + ): + _ipaddr(*args) + def test_ipaddr_empty_query(self): self.assertEqual(ipaddr("192.0.2.230"), "192.0.2.230") self.assertEqual(ipaddr("192.0.2.230/30"), "192.0.2.230/30") diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipcut.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipcut.py index 4a66878..c086833 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipcut.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipcut.py @@ -21,30 +21,16 @@ class TestIpCut(TestCase): def setUp(self): pass - def test_get_last_X_bits_ipv6(self): + def test_get_last_X_bits(self): """Get last X bits of Ipv6 address""" args = ["", "1234:4321:abcd:dcba::17", -80] result = _ipcut(*args) self.assertEqual(result, "dcba:0:0:0:17") - def test_get_first_X_bits_ipv6(self): + def test_get_first_X_bits(self): """Get first X bits of Ipv6 address""" args = ["", "1234:4321:abcd:dcba::17", 64] result = _ipcut(*args) self.assertEqual(result, "1234:4321:abcd:dcba") - - def test_get_last_X_bits_ipv4(self): - """Get last X bits of Ipv4 address""" - - args = ["", "10.2.3.0", -16] - result = _ipcut(*args) - self.assertEqual(result, "3.0") - - def test_get_first_X_bits_ipv4(self): - """Get first X bits of Ipv4 address""" - - args = ["", "10.2.3.0", 24] - result = _ipcut(*args) - self.assertEqual(result, "10.2.3") diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipv4.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipv4.py index 89fd216..130ef6e 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipv4.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipv4.py @@ -14,6 +14,11 @@ __metaclass__ = type from unittest import TestCase +import pytest + +from ansible.errors import AnsibleFilterError +from ansible.template import AnsibleUndefined + from ansible_collections.ansible.utils.plugins.filter.ipv4 import _ipv4 @@ -40,6 +45,15 @@ class TestIp4(TestCase): def setUp(self): pass + def test_ipv4_undefined_value(self): + """Check ipv4 filter undefined value""" + args = ["", AnsibleUndefined(name="my_ip"), ""] + with pytest.raises( + AnsibleFilterError, + match="Unrecognized type <> for ipv4 filter ", + ): + _ipv4(*args) + def test_ipv4_filter_empty_query(self): """Check ipv4 filter empty query""" args = ["", VALID_DATA, ""] diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipv6.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipv6.py index ca7d045..ad18bec 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipv6.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipv6.py @@ -14,6 +14,11 @@ __metaclass__ = type from unittest import TestCase +import pytest + +from ansible.errors import AnsibleFilterError +from ansible.template import AnsibleUndefined + from ansible_collections.ansible.utils.plugins.filter.ipv6 import _ipv6 @@ -43,6 +48,15 @@ class TestIp6(TestCase): def setUp(self): pass + def test_ipv6_undefined_value(self): + """Check ipv6 filter undefined value""" + args = ["", AnsibleUndefined(name="my_ip"), ""] + with pytest.raises( + AnsibleFilterError, + match="Unrecognized type <> for ipv6 filter ", + ): + _ipv6(*args) + def test_ipv6_filter_empty_query(self): """Check ipv6 filter empty query""" args = ["", VALID_DATA, ""] diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipwrap.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipwrap.py index 92caa5d..8694fdb 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipwrap.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_ipwrap.py @@ -14,6 +14,11 @@ __metaclass__ = type from unittest import TestCase +import pytest + +from ansible.errors import AnsibleFilterError +from ansible.template import AnsibleUndefined + from ansible_collections.ansible.utils.plugins.filter.ipwrap import _ipwrap @@ -45,6 +50,15 @@ class TestIpWrap(TestCase): def setUp(self): pass + def test_ipwrap_undefined_value(self): + """Check ipwrap filter undefined value""" + args = ["", AnsibleUndefined(name="my_ip"), ""] + with pytest.raises( + AnsibleFilterError, + match="Unrecognized type <> for ipwrap filter ", + ): + _ipwrap(*args) + def test_valid_data_list(self): """Check passing valid argspec(list)""" args = ["", VALID_DATA, ""] diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_keep_keys.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_keep_keys.py index 7441b9b..767d3bd 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_keep_keys.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/filter/test_keep_keys.py @@ -230,29 +230,3 @@ class TestKeepKeys(TestCase): with self.assertRaises(AnsibleFilterError) as error: _keep_keys(*args) self.assertIn("Error when using plugin 'keep_keys'", str(error.exception)) - - def test_keep_filter_excludes_list_values(self): - """Test that keep_keys excludes keys with list values that are not in target.""" - data = [ - { - "k0": "A", - "k1": "B", - "k2": [1], - "k3": "foo", - }, - { - "k0": "A", - "k1": "B", - "k2": [2], - "k3": "bar", - }, - ] - target = ["k0", "k1"] - output = [ - {"k0": "A", "k1": "B"}, - {"k0": "A", "k1": "B"}, - ] - args = ["", data, target] - - result = _keep_keys(*args) - self.assertEqual(result, output) diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/plugin_utils/test_index_of.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/plugin_utils/test_index_of.py index 4e70a9f..c2d5270 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/plugin_utils/test_index_of.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/plugin_utils/test_index_of.py @@ -9,29 +9,17 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -import re from unittest import TestCase -from jinja2 import Environment +from ansible.template import Templar from ansible_collections.ansible.utils.plugins.plugin_utils.index_of import index_of -def jinja_match(value, pattern): - return re.match(pattern, value) is not None - - -def jinja_search(value, pattern): - return re.search(pattern, value) is not None - - class TestIndexOfFilter(TestCase): def setUp(self): - env = Environment() - env.tests["match"] = jinja_match - env.tests["search"] = jinja_search - self._tests = env.tests + self._tests = Templar(loader=None).environment.tests def test_fail_no_qualfier(self): obj, test, value = [1, 2], "@@", 1 @@ -112,14 +100,14 @@ class TestIndexOfFilter(TestCase): ), ( [{"a": "abc"}, {"a": "def"}, {"a": "ghi"}, {"a": "jkl"}], - "match", + "ansible.builtin.match", "^a", "a", 0, ), ( [{"a": "abc"}, {"a": "def"}, {"a": "ghi"}, {"a": "jkl"}], - "search", + "ansible.builtin.search", "e", "a", 1, diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/plugin_utils/test_ipaddress_utils.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/plugin_utils/test_ipaddress_utils.py deleted file mode 100644 index cc1bd28..0000000 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/plugin_utils/test_ipaddress_utils.py +++ /dev/null @@ -1,60 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2026 Red Hat -# GNU General Public License v3.0+ -# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - -""" -Unit tests for ipaddress_utils helpers. -""" - -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -from unittest import TestCase - -from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( - _is_subnet_of, - ip_network, -) - - -class TestIsSubnetOf(TestCase): - def test_ipv4_subnet_true(self): - a = ip_network("10.1.1.0/24") - b = ip_network("10.0.0.0/8") - self.assertTrue(_is_subnet_of(a, b)) - - def test_ipv4_subnet_false_disjoint(self): - a = ip_network("192.168.1.0/24") - b = ip_network("10.0.0.0/8") - self.assertFalse(_is_subnet_of(a, b)) - - def test_ipv4_subnet_false_reverse(self): - a = ip_network("10.0.0.0/8") - b = ip_network("10.1.1.0/24") - self.assertFalse(_is_subnet_of(a, b)) - - def test_ipv4_same_network(self): - n = ip_network("10.0.0.0/8") - self.assertTrue(_is_subnet_of(n, n)) - - def test_ipv6_subnet_true(self): - a = ip_network("2001:db8:0:1::/64") - b = ip_network("2001:db8::/48") - self.assertTrue(_is_subnet_of(a, b)) - - def test_ipv6_subnet_false(self): - a = ip_network("2001:db8:2::/64") - b = ip_network("2001:db8:1::/48") - self.assertFalse(_is_subnet_of(a, b)) - - def test_mixed_ip_versions(self): - a = ip_network("10.0.0.0/8") - b = ip_network("2001:db8::/32") - self.assertFalse(_is_subnet_of(a, b)) - - def test_invalid_arguments_return_false(self): - self.assertFalse(_is_subnet_of(None, ip_network("10.0.0.0/8"))) - self.assertFalse(_is_subnet_of(ip_network("10.0.0.0/8"), None)) diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/sub_plugins/cli_parsers/test_ttp_parser.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/sub_plugins/cli_parsers/test_ttp_parser.py index fa44a8a..abbbe1e 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/sub_plugins/cli_parsers/test_ttp_parser.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/sub_plugins/cli_parsers/test_ttp_parser.py @@ -52,40 +52,6 @@ class TestTextfsmParser(TestCase): ] self.assertEqual(result["parsed"][0][0], parsed_output) - def test_ttp_parser_flat_list(self): - """With ttp_results.results: flat_list, output is a single-level list of items.""" - nxos_cfg_path = os.path.join(os.path.dirname(__file__), "fixtures", "nxos_show_version.cfg") - nxos_template_path = os.path.join( - os.path.dirname(__file__), - "fixtures", - "nxos_show_version.ttp", - ) - - with open(nxos_cfg_path) as fhand: - nxos_show_version_output = fhand.read() - - task_args = { - "text": nxos_show_version_output, - "parser": { - "name": "ansible.utils.ttp", - "command": "show version", - "template_path": nxos_template_path, - "vars": { - "ttp_results": {"results": "flat_list"}, - }, - }, - } - parser = CliParser(task_args=task_args, task_vars=[], debug=False) - - result = parser.parse() - self.assertNotIn("errors", result) - parsed = result["parsed"] - self.assertIsInstance(parsed, list) - self.assertGreaterEqual(len(parsed), 1) - self.assertIsInstance(parsed[0], dict) - self.assertIn("boot_image", parsed[0]) - self.assertIn("os", parsed[0]) - def test_textfsm_parser_invalid_parser(self): fake_path = "/ /I hope this doesn't exist" task_args = { diff --git a/collections/ansible_collections/ansible/utils/tests/unit/plugins/sub_plugins/validate/test_config.py b/collections/ansible_collections/ansible/utils/tests/unit/plugins/sub_plugins/validate/test_config.py index 85b501e..01ca3ac 100644 --- a/collections/ansible_collections/ansible/utils/tests/unit/plugins/sub_plugins/validate/test_config.py +++ b/collections/ansible_collections/ansible/utils/tests/unit/plugins/sub_plugins/validate/test_config.py @@ -9,7 +9,7 @@ __metaclass__ = type import pytest from ansible.errors import AnsibleError -from ansible.module_utils.common.text.converters import to_text +from ansible.module_utils._text import to_text from ansible_collections.ansible.utils.plugins.plugin_utils.base.validate import _load_validator diff --git a/collections/ansible_collections/ansible/utils/tox-ansible.ini b/collections/ansible_collections/ansible/utils/tox-ansible.ini index daecc7d..fe560ad 100644 --- a/collections/ansible_collections/ansible/utils/tox-ansible.ini +++ b/collections/ansible_collections/ansible/utils/tox-ansible.ini @@ -1,2 +1,9 @@ -[tox] -ignore_base_python_conflict = true +[ansible] +skip = + py3.7 + py3.8 + 2.9 + 2.10 + 2.11 + 2.12 + 2.13 diff --git a/filter_plugins/__pycache__/ipaddr.cpython-39.pyc b/filter_plugins/__pycache__/ipaddr.cpython-39.pyc index 2756edc142e451c639d358925d8d4e999b93c285..b3b08d36c18c5018ae05104e1a58b3f9c2cbe3c5 100644 GIT binary patch delta 56 zcmbQn^nsB(k(ZZ?0SE#t{!Qebp=ha}k)NBYpIcO(k*{A?oSdJMs_&RroSBr9svDG_ KlUh9Sl@0*dOA^}v delta 94 zcmeysIE{%rk(ZZ?0SMM-e4fZX!#!R 0 - name: Systemd override для nginx — CAP_NET_RAW (transparent proxy) ansible.builtin.template: src: nginx-systemd-override.j2 dest: /etc/systemd/system/nginx.service.d/transparent.conf + owner: root + group: root + mode: 0644 when: nginx_streams | default([]) | selectattr('transparent', 'defined') | selectattr('transparent') | list | length > 0 notify: - Daemon reload diff --git a/roles/nginx/tasks/nginx-stream.yml b/roles/nginx/tasks/nginx-stream.yml index 3ed7e30..1f1c007 100644 --- a/roles/nginx/tasks/nginx-stream.yml +++ b/roles/nginx/tasks/nginx-stream.yml @@ -9,14 +9,14 @@ state: directory owner: root group: root -# mode: "0755" + mode: "0644" - name: Install the nginx stream files ansible.builtin.template: - src: nginx-stream.j2 + src: nginx-stream.conf.j2 dest: /etc/nginx/stream.d/{{ item.stream }}.conf owner: root group: root -# mode: "0444" + mode: "0644" loop: "{{ nginx_streams }}" notify: Reload nginx diff --git a/roles/nginx/templates/nginx-stream.j2 b/roles/nginx/templates/nginx-stream.conf.j2 similarity index 100% rename from roles/nginx/templates/nginx-stream.j2 rename to roles/nginx/templates/nginx-stream.conf.j2