diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-18 05:52:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-18 05:52:22 +0000 |
commit | 38b7c80217c4e72b1d8988eb1e60bb6e77334114 (patch) | |
tree | 356e9fd3762877d07cde52d21e77070aeff7e789 /ansible_collections/junipernetworks | |
parent | Adding upstream version 7.7.0+dfsg. (diff) | |
download | ansible-38b7c80217c4e72b1d8988eb1e60bb6e77334114.tar.xz ansible-38b7c80217c4e72b1d8988eb1e60bb6e77334114.zip |
Adding upstream version 9.4.0+dfsg.upstream/9.4.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/junipernetworks')
203 files changed, 16699 insertions, 8853 deletions
diff --git a/ansible_collections/junipernetworks/junos/.github/dependabot.yml b/ansible_collections/junipernetworks/junos/.github/dependabot.yml new file mode 100644 index 000000000..5b32d4c10 --- /dev/null +++ b/ansible_collections/junipernetworks/junos/.github/dependabot.yml @@ -0,0 +1,9 @@ +--- +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: daily + labels: + - "skip-changelog" diff --git a/ansible_collections/junipernetworks/junos/.github/release-drafter.yml b/ansible_collections/junipernetworks/junos/.github/release-drafter.yml new file mode 100644 index 000000000..e3e5966e4 --- /dev/null +++ b/ansible_collections/junipernetworks/junos/.github/release-drafter.yml @@ -0,0 +1,3 @@ +--- +# see https://github.com/ansible-community/devtools +_extends: ansible-community/devtools diff --git a/ansible_collections/junipernetworks/junos/.github/workflows/ack.yml b/ansible_collections/junipernetworks/junos/.github/workflows/ack.yml new file mode 100644 index 000000000..fda595dc5 --- /dev/null +++ b/ansible_collections/junipernetworks/junos/.github/workflows/ack.yml @@ -0,0 +1,15 @@ +--- +# See https://github.com/ansible-community/devtools/blob/main/.github/workflows/ack.yml +name: ack + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +on: # yamllint disable-line rule:truthy + pull_request_target: + types: [opened, labeled, unlabeled, synchronize] + +jobs: + ack: + uses: ansible/devtools/.github/workflows/ack.yml@main diff --git a/ansible_collections/junipernetworks/junos/.github/workflows/codecoverage.yml b/ansible_collections/junipernetworks/junos/.github/workflows/codecoverage.yml new file mode 100644 index 000000000..b425edcc2 --- /dev/null +++ b/ansible_collections/junipernetworks/junos/.github/workflows/codecoverage.yml @@ -0,0 +1,15 @@ +--- +name: Code Coverage + +on: # yamllint disable-line rule:truthy + push: + pull_request: + branches: [ main ] + +jobs: + codecoverage: + uses: ansible-network/github_actions/.github/workflows/coverage_network_devices.yml@main + with: + collection_pre_install: >- + git+https://github.com/ansible-collections/ansible.utils.git + git+https://github.com/ansible-collections/ansible.netcommon.git diff --git a/ansible_collections/junipernetworks/junos/.github/workflows/push.yml b/ansible_collections/junipernetworks/junos/.github/workflows/push.yml new file mode 100644 index 000000000..8434ea5d1 --- /dev/null +++ b/ansible_collections/junipernetworks/junos/.github/workflows/push.yml @@ -0,0 +1,27 @@ +--- +# push workflow is shared and expected to perform actions after a merge happens +# on a maintenance branch (default or release). For example updating the +# draft release-notes. +# based on great work from +# https://github.com/T-Systems-MMS/ansible-collection-icinga-director +name: push + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +on: # yamllint disable-line rule:truthy + workflow_dispatch: + +env: + NAMESPACE: junipernetworks + COLLECTION_NAME: junos + ANSIBLE_COLLECTIONS_PATHS: ./ + +jobs: + update_release_draft: + uses: ansible/devtools/.github/workflows/push_network.yml@main + with: + repo: ansible-collections/junipernetworks.junos + secrets: + BOT_PAT: ${{ secrets.BOT_PAT }} diff --git a/ansible_collections/junipernetworks/junos/.github/workflows/release.yml b/ansible_collections/junipernetworks/junos/.github/workflows/release.yml new file mode 100644 index 000000000..eb04259d1 --- /dev/null +++ b/ansible_collections/junipernetworks/junos/.github/workflows/release.yml @@ -0,0 +1,14 @@ +--- +name: release +on: # yamllint disable-line rule:truthy + release: + types: [published] + +jobs: + release: + uses: ansible/devtools/.github/workflows/release_collection.yml@main + with: + environment: release + secrets: + ah_token: ${{ secrets.AH_TOKEN }} + ansible_galaxy_api_key: ${{ secrets.ANSIBLE_GALAXY_API_KEY }} diff --git a/ansible_collections/junipernetworks/junos/.github/workflows/tests.yml b/ansible_collections/junipernetworks/junos/.github/workflows/tests.yml index 7fcdf279f..e94026c6d 100644 --- a/ansible_collections/junipernetworks/junos/.github/workflows/tests.yml +++ b/ansible_collections/junipernetworks/junos/.github/workflows/tests.yml @@ -1,20 +1,23 @@ --- -name: Test collection +name: CI concurrency: - group: ${{ github.head_ref }} + group: ${{ github.head_ref || github.run_id }} cancel-in-progress: true on: # yamllint disable-line rule:truthy pull_request: branches: [main] workflow_dispatch: + schedule: + - cron: '0 0 * * *' jobs: ansible-lint: uses: ansible-network/github_actions/.github/workflows/ansible-lint.yml@main changelog: uses: ansible-network/github_actions/.github/workflows/changelog.yml@main + if: github.event_name == 'pull_request' sanity: uses: ansible-network/github_actions/.github/workflows/sanity.yml@main unit-galaxy: @@ -26,8 +29,9 @@ jobs: git+https://github.com/ansible-collections/ansible.utils.git git+https://github.com/ansible-collections/ansible.netcommon.git all_green: - if: ${{ always() }} + if: ${{ always() && (github.event_name != 'schedule') }} needs: + - ansible-lint - changelog - sanity - unit-galaxy @@ -35,9 +39,11 @@ jobs: runs-on: ubuntu-latest steps: - run: >- - python -c "assert set([ + python -c "assert 'failure' not in + set([ + '${{ needs.ansible-lint.result }}', '${{ needs.changelog.result }}', '${{ needs.sanity.result }}', '${{ needs.unit-galaxy.result }}', '${{ needs.unit-source.result }}' - ]) == {'success'}" + ])" diff --git a/ansible_collections/junipernetworks/junos/.pre-commit-config.yaml b/ansible_collections/junipernetworks/junos/.pre-commit-config.yaml index 03659556e..275086d8d 100644 --- a/ansible_collections/junipernetworks/junos/.pre-commit-config.yaml +++ b/ansible_collections/junipernetworks/junos/.pre-commit-config.yaml @@ -1,7 +1,13 @@ --- repos: + - repo: https://github.com/ansible-network/collection_prep + 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: v4.4.0 + rev: v4.5.0 hooks: - id: check-merge-conflict - id: check-symlinks @@ -12,28 +18,14 @@ repos: - id: trailing-whitespace - repo: https://github.com/asottile/add-trailing-comma - rev: v2.3.0 + rev: v3.1.0 hooks: - id: add-trailing-comma - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v3.0.0-alpha.4" + rev: "v3.1.0" hooks: - id: prettier - # Original hook implementation is flaky due to *several* bugs described - # in https://github.com/prettier/prettier/issues/12364 - # a) CI=1 needed to avoid incomplete output - # b) two executions are needed because --list-different works correctly - # only when run with --check as with --write the output will also - # include other entries and logging level cannot be used to keep only - # modified files listed (any file is listed using the log level, regardless if - # is modified or not). - # c) We avoid letting pre-commit pass each filename in order to avoid - # running multiple instances in parallel. This also ensures that running - # prettier from the command line behaves identically with the pre-commit - # one. No real performance downsides. - # d) exit with the return code from list-different (0=none, 1=some) - # rather than the write (0=successfully rewrote files). pre-commit.ci entry: env CI=1 bash -c "prettier --list-different . || ec=$? && prettier --loglevel=error --write . && exit $ec" pass_filenames: false args: [] @@ -42,17 +34,13 @@ repos: - prettier-plugin-toml - repo: https://github.com/PyCQA/isort - rev: 5.10.1 + rev: 5.12.0 hooks: - id: isort name: Sort import statements using isort + args: ["--filter-files"] - repo: https://github.com/psf/black - rev: 22.10.0 + rev: 23.11.0 hooks: - id: black - - - repo: https://github.com/ansible-network/collection_prep - rev: 1.0.1 - hooks: - - id: update-docs diff --git a/ansible_collections/junipernetworks/junos/CHANGELOG.rst b/ansible_collections/junipernetworks/junos/CHANGELOG.rst index e0b0a6231..73ef77b5f 100644 --- a/ansible_collections/junipernetworks/junos/CHANGELOG.rst +++ b/ansible_collections/junipernetworks/junos/CHANGELOG.rst @@ -5,6 +5,107 @@ Junipernetworks Junos Collection Release Notes .. contents:: Topics +v5.3.1 +====== + +Bugfixes +-------- + +- fix to gather l2_interfaces facts with default port-mode access. + +Documentation Changes +--------------------- + +- Improve docs of prefix-lists RM. +- ios_l2_interfaces - Fixed module documentation and examples. +- ios_l3_interfaces - Fixed module documentation and examples. + +v5.3.0 +====== + +Minor Changes +------------- + +- add overridden state opperation support. + +Bugfixes +-------- + +- fix `no_advertise_adjacency_segment` config implementation. +- fix `no_eligible_backup` config implementation. +- fix `no_eligible_remote_backup` config implementation. +- fix `no_interface_state_traps` config implementation. +- fix `no_neighbor_down_notification` config implementation. +- fix `node_link_protection` implementation. +- fix md5 authentication which allows list of keys to be configured. + +v5.2.0 +====== + +Minor Changes +------------- + +- `junos_ospfv2` - Fix the authentication config when password is configured +- `junos_ospfv2` - Rename key ospf to ospfv2 in facts. +- `junos_ospfv2` - add area_ranges attribute which supports list of dict attributes. +- `junos_ospfv2` - add attributes `allow_route_leaking`, `stub_network` and `as-external` to overload dict. +- `junos_ospfv2` - add attributes `no_ignore_out_externals` to spf_options dict. +- `junos_ospfv2` - fix to gather reference_bandwidth and rfc1583compatibility. +- add acl_interfaces key for junos_facts output. + +Deprecated Features +------------------- + +- `junos_ospfv2` - add deprecate warning for area_range. +- add deprecate warning for junos_acl_interfaces key for junos facts results. + +Documentation Changes +--------------------- + +- Update examples for junos_ospfv3 + +v5.1.0 +====== + +Minor Changes +------------- + +- Adding unlink option to junos package installation. + +Bugfixes +-------- + +- Fix enabled attribute implementation. +- Fix lldp_global_assertion. +- Fix sanity issues. +- Fix the snmp view and traps configuration. +- fix the implementation of disabling interface. +- module should return with failure when rollback is 0 and device is not reachable. + +Documentation Changes +--------------------- + +- Update bgp_address_family docs with examples. +- Update bgp_global docs with examples. +- junos_interfaces - Updated documentation with examples and task output. +- junos_static_routes - add task output to module documentation examples. (https://github.com/ansible-collections/junipernetworks.junos/pull/402). + +v5.0.0 +====== + +Major Changes +------------- + +- change gathered key from junos_acls to acls + +Bugfixes +-------- + +- enable provider support for junos_scp and junos_package. +- fix diff to result when prepared diff exists. +- fix junos_security_zones facts gathering when we have single interface configured. +- revert diff mode to default. + v4.1.0 ====== diff --git a/ansible_collections/junipernetworks/junos/FILES.json b/ansible_collections/junipernetworks/junos/FILES.json index 31d798427..da63ee3e6 100644 --- a/ansible_collections/junipernetworks/junos/FILES.json +++ b/ansible_collections/junipernetworks/junos/FILES.json @@ -8,423 +8,416 @@ "format": 1 }, { - "name": ".github", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "codecov.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4aa7e485dd4db6f8a55b046088c745def2b3145d9499ccda4e9a3336467dcea2", "format": 1 }, { - "name": ".github/workflows", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "LICENSE", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", "format": 1 }, { - "name": ".github/workflows/tests.yml", + "name": ".yamllint", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a1064be53a723d631ba121e465bd424fd1f94cca4e5497a94c31f156810d9269", + "chksum_sha256": "827ef9e031ecdcaf137be239d33ef93fcbbc3611cbb6b30b0e507d0e03373d0e", "format": 1 }, { - "name": "changelogs", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "requirements.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "72120963f8c7e635d07e9383be6e58963fe00d8496e6545facd7e00082a4351b", "format": 1 }, { - "name": "changelogs/fragments", + "name": "meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "changelogs/fragments/.keep", + "name": "meta/runtime.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ed198f0d427c1317f5bf5bd0589830d0cdbdbc7f9f50bc9893544a52ca365659", "format": 1 }, { - "name": "changelogs/changelog.yaml", + "name": "README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f3bede765c3963affc20cd968642c0177d56d203a719ffecfbcb10ded921e9be", + "chksum_sha256": "2dc9f0d0301e93e8c4335dde8d0f0a5e8213ea182ddd0ff7c09a1864a829b18d", "format": 1 }, { - "name": "changelogs/config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5cfa2df4e55abdedbdf6786d3152af410249523c96a41f89a34be3510af3395e", + "name": "plugins", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs", + "name": "plugins/terminal", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_acl_interfaces_module.rst", + "name": "plugins/terminal/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7c13238e1bb93830699e91c98d8f82a492708077f1a1038b1b57b05a828656b", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_acls_module.rst", + "name": "plugins/terminal/junos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5408585fe3bd602c8c617175b6426b83b0c65bd6f1df06c9489de8cc950a7071", + "chksum_sha256": "7a753a93aab66c8d3aa61ffbc0a3cffa9a4c19b60b04e281fffd4a028ee025e5", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_banner_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bbdbf43cc2c8724c1a66127fcf74ee0ab928cd8633a2ddfe9650573628ef5f2d", + "name": "plugins/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_bgp_address_family_module.rst", + "name": "plugins/netconf/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "20ccd0958d923c6dbaaf7d140356603d1a703c22bb5231c6f1f5b02184614841", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_bgp_global_module.rst", + "name": "plugins/netconf/junos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb9cd9375dbd5786c37b328a639cbf5663c3182804fd85cc358b7fd7f7a8f2a0", + "chksum_sha256": "0748873fbfd215ae3a28d9c12bc28cba70f3b2892afb054ac3f1935250663900", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_cliconf.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "61ef607afd8afff078c3787f3b75a4c870ac27a71aeb77037b02d909c304298b", + "name": "plugins/cliconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_command_module.rst", + "name": "plugins/cliconf/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45f6294a558dd07d9edf97509fb7db33c1911e40b71c1bb6f584d5211ee542e4", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_config_module.rst", + "name": "plugins/cliconf/junos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba0c23da59ff76b3d9ca1253c603eb1016776fec68b79417cf07033e415e5d8c", + "chksum_sha256": "927ec120e824df3ce856084834a5ade6c24b8a5c4600830da8b68fd3c66f2f7e", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_facts_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e9ececb593dd9136f764612c8cb554cee711dcfe27a8f19881cc0337f76571ab", + "name": "plugins/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_hostname_module.rst", + "name": "plugins/modules/junos_acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "535066e80fb4273d3a68c3b5e84712073fd96468befd6b02bdf0a2d7ef3396a9", + "chksum_sha256": "7b840a4eb0515cf20f08504b12527f3682277d4d3fc890a20c43ba3c6774331c", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_interfaces_module.rst", + "name": "plugins/modules/junos_banner.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5cbca55d2590517d83521bbddf13b6832814b679d244aadc9c8df6de03ebab9", + "chksum_sha256": "8d8fd80f73b1372288842f4bcb88c10ea942da1300fd83abb4d61344acd02aab", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_l2_interfaces_module.rst", + "name": "plugins/modules/junos_vrf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "71fe4f8945ce65c23bcd5ee588a89720da63f663dc6b4850585e785f785c519c", + "chksum_sha256": "ab4709ddc2cb63bfa4b20cd32a4ed32757f1bf544413fb76f8d20b9080a8c69f", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_l3_interfaces_module.rst", + "name": "plugins/modules/junos_bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae85306788c03d9960ab019b4099b9e034c54157bc7bf8eff0677c0d2a686673", + "chksum_sha256": "e9669b05036c44531bcb7c498aed6bf26a44a807423d7f9245a29c5e6e27a77b", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_lacp_interfaces_module.rst", + "name": "plugins/modules/junos_lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "978dd55992043d3b7ec4b63970238e707c35d9385aeaac8fbef7264fb47f55dd", + "chksum_sha256": "8976ed6186d6dbe8af60ba32e64de959f1b48d97af2ae4be9e7d36dcd0e89f03", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_lacp_module.rst", + "name": "plugins/modules/junos_command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ffbeecae6323b644f732e52db7d332c214c506b2aa19148cf9dc0dba931a7b2f", + "chksum_sha256": "4c849c92e52778ff2e2921b60adcb437bc0285242c4acaa28f8990d702dc691f", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_lag_interfaces_module.rst", + "name": "plugins/modules/junos_lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "36d5400e8598d86d9060d9af2caa216987bc972ad42562d11ed9196dbf771857", + "chksum_sha256": "d9f2e4ff87b7fce833a5e4a8cf7eb47ffdd12e7c6a980a0bdfb7fd4d7c008b57", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_lldp_global_module.rst", + "name": "plugins/modules/junos_static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a70269e3652b27a94dab6c442a114fed0cd552dc79ff2699c824f7b2ed354efc", + "chksum_sha256": "2c91ff6e46f595f9f0e29721d0a45dc8b61f22aac87f339dfa683dddaba2d0d7", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_lldp_interfaces_module.rst", + "name": "plugins/modules/junos_security_policies_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c75dd01a54844dfaefd48812717a586b0225c8a5cf9df60e9fe7ffa3185e1b4", + "chksum_sha256": "171403f7e2aed2f3efdadeac65626a6de4fc1377c82d2a035a736e987b645673", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_logging_global_module.rst", + "name": "plugins/modules/junos_facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f763a82d4c20f1c993e7f74d86b2b95776876edcb8aea75da1a9f4fc2703464a", + "chksum_sha256": "4bcb1142f3cec172af6f2325d1241df9db91343193548003cefe199841ae45a5", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_logging_module.rst", + "name": "plugins/modules/junos_ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aa1cbabd81f8f25ed6b5705b19f4ed4a004b8e52bcdb8dd3e60a753c8b1efe93", + "chksum_sha256": "3c700a2299725aae6b7e4917a74726240ddd15159609e9bc2682de6a9c185e3f", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_netconf.rst", + "name": "plugins/modules/junos_netconf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14b028e7197d8b36e5548a189873cac83617ed127d11284f4ab557203b0d7f88", + "chksum_sha256": "0b7a1a0700bb32524bde4ad8559c5595481a33bcb4b24c78578445e1e84ad0f6", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_netconf_module.rst", + "name": "plugins/modules/junos_vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ee525c5a38123911d4e47ea6a316ec446ba36a5a59b28476cedc6c097ab3e691", + "chksum_sha256": "b52a1557ee5352494b985acc10d7c7d1d607c69354f1b4db096238e10d7413bb", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_ntp_global_module.rst", + "name": "plugins/modules/junos_logging.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0bed0c9b369ba164f031f315c549e23656b15b354cf1d8e2e43346c1c6f0bb41", + "chksum_sha256": "06c0d46cfa6ef40ce2211c4a0f6f24628165e0cc0f6c2d526538478e4520fbd7", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_ospf_interfaces_module.rst", + "name": "plugins/modules/junos_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cba16c6a616e78342c4d628ca93c96553b9a73ca75bcdb94b6005352477cb3f5", + "chksum_sha256": "0aa45eea7a3d67495c2bc7842b3e3c2a080da1fcaee005d007f7bb5f58594ebd", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_ospfv2_module.rst", + "name": "plugins/modules/junos_routing_options.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "94e8c58f4c2d28289216b5b350af2dc9237c2081fd129705281d6b727fe3eebf", + "chksum_sha256": "0474996549452d2795863f28eb69b51bfca4d5beab089c3d2e4eec5af49e8b7a", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_ospfv3_module.rst", + "name": "plugins/modules/junos_package.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3a50313280dc4dada5c5551fb76736400e66b434177341e3b497fcd8b4c2245", + "chksum_sha256": "a25342058d7c34065cc0836dd0a998c251b814df48c86e74b814b746dab8b089", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_package_module.rst", + "name": "plugins/modules/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7aa46ac6e58c358278a1595bf7b98ecfbf2d386335664042b6a85a7bbae1e440", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_ping_module.rst", + "name": "plugins/modules/junos_l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7ef547b2d1279dede4148f8ef4ab61422ea42f6a616e3d093758df05af1b9e1", + "chksum_sha256": "c2588107140c415914de2e3f70207950d6a9273de7bf5e25a699b3c1e15d8a14", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_prefix_lists_module.rst", + "name": "plugins/modules/junos_lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f0898095d94963b40bf2afa7cd418412f139c9ecccfdf83fa4d17c941905df1", + "chksum_sha256": "aa96729f20fc524e27b4618c2508223122f97af0f54039d6f6397ba8af46090c", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_routing_instances_module.rst", + "name": "plugins/modules/junos_security_zones.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f5d324ca6f0b2993b0d0aed55aafbdad643d6cf334c3835e2630b29b6641aa6c", + "chksum_sha256": "301f4ef2124f91e5ed2dd6a56a81b31bcbda045c3f5146d609e2838c2dae0f8e", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_routing_options_module.rst", + "name": "plugins/modules/junos_scp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c1834da84af51c1b3ed8546da1c684c160f30b5cd1bcfbeb0723d3ed8d139e3", + "chksum_sha256": "65ff7c4f0f934877c1ec769108a7839b8b690118da1c800b8243e605771edc9f", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_rpc_module.rst", + "name": "plugins/modules/junos_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82b147bd7ec071bb0703718174ecd74576e9105a7f397c0edbca1e408dfdda00", + "chksum_sha256": "29ecfe2acb6c98a3b2081b77446de065e139cb4378c9a1b9ae128447b37c9368", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_scp_module.rst", + "name": "plugins/modules/junos_lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cdffab9ec8f82d4a4cdf1337bc83e2576b3d0d1ca82e07aff747cff7d3ccaf48", + "chksum_sha256": "80158e131b1738cb4f2d4de7f2a9d5d42fc8709c651f834fd5c6dd37021d098d", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_security_policies_global_module.rst", + "name": "plugins/modules/junos_lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b81dd1c97963377c1dba6b703821ed668395028d7e73b6f34db98d5b7fe29c09", + "chksum_sha256": "19e99c1a56ac0ea2b4adffbc0eb689c2a46cbe2360f8e019b3aa37a1ab143018", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_security_policies_module.rst", + "name": "plugins/modules/junos_rpc.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6902b2084612c0d4a80791b25ed2bf593cb76e097e2a4d03776e1ca642f36e15", + "chksum_sha256": "5cf5ed6bbb369bf50565ea8b8ac8044371445fc0d7edd3d978b99e4cc0b1da36", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_security_zones_module.rst", + "name": "plugins/modules/junos_system.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "895b785d3fe5f2137d1c35ed6417ad09d47517551f5c7d5c3a689ea70738baef", + "chksum_sha256": "2635eb9827190e6730ebb7be9ba0f0e6e232302a948cba6880a5ccf00ea3b9ab", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_snmp_server_module.rst", + "name": "plugins/modules/junos_acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3e8e64107c41b99c3a33e0f0ebdcad8ce7f8927b9e9f5964ecb84a52d745c620", + "chksum_sha256": "ab29072bfc7fef0934b4f0cc8092756a4eda3df16b33ce7c341ce9ce7f96a61d", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_static_routes_module.rst", + "name": "plugins/modules/junos_logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f1429c45b019e125d03ff552e0896bdc78ed4e12aeb621e3846546adb4a20507", + "chksum_sha256": "50e8fa45f5184a381823ff10e7180009810ba1fa65c92bc9def44135847934e2", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_system_module.rst", + "name": "plugins/modules/junos_security_policies.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d0f2772ec9dd3bd9f8093555ea037343c2823dfa727882c9f2738ba505954c4f", + "chksum_sha256": "fa867759f13b9c37011417ebbae1983aa8bd49014d47d225c10c836d50341d1c", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_user_module.rst", + "name": "plugins/modules/junos_routing_instances.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91f58b305f7f955e55671e36d3c79c2d9a75b2ea8175483e0a6858bc90759e1b", + "chksum_sha256": "2ac171bdae6f922892cbb6f237fedf57a397fbaaf1bbf4f755b1aa2782b599ec", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_vlans_module.rst", + "name": "plugins/modules/junos_ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c13ff841b6a5b81af37592b7f8238123245bb06f4a556161ea7ee4feb542d45", + "chksum_sha256": "60bb7b3367606e75c651f2ab39dbc498efe35e02a9f8cd87835293873eacae9f", "format": 1 }, { - "name": "docs/junipernetworks.junos.junos_vrf_module.rst", + "name": "plugins/modules/junos_prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afc033c8dddd018ce2af2cc8260deeed99f4c5a59c1c07a0ba6a20ffa216c161", - "format": 1 - }, - { - "name": "meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "c82456ce16a53bc4972a6d3b49a800cb855fb6cab2520fce6580539ba6a8ffce", "format": 1 }, { - "name": "meta/runtime.yml", + "name": "plugins/modules/junos_bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "878108efcfd0a8640dbff9dd02c5d54903d8eb6168d263ad49fb0fad6525ad1d", + "chksum_sha256": "771f174a0f9fb5902926d0d51ca8113c3575483bad2ff4b6e0dd8e8e50402106", "format": 1 }, { - "name": "plugins", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/junos_user.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ac09a5a8fd1c094d4919a1c338e70ee37122ea25b9c8b8f15374e22cef60da8a", "format": 1 }, { - "name": "plugins/action", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/junos_ntp_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "20c687260995640277dffed828e4175fdc12edcc1cf8ebcac4adb130c121785f", "format": 1 }, { - "name": "plugins/action/__init__.py", + "name": "plugins/modules/junos_ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "68938ce7dec95ceb489e7523256280a80053d692ff0adfa9efb5c3e4d944310b", "format": 1 }, { - "name": "plugins/action/junos.py", + "name": "plugins/modules/junos_snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7bafbee6ad8658c48b3ba5f88ef598d70fe794b6ab641bad9d3721c4512cb07", + "chksum_sha256": "3c12f1067ef69962a559e015a64a33653bf96446bc678ac1f067535a1810763a", "format": 1 }, { - "name": "plugins/cliconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/junos_hostname.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d950b8c2c345c298127dc183d53e6803d568cbc2c4867ec66097ff643fdd012f", "format": 1 }, { - "name": "plugins/cliconf/__init__.py", + "name": "plugins/modules/junos_l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "55a8215c15a9c06ec42cfdd8cdec37c7a9a0a7f7787b120be857daa9eaa8bc69", "format": 1 }, { - "name": "plugins/cliconf/junos.py", + "name": "plugins/modules/junos_ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c59f0cafc68b5f42fa8d2c7eabe5e86b2a3ebc24d5521a8d0cef67b353995544", + "chksum_sha256": "bb2b93455cc4afcc64b6e2e2f41261db0666f949b214a0983a348008fc35e7ce", "format": 1 }, { @@ -445,7 +438,7 @@ "name": "plugins/doc_fragments/junos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08e9a295cec5b9a9bb216da5129219be14f50d5664e3835483443fea528c3232", + "chksum_sha256": "5294623e923b47674ea7fcfafc3b51a847e7e87942ee4169e5067aef5be13bb1", "format": 1 }, { @@ -456,6 +449,13 @@ "format": 1 }, { + "name": "plugins/module_utils/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { "name": "plugins/module_utils/network", "ftype": "dir", "chksum_type": null, @@ -470,4063 +470,4168 @@ "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec", + "name": "plugins/module_utils/network/junos/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/junos/facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/acl_interfaces", + "name": "plugins/module_utils/network/junos/facts/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/facts/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "89eab55bab6787e95a1d6b9c8f72b0593ca899e53f750541ea85e836c62de4d6", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/junos/facts/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "266f490e5364e72650ae56a41c325229066f28066854701e46093ab87648de51", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/acls", + "name": "plugins/module_utils/network/junos/facts/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/acls/__init__.py", + "name": "plugins/module_utils/network/junos/facts/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "2887ece67e8b0b676c03ed878529256fb1ad050ca06c1bce1bba38583fdc4ca3", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/acls/acls.py", + "name": "plugins/module_utils/network/junos/facts/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7101b7be0a51fe637423985da6fb810432950ad33eea1c42e389ea0f409c1f65", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/bgp_address_family", + "name": "plugins/module_utils/network/junos/facts/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/junos/facts/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/junos/facts/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "631e77bbb41f6bbb34bef7e0a1635413911fd4744a595060296f861dc63d2864", + "chksum_sha256": "94b94bff134cd75255b69e8eabd02cbf20034987af7123dde1302a9369a33a92", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/bgp_global", + "name": "plugins/module_utils/network/junos/facts/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/bgp_global/__init__.py", + "name": "plugins/module_utils/network/junos/facts/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "086449727c22526b4d6ec69f81aaa65ef7e20d7afe4dc8f5a74364050f58f197", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/bgp_global/bgp_global.py", + "name": "plugins/module_utils/network/junos/facts/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e9ec5a6a60bb8dcefb90eeeee4d6566e48393f4e86da0917f9e7054c9e52aed6", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/facts", + "name": "plugins/module_utils/network/junos/facts/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/facts/__init__.py", + "name": "plugins/module_utils/network/junos/facts/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/facts/facts.py", + "name": "plugins/module_utils/network/junos/facts/lldp_interfaces/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "588316eb871e9a00db5269adf4d4f67ca2cf467e0699eeef0844e75b40de6953", + "chksum_sha256": "1df21a17a08ca662fde86eb104a1b315e94b1608d2714d93d40a2fc495527ad0", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/hostname", + "name": "plugins/module_utils/network/junos/facts/lacp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/hostname/__init__.py", + "name": "plugins/module_utils/network/junos/facts/lacp/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "44936dff8bf302bdd1c920bc3fa6dbddfbfa262c0280c9022e3773db8782c868", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/hostname/hostname.py", + "name": "plugins/module_utils/network/junos/facts/lacp/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc0972c01a77f54216305610589d3bd2c2be035084c2a895859ce83b80fc016b", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/interfaces", + "name": "plugins/module_utils/network/junos/facts/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/facts/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/interfaces/interfaces.py", + "name": "plugins/module_utils/network/junos/facts/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0afa05ec549bc39da1392a7432968c280a626e0da14e12a0e27e07098a6ed32d", + "chksum_sha256": "5228a74b64a0c6cfdadb6aa523c07c7c0fc94ad073c8d67004c85d4359d5f3dd", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/l2_interfaces", + "name": "plugins/module_utils/network/junos/facts/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/facts/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/junos/facts/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efbd8b98fa5da8778f43d3a6d3cc0c014fe93b2f7880f4114b794e351cba2b9b", + "chksum_sha256": "90aa258a0413fd85f229500f10df5a4d37a90837ea686739ac33a8fe237bfbe4", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/l3_interfaces", + "name": "plugins/module_utils/network/junos/facts/ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/facts/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/junos/facts/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5918147337a997c12a473049b3672f0f941cc9129b103df578c8ad7627582dcd", + "chksum_sha256": "3d375a5f2448fcd0109eb79289723cb47076212ca96f7d3953a40a82a87271a3", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lacp", + "name": "plugins/module_utils/network/junos/facts/legacy", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lacp/__init__.py", + "name": "plugins/module_utils/network/junos/facts/legacy/base.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b6157eed29c5e2c4d2f4daf23f6e26eb7401c504a8c34df66d684311fbba5861", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lacp/lacp.py", + "name": "plugins/module_utils/network/junos/facts/legacy/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c909e98e4992fdc470732fff7e71016766edfcaa01a46de20712dd4d5a12050f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lacp_interfaces", + "name": "plugins/module_utils/network/junos/facts/l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/facts/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/junos/facts/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c0c308e2b451d3f2b8ab8ba9e44b6bb4909e08c454f6b06fa2ebe55a375b8ad", + "chksum_sha256": "d473b4fd6fcceb453f5737c49d3a4496312aca47d43ea6986013af3349e23d5d", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lag_interfaces", + "name": "plugins/module_utils/network/junos/facts/ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/facts/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/junos/facts/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51e2ede7acfbd40fe4f8d1a8a2bdf6fdfdaecd213e213da7f25e659772166ee6", + "chksum_sha256": "9fb2f9201f58ce1d44ccf58f6dbb4a8ddc2f0dc14a24711c1e3d8ff9b9ed4a20", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lldp_global", + "name": "plugins/module_utils/network/junos/facts/acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lldp_global/__init__.py", + "name": "plugins/module_utils/network/junos/facts/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lldp_global/lldp_global.py", + "name": "plugins/module_utils/network/junos/facts/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f501b9cddefef6a0be35a982dc1f49d0f6721ed06e71a16a369dac9eff0593f9", + "chksum_sha256": "96790e91d95b732dff326e712b71fbfc2fcf90f37b8e1ac48ec494250c941a24", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lldp_interfaces", + "name": "plugins/module_utils/network/junos/facts/security_policies", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/facts/security_policies/security_policies.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c13f6094663d084a4a5fde18f9094a8cf2cf4434be1e827415babba820c9fefb", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/junos/facts/security_policies/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "401c26d38a8a470e9946bb6c743196681ecc97054feca043af0744f69343d27a", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/logging_global", + "name": "plugins/module_utils/network/junos/facts/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/logging_global/__init__.py", + "name": "plugins/module_utils/network/junos/facts/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/logging_global/logging_global.py", + "name": "plugins/module_utils/network/junos/facts/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15ed3daf016f8c316e016dfce6a3059984820e84861c5a50b2cd7251cc2a4ed0", + "chksum_sha256": "d6ae5428d96ce7838d54b1d6697f19056940afea5a457691dba4fa512be7d46c", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ntp_global", + "name": "plugins/module_utils/network/junos/facts/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/junos/facts/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ntp_global/__init__.py", + "name": "plugins/module_utils/network/junos/facts/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c62d20cd6d62bdbec004c9f840cddcf5649be5feda41c84417ce0371b6f6cf14", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ntp_global/ntp_global.py", + "name": "plugins/module_utils/network/junos/facts/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "12e3d79c93c5e06f1899a710cd482f30e269d389b5b3a8676d9b4dcae23b2dfb", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ospf_interfaces", + "name": "plugins/module_utils/network/junos/facts/security_zones", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/facts/security_zones/security_zones.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "cbb73b02383c6787a4bbe18eeb1a566363d7af2e9326b3c56b2820d2198519bb", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/junos/facts/security_zones/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "604284bd1e421dbc0ac8da21557a41bef292e9799a5bfdb1d79042d07c3733f4", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ospfv2", + "name": "plugins/module_utils/network/junos/facts/lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ospfv2/__init__.py", + "name": "plugins/module_utils/network/junos/facts/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "f93a737a129b5d05fe28f5c6c3bb44a830df90b3dd61fb17444bd80b93ad9a09", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/junos/facts/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "78ad8bfc284751abd8d6d3577f4d1b240226ab1ec7c22d4b93cbcab8b3ca8ac9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ospfv3", + "name": "plugins/module_utils/network/junos/facts/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ospfv3/__init__.py", + "name": "plugins/module_utils/network/junos/facts/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/junos/facts/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6f6baae6c8d0cd7a42d175f8237a94d49bbc748da8f39fe30d78db52e4bce753", + "chksum_sha256": "eef5be8b578155642be73aa8311dfd978c0dc01a5a3fba3939ba2faceba4bba8", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/prefix_lists", + "name": "plugins/module_utils/network/junos/facts/ntp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/junos/facts/ntp_global/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "fa1d7dd9759815b42609d676a8430789049b3f28368b3b0cb5cc8d6665ff0f03", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/junos/facts/ntp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b8ab0bb2961d97dac8d7d9e947058528e9d31dcad8ec210c6d0e63ecb0cd428c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/routing_instances", + "name": "plugins/module_utils/network/junos/facts/lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/routing_instances/__init__.py", + "name": "plugins/module_utils/network/junos/facts/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "771999bc9241bf629356732305d827a3dc1f812bdeaf95b9350257b9829011e3", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/routing_instances/routing_instances.py", + "name": "plugins/module_utils/network/junos/facts/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ec4d7437cc5586002d8cf9b449e7428a395880b02f13d178762cde6dd78deaa", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/routing_options", + "name": "plugins/module_utils/network/junos/facts/routing_instances", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/routing_options/__init__.py", + "name": "plugins/module_utils/network/junos/facts/routing_instances/routing_instances.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "d3d09198249f250a585d299c8e1771a7304cfafb231040abbf4cebba3d3cd43c", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/routing_options/routing_options.py", + "name": "plugins/module_utils/network/junos/facts/routing_instances/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24b6905c1d2720142bfa1f3643afd9d1087640fea46b7bd2a9ecb847fe2bf2be", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/security_policies", + "name": "plugins/module_utils/network/junos/facts/vlans", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/security_policies/__init__.py", + "name": "plugins/module_utils/network/junos/facts/vlans/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "6a31b3b1d45130b9d77d4aabf789cc2294b61c46a2c2526dc6e7a9af68c015c0", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/security_policies/security_policies.py", + "name": "plugins/module_utils/network/junos/facts/vlans/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4da59c067f1b71ae1e75503d98915d568b8f798a7da1cf4136f3065a674df9c3", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/security_policies_global", + "name": "plugins/module_utils/network/junos/facts/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/security_policies_global/__init__.py", + "name": "plugins/module_utils/network/junos/facts/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "f68580cf08d91d58daf195a401ce8149d53bd1b39f663f11cbad334bb6f92e04", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/security_policies_global/security_policies_global.py", + "name": "plugins/module_utils/network/junos/facts/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e29761490c30f4dd7fbbec8289646e48ab9c4758811ef365d02b749b9599e289", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/security_zones", + "name": "plugins/module_utils/network/junos/facts/l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/security_zones/__init__.py", + "name": "plugins/module_utils/network/junos/facts/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/security_zones/security_zones.py", + "name": "plugins/module_utils/network/junos/facts/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b74961352f230df3c0fc3d1c8d031fe4f9abb6e5182620c22955fabe0afcba6c", + "chksum_sha256": "b81959cc724e6b49e35d12ea017cecfb95e71c601d58080ec5bd4b4a93a65485", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/snmp_server", + "name": "plugins/module_utils/network/junos/facts/bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/snmp_server/__init__.py", + "name": "plugins/module_utils/network/junos/facts/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "d341e9a255c4a64bc7699b5df292b8aab8568f07e952297ee6655db83878481a", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/junos/facts/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f1987ea2bf63d532ac4f194ffe2df4eeb2c2eec4856b9b9bc27741c47a539e6b", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/static_routes", + "name": "plugins/module_utils/network/junos/facts/security_policies_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/static_routes/__init__.py", + "name": "plugins/module_utils/network/junos/facts/security_policies_global/security_policies_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5b73a48e9e07cff06d4a3d1124c3b794850c8045c4623e46cc4e739cf5a32a08", + "format": 1 + }, + { + "name": "plugins/module_utils/network/junos/facts/security_policies_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/static_routes/static_routes.py", + "name": "plugins/module_utils/network/junos/facts/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "981e24f69455e6598b73620e9a3a46a6a38e92cd5d249650586641d26338cca1", + "chksum_sha256": "cfcd05893d6ef57d7cd8d8f02b42562d95f88227f6b38c58a1b754df595c140f", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/vlans", + "name": "plugins/module_utils/network/junos/facts/routing_options", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/vlans/__init__.py", + "name": "plugins/module_utils/network/junos/facts/routing_options/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/argspec/vlans/vlans.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fccebb67c15266353af3b4b8438c50452a76246a84847561429f68bb299f48df", - "format": 1 - }, - { - "name": "plugins/module_utils/network/junos/argspec/__init__.py", + "name": "plugins/module_utils/network/junos/facts/routing_options/routing_options.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "230976ef9749bfa817c9205d7ca5a315767d6659589beaddef062716b199b81a", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config", + "name": "plugins/module_utils/network/junos/argspec", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/acl_interfaces", + "name": "plugins/module_utils/network/junos/argspec/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "631e77bbb41f6bbb34bef7e0a1635413911fd4744a595060296f861dc63d2864", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/junos/argspec/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ced337f7163755d8812f7483ee984e0e313dcfb7f8ebb6ee387e6aeece4fd990", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/acls", + "name": "plugins/module_utils/network/junos/argspec/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/acls/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "981e24f69455e6598b73620e9a3a46a6a38e92cd5d249650586641d26338cca1", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/acls/acls.py", + "name": "plugins/module_utils/network/junos/argspec/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4925fdf7580e420af79276aa8f0023ba008d4c7a64bac58b50095596f5ffb244", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/bgp_address_family", + "name": "plugins/module_utils/network/junos/argspec/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/junos/argspec/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4308d40aae3f14befe52481b514fd615533e613ac280452d9b5836f487c516c6", + "chksum_sha256": "b8ab0bb2961d97dac8d7d9e947058528e9d31dcad8ec210c6d0e63ecb0cd428c", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/bgp_global", + "name": "plugins/module_utils/network/junos/argspec/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/bgp_global/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "bc0972c01a77f54216305610589d3bd2c2be035084c2a895859ce83b80fc016b", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/bgp_global/bgp_global.py", + "name": "plugins/module_utils/network/junos/argspec/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1c75190d5fe85025e30a57eea977a4aca1777b56632c70902ea10e2767fba8e", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/hostname", + "name": "plugins/module_utils/network/junos/argspec/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/hostname/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/hostname/hostname.py", + "name": "plugins/module_utils/network/junos/argspec/lldp_interfaces/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "98909f99f52710bb239f512f01368d1ed562c6596f9f85ddd4eb9a36d9e7bade", + "chksum_sha256": "401c26d38a8a470e9946bb6c743196681ecc97054feca043af0744f69343d27a", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/interfaces", + "name": "plugins/module_utils/network/junos/argspec/lacp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/lacp/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c909e98e4992fdc470732fff7e71016766edfcaa01a46de20712dd4d5a12050f", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/interfaces/interfaces.py", + "name": "plugins/module_utils/network/junos/argspec/lacp/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "560e714899adf7df51257c1667316dec57fe7e7c1ac04c64bd8aff402abbc25b", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/l2_interfaces", + "name": "plugins/module_utils/network/junos/argspec/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/junos/argspec/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a029d1415f0f0274c245c810123c678bf53766d1fc530744685fc59adb452ac4", + "chksum_sha256": "70cfa5de84015312181c262d5edb88f08881b404e3b7f4e2b3865eecb7d90f3f", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/l3_interfaces", + "name": "plugins/module_utils/network/junos/argspec/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/junos/argspec/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b988ee89f60461fc8fa8bac746c7b7c2e929482e5ce7808b3bfebffb1a1ee89e", + "chksum_sha256": "15ed3daf016f8c316e016dfce6a3059984820e84861c5a50b2cd7251cc2a4ed0", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lacp", + "name": "plugins/module_utils/network/junos/argspec/ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lacp/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lacp/lacp.py", + "name": "plugins/module_utils/network/junos/argspec/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5f65a2b08953d86f2becf117d84ba15c3cde26b6340e4eec68a8af4f1deaa540", + "chksum_sha256": "6f6baae6c8d0cd7a42d175f8237a94d49bbc748da8f39fe30d78db52e4bce753", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lacp_interfaces", + "name": "plugins/module_utils/network/junos/argspec/l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/junos/argspec/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "56b3b18fad45f4f6714f9c8dfc2e79baac8f8261733e7f5170100f1c54e4be2c", + "chksum_sha256": "efbd8b98fa5da8778f43d3a6d3cc0c014fe93b2f7880f4114b794e351cba2b9b", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lag_interfaces", + "name": "plugins/module_utils/network/junos/argspec/ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/junos/argspec/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "70d50e4bcc4184bf1c3dedbb4257a6d74ca513c01016c5fe4d5badd74f3ef2fc", + "chksum_sha256": "27e83e48f119c26a0650d59424b48d594f948c6fc63de6d05eca17c388ffe2f4", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lldp_global", + "name": "plugins/module_utils/network/junos/argspec/acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lldp_global/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lldp_global/lldp_global.py", + "name": "plugins/module_utils/network/junos/argspec/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f38a3535554b68614bafe1ce1343e0d0bd306ac340f0e7feaa4932a252e26455", + "chksum_sha256": "266f490e5364e72650ae56a41c325229066f28066854701e46093ab87648de51", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lldp_interfaces", + "name": "plugins/module_utils/network/junos/argspec/security_policies", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/security_policies/security_policies.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "4da59c067f1b71ae1e75503d98915d568b8f798a7da1cf4136f3065a674df9c3", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/junos/argspec/security_policies/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a3c3e3e17f83895459b7052b2a1baf96461a0efa68362f581f6b012f62617d2", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/logging_global", + "name": "plugins/module_utils/network/junos/argspec/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/logging_global/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/logging_global/logging_global.py", + "name": "plugins/module_utils/network/junos/argspec/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c182a0fa2fd2e54191755a18dc30685d0f88d819b2720121bc6fde3a27e6151", + "chksum_sha256": "f501b9cddefef6a0be35a982dc1f49d0f6721ed06e71a16a369dac9eff0593f9", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ntp_global", + "name": "plugins/module_utils/network/junos/argspec/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/junos/argspec/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ntp_global/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "f1987ea2bf63d532ac4f194ffe2df4eeb2c2eec4856b9b9bc27741c47a539e6b", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ntp_global/ntp_global.py", + "name": "plugins/module_utils/network/junos/argspec/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ccc5b16372f281d8a7f4cc1e9d3e64590c18a0108e88b3b60c6aca4c4cb30b12", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ospf_interfaces", + "name": "plugins/module_utils/network/junos/argspec/facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/facts/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/junos/argspec/facts/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d1390da396affa856b13b6ada34b503595bdbea597d57375f391a0838a64b43", + "chksum_sha256": "588316eb871e9a00db5269adf4d4f67ca2cf467e0699eeef0844e75b40de6953", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ospfv2", + "name": "plugins/module_utils/network/junos/argspec/security_zones", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ospfv2/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/security_zones/security_zones.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b74961352f230df3c0fc3d1c8d031fe4f9abb6e5182620c22955fabe0afcba6c", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/junos/argspec/security_zones/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d947a3c11b54f0546b831f644033e685fe285f9f4a78a53a7185217c49b3f9a1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ospfv3", + "name": "plugins/module_utils/network/junos/argspec/lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ospfv3/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8c0c308e2b451d3f2b8ab8ba9e44b6bb4909e08c454f6b06fa2ebe55a375b8ad", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/junos/argspec/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1f2545344f34607135d1d1b2cfcf416e4a65f0b8dd3c39c80f53bb2bc3348f2c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/prefix_lists", + "name": "plugins/module_utils/network/junos/argspec/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/junos/argspec/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13a5dfa46801532d713b03b325b8d250a58a7e78d555f421d77d20aef67514f9", + "chksum_sha256": "7101b7be0a51fe637423985da6fb810432950ad33eea1c42e389ea0f409c1f65", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/routing_instances", + "name": "plugins/module_utils/network/junos/argspec/ntp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/routing_instances/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/ntp_global/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "12e3d79c93c5e06f1899a710cd482f30e269d389b5b3a8676d9b4dcae23b2dfb", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/routing_instances/routing_instances.py", + "name": "plugins/module_utils/network/junos/argspec/ntp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "88b3847a6ee2218f3ce31258a38f70b295860bfbc2844117835ea1b0e749e4fb", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/routing_options", + "name": "plugins/module_utils/network/junos/argspec/lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/routing_options/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "51e2ede7acfbd40fe4f8d1a8a2bdf6fdfdaecd213e213da7f25e659772166ee6", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/routing_options/routing_options.py", + "name": "plugins/module_utils/network/junos/argspec/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b3b8a5fae686977942fb4b15bec1ef5c42d6744d6fb4992d3a64b0694b5e562f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/security_policies", + "name": "plugins/module_utils/network/junos/argspec/routing_instances", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/security_policies/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/routing_instances/routing_instances.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "3ec4d7437cc5586002d8cf9b449e7428a395880b02f13d178762cde6dd78deaa", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/security_policies/security_policies.py", + "name": "plugins/module_utils/network/junos/argspec/routing_instances/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2451ab92b864c21ba4c18496f19918e1cfe489352069a91751d8de29bcd53bf7", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/security_policies_global", + "name": "plugins/module_utils/network/junos/argspec/vlans", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/security_policies_global/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/vlans/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "fccebb67c15266353af3b4b8438c50452a76246a84847561429f68bb299f48df", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/security_policies_global/security_policies_global.py", + "name": "plugins/module_utils/network/junos/argspec/vlans/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5fb29cb28786698f38ae92f3814bb006d4599ff254e8e16244b6dacbfc5b3593", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/security_zones", + "name": "plugins/module_utils/network/junos/argspec/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/security_zones/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "0afa05ec549bc39da1392a7432968c280a626e0da14e12a0e27e07098a6ed32d", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/security_zones/security_zones.py", + "name": "plugins/module_utils/network/junos/argspec/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9721187f918f026b804f3df3b2ff2b7ad8f720ecd34c94b976473e9e86b9dffa", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/snmp_server", + "name": "plugins/module_utils/network/junos/argspec/l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/snmp_server/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/junos/argspec/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4eed6657506d172f044d073af74153deca6416662e0b905ad5114698b2b6443", + "chksum_sha256": "5918147337a997c12a473049b3672f0f941cc9129b103df578c8ad7627582dcd", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/static_routes", + "name": "plugins/module_utils/network/junos/argspec/bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/static_routes/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "007454b80cb74ab2649da400a2096b3d7567334823f989f4a9267ea946268ca3", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/static_routes/static_routes.py", + "name": "plugins/module_utils/network/junos/argspec/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52ea908dc9603575564bc5edff65bc7cfbd18a89e7fa2ec1f826b955cfe891fc", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/vlans", + "name": "plugins/module_utils/network/junos/argspec/security_policies_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/vlans/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/security_policies_global/security_policies_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "e29761490c30f4dd7fbbec8289646e48ab9c4758811ef365d02b749b9599e289", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/vlans/vlans.py", + "name": "plugins/module_utils/network/junos/argspec/security_policies_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "32cd48bd67e3f40e715f4086aa7136b5370fe4d4715bec3d64fb1737b3f7f1e8", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/config/__init__.py", + "name": "plugins/module_utils/network/junos/argspec/routing_options", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/junos/argspec/routing_options/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts", + "name": "plugins/module_utils/network/junos/argspec/routing_options/routing_options.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "24b6905c1d2720142bfa1f3643afd9d1087640fea46b7bd2a9ecb847fe2bf2be", + "format": 1 + }, + { + "name": "plugins/module_utils/network/junos/config", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/acl_interfaces", + "name": "plugins/module_utils/network/junos/config/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/config/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "4308d40aae3f14befe52481b514fd615533e613ac280452d9b5836f487c516c6", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/junos/config/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "db5891f83c7e87eee72baa13e8217219b2a57d5172e87d6e1f1ac4f30377ff7f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/acls", + "name": "plugins/module_utils/network/junos/config/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/acls/__init__.py", + "name": "plugins/module_utils/network/junos/config/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "52ea908dc9603575564bc5edff65bc7cfbd18a89e7fa2ec1f826b955cfe891fc", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/acls/acls.py", + "name": "plugins/module_utils/network/junos/config/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "19073f990f251b4b1274aaf303b5ca0f3adfa3a6d13b159dd49a165995c06f97", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/bgp_address_family", + "name": "plugins/module_utils/network/junos/config/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/junos/config/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/junos/config/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "89eab55bab6787e95a1d6b9c8f72b0593ca899e53f750541ea85e836c62de4d6", + "chksum_sha256": "13a5dfa46801532d713b03b325b8d250a58a7e78d555f421d77d20aef67514f9", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/bgp_global", + "name": "plugins/module_utils/network/junos/config/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/bgp_global/__init__.py", + "name": "plugins/module_utils/network/junos/config/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "98909f99f52710bb239f512f01368d1ed562c6596f9f85ddd4eb9a36d9e7bade", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/bgp_global/bgp_global.py", + "name": "plugins/module_utils/network/junos/config/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1193a1dea5fc36eb87eafb4b6096dc535a31e86432fd4c030fdff2d09eea5e0", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/hostname", + "name": "plugins/module_utils/network/junos/config/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/hostname/__init__.py", + "name": "plugins/module_utils/network/junos/config/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/hostname/hostname.py", + "name": "plugins/module_utils/network/junos/config/lldp_interfaces/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "086449727c22526b4d6ec69f81aaa65ef7e20d7afe4dc8f5a74364050f58f197", + "chksum_sha256": "9a3c3e3e17f83895459b7052b2a1baf96461a0efa68362f581f6b012f62617d2", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/interfaces", + "name": "plugins/module_utils/network/junos/config/lacp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/config/lacp/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5f65a2b08953d86f2becf117d84ba15c3cde26b6340e4eec68a8af4f1deaa540", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/interfaces/interfaces.py", + "name": "plugins/module_utils/network/junos/config/lacp/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f68580cf08d91d58daf195a401ce8149d53bd1b39f663f11cbad334bb6f92e04", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/l2_interfaces", + "name": "plugins/module_utils/network/junos/config/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/config/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/junos/config/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f9c15fd4af5812a592959ed9314a131a4357d68cc4cb4adac940f486be135f9d", + "chksum_sha256": "f9cc22c4fc2003f20317c0ee3e92c8919f55aa6d96f303a2b21b3637664de0c7", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/l3_interfaces", + "name": "plugins/module_utils/network/junos/config/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/config/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/junos/config/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b81959cc724e6b49e35d12ea017cecfb95e71c601d58080ec5bd4b4a93a65485", + "chksum_sha256": "1c182a0fa2fd2e54191755a18dc30685d0f88d819b2720121bc6fde3a27e6151", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lacp", + "name": "plugins/module_utils/network/junos/config/ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lacp/__init__.py", + "name": "plugins/module_utils/network/junos/config/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lacp/lacp.py", + "name": "plugins/module_utils/network/junos/config/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "838118cfa965f7d48177111bcb27a6d94f956172cd0c8085979c65ed212ad41a", + "chksum_sha256": "69511d8d9cf8e1ed95a1deca6b0785e4b804abcbec8cc28f6283426325e990ee", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lacp_interfaces", + "name": "plugins/module_utils/network/junos/config/l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/config/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/junos/config/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f93a737a129b5d05fe28f5c6c3bb44a830df90b3dd61fb17444bd80b93ad9a09", + "chksum_sha256": "a029d1415f0f0274c245c810123c678bf53766d1fc530744685fc59adb452ac4", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lag_interfaces", + "name": "plugins/module_utils/network/junos/config/ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/config/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/junos/config/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "771999bc9241bf629356732305d827a3dc1f812bdeaf95b9350257b9829011e3", + "chksum_sha256": "934eeadc92217fb3ee73af6d2ed6a0b8c79f2783be9a521a71b8811200c2dd58", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/legacy", + "name": "plugins/module_utils/network/junos/config/acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/legacy/__init__.py", + "name": "plugins/module_utils/network/junos/config/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/legacy/base.py", + "name": "plugins/module_utils/network/junos/config/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2106a48b0ebb3d1ef061bc092018bd0e5ad32cef044b38e9bc5f874d657d3d24", + "chksum_sha256": "36738fa182091a428361f018a5864a84410880df76c21739d170e943339e3850", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lldp_global", + "name": "plugins/module_utils/network/junos/config/security_policies", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lldp_global/__init__.py", + "name": "plugins/module_utils/network/junos/config/security_policies/security_policies.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "2451ab92b864c21ba4c18496f19918e1cfe489352069a91751d8de29bcd53bf7", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lldp_global/lldp_global.py", + "name": "plugins/module_utils/network/junos/config/security_policies/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "46d4ee8893ceb03794e38ed48a7f5f5b77215d7c204d7beac0658abd0b3f6353", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lldp_interfaces", + "name": "plugins/module_utils/network/junos/config/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/config/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/junos/config/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1df21a17a08ca662fde86eb104a1b315e94b1608d2714d93d40a2fc495527ad0", + "chksum_sha256": "8a6ed296e35769df250c928d886ffc424786404dabe4887034b3d1cef6e14c6b", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/logging_global", + "name": "plugins/module_utils/network/junos/config/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/junos/config/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/logging_global/__init__.py", + "name": "plugins/module_utils/network/junos/config/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "7b80f5408c52240d700225b34c0bf78706628e4700b431582b6a491a8a0abc94", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/logging_global/logging_global.py", + "name": "plugins/module_utils/network/junos/config/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "90aa258a0413fd85f229500f10df5a4d37a90837ea686739ac33a8fe237bfbe4", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ntp_global", + "name": "plugins/module_utils/network/junos/config/security_zones", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ntp_global/__init__.py", + "name": "plugins/module_utils/network/junos/config/security_zones/security_zones.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9721187f918f026b804f3df3b2ff2b7ad8f720ecd34c94b976473e9e86b9dffa", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ntp_global/ntp_global.py", + "name": "plugins/module_utils/network/junos/config/security_zones/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fa1d7dd9759815b42609d676a8430789049b3f28368b3b0cb5cc8d6665ff0f03", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ospf_interfaces", + "name": "plugins/module_utils/network/junos/config/lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/junos/config/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "56b3b18fad45f4f6714f9c8dfc2e79baac8f8261733e7f5170100f1c54e4be2c", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/junos/config/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25b52f23c13f3b44b356c32826d6cb6060c4c8fa225090d50b9c5a952057594f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ospfv2", + "name": "plugins/module_utils/network/junos/config/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ospfv2/__init__.py", + "name": "plugins/module_utils/network/junos/config/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/junos/config/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8fc73e82a144bc144efa73d37ca50241de2bcf8400740672e02501e9c1ed5055", + "chksum_sha256": "8d197fbe7a69f86c9ee4b9a2999f982c3d87c1f7f99db09a8c4acb897b876b17", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ospfv3", + "name": "plugins/module_utils/network/junos/config/ntp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ospfv3/__init__.py", + "name": "plugins/module_utils/network/junos/config/ntp_global/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ccc5b16372f281d8a7f4cc1e9d3e64590c18a0108e88b3b60c6aca4c4cb30b12", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/junos/config/ntp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59e9b48585eccc6ec4bc05e968e70e0eed597a678122464ae5260d83454c884e", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/prefix_lists", + "name": "plugins/module_utils/network/junos/config/lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/junos/config/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c76ba50fb43d6b0eb0ba7f2a56b9ac00c2cb3ef36200ee62394efdedb1d013de", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/junos/config/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "94b94bff134cd75255b69e8eabd02cbf20034987af7123dde1302a9369a33a92", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/routing_instances", + "name": "plugins/module_utils/network/junos/config/routing_instances", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/routing_instances/__init__.py", + "name": "plugins/module_utils/network/junos/config/routing_instances/routing_instances.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "88b3847a6ee2218f3ce31258a38f70b295860bfbc2844117835ea1b0e749e4fb", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/routing_instances/routing_instances.py", + "name": "plugins/module_utils/network/junos/config/routing_instances/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3d09198249f250a585d299c8e1771a7304cfafb231040abbf4cebba3d3cd43c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/routing_options", + "name": "plugins/module_utils/network/junos/config/vlans", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/routing_options/__init__.py", + "name": "plugins/module_utils/network/junos/config/vlans/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "32cd48bd67e3f40e715f4086aa7136b5370fe4d4715bec3d64fb1737b3f7f1e8", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/routing_options/routing_options.py", + "name": "plugins/module_utils/network/junos/config/vlans/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "230976ef9749bfa817c9205d7ca5a315767d6659589beaddef062716b199b81a", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/security_policies", + "name": "plugins/module_utils/network/junos/config/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/security_policies/__init__.py", + "name": "plugins/module_utils/network/junos/config/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "857fd6a70790d54f80a14dfff735c5f345384b6d3a1381877e55f25b257d34bd", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/security_policies/security_policies.py", + "name": "plugins/module_utils/network/junos/config/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6443c819756443dc0140d871665f13d8cbd114a7a31984751053063af5756e0c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/security_policies_global", + "name": "plugins/module_utils/network/junos/config/l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/security_policies_global/__init__.py", + "name": "plugins/module_utils/network/junos/config/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/security_policies_global/security_policies_global.py", + "name": "plugins/module_utils/network/junos/config/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5b73a48e9e07cff06d4a3d1124c3b794850c8045c4623e46cc4e739cf5a32a08", + "chksum_sha256": "b988ee89f60461fc8fa8bac746c7b7c2e929482e5ce7808b3bfebffb1a1ee89e", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/security_zones", + "name": "plugins/module_utils/network/junos/config/bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/security_zones/__init__.py", + "name": "plugins/module_utils/network/junos/config/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "088176cf61f0f690047e9aa818ad9ab62b5033c55a8e141823992aa97e9679dc", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/security_zones/security_zones.py", + "name": "plugins/module_utils/network/junos/config/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f77e0898008f09febc172a8e7404fa890e0ef6aaa065f9fa85ebff5ce97d8a28", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/snmp_server", + "name": "plugins/module_utils/network/junos/config/security_policies_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/snmp_server/__init__.py", + "name": "plugins/module_utils/network/junos/config/security_policies_global/security_policies_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5fb29cb28786698f38ae92f3814bb006d4599ff254e8e16244b6dacbfc5b3593", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/junos/config/security_policies_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c62d20cd6d62bdbec004c9f840cddcf5649be5feda41c84417ce0371b6f6cf14", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/static_routes", + "name": "plugins/module_utils/network/junos/config/routing_options", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/static_routes/__init__.py", + "name": "plugins/module_utils/network/junos/config/routing_options/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/static_routes/static_routes.py", + "name": "plugins/module_utils/network/junos/config/routing_options/routing_options.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2887ece67e8b0b676c03ed878529256fb1ad050ca06c1bce1bba38583fdc4ca3", + "chksum_sha256": "b3b8a5fae686977942fb4b15bec1ef5c42d6744d6fb4992d3a64b0694b5e562f", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/vlans", + "name": "plugins/module_utils/network/junos/utils", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/vlans/__init__.py", + "name": "plugins/module_utils/network/junos/utils/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/vlans/vlans.py", + "name": "plugins/module_utils/network/junos/utils/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a31b3b1d45130b9d77d4aabf789cc2294b61c46a2c2526dc6e7a9af68c015c0", + "chksum_sha256": "d939568e6cc51b1dfecd971faef5c5b5daf45489d9ebf3f1ff1867670d5a32ea", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/__init__.py", + "name": "plugins/module_utils/network/junos/junos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "601f3146a98848d7acb795387f1f8541fd48d2bcca060e1eacfa07e3e36e9a04", "format": 1 }, { - "name": "plugins/module_utils/network/junos/facts/facts.py", + "name": "plugins/module_utils/network/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "521a6e4722bbe659cc4958b24bfb765699d41fb6eb56c0b8ca786ae2457b1106", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/utils", + "name": "plugins/action", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/junos/utils/__init__.py", + "name": "plugins/action/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/junos/utils/utils.py", + "name": "plugins/action/junos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b8f8c751b31c3cd5af79cef6c98012c7ad13525d62452a651e833e283487c9c5", + "chksum_sha256": "52e64984062ae3aa70c21154f4d94edfcb7f728080a4781e0e85b984e424a6b4", "format": 1 }, { - "name": "plugins/module_utils/network/junos/__init__.py", + "name": "test-requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "252dc496236f786a9c503a0e569eff6990316b93d55bd58bf4a34cde2404c59a", "format": 1 }, { - "name": "plugins/module_utils/network/junos/junos.py", + "name": "tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/sanity", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/sanity/ignore-2.9.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97e57ade7fc47a026b3c713686516771abfc45c505a5afd1abd1b10d50e78c2a", + "chksum_sha256": "62a30515d429b76a520669490ac361db7634ee3252dd907cbbec7ccadcd061bd", "format": 1 }, { - "name": "plugins/module_utils/network/__init__.py", + "name": "tests/sanity/ignore-2.13.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "18bf204fc6f6e08b0c20807cd7974995ed92b7d77df238e11ca5f3116c537e29", "format": 1 }, { - "name": "plugins/module_utils/__init__.py", + "name": "tests/sanity/ignore-2.11.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "18bf204fc6f6e08b0c20807cd7974995ed92b7d77df238e11ca5f3116c537e29", "format": 1 }, { - "name": "plugins/modules", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/sanity/ignore-2.10.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "18bf204fc6f6e08b0c20807cd7974995ed92b7d77df238e11ca5f3116c537e29", "format": 1 }, { - "name": "plugins/modules/__init__.py", + "name": "tests/sanity/ignore-2.14.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "18bf204fc6f6e08b0c20807cd7974995ed92b7d77df238e11ca5f3116c537e29", "format": 1 }, { - "name": "plugins/modules/junos_acl_interfaces.py", + "name": "tests/sanity/ignore-2.17.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "269c25caf8dca093a30d87aad2f8891011f59f97abfc02327ef59172fb209ba7", + "chksum_sha256": "18bf204fc6f6e08b0c20807cd7974995ed92b7d77df238e11ca5f3116c537e29", "format": 1 }, { - "name": "plugins/modules/junos_acls.py", + "name": "tests/sanity/ignore-2.16.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75dca5bd71950208ee30e8caeb9079bbdd5c4ba92ae29b6582f450d0e300a886", + "chksum_sha256": "18bf204fc6f6e08b0c20807cd7974995ed92b7d77df238e11ca5f3116c537e29", "format": 1 }, { - "name": "plugins/modules/junos_banner.py", + "name": "tests/sanity/ignore-2.12.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6923ce8db371e3164f9e35a8b06ff071a08ef464533591fcd6ac0d3d400d37f5", + "chksum_sha256": "18bf204fc6f6e08b0c20807cd7974995ed92b7d77df238e11ca5f3116c537e29", "format": 1 }, { - "name": "plugins/modules/junos_bgp_address_family.py", + "name": "tests/sanity/ignore-2.15.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8004c4b4f70483bce973801aa216ee228dc7bbe70a1cca14d0daa6d87f558fe4", + "chksum_sha256": "18bf204fc6f6e08b0c20807cd7974995ed92b7d77df238e11ca5f3116c537e29", "format": 1 }, { - "name": "plugins/modules/junos_bgp_global.py", + "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": "b3a048921a4ea7e9d5c10ba7aca2e7b8eb0d3c85c577c4a8e135f409a68122c6", + "chksum_sha256": "49ba996dc4735c3463e9af561344346dfae14bcc1a68096ce78364b377f0df1f", "format": 1 }, { - "name": "plugins/modules/junos_command.py", + "name": "tests/unit/plugins", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/terminal", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/plugins/terminal/test_junos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8dd79f3380f57bb669d59bdf96e46c7e00ac17c7f0bdda5fea91783f56f89361", + "chksum_sha256": "0c1a68c4e3aa8f143a63f903461ac72b7db68911ec8800961455f6d68c5c7ffb", "format": 1 }, { - "name": "plugins/modules/junos_config.py", + "name": "tests/unit/plugins/terminal/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6d6aac00721038d27ee693d1eba4a8cca66f80f9945f0a2fc89a2ff492ccfbe", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/junos_facts.py", + "name": "tests/unit/plugins/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4bcb1142f3cec172af6f2325d1241df9db91343193548003cefe199841ae45a5", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/junos_hostname.py", + "name": "tests/unit/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f0c27ecf4922dde61d4f2c9a5af93a438df047525182214672059a0be881e5e9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/junos_interfaces.py", + "name": "tests/unit/mock", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/mock/vault_helper.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f5ae431a19158cc6cb22bc526c8d453bb52c211bc42eb57b3693bcc44947cc17", + "chksum_sha256": "55bd0e924dcc22d050612c944bff0ef745e51faac9260dce9b9b2018c4c8a661", "format": 1 }, { - "name": "plugins/modules/junos_l2_interfaces.py", + "name": "tests/unit/mock/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25fdbb009536fd2ab8508dd203529348e9a43a80329aa22d3b44e0d03f09ae2c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/junos_l3_interfaces.py", + "name": "tests/unit/mock/procenv.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "178ff7923569826641e984eb63efce781d6cf31b6c4f5b95729ea58118c9f006", + "chksum_sha256": "0060a3b1408dd90d8da17535f812a7273f84b73bc8cc96b311b5adee393ec465", "format": 1 }, { - "name": "plugins/modules/junos_lacp.py", + "name": "tests/unit/mock/loader.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "23c4603ebb96290dacb64200731049098655b621281b5bab8de0b13bffe21d85", + "chksum_sha256": "2343d1f644250d4b616f0bf0a826fdee8fe306243d8412d44dd0e033352b262b", "format": 1 }, { - "name": "plugins/modules/junos_lacp_interfaces.py", + "name": "tests/unit/mock/yaml_helper.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "957180e4e54f9454b8db709a364dbd4d029a1c350c319734b4f1e56020ae7e03", + "chksum_sha256": "134eef238c83a9611799871b743e49e9bfbcd8bdddf2cc6a7bf69fd1000345b3", "format": 1 }, { - "name": "plugins/modules/junos_lag_interfaces.py", + "name": "tests/unit/mock/path.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8eef17bc6ea18a0f487c9d12f2d9862bbc54ed263a94f2c6bbe1ad0232257664", + "chksum_sha256": "a402ff41d20717a59a59e360966df71293571ff7bab36af7d55ab3bdcbda0014", "format": 1 }, { - "name": "plugins/modules/junos_lldp_global.py", + "name": "tests/unit/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/modules/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8976ed6186d6dbe8af60ba32e64de959f1b48d97af2ae4be9e7d36dcd0e89f03", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/junos_lldp_interfaces.py", + "name": "tests/unit/modules/conftest.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cd28f8de59e5035aa2258b22c3ba917cb32c655fed068ee6532ff99ce8901344", + "chksum_sha256": "e0ae70fa7c2a5e56d7f02a47c3602398cff60c8eb021772ac59a76df2a234048", "format": 1 }, { - "name": "plugins/modules/junos_logging.py", + "name": "tests/unit/modules/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f4eb58e6395f5175f9c6e7692be1a6f2bd3e6fc3fa946af2233598baedc0091d", + "chksum_sha256": "6e21e604a63f7e84baf5dc408224b29638864242d11c0ccac4e56a8e2f1f5d15", "format": 1 }, { - "name": "plugins/modules/junos_logging_global.py", + "name": "tests/unit/modules/network", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/modules/network/junos", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/modules/network/junos/test_junos_scp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "50e8fa45f5184a381823ff10e7180009810ba1fa65c92bc9def44135847934e2", + "chksum_sha256": "86a1def96c1f37faf45f72d304748b6123642646f1c9b264e9539582d2a04470", "format": 1 }, { - "name": "plugins/modules/junos_netconf.py", + "name": "tests/unit/modules/network/junos/test_junos_security_policies.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0b7a1a0700bb32524bde4ad8559c5595481a33bcb4b24c78578445e1e84ad0f6", + "chksum_sha256": "c411890cbe802c15cc841d2f783b476f2c49825c866a0ebf9dabc6b0fb7ae531", "format": 1 }, { - "name": "plugins/modules/junos_ntp_global.py", + "name": "tests/unit/modules/network/junos/test_junos_ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "20c687260995640277dffed828e4175fdc12edcc1cf8ebcac4adb130c121785f", + "chksum_sha256": "2dc3549e0cfdb401166bc9c3a112a7202ad0ed55f340fef23d795db97ada6445", "format": 1 }, { - "name": "plugins/modules/junos_ospf_interfaces.py", + "name": "tests/unit/modules/network/junos/test_junos_l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f1c82ffe81a6d249baf45f6e77affb2f54023fb5753bd283883324b76e12dffe", + "chksum_sha256": "7d2db61567220c96e4887bd3383d25631bd759b0e22757e2b1a8c27aa1d0f214", "format": 1 }, { - "name": "plugins/modules/junos_ospfv2.py", + "name": "tests/unit/modules/network/junos/test_junos_facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85e1e1a14b7963cbcd88fbe4aff3038326693fc3fe59ba37df5313877bece4da", + "chksum_sha256": "12a78a7e5aef66b5eea9e60ef9f48140ed96384f712a980126b5d9f4d78dc218", "format": 1 }, { - "name": "plugins/modules/junos_ospfv3.py", + "name": "tests/unit/modules/network/junos/test_junos_hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b40dcadebb9fa400a35ea13a3749a5459a9a42bc3a9c0e86b80db2e810ddab4", + "chksum_sha256": "cb1d2e7cae039c517d42c1e1d328ce004f7a9c78cb3bfcdde3dabc60bbf161a0", "format": 1 }, { - "name": "plugins/modules/junos_package.py", + "name": "tests/unit/modules/network/junos/test_junos_ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac1d8a02539e19c13b49170b5548e491adb533eb4a678594d2a08fc8697e3e93", + "chksum_sha256": "987a7c3d65d856973d8c775225d23da22b5cdfe2ebf4aef39300b177f57f45a7", "format": 1 }, { - "name": "plugins/modules/junos_ping.py", + "name": "tests/unit/modules/network/junos/test_junos_routing_options.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1561b464d8e70e7f827f996ff300a5c8b9bc76d306700616d1b04844f6e3cb17", + "chksum_sha256": "66303035081d82b0e2eae079f9a826d5be699cdf4485381c012431dfb77a50d5", "format": 1 }, { - "name": "plugins/modules/junos_prefix_lists.py", + "name": "tests/unit/modules/network/junos/test_junos_snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3a9bd8392077ffaee459235315cbe3fef99eb583dff1b3bb4882fbeb138cdaf5", + "chksum_sha256": "722ef94abda593d283489624726c0c994eceb42e8f45ef1a219264ce88bb15fe", "format": 1 }, { - "name": "plugins/modules/junos_routing_instances.py", + "name": "tests/unit/modules/network/junos/test_junos_ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f68dbbd57270610a907e386d9626f638876dbf7b9037190f590fc33cdde7042", + "chksum_sha256": "b70336d1f08b0bebff0e06bfd07f9909d7004c8157facb0afd36e81517a394a5", "format": 1 }, { - "name": "plugins/modules/junos_routing_options.py", + "name": "tests/unit/modules/network/junos/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0474996549452d2795863f28eb69b51bfca4d5beab089c3d2e4eec5af49e8b7a", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/junos_rpc.py", + "name": "tests/unit/modules/network/junos/test_junos_ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5cf5ed6bbb369bf50565ea8b8ac8044371445fc0d7edd3d978b99e4cc0b1da36", + "chksum_sha256": "598585442aa7c45c51a328d1767bdfe554b9efa0f88108312699c597e1860f57", "format": 1 }, { - "name": "plugins/modules/junos_scp.py", + "name": "tests/unit/modules/network/junos/test_junos_ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0356535a719ee9839585be1898856065b10792686f95773c31061282949404af", + "chksum_sha256": "5bc7a90753a688333f39f6482b7ea4ca49c887939a6fe9eb3d8df9a773ffd68d", "format": 1 }, { - "name": "plugins/modules/junos_security_policies.py", + "name": "tests/unit/modules/network/junos/test_junos_vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fef2d0d0a3be861883195c6f6aaaa2ba08dd06c1ddf2deb4f83af4f5d79e4256", + "chksum_sha256": "623946836ebc7547eea1151c17dc3baf22214108db1c339ffa0936e75eb3b002", "format": 1 }, { - "name": "plugins/modules/junos_security_policies_global.py", + "name": "tests/unit/modules/network/junos/test_junos_bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "171403f7e2aed2f3efdadeac65626a6de4fc1377c82d2a035a736e987b645673", + "chksum_sha256": "07f74b42154bbc08b9d6d6800070b83627b6225107a1b3fbe4b792cff611d2c1", "format": 1 }, { - "name": "plugins/modules/junos_security_zones.py", + "name": "tests/unit/modules/network/junos/test_junos_bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28d562623beaab43340f31a3ddf7d7136c8e87040fd1cbf1f2ea4fc2008d7386", + "chksum_sha256": "0bd60871d00cd1630ce390242532897ecdd0d778bdf22d5f40070b752aba8a40", "format": 1 }, { - "name": "plugins/modules/junos_snmp_server.py", + "name": "tests/unit/modules/network/junos/test_junos_package.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0da61db3e6e7b0384bff2a6040262295850e884958c46794d87ad9e14f791210", + "chksum_sha256": "e68ac4279a6613f90c8fd53cd0d42fefb661f8504bf44c841314a010dcd87249", "format": 1 }, { - "name": "plugins/modules/junos_static_routes.py", + "name": "tests/unit/modules/network/junos/test_junos_l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c61794afade046dc6fb5ca7ac797199bc89c4be9702e68b061adffe31fed14a3", + "chksum_sha256": "5dc8d64fcad89065457b3b2ba60029ef87cecd2c61283e13d98c7655c39a3325", "format": 1 }, { - "name": "plugins/modules/junos_system.py", + "name": "tests/unit/modules/network/junos/test_junos_netconf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d01dee8d0e8e2f3413c76bffd2a921308e6b559aa0c132958f09a83b6de869c6", + "chksum_sha256": "2482f6a254651cd65365975d516df3dabc36dabb335e01b78a743596ad357f1c", "format": 1 }, { - "name": "plugins/modules/junos_user.py", + "name": "tests/unit/modules/network/junos/junos_module.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84c349e08119dfc511adedc538697fad15a9be4bb8ab32a83706470d915d185b", + "chksum_sha256": "77b38ebd0d49b8a6297e4f186dab942d645747a40ee376a6422e4cb1e465593e", "format": 1 }, { - "name": "plugins/modules/junos_vlans.py", + "name": "tests/unit/modules/network/junos/test_junos_security_zones.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82433e366e8ba1adfebbb0d81adee2de91ebbdadf976a37da1b0428f2d31c1e2", + "chksum_sha256": "24102393aa0eae8c5db9e6daf1ccbcfdf01a6862e2db2bb24f549d4ea4c9ae81", "format": 1 }, { - "name": "plugins/modules/junos_vrf.py", + "name": "tests/unit/modules/network/junos/test_junos_routing_instances.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6d65b20821c87e9870e7e98b247df04f231d12e08729836c208beccb7432ec4", + "chksum_sha256": "f57731c928380c9a8ca2f09710f64f5c147809f9e8e9e766dd760a6e9146ba26", "format": 1 }, { - "name": "plugins/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/test_junos_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d666cca7056d62e78df27ccbb5d5f172ca4b24a8694a79e1fedec943bd537f7f", "format": 1 }, { - "name": "plugins/netconf/__init__.py", + "name": "tests/unit/modules/network/junos/test_junos_command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c3bd50b38ae745e2d13c3dde3a0196cff99cdc61474fefeb81e8f11d20e370b4", "format": 1 }, { - "name": "plugins/netconf/junos.py", + "name": "tests/unit/modules/network/junos/test_junos_logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0748873fbfd215ae3a28d9c12bc28cba70f3b2892afb054ac3f1935250663900", + "chksum_sha256": "dad36e0bafdcec3bde8808b305f972f1a2e19cddd5b4ebcb1bd65d1097ab4490", "format": 1 }, { - "name": "plugins/terminal", + "name": "tests/unit/modules/network/junos/test_junos_security_policies_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "026e23b951c6f79e30b389efad8874eb4c59f751829e5df870f489e12567383b", + "format": 1 + }, + { + "name": "tests/unit/modules/network/junos/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/terminal/__init__.py", + "name": "tests/unit/modules/network/junos/fixtures/junos_routing_instances_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9492071c37154f5769046e38477904bf0829498697f3c2b4fd0b214ef14a27da", "format": 1 }, { - "name": "plugins/terminal/junos.py", + "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply_xml.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0900c1739d079c9574f3a5ce0816490c2888c3fd69a8039f2cb0d7ab4670548c", + "chksum_sha256": "9646d44347455a648826a01a979a033c85488b33f0663ef83a1602f98a3eabd0", "format": 1 }, { - "name": "tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/load_configuration_xml.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b9095b5352838f46207fca0046504e331c8d370dc85332520ccc0247028479f9", "format": 1 }, { - "name": "tests/integration", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply_text.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b8288d3ef161c912a6016c1979234cfb8061d730f90ad6cac8a55de097d5ea1c", "format": 1 }, { - "name": "tests/integration/targets", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/junos_config.set", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "533fb52817ff0c37cf4de7ad9fee8fb63587882fccfdbcd1f6a928b5f4ac0165", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/show_version_json.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "00d9dd3100b96e96a6692f58f5d3a792275f1703a64acdbddf69601a7c93834c", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/show_interfaces_details_xml.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5da1160ee1c09d42921f8664244e49c31ac21bf2b784e94794b4f134a36af4ed", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/defaults/main.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_config.text", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "52acbee815525e2a4ce9fca63c85297c52a32a0d6957c41bc3f37c3b90b4ae3b", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/show_system_memory_xml.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "962e8ea71a1ac6eb59d63e094f6fdc59afa2906c2d566a6f6092a8ec5e3f8e6f", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/meta/main.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_routing_options_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "28bb98e8ecfb270479852cb8a0ab34c6e6362ec60e7858f64bd4843c76d548b7", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/junos_ping_ping_10.10.10.11_count_5_size_512_interval_2", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2dc39ef974356df3ba62871556a0253541b5fad3cad4e3ff1ea3d69101b6ad43", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tasks/main.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_bgp_global_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dedf802497c657594764c710abb69c6a2eb5bf58fc7d51282731973a56e85168", + "chksum_sha256": "8951ff0e1a3b6d71c64c3c00e22d6a9abf665c4ba9cc9ac55aa3f2fc487c7a22", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tasks/netconf.yaml", + "name": "tests/unit/modules/network/junos/fixtures/show_system_storage_xml.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "95430aab542287c13556d64fedaa017250d82bcd09bd9fcca6f7439838d9af7f", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/junos_prefix_lists_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bbb29c36dc361586ea1762fbb6f8ded0716e7046e0b3ab5022b3c96ba4b45dce", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/junos_ospfv2.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0fb6b3eba75e5cf010f196a9f376f6d890508caa25726faeeec3cf0b8120579c", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/_initial_config.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_bgp_global.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "47cd198cd9eb3a08e813c896b92cfc0eda48eb31e4b11a35b55a7b97a0eb8932", + "chksum_sha256": "7b3b18f683207cb7d272bbc509b50c37eda8b58dc6cfe4aa04978241a32c802b", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/_reset_config.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_bgp_address_family_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b74a6f4e78bc9098e835c4eaa579a97f4264f521bbb3e5c2fb1b30e956370c1", + "chksum_sha256": "c0bf370e7a4fd2b80232065fd7c03cfc5ef7aaecc5597a7d8e6e45dda8301dee", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/deleted.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_logging_global_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef107c677fdfb30ff79d823577ee1c84890bd7886acb6fb2396107b99fbcab53", + "chksum_sha256": "0536991827ef435cce6176c19a2fd1f906673459e231018172247fac6f606f7b", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/empty_config.yaml", + "name": "tests/unit/modules/network/junos/fixtures/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91b36b428ce955f7929ec4195a256dccb2d2b5926093c9cfdfb969895c50786e", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/merged.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_ping_ping_10.10.10.10_count_2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b0433b5d3c8b197deeb46826bc3d796bdecc84e7eb860984bbf654aa610c6e6b", + "chksum_sha256": "45b8dcf26e3f693cbfd5e66a886f6c42c8427844e62cc3fee6fa02950c80e832", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/overridden.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_ospf_interfaces.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e8c520f54c6ce56d0da73b90650b12c638dc19db9ee6df206077bdd6b07a626", + "chksum_sha256": "50828852d511aafe1ec8580f427386ded914d7cfcd79fe6ccaadab5f8128164a", "format": 1 }, { - "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/replaced.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_config.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "382845484c54c164ed28ab7b0ec3ee53e12e7d5c15f449715d5aa50aa201372b", + "chksum_sha256": "38efed50de799e3f3a85e4609ee840ad8dd285d1e59d2c21d30dacbb136e85b7", "format": 1 }, { - "name": "tests/integration/targets/junos_acls", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply_set.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0b9e2ca1106615a162444ab130bdeb6c56f601e617060022b96ad5ff2311d0d6", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/show_chassis_hardware_xml.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d6d686902c059632720826594a665ebdda8cfe166ec082796ae56da11d64e421", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/defaults/main.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_interfaces_config.xml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "e0dcf81fecfea2443b931ea13585c90f86328910b71285add801bda7265c3636", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply_diff.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3c61cfce095ac967c024d72f88f3f6fb02d8597af464fe68aed4e19ee125fa0a", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/meta/main.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_ospfv2_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "71b084d4497ff84b165285a49320f353fc97f2839bcf47fcad05bd3b5e05b036", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1794bf9ef01dea9904756da46036db8e8520e95c292a68bcf3e8545ef0c9f90", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tasks/main.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_ospf_interfaces_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f6151e4a2a93bc086b790ee3a501cdb7250d7f3f5a71fd06a1b89fe3881b101", + "chksum_sha256": "b9f3fc1df4bee23098cf23bfa6a67d0c6fb9f1cae822426af13ad6c4268b3361", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tasks/netconf.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_l2_interfaces.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "24c59086e1366073480715f57aacecc54e44c120e17b25b2f7402333aa1cb0ef", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/junos_security_policies_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1216c97a8cdee96ebcab47ca43769b6ed167880e85eef5e9ccb179ce19ccafd0", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/junos_ping_ping_10.10.10.12_count_5_do-not-fragment_rapid", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "58cfa0cf75995cf12c2dc3bc72fc13182c13f1cbbab31543a07e8545350d19b1", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/junos_l3_interfaces.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "98490f3b9ec1e6e82897e25048eec0a74e602fba1047832f132ab97b87e3e2fa", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/fixtures/parsed.cfg", + "name": "tests/unit/modules/network/junos/fixtures/junos_ospfv3_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9692a9cc1e4349d5055f6592296758c5612979b869549b261d7f8cb22076ff52", + "chksum_sha256": "b9f3fc1df4bee23098cf23bfa6a67d0c6fb9f1cae822426af13ad6c4268b3361", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/_reset_config.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_snmp_server_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65b95de98f801d3efbbcc7c4ba777dc8af5e89a18d85876a2296d819243e9a4c", + "chksum_sha256": "ff3d690032a33fc60a78b722b81c3f2038df2cb1b8aa56d5b186c80bfecdd195", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/config_policy.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_ntp_global_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7b613e7f4b3d626ddc5821c283c9d55ddbba350d37d7c523bf248e0fc599bf4", + "chksum_sha256": "cf65e12feb7d404a9b0e0a999103bf037c07ed11709f676988d5debcbaadafbf", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/deleted.yaml", + "name": "tests/unit/modules/network/junos/fixtures/show_version_text.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d36906bc9d6cb7839a210f7c688af552aced4332fe6d294c028c99c5d192808", + "chksum_sha256": "2a1956bb5615571aa71269bb65caae43c44f59430097b755eaee205ce60c4da8", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/empty_config.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_security_policies_global_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aa32412720d18dead847f85cd22c35705724541e489f3f045b117265c2da2b75", + "chksum_sha256": "e9462852c080047c4d22f2521a2915964b45d55848dbc2c348bf6238f1b4114b", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/idempotent.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_bgp_address_family.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59eec828971eae9ba7b584d87b4e15dc788791d7e9a438765277f92163cea99f", + "chksum_sha256": "7b3b18f683207cb7d272bbc509b50c37eda8b58dc6cfe4aa04978241a32c802b", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/merged.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_l2_interfaces_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3f489f5450522cf2ca9078abbba22c104222032df32804d3be2fef2878c426b9", + "chksum_sha256": "e0dcf81fecfea2443b931ea13585c90f86328910b71285add801bda7265c3636", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/overridden.yaml", + "name": "tests/unit/modules/network/junos/fixtures/show_version_xml.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f53e6ab652b057dfaccda221c21c65173c5d42ae6fb848ba73396771a3d5fa63", + "chksum_sha256": "919747d67bc939991faa1a64441e9a22b997d240df74c0991e361776dc8ecaa2", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/parsed.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_config.xml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c23da5d3f436231b378533a5ab89b086b7fa023f7a9780461f2d9c9ff3cdcab9", + "chksum_sha256": "7f20565b1504913b40b5e6c3a181a184884847beaad0b5e9d153f4695acd6c8d", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/rendered.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_ospfv3.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08e46921760c563c33b03eac99d451230904fffa85ee387ae65f51e61cf05c19", + "chksum_sha256": "4473a0f4634d65ecdf1d9ab0e02ad91ffc7a6ed9031abe91a0ef9e4e02aadd58", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/replaced.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_interfaces.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05b0bcb9ae22db881ed263fa127eac84a234021ee88118dbca5c5656679ff978", + "chksum_sha256": "65df2d02ae1f7f5dca4d74f0ae59e12737cdf93eb7ea35de636b0d14ea9322c6", "format": 1 }, { - "name": "tests/integration/targets/junos_acls/tests/netconf/reset_policy_config.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_ping_ping_10.10.10.20_count_4", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3133d054fb17cecc431da4aacabda89136ea669baf1f930c8dd8bf961d850d2d", + "chksum_sha256": "bf73afa78e3abecd0fd0f9fcce47d0e8684deed25a54bccdcfce911a083e7c0c", "format": 1 }, { - "name": "tests/integration/targets/junos_banner", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/show_chassis_routing-engine_xml.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a9818e113293701cc01971ed0c7edb733f81384d539c08d49af16b56356ead12", "format": 1 }, { - "name": "tests/integration/targets/junos_banner/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/junos_vlans_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3b3800aac4bb8cb5e3e3d7e95fafdf870ad2bcff4507f9d4f763c8229d4dd4e3", "format": 1 }, { - "name": "tests/integration/targets/junos_banner/defaults/main.yaml", + "name": "tests/unit/modules/network/junos/fixtures/junos_security_zones_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "72a5d8773cfbf73e55a219ddd23fc03d5698af853088f5087cb9d3916a7e2743", "format": 1 }, { - "name": "tests/integration/targets/junos_banner/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/fixtures/junos_hostname_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "86436c245da27a6ddaf085a66679b98fcba33b0d5ef801652d8bde564c5f4417", "format": 1 }, { - "name": "tests/integration/targets/junos_banner/meta/main.yml", + "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply_json.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "1e77d8a4c829ca72a36c925ed12e7dcb6117ab7369f1f059b4fa9dedbea7f589", "format": 1 }, { - "name": "tests/integration/targets/junos_banner/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/junos/test_junos_rpc.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e670798774f32d6efafa3a49802553e74792652b3b8b31ecef594c0415bcad80", "format": 1 }, { - "name": "tests/integration/targets/junos_banner/tasks/main.yaml", + "name": "tests/unit/modules/network/junos/test_junos_prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", + "chksum_sha256": "444602e7a299d6b905bfdb9704682185ee37c0d3b3cf8ca79fc33bf5b1f094db", "format": 1 }, { - "name": "tests/integration/targets/junos_banner/tasks/netconf.yaml", + "name": "tests/unit/modules/network/junos/test_junos_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be90db2aa35bf39ec0fc02a996e8d5e40b83b0917dab8aa2339a1d22ed5cad0e", + "chksum_sha256": "1773063d097955568b73d812bb8a7823a80051db27c2956ac3ff0eb8f51cf4ab", "format": 1 }, { - "name": "tests/integration/targets/junos_banner/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/junos_banner/tests/netconf", + "name": "tests/unit/compat", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_banner/tests/netconf/basic.yaml", + "name": "tests/unit/compat/unittest.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "560415c9318dc6aa3e10ceb7116f47daafb741ca68c148a09bc1acc3aa169354", + "chksum_sha256": "727203a3846be41893b78a4b77852a1658925e936fb19539551958a5d8e8fb81", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family", + "name": "tests/unit/compat/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "tests/unit/compat/mock.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ad85c7a32b4c62ac4a75fbe82c0c973d5d20691b258ea7c64c4aa8901fe26ccf", + "format": 1 + }, + { + "name": "tests/integration", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/defaults", + "name": "tests/integration/targets", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/defaults/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "name": "tests/integration/targets/junos_ospfv3", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/meta", + "name": "tests/integration/targets/junos_ospfv3/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/meta/main.yml", + "name": "tests/integration/targets/junos_ospfv3/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "5faeba3c6c57e0ac48c1b15188434458eec4ad6520920210114d67e2a65aac57", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tasks", + "name": "tests/integration/targets/junos_ospfv3/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ospfv3/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tasks/main.yaml", + "name": "tests/integration/targets/junos_ospfv3/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_ospfv3/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ospfv3/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests", + "name": "tests/integration/targets/junos_ospfv3/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f230ac640c63bd54e9ab49277ca63565f2940fc4a4ed7acab1d9c26708ff4235", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21f4f80f8a632bb05e189b506b3dd4ee2c52927fd9cb4023d5b1d2a307044983", + "chksum_sha256": "58a66e5c8859a7cfe9748fc0e87cbc5d065357a9b8f240661b2f734eb288099f", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0017fbbaa15229f0e59e1565894ec6236a9b6c38a0791822e83a0176d133559e", + "chksum_sha256": "a885760267113e8d1431f886e7343dd134a8eb31f591c9ece9a30a9febfb31c5", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d543a8834ddee6fe6202922c1bae874fa5ea07251a2b883d544deb4b838c5a8c", + "chksum_sha256": "a504de6423c5338c5335fc35422b5bb0040370537b529008a363efe601aa16b6", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f03982c9fa9c148a3bce04ab16a14073564d6b96fb0dc9d80a4280d44bae67e6", + "chksum_sha256": "6e462265ffe66572c162f4f28c563b3dfd4c0c23d915355e7cfee914a2308cca", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fdea66c1005edd57bc77c5e95dc0d4db878e448ecaa2d766efdcc45f09fe8533", + "chksum_sha256": "8421f06b4b592969a37a8fb0d739edeeb7d5b096030096ae8541a9d929787082", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c59df9ef3ff42cfd3bdd470925c0a3e1f8fdbead2dc6e2d201e46a2aa827d64a", + "chksum_sha256": "1d77e679fba773847ebcac2d2eb479c251beeaacdac14521dd6666ac539891a4", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5608ca62c28b3bf93f65e7eaad6130bb108162210583bf0538a6dbf212b8e2ff", + "chksum_sha256": "350496d406c1e1d55725df0ecb5fd30400275042de4daf41ae92cc70e380e334", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "38b76b973ae8e0c22e1c02fbd879d4924a8ddce3c54671353956c5aaacf59531", + "chksum_sha256": "19b7947b6ab8252d1d76661d734eefeded6aaeb7d951aeffa0addce670aa4bd3", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb5ceb89fa49b884da83854ef39519368b95df370bf98871b10d6ea9403f55df", + "chksum_sha256": "cb7b37b391d8a5a6d9e12999a355740df8805aa64ce189981b4ef4c658735470", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_ospfv3/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4cea93e925dd207634a39d7db89f41b3226361b684cd4e73907528b76b2de868", + "chksum_sha256": "ce5f704892852d0f18b14dc4ee89678a1d4341668e44751b7b2d6b7db5d04e14", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global", + "name": "tests/integration/targets/junos_static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/defaults", + "name": "tests/integration/targets/junos_static_routes/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/defaults/main.yaml", + "name": "tests/integration/targets/junos_static_routes/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_bgp_global/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/meta/main.yml", + "name": "tests/integration/targets/junos_static_routes/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tasks", + "name": "tests/integration/targets/junos_static_routes/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_bgp_global/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_static_routes/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "efb275d54a7c21fd007e1d1c8b10b65d148a9121af425a4e7fbd60abacd23fc8", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests", + "name": "tests/integration/targets/junos_static_routes/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf", + "name": "tests/integration/targets/junos_static_routes/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_static_routes/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_static_routes/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_static_routes/tests/netconf/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d162dc9b1404da0180805dc8bf0f1b96f65950cbec78041396108887715866a", + "chksum_sha256": "5171aa16ecd105acab742140d5bf420826bb08bcf99443a828654fc43aa6d85c", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_static_routes/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "20a1538392897f7778c8219a43a8662cd4e63e8568bca44f0437de3d4bc2e621", + "chksum_sha256": "43a270a33afb7540ca2cb5821789d8f2a9b71776705192143f6bf96411d182da", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_static_routes/tests/netconf/_base_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b29393a5633254b0ccc43252a26235d5ddd9bae978d9a042ad63d114b99f3047", + "chksum_sha256": "bfa5d38b676c52b6303d08a88a4ee86a430b36fa79822eb251fda92224af9933", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_static_routes/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8531868c12a65d880e751f8fccfdaa091562f8dea89c8641240946ec028f92af", + "chksum_sha256": "66c6475bd4eee3d410773a8ce7967c9418330832db74cd3837caf59c1453f33a", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_static_routes/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a5ef27e2b0c24a04e52b871c4f660a2f2edd8420a4a5380c73da9382587bce8e", + "chksum_sha256": "db7a3b1bfe392ac0508c34d9ac8f2703cfce6e40b18084df4174f2bbbaab5180", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_static_routes/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1afed1f11693d4fcfcef6f5404d1bc14d62fdeb26bd3f43cc05ba1efd41762d6", + "chksum_sha256": "ac2005d102db20c86a18c7297c9ee1cb0519c00d8194975027d3185ff1ba003a", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1436fef47919b4c0c8222a78e37a533092410c106fe53f907116827d2149ffd4", + "name": "tests/integration/targets/junos_logging_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f766f5ed3acca8c6b754d2bcdbbbbf459b75391dc12a6b63cef730358a39409f", + "name": "tests/integration/targets/junos_logging_global/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/purged.yaml", + "name": "tests/integration/targets/junos_logging_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d916c1d36d28898d24fa09e1345f52f171b57e994cbcb06de96c726ddd2facab", + "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_logging_global/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92cf627fa61c4f4a4678156b3fa873264b1ced99c1c6bd2a93d8ccfa853aeb92", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c8f1d098cd85cfb790fdbc6961dc6c5cf0a55d186f7e3e54e600f3a7224dbf88", + "name": "tests/integration/targets/junos_logging_global/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/tests/netconf/rtt.yml", + "name": "tests/integration/targets/junos_logging_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4dc545f32755c069f4533ed048730ad70050aea906982c181d43ec77cc4b7b1e", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/vars", + "name": "tests/integration/targets/junos_logging_global/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_bgp_global/vars/main.yaml", + "name": "tests/integration/targets/junos_logging_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44dcf57a9cfb22b8acca5e187b29c59295ecb3ee1986be8ebb66b75933dc5ee3", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_command", + "name": "tests/integration/targets/junos_logging_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/defaults", + "name": "tests/integration/targets/junos_logging_global/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/defaults/main.yaml", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_command/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "1fc1a701e79dff995f7c73be2b536802657e37759b52c424d86cc6a08049956a", "format": 1 }, { - "name": "tests/integration/targets/junos_command/meta/main.yml", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "f562cdcf46e8914526dc833ea9dcd7853ce5f0889c860b253bf29a76d63e13ff", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_logging_global/tests/netconf/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9af6e95d468868608a8ee2ac5a736e05d0912abf883f3004305aab0b12a64dbf", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tasks/cli.yaml", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8bf3d8209693784fd02f0c9f430519c3ee9d27d90c5aef93fb06efe0541cf77f", + "chksum_sha256": "f3e5d31b5c95eeddd8db1b98e3d236b1845b57b8ec6325e7c72b58ed4f74b9d7", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "612a33b6753baaf0154b2a0690b744deae539de705558c4a56d317ccd2d8b854", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/backups", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/tasks/netconf_json.yaml", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/backups/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "71516dbb78c53604148415ad5626c34ee3030c82728bc9f3c2a032851648e339", + "chksum_sha256": "a199720ea8a377c143b7563572b60e1e5bb12f929695b914785cd436ccb89d4a", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tasks/netconf_text.yaml", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "274fd845f69a5501756cb86bbd41088eec2a0cbc69250153f587976727e1011f", + "chksum_sha256": "2ced1cd369a59d60b9f2de48c0d3e6284d71a54821f3f6501106a2ad7e0e90f0", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tasks/netconf_xml.yaml", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c722c2d0b825c5c6e8d522640ecdc98b26084946a59de82cf0bfff07dac1fa7", + "chksum_sha256": "326e85d7a20fce18191830f205ede5126f8e739e284bd9fbcc1dee1d311c9c34", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_logging_global/tests/netconf/rtt.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "34d2a9f5f1d5f2a942c6e963a493f71ba5404cf0f39bb6a6a549b956babf55c3", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/cli", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/cli/cli_commmand.yaml", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5266fa0edc63b6ca83fbb7074bc8203ca4eefe09492e44bba140eb2cd6d1aefc", + "chksum_sha256": "610b72bbd1a2b52abebcad6740fe0e311eba9491d685a7132db0eb9ba367a205", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_json", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_logging_global/tests/netconf/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0d1cf41f011d78e8e4acb637d236eeec13f124dfa19a4426b91fcc5d2b938f5e", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_json/bad_operator.yaml", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5fd958f25016372728899436773ee543050da327e509f090ba88ca4636c0d2d", + "chksum_sha256": "bd4bc36fdaf73489ea9f8b6ccadb9eed4444fb5a042f87b57c45d03ebfbccd2d", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_json/contains.yaml", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "71a375a286b4f440c50a9c6c82c36045ca7ecec6a29816386559b792ff4d066b", + "chksum_sha256": "076fe1eb3dc4643aeee762bbd4d9539893b4dd224deac32f9593f6ac93c2eddd", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_json/equal.yaml", + "name": "tests/integration/targets/junos_logging_global/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44f8cdd9fde78c55275e2339c33bb12dddfce2ca2d5f0f2e0bd59907beae8a3a", + "chksum_sha256": "2d7f42fa466e6c747d83a19b6f437295ad2d3a3aae822c5b87218ad38a939acc", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_json/greaterthan.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aa183d6e2138a9213b5e2522db349163d9da96ad375fc17c9ad11bede8c7fce4", + "name": "tests/integration/targets/junos_logging_global/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_json/greaterthanorequal.yaml", + "name": "tests/integration/targets/junos_logging_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ba61dab7a4acd479e39df8039d99d80242f5d6cdd90f85b2e1ab9208fb17743", + "chksum_sha256": "65beace3c6c7aeebd3ba5c0fce3d511c1a854c59b787d7c484a3b47f765ef66d", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_json/lessthan.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "46f3b7e08ea7e59fd6d233657dd93eda7ef4730f8057ea0c8f2e53d278f83ad9", + "name": "tests/integration/targets/junos_ospf_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_json/lessthanorequal.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "991acfafd4fb6ca665f33465692ad8b12d01bd6526b5e9f2b1880a3ce3cfbcbe", + "name": "tests/integration/targets/junos_ospf_interfaces/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_json/notequal.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a3de2915a9be18c95ba8bd1053dddc9868f43ce7f85cb15518f449b26974ed9", + "chksum_sha256": "5faeba3c6c57e0ac48c1b15188434458eec4ad6520920210114d67e2a65aac57", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_json/output.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ff281d2c6a00c5a8966af7c146013d28215b96e501ce445d99e12fc204aa313", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_text", + "name": "tests/integration/targets/junos_ospf_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_text/bad_operator.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fb8f6aad9b9a23d02a7883bb702bad2ba5a4eb2124412357c186da75147632f7", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_text/contains.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "36ca486cc8cdded6e343c1f81b51d4a9749a855ad43c890bfa0784357eaa7d4d", + "name": "tests/integration/targets/junos_ospf_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_text/invalid.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3e93db6f55ae56facb4e9d839a4c3cf32e2501c0eb96e5e31f1683bef67e21f", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_text/no_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4656bc0775ed558f79cb2db08097be7a3fe6fe119b69bf0e59236165a4bd51e2", + "name": "tests/integration/targets/junos_ospf_interfaces/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_text/output.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c13ff65171668de3ae66eae7ab6f2cd1319440eb88a02330b5efc8ba41bcddeb", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_text/timeout.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a9576208f842de6adbae341991bc32516d8ceef291d14bcdf2221d7769c87ca", + "chksum_sha256": "847f8aba20c0bcaf2784b4838a5a5e7ecdf1b796e81534aff0bffc84da5ef14e", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d638bd2d4b3aeb159dae307c1deadf8ceb7d1f750beda0f59aca094c4873924b", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/bad_operator.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "66a36b766c06b4b70d12b42a83fb66740b0a82288cc9b71604daee36a158cd96", + "chksum_sha256": "97384a43d4050a4fcd2e7d6bc07b458ac7123a090a225decd7a4563d9aba491a", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/contains.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged_update.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ba38e35af89df460e59da5f49f3e326f4e59b095b08827478bd6529b428b0e8", + "chksum_sha256": "92c2ca40e73c8e2fa9addbe09f6a07743a7434233b046d5780684bf21e2b3f5a", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/equal.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "27cf24898299e694a84f6984d1e94b61c859b565868803d4891450e79dabc09d", + "chksum_sha256": "a4c7314dd0a394dfe668ed11858428df5b2c29b573ce7cda69c3328a266a1419", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/greaterthan.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "22850c6970343bb05f625f546b1f92a6deb8756549234f11056405077e43f953", + "chksum_sha256": "89d7df715e2566cbb2623be0dae95dd17499fa0bb60ac266e692b327441e1fca", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/greaterthanorequal.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8ddb628e09f70a9736acacf44235afb4e35b18d56bc8efbbe6d0f8b200ce03a5", + "chksum_sha256": "24468c08de78c5021ba88a104de643df2e29ef6057a7071a9f5df57fe6de9898", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/invalid.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/fixtures/parse_ospf_router_id.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f5fd5a9a1d9d45b784d9acec4738d7ba8476d9b19f6226796b9e819b5cecba88", + "chksum_sha256": "a0460d8722acf4ccb04f2421ea81f55174132aec6b6f5aff0f3164a8378d7462", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/lessthan.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7ad0acba5ab78a50a2fc805c83c96b6e2a9c482c9981f66692654df0c7a4305d", + "chksum_sha256": "f60999fbccc0af10279afdf8e6f48d83e58d392e0b7c2559e11747d039b261ee", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/lessthanorequal.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "77b6fdaa510c5b4d2829d3cba8a685b1b510f1f4dbf9b2adadec7ac5f1de247d", + "chksum_sha256": "d2a0a5e986d21f4febfc5d62bf68182848d907d8e4fa5dce4ac84ce608ddb5ce", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/notequal.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a2cefdd4e1e0b7deb888b200e6dfbe0dc1c1e2288b3e9266ac0443b6f6aac09", + "chksum_sha256": "fe59572095f90670742714b59e6e2927e7586519f509e1f47ab61cff0f77c894", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/output.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9ebd6b3029527e75e68e93f4708ed227221406982dd3908fb0ceb37bf96142f", + "chksum_sha256": "b8723cfc473ca01e7be478bd87f74df0b993c1fd59a23faa21f75e08e63b7299", "format": 1 }, { - "name": "tests/integration/targets/junos_command/tests/netconf_xml/timeout.yaml", + "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cdca9d6014c8b58811033e57029c08288af780cb15957fde32b40019868cebd9", + "chksum_sha256": "768de6cab48ef7da91e3a62d9c1b220e11ebec0a87edc69c0f5434d518ced61c", "format": 1 }, { - "name": "tests/integration/targets/junos_config", + "name": "tests/integration/targets/junos_facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/defaults", + "name": "tests/integration/targets/junos_facts/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/defaults/main.yaml", + "name": "tests/integration/targets/junos_facts/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", "format": 1 }, { - "name": "tests/integration/targets/junos_config/meta", + "name": "tests/integration/targets/junos_facts/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "be90db2aa35bf39ec0fc02a996e8d5e40b83b0917dab8aa2339a1d22ed5cad0e", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_facts/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/meta/main.yml", + "name": "tests/integration/targets/junos_facts/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_config/tasks", + "name": "tests/integration/targets/junos_facts/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tasks/cli_config.yaml", + "name": "tests/integration/targets/junos_facts/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "898ac0c25c8756735dba3ece1d68f589e01c1351ddae4f4d045873fe65c9f064", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/junos_config/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fba795a2f2f8c6b449e057d2c14be5aa9ea9e94bfc19aa628dddb26130e7911f", + "name": "tests/integration/targets/junos_facts/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tasks/netconf.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "be90db2aa35bf39ec0fc02a996e8d5e40b83b0917dab8aa2339a1d22ed5cad0e", + "name": "tests/integration/targets/junos_facts/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tasks/redirection.yaml", + "name": "tests/integration/targets/junos_facts/tests/netconf/facts.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ad0b8240c32ca4026d133368bad1ebf83b87689e99b34f6db00d4226c366f2e", + "chksum_sha256": "9c4d7fd03f0a950b13ed257fd81af007019fa35f6b8e088b83ebc8195b5ef0a3", "format": 1 }, { - "name": "tests/integration/targets/junos_config/templates", + "name": "tests/integration/targets/junos_rpc", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/templates/basic", + "name": "tests/integration/targets/junos_rpc/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/templates/basic/config.j2", + "name": "tests/integration/targets/junos_rpc/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f984e7d5384674518e1bd994d53139ad2a3d56cc8d823c078c00a1e65c94cda", + "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", "format": 1 }, { - "name": "tests/integration/targets/junos_config/templates/basic/config.set", + "name": "tests/integration/targets/junos_rpc/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e55d8c57f22746493a68395134a4c07e361bf83a7f5b21a95905ef7ee40cbda1", + "chksum_sha256": "1946facde8e5b023ffc633db3d6261d8de690c1fb2101af1214f8d4d55ce1f56", "format": 1 }, { - "name": "tests/integration/targets/junos_config/templates/basic/config.xml", + "name": "tests/integration/targets/junos_rpc/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_rpc/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d6334450d173802f80b0c55ea41fa8e094afeabfe76c14d54c036b8d48a9eee", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests", + "name": "tests/integration/targets/junos_rpc/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/cli_config", + "name": "tests/integration/targets/junos_rpc/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_rpc/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/cli_config/cli_backup.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1cfa70ec55d445903975a372167840d1f175641604c847f8741acf28ee8e378b", + "name": "tests/integration/targets/junos_rpc/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/cli_config/cli_basic.yaml", + "name": "tests/integration/targets/junos_rpc/tests/netconf/rpc.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eba80fbddca0baa46c7439ee80946990cd91e55da912b9571ae6559288b6d15c", + "chksum_sha256": "6dcf22486f6872bfad638a22b0bf0c9d3bd8014426f56b5336a1a54cde62a6a0", "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/cli_config/cli_replace.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b1a748515ac3e7ede4724251b01372dcc5b4a9676a417aaf744fdbfb1e597994", + "name": "tests/integration/targets/junos_ospfv2", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/netconf", + "name": "tests/integration/targets/junos_ospfv2/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/netconf/backup.yaml", + "name": "tests/integration/targets/junos_ospfv2/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc13146756466fb242b2846c094c66512bef612525d04b84ec383e2ae76b58f8", + "chksum_sha256": "5faeba3c6c57e0ac48c1b15188434458eec4ad6520920210114d67e2a65aac57", "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/netconf/bad_action.yaml", + "name": "tests/integration/targets/junos_ospfv2/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a8a59bf146aaa8353f85ecae0b178f16409782aa376f42ff22c7707ec351b6c", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/netconf/invalid.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "76594cda9479fe42fcc322308d028e273d33d8f54f4be9ae59d47fbf2b64c611", + "name": "tests/integration/targets/junos_ospfv2/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/netconf/multiple.yaml", + "name": "tests/integration/targets/junos_ospfv2/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a101529e9f690d667375cbc2c1af3c165b84bbf028a57e32e656335bc6fd8b48", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/netconf/single.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8a764839bae6345fe760c187666e16afa24c8ef0e1d2394976516abe824c041a", + "name": "tests/integration/targets/junos_ospfv2/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/netconf/src_basic.yaml", + "name": "tests/integration/targets/junos_ospfv2/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "48b84bd53ef11400ce442cba8558667a982dd8e84497e3e23ffa7791b1c342dd", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/netconf/src_invalid.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c2d40a306a95cbd2ec37c729bba258c2a7acdded7eac74eb3fc18f5c78e83e60", + "name": "tests/integration/targets/junos_ospfv2/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/redirection", + "name": "tests/integration/targets/junos_ospfv2/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_config/tests/redirection/shortname.yaml", + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6b1f7d41f6377e7456ac464eef4de5bc86a5dbef030d57b77b361c73471b91b3", + "chksum_sha256": "17825b257c688893464a0094b309efd2e078fb8157f8477f5328a1ab6c5fbd97", "format": 1 }, { - "name": "tests/integration/targets/junos_facts", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c5a6cb013c7e5d0568303d0ee58bcd26dcd3448f3b06dd34c9d599c34bd3f36a", "format": 1 }, { - "name": "tests/integration/targets/junos_facts/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9a4b7443f9567b41727a5d357e31f0495ef92d9b8d3d928f8567f8b2894f921a", "format": 1 }, { - "name": "tests/integration/targets/junos_facts/defaults/main.yaml", + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "973f85046cde058aa91399f01aafb04c042c52c802538639c1770c55cecf0c8d", "format": 1 }, { - "name": "tests/integration/targets/junos_facts/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f078d10b5fe4ca0a4caa44b968c5a9aead11e220f22ffe5d00845d02c8f881da", "format": 1 }, { - "name": "tests/integration/targets/junos_facts/meta/main.yml", + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "82ecb5453d4c76f99446240c9c1fa2d7f5fc45304d559325184bce03ba0f64a6", "format": 1 }, { - "name": "tests/integration/targets/junos_facts/tasks", + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cc2334e44cc814227f9f8c50446f4e005363b94642fd37455b8f902dde65ab24", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_facts/tasks/main.yaml", + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", + "chksum_sha256": "a690256e56d841b0e69010998ef63e9816121db1ac2a994f8800578e206c9fa2", "format": 1 }, { - "name": "tests/integration/targets/junos_facts/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be90db2aa35bf39ec0fc02a996e8d5e40b83b0917dab8aa2339a1d22ed5cad0e", + "chksum_sha256": "f769f1442dfcb26eeefc4a20808e773eb1d5db8b0ce698e5af0f0d43405f7e28", "format": 1 }, { - "name": "tests/integration/targets/junos_facts/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/parsed.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "24110506dce6a1acf10ba1ee0f7991f69fb454c9c464058dc6660085aeaac754", "format": 1 }, { - "name": "tests/integration/targets/junos_facts/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/_reset_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "aa0d973fb111eb73bcbe02116f395956d21c2fd6a4c8a64cba5b53feb156a3dd", "format": 1 }, { - "name": "tests/integration/targets/junos_facts/tests/netconf/facts.yaml", + "name": "tests/integration/targets/junos_ospfv2/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ccf548f74d968ceebd93631b10ab1b4b7dd976ac5d7586b42d2fa1633db79af4", + "chksum_sha256": "7442893271080723d682b5872b45909e0dd7832305a9ff3c5c9ba5edba5cd857", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname", + "name": "tests/integration/targets/junos_command", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/defaults", + "name": "tests/integration/targets/junos_command/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/defaults/main.yaml", + "name": "tests/integration/targets/junos_command/tasks/netconf_json.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_hostname/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "71516dbb78c53604148415ad5626c34ee3030c82728bc9f3c2a032851648e339", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/meta/main.yml", + "name": "tests/integration/targets/junos_command/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "612a33b6753baaf0154b2a0690b744deae539de705558c4a56d317ccd2d8b854", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_command/tasks/netconf_xml.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4c722c2d0b825c5c6e8d522640ecdc98b26084946a59de82cf0bfff07dac1fa7", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tasks/main.yaml", + "name": "tests/integration/targets/junos_command/tasks/netconf_text.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", + "chksum_sha256": "274fd845f69a5501756cb86bbd41088eec2a0cbc69250153f587976727e1011f", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_command/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "8bf3d8209693784fd02f0c9f430519c3ee9d27d90c5aef93fb06efe0541cf77f", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests", + "name": "tests/integration/targets/junos_command/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_command/meta/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_command/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_command/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd14466157e5abe475ca8fa042823fb202ce9d4d5e507b377f1548a1cc73940d", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/_initial_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "230a242d02636957af38a09910128f5e3471a27c0895f4d02bf3b2c36c9720f5", + "name": "tests/integration/targets/junos_command/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/_reset_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3fcfdba1e96a9f37052d4971ca05776b4d52d6f4584cba773052ed6ea56ed3c7", + "name": "tests/integration/targets/junos_command/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_command/tests/cli/cli_commmand.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26dabccea514448a4e4fcd5bb157ebf911ad78dcd005dad730fda67f7dee8f25", + "chksum_sha256": "5266fa0edc63b6ca83fbb7074bc8203ca4eefe09492e44bba140eb2cd6d1aefc", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "600c48f1df3955d538656c3432aa43ea2adba586c577263aa7daa1f152e8446b", + "name": "tests/integration/targets/junos_command/tests/netconf_json", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_json/lessthan.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b282d6a72bc4377ddfa8b8ca7739d097ab1d89a467ea7b1ba95f5380f512643", + "chksum_sha256": "46f3b7e08ea7e59fd6d233657dd93eda7ef4730f8057ea0c8f2e53d278f83ad9", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_json/greaterthanorequal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a6786741777d0dec4e711097912d1414d2635aaec65fa4f66792e2e392665ae", + "chksum_sha256": "0ba61dab7a4acd479e39df8039d99d80242f5d6cdd90f85b2e1ab9208fb17743", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_json/contains.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1bdcb4db12340c90eb076083e5e5e7ae60b3121b779016b7727822bd6fe55ce1", + "chksum_sha256": "71a375a286b4f440c50a9c6c82c36045ca7ecec6a29816386559b792ff4d066b", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_json/equal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d45b2a71361361156bc82215ae1acecdf8e0c6c198564221878e7aab20b9b29", + "chksum_sha256": "44f8cdd9fde78c55275e2339c33bb12dddfce2ca2d5f0f2e0bd59907beae8a3a", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_json/bad_operator.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d34df5a47ff725e6c4b985f52025390db4b2f74d6d6b75cb8999cf2efc26eb3", + "chksum_sha256": "b5fd958f25016372728899436773ee543050da327e509f090ba88ca4636c0d2d", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_json/lessthanorequal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "015ba9b5d86865fa7e149a48af30c36323b5225c6142346863587bdd1c2d7b63", + "chksum_sha256": "991acfafd4fb6ca665f33465692ad8b12d01bd6526b5e9f2b1880a3ce3cfbcbe", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/tests/netconf/rtt.yml", + "name": "tests/integration/targets/junos_command/tests/netconf_json/output.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "41871f4904f54fa80565b1e0d226e8f6c67ec826ad5aea279eb6961d82ac2996", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_hostname/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "1ff281d2c6a00c5a8966af7c146013d28215b96e501ce445d99e12fc204aa313", "format": 1 }, { - "name": "tests/integration/targets/junos_hostname/vars/main.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_json/greaterthan.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b98e791e7ad4cbfbd8ce30cb3022b270230ab2e45847c04fe77d5d1dd5bf7b12", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/junos_interfaces/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "aa183d6e2138a9213b5e2522db349163d9da96ad375fc17c9ad11bede8c7fce4", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_json/notequal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "6a3de2915a9be18c95ba8bd1053dddc9868f43ce7f85cb15518f449b26974ed9", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/meta", + "name": "tests/integration/targets/junos_command/tests/netconf_text", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/meta/main.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_text/invalid.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "e3e93db6f55ae56facb4e9d839a4c3cf32e2501c0eb96e5e31f1683bef67e21f", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_command/tests/netconf_text/contains.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "36ca486cc8cdded6e343c1f81b51d4a9749a855ad43c890bfa0784357eaa7d4d", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_text/bad_operator.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", + "chksum_sha256": "fb8f6aad9b9a23d02a7883bb702bad2ba5a4eb2124412357c186da75147632f7", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_text/output.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "c13ff65171668de3ae66eae7ab6f2cd1319440eb88a02330b5efc8ba41bcddeb", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_command/tests/netconf_text/timeout.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2a9576208f842de6adbae341991bc32516d8ceef291d14bcdf2221d7769c87ca", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_command/tests/netconf_text/no_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4656bc0775ed558f79cb2db08097be7a3fe6fe119b69bf0e59236165a4bd51e2", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_command/tests/netconf_xml", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e0dcf81fecfea2443b931ea13585c90f86328910b71285add801bda7265c3636", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/lessthan.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14b9c10e6800af658dc1f3fcdfb13e168951de360be87867f15411b43076c223", + "chksum_sha256": "7ad0acba5ab78a50a2fc805c83c96b6e2a9c482c9981f66692654df0c7a4305d", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/_remove_config.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/invalid.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d9825909d170137f0169fb716d817d0aa41e949db1eea8d373f6723f57cba116", + "chksum_sha256": "f5fd5a9a1d9d45b784d9acec4738d7ba8476d9b19f6226796b9e819b5cecba88", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/greaterthanorequal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "334b7920b11f296e7600cd48baeb18ce5cd288717543853461bc91e022041222", + "chksum_sha256": "8ddb628e09f70a9736acacf44235afb4e35b18d56bc8efbbe6d0f8b200ce03a5", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/contains.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a059ca58a6906d2b6480ac0296a83f7ca7d61af0aaeb5d9ed342299c366bb32", + "chksum_sha256": "9ba38e35af89df460e59da5f49f3e326f4e59b095b08827478bd6529b428b0e8", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/groups.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/equal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e318dceb6f81af373d743ffa5272a28422a7e5f33f5a958cf2860c839901390", + "chksum_sha256": "27cf24898299e694a84f6984d1e94b61c859b565868803d4891450e79dabc09d", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/bad_operator.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "87e878b3a8097ffcca1fae275d5a643d86456c96f63ea9bafb5b7b7355afd10b", + "chksum_sha256": "66a36b766c06b4b70d12b42a83fb66740b0a82288cc9b71604daee36a158cd96", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/lessthanorequal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b797d8884e4e0e9f57cf2f46dab1c67e719f789660ad967bc72bea59275fd0d5", + "chksum_sha256": "77b6fdaa510c5b4d2829d3cba8a685b1b510f1f4dbf9b2adadec7ac5f1de247d", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/output.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6dc3ad5aaaa7664632e3d9aba1a81f29423fff040085b78ca0eed5aa60530b58", + "chksum_sha256": "c9ebd6b3029527e75e68e93f4708ed227221406982dd3908fb0ceb37bf96142f", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/greaterthan.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "946ea9c7cd0591094478d09954df4674cdb81886322b4a4be85819a67917d9b6", + "chksum_sha256": "22850c6970343bb05f625f546b1f92a6deb8756549234f11056405077e43f953", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/timeout.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52957ef7daf70f40bf6a4741a42da5e7f82bbc6b67b830899667b62b6a5a4f85", + "chksum_sha256": "cdca9d6014c8b58811033e57029c08288af780cb15957fde32b40019868cebd9", "format": 1 }, { - "name": "tests/integration/targets/junos_interfaces/tests/netconf/rtt.yaml", + "name": "tests/integration/targets/junos_command/tests/netconf_xml/notequal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95dc5232d1a73bc72ffb5dfab754c6d9971a24cf422e9001dc60ddaec899da07", + "chksum_sha256": "0a2cefdd4e1e0b7deb888b200e6dfbe0dc1c1e2288b3e9266ac0443b6f6aac09", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces", + "name": "tests/integration/targets/junos_lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/defaults", + "name": "tests/integration/targets/junos_lacp_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "da661e43be2450ce0a58c2d1bd37b7670c88e33fba0da29cd410c6f23e189b9f", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/meta", + "name": "tests/integration/targets/junos_lacp_interfaces/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_lacp_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/meta/main.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "efb275d54a7c21fd007e1d1c8b10b65d148a9121af425a4e7fbd60abacd23fc8", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tasks", + "name": "tests/integration/targets/junos_lacp_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_l2_interfaces/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45637e547498ff1d584b43d64cdb545283055dd51e7cbce649a1b344a5566cb0", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests", + "name": "tests/integration/targets/junos_lacp_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cd919eaf78c0d5b2990f067ae16f1402f344ace9925c189958f7067884345d09", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0dcf81fecfea2443b931ea13585c90f86328910b71285add801bda7265c3636", + "chksum_sha256": "d1add93a918bfef3d70aef062c3aae94a47d1b3716a74b89358e966283c08ccf", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/_base_config.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c17ed7273352e5ae3a01737054081b89f5daeef876d1c5fac0db5b2ecb8950e6", + "chksum_sha256": "1215e9671a99210505a60d59ba0f148a8ec0fa67d333f82d3ec0fb7d8d872dcb", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/_remove_config.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/_base_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c23e7e54ae73e30c371d44aa84bd5e4e3e095b1b373afc52d4e7ec6f3bc258b", + "chksum_sha256": "7782df6c4b604977c0c7f281092fbf10cbc91720007ef8e67dba22003450d145", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bac996860ada5e921e149d186b95533139cbfaac0cac8424783899b2179a8d24", + "chksum_sha256": "498586a44d564daabbc39fc40cb7d8a4469f5882406a8ab46dc065412556c947", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af33aa7223a48cab620bb31a6d1dfad55ea995fee1851de39926776775837cbc", + "chksum_sha256": "35ee38eac192f14a4904e7a0255a696112a831ecdf2a5c24f74a097f4500252c", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/overridden.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13024460e326b04fd6fe6a7825e9a46b8bc6ce9819ba6cf5a846a341d58a3507", + "chksum_sha256": "0d53434db13dd5c50d5a7cd84e3403b617f4c551b6aa7f51e298d0385de30133", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0504fd9e84a3385d66e31ef84a8c7ffb8ddb525819593d5248a77947d9c78044", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b373b23c8385fde76eadd95edcfb45d2fe71f8b3e3b9b6554b311163d949ffc3", + "chksum_sha256": "77112338be093f7a03c25fd8749011e7ad7de2066542b44c09f291405a76da00", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "19eb1cb8c4c2f40071b029eb62a7312e6b3273c7948a438b1b35ce780c32475b", + "chksum_sha256": "9e01243ac9906911f80837437215ddaaa5f2a25167bf042048a974f0b209500f", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6edd256af87afe61f3caa203f0d37301b58de62653a331fa388dde0a69eb6cc3", + "chksum_sha256": "5507c1e13968eac2c90f6662a91ba3420c9af38e538372e9a64534cdd5952c61", "format": 1 }, { - "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/rtt.yml", + "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d95c8c41a7ec3cdb5eb46fff8ec32c430859a64dc95d630230f3ce6dc34e3c65", + "chksum_sha256": "1ada2eacba8eb22edcabe39600c85b3d8089699d0664aeb08fe7ff322e910fca", "format": 1 }, { - "name": "tests/integration/targets/junos_l3_interfaces", + "name": "tests/integration/targets/junos_vrf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l3_interfaces/defaults", + "name": "tests/integration/targets/junos_vrf/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l3_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/junos_vrf/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", "format": 1 }, { - "name": "tests/integration/targets/junos_l3_interfaces/meta", + "name": "tests/integration/targets/junos_vrf/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1946facde8e5b023ffc633db3d6261d8de690c1fb2101af1214f8d4d55ce1f56", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_vrf/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l3_interfaces/meta/main.yaml", + "name": "tests/integration/targets/junos_vrf/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_l3_interfaces/tasks", + "name": "tests/integration/targets/junos_vrf/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l3_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_l3_interfaces/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_vrf/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07a74b16a6595dcb47295bc6af7c5d3d58f1e5920c9c3d9ff99d2c0b644897a7", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_l3_interfaces/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf", + "name": "tests/integration/targets/junos_vrf/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_vrf/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e1de14afc1f1c7fdfd493a909abb1a7750c41e523202b5f1b28b5e72697dc392", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf/junos_l3_interfaces.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "13a0fdaad9f2c794ac4176d880607e72107f644d0cb12e7751bb487b4ad59f55", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aae73401a3875d3e300c6cb1feaecfb90dda0960cb8a5e90ea0315542f199dc9", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_vrf/tests/netconf/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "800b45c331345dde3e54b0b067ff922982049dfa5f38a66d4dd3d84aba033581", + "chksum_sha256": "d1b0fe67be093ce85673fdb2a29646edd61025742313f8ee12467201c6301d1c", "format": 1 }, { @@ -4537,17 +4642,24 @@ "format": 1 }, { - "name": "tests/integration/targets/junos_lacp/defaults", + "name": "tests/integration/targets/junos_lacp/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lacp/defaults/main.yaml", + "name": "tests/integration/targets/junos_lacp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "695c1124ba12e4fd97496b87a4a4cad41e513d56e0b9f2996da640f035ed2085", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_lacp/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { @@ -4565,24 +4677,17 @@ "format": 1 }, { - "name": "tests/integration/targets/junos_lacp/tasks", + "name": "tests/integration/targets/junos_lacp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lacp/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "695c1124ba12e4fd97496b87a4a4cad41e513d56e0b9f2996da640f035ed2085", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_lacp/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_lacp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { @@ -4600,20 +4705,6 @@ "format": 1 }, { - "name": "tests/integration/targets/junos_lacp/tests/netconf/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/junos_lacp/tests/netconf/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7206ec05e4a9670e83cc407c9ca5649eb57f01d30d3b176dece84accdeca69ae", - "format": 1 - }, - { "name": "tests/integration/targets/junos_lacp/tests/netconf/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", @@ -4635,24 +4726,31 @@ "format": 1 }, { - "name": "tests/integration/targets/junos_lacp/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_lacp/tests/netconf/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "18a72bc9fa7af695681d1c5ad174431624a61b1d23646111622aa4badecabe67", + "chksum_sha256": "5b50a1144438b3f499d9e8f6538323ef0af12994ccf5d3611ff695e8ef2a7022", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_lacp/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ac7dea1e62e62fc54d2af0f219eaee161e74dc246d6ef5639a8f254443390a6", + "chksum_sha256": "18a72bc9fa7af695681d1c5ad174431624a61b1d23646111622aa4badecabe67", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_lacp/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_lacp/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b4e206e6b128a783f03fdf33dc3e968fb730fb59f6f082db89a1be5f4c28a8ff", + "chksum_sha256": "7206ec05e4a9670e83cc407c9ca5649eb57f01d30d3b176dece84accdeca69ae", "format": 1 }, { @@ -4663,1634 +4761,1788 @@ "format": 1 }, { - "name": "tests/integration/targets/junos_lacp/tests/netconf/rtt.yaml", + "name": "tests/integration/targets/junos_lacp/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5b50a1144438b3f499d9e8f6538323ef0af12994ccf5d3611ff695e8ef2a7022", + "chksum_sha256": "9ac7dea1e62e62fc54d2af0f219eaee161e74dc246d6ef5639a8f254443390a6", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces", + "name": "tests/integration/targets/junos_lacp/tests/netconf/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b4e206e6b128a783f03fdf33dc3e968fb730fb59f6f082db89a1be5f4c28a8ff", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/defaults", + "name": "tests/integration/targets/junos_bgp_address_family/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_lacp_interfaces/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/meta/main.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efb275d54a7c21fd007e1d1c8b10b65d148a9121af425a4e7fbd60abacd23fc8", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tasks", + "name": "tests/integration/targets/junos_bgp_address_family/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "da661e43be2450ce0a58c2d1bd37b7670c88e33fba0da29cd410c6f23e189b9f", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_lacp_interfaces/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests", + "name": "tests/integration/targets/junos_bgp_address_family/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf", + "name": "tests/integration/targets/junos_bgp_address_family/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_bgp_address_family/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "77112338be093f7a03c25fd8749011e7ad7de2066542b44c09f291405a76da00", + "chksum_sha256": "70bf59e2250beff1ce0bc112e7a8c542b7f6182bf0e9f47fbbda45da3ec06de5", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/_base_config.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7782df6c4b604977c0c7f281092fbf10cbc91720007ef8e67dba22003450d145", + "chksum_sha256": "fdea66c1005edd57bc77c5e95dc0d4db878e448ecaa2d766efdcc45f09fe8533", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/_remove_config.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cd919eaf78c0d5b2990f067ae16f1402f344ace9925c189958f7067884345d09", + "chksum_sha256": "f03982c9fa9c148a3bce04ab16a14073564d6b96fb0dc9d80a4280d44bae67e6", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1add93a918bfef3d70aef062c3aae94a47d1b3716a74b89358e966283c08ccf", + "chksum_sha256": "c59df9ef3ff42cfd3bdd470925c0a3e1f8fdbead2dc6e2d201e46a2aa827d64a", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1215e9671a99210505a60d59ba0f148a8ec0fa67d333f82d3ec0fb7d8d872dcb", + "chksum_sha256": "5608ca62c28b3bf93f65e7eaad6130bb108162210583bf0538a6dbf212b8e2ff", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "35ee38eac192f14a4904e7a0255a696112a831ecdf2a5c24f74a097f4500252c", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/overridden.yml", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0d53434db13dd5c50d5a7cd84e3403b617f4c551b6aa7f51e298d0385de30133", + "chksum_sha256": "21f4f80f8a632bb05e189b506b3dd4ee2c52927fd9cb4023d5b1d2a307044983", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5507c1e13968eac2c90f6662a91ba3420c9af38e538372e9a64534cdd5952c61", + "chksum_sha256": "4cea93e925dd207634a39d7db89f41b3226361b684cd4e73907528b76b2de868", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ada2eacba8eb22edcabe39600c85b3d8089699d0664aeb08fe7ff322e910fca", + "chksum_sha256": "38b76b973ae8e0c22e1c02fbd879d4924a8ddce3c54671353956c5aaacf59531", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e01243ac9906911f80837437215ddaaa5f2a25167bf042048a974f0b209500f", + "chksum_sha256": "0017fbbaa15229f0e59e1565894ec6236a9b6c38a0791822e83a0176d133559e", "format": 1 }, { - "name": "tests/integration/targets/junos_lacp_interfaces/tests/netconf/rtt.yaml", + "name": "tests/integration/targets/junos_bgp_address_family/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "498586a44d564daabbc39fc40cb7d8a4469f5882406a8ab46dc065412556c947", + "chksum_sha256": "cb5ceb89fa49b884da83854ef39519368b95df370bf98871b10d6ea9403f55df", "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces", + "name": "tests/integration/targets/junos_system", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/defaults", + "name": "tests/integration/targets/junos_system/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/junos_system/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/meta", + "name": "tests/integration/targets/junos_system/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3006a95309847acbfecc0a9c6cbeaad782956e7814679010a9bbb7782cab4aa8", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_system/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/meta/main.yaml", + "name": "tests/integration/targets/junos_system/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tasks", + "name": "tests/integration/targets/junos_system/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_lag_interfaces/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_system/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_lag_interfaces/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf", + "name": "tests/integration/targets/junos_system/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_system/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_system/tests/netconf/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6362681d72bb84236c6063867d677a9c6802996a268047dc081ae4dead5345fe", + "chksum_sha256": "737db05e1953f8db6a60807a390b2ade773dcf92b8f21d3aed93f10aa6a1c87b", "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/_base_config.yaml", + "name": "tests/integration/targets/junos_system/aliases", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "422b30525a97a151a644f4ef3e0905f48f6baba2382b53fda2d0670bcdc47c68", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1cb41bf2ef192855fa29d8ba1fc78380ae705498ba17b54345b003c15d8eea30", + "name": "tests/integration/targets/junos_snmp_server", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "72efe0c964cbc8425cf2dbcd901ae1e93d5702142a0b3b7531686f4dbe896dd8", + "name": "tests/integration/targets/junos_snmp_server/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_snmp_server/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bcf0f0aeee50ed4d9bafe71db01017fc7f05ef1d8451bd48cc8bb7ca7d309593", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_snmp_server/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0354f48c3517eea3b0643f7999f6d127c124f7990be5cd6be92bba3c87aec71b", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d15eee369dbf92bd5b263170f19ecceccb1d29295f86f1ec0afa1b2542f8a43a", + "name": "tests/integration/targets/junos_snmp_server/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_snmp_server/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6a63f014861a62d22b7969689f1dc3966a4282b8c95a165b1cc3d35018ae88e", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "657037ae627b0e9265dbf5ed20bcd7e0e10f3987c751a443e5708a47df928de9", + "name": "tests/integration/targets/junos_snmp_server/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_snmp_server/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cac34b639c32c5c27f26cda22f7d9aa11b4cbcaf8a8c2694622e3890526ebcc7", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global", + "name": "tests/integration/targets/junos_snmp_server/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/defaults", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/defaults/main.yaml", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_lldp_global/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "92e2829fa0cb2f63063f5aace2377e2921f9321dd1e5268674a62dbd0d77a224", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/meta/main.yml", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "6efb62f03f36c571dd83d43b78e7497edde18648430fea073e5ec4dd671b8201", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ec3e130e584202fe4c138bb15e0474f12f42d852180097e5723932d797e8842f", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tasks/main.yaml", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", + "chksum_sha256": "9f4be4ad7d63358e8190d2fc6fcda1669d77b59e1e0d232e15ad338974d07c3a", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "a7ff7fb0534ca8b333f965e51ff3fd5ebe47e18dc407ccf019e1d2e7f3e568d4", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/backups", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/backups/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a199720ea8a377c143b7563572b60e1e5bb12f929695b914785cd436ccb89d4a", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dc9d8ff5760507223877b37bb65c6083f14304740ead70129662304267d8324c", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dd2bd6bf5e3586c5121310490846758eeb302931b2b2a3fbce16e9405c849f67", + "chksum_sha256": "8cadf8b80457c955f22c1080c709652ac57874cd2ed8e5093086625d3e4fbc60", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf/_remove_config.yaml", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7678b66e0721e989ac00cb0fabc55742be8954ee0fdbfaa4345c3068b4e1d7d4", + "chksum_sha256": "dba186fea16ddf43f92a52e12447abb35f8768fa4ca4d4e197f40f4d67bbc6d9", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1bfa3e00a1ee208f76f178cb14758673ee897155206b335bfb79b822bda7d809", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "393999adbc8a8f05dd04f2e3c0dc2feb45e7fe5ed05233f1a65e437783ffb359", + "chksum_sha256": "75d7ce74bc974651f36b79e38f6d82fa194348da859316ba96f7c8b46a462746", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6e3d2216d5e7a2065ca2473544679e8ccd268d9768d4e3be595dff8bd82e714", + "chksum_sha256": "5b04a13a51a36b464330f8caf574c37db0e8da91c0149bfd246aa070c948c7b2", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bfc0302be4a1562069cc24b33ad2f6032ec18c776cae96f47ac225a17caf4168", + "chksum_sha256": "05b7d590b4a4a01cef48c86b56ba744e3b28e8fe1aab50a1ebcad40ac25fb79c", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "302ab946a8bae94f9da38cc06e80451b1fbd778790ab2de216e309847f7b5425", + "chksum_sha256": "f3c990bf8e5f662b59917bc792379f273fffe3268231ab5690d20283782ea3d5", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_snmp_server/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "40f118df09dc8e09b05a021a4968bca80384856a19502d0474c386c64fd0ca1b", + "chksum_sha256": "a10f5a5ea42df2a8c92afedc170caa9fb6b9bf04a3799e93f854f3a7faca8392", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_global/tests/netconf/rtt.yaml", + "name": "tests/integration/targets/junos_snmp_server/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_snmp_server/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b7516dd5a2f70ddc84f498cb4119e6f66d077a0e5dac0360a943531a2b6bbcd4", + "chksum_sha256": "e3b78ff73f201d89a20ea8a6caee05dc207b6b68dc4c42e2790474775f17a28f", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces", + "name": "tests/integration/targets/junos_security_zones", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/defaults", + "name": "tests/integration/targets/junos_security_zones/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/junos_security_zones/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/meta", + "name": "tests/integration/targets/junos_security_zones/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_security_zones/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/meta/main.yaml", + "name": "tests/integration/targets/junos_security_zones/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tasks", + "name": "tests/integration/targets/junos_security_zones/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_lldp_interfaces/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_security_zones/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests", + "name": "tests/integration/targets/junos_security_zones/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf", + "name": "tests/integration/targets/junos_security_zones/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_security_zones/tests/netconf/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ae8d6e41134cd6292e031bde0a1e41390a0877b7a8aa2609b0611d21f8c92dd7", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6eb35350f92a0ae0527f94e27daa5506279c181db31be1a332a9f74cee66ad8f", + "chksum_sha256": "8ac531e0078326b78ed040e715ced5c69a57266a7ba0f8e878b5a132b3268a16", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/_remove_config.yaml", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "064e57d0ef1ecabdf04ecbd83a445a257815c58717956e79fe358948b5189c8a", + "chksum_sha256": "29fb25dec128037263716c898deb0aaeb5aca9b98b069a7a4c3d0b941417f57b", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8da092b479832d981e18a403a247a5f398be51d3618bf9bcd6adecd6ade6603", + "chksum_sha256": "97f5b6df3ba9463c6bffe711cf66d9f7ee8efeb65f153e4b47de128dc68e6a48", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a91c48dc2e5c6fd960e2bac1fe2f708ef5ec53b73b5c58d4e2953479486935cc", + "chksum_sha256": "f7a29442765f7f3776e1b43980900eb7f2ebe5d17904e3fc36c601c41b7d28fb", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "724ff8d403f1e5199c4782652db55274115ea8129b74ef73a7c231ef394e2bb4", + "chksum_sha256": "8d829c21014964be69edddccf727e72f3e20c6e97019bede439270ad4f5edcc5", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b55ace9a6f0bfc64c2403a0dc378ad9ea4992f51795dd7e9580c244247ea688c", + "chksum_sha256": "8610a0f4f2176625cff923f881740f3834ae1e11eb3707ee655a9a5bc28f66ec", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb72a9194b46ee33eabbf1e9b67bb9e982f0033cb3ce2b1b19370db793c395e7", + "chksum_sha256": "0b0a4ab8f0b94769621bd3585b2338252acb7bb110fba2eaa0033eee5c669d48", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_security_zones/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "512148e07b86f3dfcda14c159b99af790e502329decce28fdad7dc87996133e7", + "chksum_sha256": "72a5d8773cfbf73e55a219ddd23fc03d5698af853088f5087cb9d3916a7e2743", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1f0d41c05af0cfa16b80b0d129425353225ba19ea33206cf6dc4510f6efbffa1", + "chksum_sha256": "76407a5ce6e30b3b6bf16b5ae782d4fd7a0b92ae49ef92a7b77c755bbcbe2969", "format": 1 }, { - "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/rtt.yaml", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3789650f6288e17a8c1999331b043bf9403a7a5afeac87b647348f1ba9a3c05a", + "chksum_sha256": "8a7c2f670c6bc9435a0bd6eca8d81fdbd924cf4140c149c11a1b5623709d7dea", "format": 1 }, { - "name": "tests/integration/targets/junos_logging", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_security_zones/tests/netconf/_reset_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8d240f3c782eef1fd316414e92647db865fd6d8f416f4444f9c9fc13626703f3", "format": 1 }, { - "name": "tests/integration/targets/junos_logging/defaults", + "name": "tests/integration/targets/junos_security_zones/tests/netconf/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8cc511b2192c8ed212733f44b30dc4ed907865504d862ef3701150be9366cc41", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_security_zones/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging/defaults/main.yaml", + "name": "tests/integration/targets/junos_security_zones/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "af63125e0d6fbca0f844ff71b1f26210c452ad70cd094931bf0a177e1ddd73f7", "format": 1 }, { - "name": "tests/integration/targets/junos_logging/meta", + "name": "tests/integration/targets/junos_hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging/meta/main.yml", + "name": "tests/integration/targets/junos_hostname/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_hostname/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_logging/tasks", + "name": "tests/integration/targets/junos_hostname/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_hostname/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging/tasks/main.yaml", + "name": "tests/integration/targets/junos_hostname/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92cbd43574bbfdaa210122a3fbe9a20faf7284bd562f1f6a350853884fa4eac2", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_logging/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_hostname/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_hostname/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3006a95309847acbfecc0a9c6cbeaad782956e7814679010a9bbb7782cab4aa8", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_logging/tests", + "name": "tests/integration/targets/junos_hostname/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging/tests/netconf", + "name": "tests/integration/targets/junos_hostname/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging/tests/netconf/basic.yaml", + "name": "tests/integration/targets/junos_hostname/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2b732c602d35d29c0c823ec48c9358fc33a537bf82295e1d0548884eb046872", + "chksum_sha256": "26dabccea514448a4e4fcd5bb157ebf911ad78dcd005dad730fda67f7dee8f25", "format": 1 }, { - "name": "tests/integration/targets/junos_logging/aliases", + "name": "tests/integration/targets/junos_hostname/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "3b282d6a72bc4377ddfa8b8ca7739d097ab1d89a467ea7b1ba95f5380f512643", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_hostname/tests/netconf/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "600c48f1df3955d538656c3432aa43ea2adba586c577263aa7daa1f152e8446b", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_hostname/tests/netconf/_initial_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "230a242d02636957af38a09910128f5e3471a27c0895f4d02bf3b2c36c9720f5", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/defaults/main.yaml", + "name": "tests/integration/targets/junos_hostname/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "78b87fda1deca6d9a6d8decd0fb14b255db836008cc0325dbc179870e1640a65", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_hostname/tests/netconf/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1bdcb4db12340c90eb076083e5e5e7ae60b3121b779016b7727822bd6fe55ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/meta/main.yml", + "name": "tests/integration/targets/junos_hostname/tests/netconf/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "41871f4904f54fa80565b1e0d226e8f6c67ec826ad5aea279eb6961d82ac2996", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tasks", + "name": "tests/integration/targets/junos_hostname/tests/netconf/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tasks/main.yaml", + "name": "tests/integration/targets/junos_hostname/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", + "chksum_sha256": "bd14466157e5abe475ca8fa042823fb202ce9d4d5e507b377f1548a1cc73940d", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_hostname/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "015ba9b5d86865fa7e149a48af30c36323b5225c6142346863587bdd1c2d7b63", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests", + "name": "tests/integration/targets/junos_hostname/tests/netconf/parsed.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9d45b2a71361361156bc82215ae1acecdf8e0c6c198564221878e7aab20b9b29", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_hostname/tests/netconf/_reset_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3fcfdba1e96a9f37052d4971ca05776b4d52d6f4584cba773052ed6ea56ed3c7", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_hostname/tests/netconf/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7d34df5a47ff725e6c4b985f52025390db4b2f74d6d6b75cb8999cf2efc26eb3", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_hostname/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf", + "name": "tests/integration/targets/junos_hostname/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b98e791e7ad4cbfbd8ce30cb3022b270230ab2e45847c04fe77d5d1dd5bf7b12", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/backups", + "name": "tests/integration/targets/junos_l2_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/backups/empty_config.yaml", + "name": "tests/integration/targets/junos_l2_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a199720ea8a377c143b7563572b60e1e5bb12f929695b914785cd436ccb89d4a", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_l2_interfaces/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "45637e547498ff1d584b43d64cdb545283055dd51e7cbce649a1b344a5566cb0", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_l2_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_l2_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "610b72bbd1a2b52abebcad6740fe0e311eba9491d685a7132db0eb9ba367a205", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/_initial_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "12cda808c7c61b882ac8c904760bdd5534da6294075df31648d06fa0c8fecff6", + "name": "tests/integration/targets/junos_l2_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_l2_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "076fe1eb3dc4643aeee762bbd4d9539893b4dd224deac32f9593f6ac93c2eddd", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1fc1a701e79dff995f7c73be2b536802657e37759b52c424d86cc6a08049956a", + "name": "tests/integration/targets/junos_l2_interfaces/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9af6e95d468868608a8ee2ac5a736e05d0912abf883f3004305aab0b12a64dbf", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f562cdcf46e8914526dc833ea9dcd7853ce5f0889c860b253bf29a76d63e13ff", + "chksum_sha256": "2c23e7e54ae73e30c371d44aa84bd5e4e3e095b1b373afc52d4e7ec6f3bc258b", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "170ca16e5216caf169bd6602aabc1319572828d2d6f0f9a78975db620a4ff431", + "chksum_sha256": "bac996860ada5e921e149d186b95533139cbfaac0cac8424783899b2179a8d24", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b774eaf6bc14d1b3d1c8e424f05ccc23421dbf9cfd303a724bf81e561038c315", + "chksum_sha256": "af33aa7223a48cab620bb31a6d1dfad55ea995fee1851de39926776775837cbc", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/_base_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd4bc36fdaf73489ea9f8b6ccadb9eed4444fb5a042f87b57c45d03ebfbccd2d", + "chksum_sha256": "c17ed7273352e5ae3a01737054081b89f5daeef876d1c5fac0db5b2ecb8950e6", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d7f42fa466e6c747d83a19b6f437295ad2d3a3aae822c5b87218ad38a939acc", + "chksum_sha256": "13024460e326b04fd6fe6a7825e9a46b8bc6ce9819ba6cf5a846a341d58a3507", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2187873596ecffd2754c3dd56c9dbf9145f4215b131f5a62e3e9f7cfce5ed0d", + "chksum_sha256": "0504fd9e84a3385d66e31ef84a8c7ffb8ddb525819593d5248a77947d9c78044", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/tests/netconf/rtt.yml", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "34d2a9f5f1d5f2a942c6e963a493f71ba5404cf0f39bb6a6a549b956babf55c3", + "chksum_sha256": "adda5cc44c1ab6f4eb7fa0a2f3812d0836957bdfc6e7eddfb8932d17a1895eb2", "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/vars", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_logging_global/vars/main.yaml", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65beace3c6c7aeebd3ba5c0fce3d511c1a854c59b787d7c484a3b47f765ef66d", + "chksum_sha256": "e0dcf81fecfea2443b931ea13585c90f86328910b71285add801bda7265c3636", "format": 1 }, { - "name": "tests/integration/targets/junos_netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6edd256af87afe61f3caa203f0d37301b58de62653a331fa388dde0a69eb6cc3", "format": 1 }, { - "name": "tests/integration/targets/junos_netconf/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/parsed.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b373b23c8385fde76eadd95edcfb45d2fe71f8b3e3b9b6554b311163d949ffc3", "format": 1 }, { - "name": "tests/integration/targets/junos_netconf/defaults/main.yaml", + "name": "tests/integration/targets/junos_l2_interfaces/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "19eb1cb8c4c2f40071b029eb62a7312e6b3273c7948a438b1b35ce780c32475b", "format": 1 }, { - "name": "tests/integration/targets/junos_netconf/tasks", + "name": "tests/integration/targets/junos_banner", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_netconf/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "826c7e9a0626f7e2c4e1f2565a026941489817111fe1c3013140672889e409ea", + "name": "tests/integration/targets/junos_banner/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_netconf/tasks/main.yaml", + "name": "tests/integration/targets/junos_banner/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aa875f9fe92d7067f287fc4dbfb86e48469088e4f4d18ce116da50ca903ee0f7", + "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", "format": 1 }, { - "name": "tests/integration/targets/junos_netconf/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_banner/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "be90db2aa35bf39ec0fc02a996e8d5e40b83b0917dab8aa2339a1d22ed5cad0e", "format": 1 }, { - "name": "tests/integration/targets/junos_netconf/tests/cli", + "name": "tests/integration/targets/junos_banner/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_netconf/tests/cli/changeport.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d37e2286b38da041dcf797bf980112ec1d49cde6a186eef9d07888ca60ef40af", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_netconf/tests/cli/netconf.yaml", + "name": "tests/integration/targets/junos_banner/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3823390234f45e755bc5d70615e1cc5e3d30ee5443be234fb4e8c9e788cee4b6", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_netconf/tests/utils", + "name": "tests/integration/targets/junos_banner/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_netconf/tests/utils/junos_command.yaml", + "name": "tests/integration/targets/junos_banner/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe2b80159d9e159e367a89bbfaee14d1ad2a2a09c3ab0968e5891ab6adb9cee3", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global", + "name": "tests/integration/targets/junos_banner/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/defaults", + "name": "tests/integration/targets/junos_banner/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/defaults/main.yaml", + "name": "tests/integration/targets/junos_banner/tests/netconf/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "560415c9318dc6aa3e10ceb7116f47daafb741ca68c148a09bc1acc3aa169354", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/meta", + "name": "tests/integration/targets/junos_security_policies_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_ntp_global/tasks", + "name": "tests/integration/targets/junos_security_policies_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tasks/main.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests", + "name": "tests/integration/targets/junos_security_policies_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_security_policies_global/meta/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/backups", + "name": "tests/integration/targets/junos_security_policies_global/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/backups/empty_config.yaml", + "name": "tests/integration/targets/junos_security_policies_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a199720ea8a377c143b7563572b60e1e5bb12f929695b914785cd436ccb89d4a", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_security_policies_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd14466157e5abe475ca8fa042823fb202ce9d4d5e507b377f1548a1cc73940d", + "chksum_sha256": "bb80b4f48c8de02108eb0fea7d780d64e59eb7326362ac192eb782391cf7181c", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3fb4edf0d87ba05c576f10dcbfcdb8cc1d4e4c37651de98e3b3fc3221c412d45", + "chksum_sha256": "16c2a1698ee0dbd5edc0c239f8986c08f8159528fe3b7990ed5873f60d003f8b", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/_populate_config.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2828dbbe09b33274e4134fc6961743ca83b7e62889d178f07b71c0d2d6284cc8", + "chksum_sha256": "fafc2da62cf712d0117ae338fe363b040f5c7dd4969ce287dfa3318f6ac4423f", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d00d9a386f386ddb75b879de83a5ee69411386a8dedac51dccc0088290a5ee1", + "chksum_sha256": "ae8128c308746259f25d9bc41d97ee15b5c7405e674891d8ae599fc3e2328879", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5bea4a301b248089d1242c4856ce936920e927adf0f90bc87340ffdde692bb7c", + "chksum_sha256": "a589f47fc49da28c7f380734b48db2f682c1b2e432d77ab227d2f6f30682ff39", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "753d4fd7d42e83bbb8a3ce79a2461ae524c7562be29ba448400ce1cd7444d7c5", + "chksum_sha256": "935fcb42d47d2cfe6ea5cd8aba20e8a83461f822ae45de8e2881c3393ae32139", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f0c1fb4c8cf84929a522258d16fae2b12ae43b0bc2583c53ff1947c696b7219e", + "chksum_sha256": "251482cdb55715eb323cb0c10b29292c8e73ba800d0fed4f4c192a846b25877a", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "975b126a83dbb17c8f44473dbd38e62151333512a4ba18f62ae8ace184ce71f8", + "chksum_sha256": "b7bb3d4ac43a4b6c4920580458fde90451217805f6fbe2e8d26507559f083519", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21a671ba35fb3060c48b12edaa89de54c282caadff60c5baf4a12b6c6ab6b145", + "chksum_sha256": "4a98bcfdfa2c2acbd0f2bc2061457d855d4e18bfccd39d517aa1fb43fc2ade15", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "06eb47716788d5240ba254ecefdb3f1d409876044e37eff9497968ffb2242777", + "chksum_sha256": "4f42d4ccdf3bbc1b40266f59bb4bf7bb5d17522b9f9024108c8e04b749cd0589", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0223fd85a1c3f6e28b13edac1b465269dcdc5ea469049fad798edec9ff6f75cb", + "chksum_sha256": "4905f9e7594d4b1d98f41721a16a66a810b538fbc0d6a85c0ce71f352c251523", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21f9d3da7c99ab8b67fdd60a75f983a76d59d114723418d9431b00233be195fc", + "chksum_sha256": "95666f3ea0c587421ce2de87a8d6335bbfff236e8b4d1a9835a0278f186867cd", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/tests/netconf/rtt.yml", + "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63461bfdd8462a284de6db8f29fbc55a93ba7ba225ed31cd7dc87bc114239db7", + "chksum_sha256": "ac117f64285489963952a8c90bcf8a5eb34e6f73f47814300043e78bee1efce9", "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/vars", + "name": "tests/integration/targets/junos_security_policies_global/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ntp_global/vars/main.yaml", + "name": "tests/integration/targets/junos_security_policies_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8942f742ca8c7e92dfe7a19192742bcd5ece3d60e64ecdd055e6744f59e1b3b1", + "chksum_sha256": "cc9a26cdbd03e746f437f26100d24dbea854043ca957d63a3238e8da719c29e9", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf", + "name": "tests/integration/targets/junos_netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/defaults", + "name": "tests/integration/targets/junos_netconf/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/defaults/main.yaml", + "name": "tests/integration/targets/junos_netconf/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "aa875f9fe92d7067f287fc4dbfb86e48469088e4f4d18ce116da50ca903ee0f7", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/meta", + "name": "tests/integration/targets/junos_netconf/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "826c7e9a0626f7e2c4e1f2565a026941489817111fe1c3013140672889e409ea", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_netconf/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/meta/main.yaml", + "name": "tests/integration/targets/junos_netconf/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tasks", + "name": "tests/integration/targets/junos_netconf/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tasks/main.yaml", + "name": "tests/integration/targets/junos_netconf/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_netconf/tests/cli/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5faeba3c6c57e0ac48c1b15188434458eec4ad6520920210114d67e2a65aac57", + "chksum_sha256": "3823390234f45e755bc5d70615e1cc5e3d30ee5443be234fb4e8c9e788cee4b6", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_netconf/tests/cli/changeport.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "d37e2286b38da041dcf797bf980112ec1d49cde6a186eef9d07888ca60ef40af", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests", + "name": "tests/integration/targets/junos_netconf/tests/utils", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf", + "name": "tests/integration/targets/junos_netconf/tests/utils/junos_command.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fe2b80159d9e159e367a89bbfaee14d1ad2a2a09c3ab0968e5891ab6adb9cee3", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_security_policies", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_security_policies/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_security_policies/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a690256e56d841b0e69010998ef63e9816121db1ac2a994f8800578e206c9fa2", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_security_policies/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "973f85046cde058aa91399f01aafb04c042c52c802538639c1770c55cecf0c8d", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/_reset_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aa0d973fb111eb73bcbe02116f395956d21c2fd6a4c8a64cba5b53feb156a3dd", + "name": "tests/integration/targets/junos_security_policies/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_security_policies/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "17825b257c688893464a0094b309efd2e078fb8157f8477f5328a1ab6c5fbd97", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_security_policies/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_security_policies/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a4b7443f9567b41727a5d357e31f0495ef92d9b8d3d928f8567f8b2894f921a", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_security_policies/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_security_policies/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c5a6cb013c7e5d0568303d0ee58bcd26dcd3448f3b06dd34c9d599c34bd3f36a", + "chksum_sha256": "39cd5df63bd55f3ddf784e611627b54029596c80fc25189fd00499a82de7d3ba", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f0c5958714797a0a90ab738cb9c822733c1b23338d9657aa7f7b250a273bb89", + "chksum_sha256": "e26d1bb898a8b80c5a4409fa8347b4686d22d68995c386b88b1acea58052b98b", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c4243f67a6a27d75d42897343982848aea33c3a67b5fc372a64548ac8bfec25", + "chksum_sha256": "3cb5abb3511da59cc841edf9b3120380ace3f373903d49a8df724d34940aefce", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24110506dce6a1acf10ba1ee0f7991f69fb454c9c464058dc6660085aeaac754", + "chksum_sha256": "63cb2d305f3b2b8375cfe110ccc027d605eb168ba862699a3b3a544b8d87296f", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7442893271080723d682b5872b45909e0dd7832305a9ff3c5c9ba5edba5cd857", + "chksum_sha256": "a7b3535922126dceed45fd5938029e83cd6184a6d2385e22e5ebc6bf5cd41f75", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f769f1442dfcb26eeefc4a20808e773eb1d5db8b0ce698e5af0f0d43405f7e28", + "chksum_sha256": "76982131c022074bcf992f16061721685fa1136d527793ff18ff6470b0c1fb93", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf/tests/netconf/rtt.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "addaadb571f24cf8cf215e1252d2dac54e03862af004ddda5019ff0dc6f070f4", + "chksum_sha256": "5ce4ffcc6b729daec418088a402e4625e7ac2b65af7260c79adb6f11c8ed2ec5", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_security_policies/tests/netconf/_populate_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f28b62ace16039ab3d1a158658ad0eee2a5aa1b60759cf1f61e6f2b1257254df", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/defaults", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/fixtures/parsed.xml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_ospf_interfaces/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "c675cea3f99d7bc6a5a9416e9ba20e6745aa981968cab970fb378e6ee37ce5aa", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/meta/main.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "ecf1c66717a28d45cca3e598f7209834214cabedd726c3471116221f2e11f638", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_security_policies/tests/netconf/parsed.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "016771aea305560bd8dd151b5c956fc76a005fb72cb9499de0c379c194d1a704", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5faeba3c6c57e0ac48c1b15188434458eec4ad6520920210114d67e2a65aac57", + "chksum_sha256": "904c7f297382fe7a7994ee762c1baa400d1350c1b305e6969014d151de1d1a9a", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_security_policies/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "e14fe35238c7a90cbc7404ad0f44596371a2eebaaa1a212d64f6e34cbffb21eb", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests", + "name": "tests/integration/targets/junos_security_policies/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf", + "name": "tests/integration/targets/junos_security_policies/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4deaf51b2f16c99c7681725fb943e6aebbd1148a35a640be0ab3eb755840ba3a", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_smoke", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_smoke/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/fixtures/parse_ospf_router_id.cfg", + "name": "tests/integration/targets/junos_smoke/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a0460d8722acf4ccb04f2421ea81f55174132aec6b6f5aff0f3164a8378d7462", + "chksum_sha256": "1ed6aab865c43fdcad8b6871d5800e82ca311f8f3823e56bca3d06b9bf7ba94c", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_smoke/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f60999fbccc0af10279afdf8e6f48d83e58d392e0b7c2559e11747d039b261ee", + "chksum_sha256": "7bfbffe2f1c1a542332fdcbc89d4a3854ff15259e01a6bafef86a83fae35e3c2", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_smoke/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4c7314dd0a394dfe668ed11858428df5b2c29b573ce7cda69c3328a266a1419", + "chksum_sha256": "fc09c85d3d223c19ea63a3fae43eb5638f3b5e6651609cf4d321208639122cbd", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/_reset_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b8723cfc473ca01e7be478bd87f74df0b993c1fd59a23faa21f75e08e63b7299", + "name": "tests/integration/targets/junos_smoke/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_smoke/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de5f1443c7616db4dc52bbec8741ee0251317018819ae2a340b7939a8219adb0", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "97384a43d4050a4fcd2e7d6bc07b458ac7123a090a225decd7a4563d9aba491a", + "name": "tests/integration/targets/junos_smoke/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_smoke/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d638bd2d4b3aeb159dae307c1deadf8ceb7d1f750beda0f59aca094c4873924b", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "52527d7886d4675281e86c77925d6aaa110bf62bca71b937de97c397c0822a8a", + "name": "tests/integration/targets/junos_smoke/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged_update.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3785b0fbd86ae8bb65dd6215ba45c0ab5aa23e787f8140548dd8bca2b6393be4", + "name": "tests/integration/targets/junos_smoke/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_smoke/tests/cli/caching.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "227739b28e5f190ba9c899829331c66f374cc1a42dbac7109306c9a6f085a6ae", + "chksum_sha256": "63d3d2578702ff3bc51e29d16b7b4e63ed28edbddda8627ba2fd65b29f07315e", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_smoke/tests/cli/reboot.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe59572095f90670742714b59e6e2927e7586519f509e1f47ab61cff0f77c894", + "chksum_sha256": "54db130663eff024eb5b3fb6ac61d79ffae1ded3c341a1062579ae1c63be4e11", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_smoke/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_smoke/tests/netconf/common_utils.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "768de6cab48ef7da91e3a62d9c1b220e11ebec0a87edc69c0f5434d518ced61c", + "chksum_sha256": "86f1d6186d9036ff2cda9b18be64f04264be2052476b9585b46f1cc18393299a", "format": 1 }, { - "name": "tests/integration/targets/junos_ospf_interfaces/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_smoke/tests/netconf/module_utils_junos.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2a0a5e986d21f4febfc5d62bf68182848d907d8e4fa5dce4ac84ce608ddb5ce", + "chksum_sha256": "591380db5e46372be7cdbe63d11848b9cef38dd8e57da857aad9739025919641", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3", + "name": "tests/integration/targets/junos_ntp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/defaults", + "name": "tests/integration/targets/junos_ntp_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/defaults/main.yaml", + "name": "tests/integration/targets/junos_ntp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/meta", + "name": "tests/integration/targets/junos_ntp_global/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ntp_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/meta/main.yaml", + "name": "tests/integration/targets/junos_ntp_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tasks", + "name": "tests/integration/targets/junos_ntp_global/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5faeba3c6c57e0ac48c1b15188434458eec4ad6520920210114d67e2a65aac57", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_ospfv3/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_ntp_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests", + "name": "tests/integration/targets/junos_ntp_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5bea4a301b248089d1242c4856ce936920e927adf0f90bc87340ffdde692bb7c", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f0c1fb4c8cf84929a522258d16fae2b12ae43b0bc2583c53ff1947c696b7219e", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "753d4fd7d42e83bbb8a3ce79a2461ae524c7562be29ba448400ce1cd7444d7c5", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/_initial_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "125dc25abbdefc1a5141d4e4b804774970b0edb77b4e7cb39f9aed1539671b17", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/backups", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/backups/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1d77e679fba773847ebcac2d2eb479c251beeaacdac14521dd6666ac539891a4", + "chksum_sha256": "a199720ea8a377c143b7563572b60e1e5bb12f929695b914785cd436ccb89d4a", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a504de6423c5338c5335fc35422b5bb0040370537b529008a363efe601aa16b6", + "chksum_sha256": "875d944f33fb23214309cf2e6f915a7574d52b491c889bfea7d3fa3acb28f3b9", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb7b37b391d8a5a6d9e12999a355740df8805aa64ce189981b4ef4c658735470", + "chksum_sha256": "4f3e6613c568b4ed1e5d6f2e4a547cc0e2a256962622b8c8696f09e2e87a4889", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f230ac640c63bd54e9ab49277ca63565f2940fc4a4ed7acab1d9c26708ff4235", + "chksum_sha256": "63461bfdd8462a284de6db8f29fbc55a93ba7ba225ed31cd7dc87bc114239db7", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a885760267113e8d1431f886e7343dd134a8eb31f591c9ece9a30a9febfb31c5", + "chksum_sha256": "2828dbbe09b33274e4134fc6961743ca83b7e62889d178f07b71c0d2d6284cc8", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "58a66e5c8859a7cfe9748fc0e87cbc5d065357a9b8f240661b2f734eb288099f", + "chksum_sha256": "bd14466157e5abe475ca8fa042823fb202ce9d4d5e507b377f1548a1cc73940d", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "33ed7617fcf97230e00bdf76ef13f5cd6eb29beb5fb7ab7ca9f14e9165d1518d", + "chksum_sha256": "f9be81e5e1dc8e6df7b47cb2acea87f32e01204b2c1b499aee7b9d4044c4d01f", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8421f06b4b592969a37a8fb0d739edeeb7d5b096030096ae8541a9d929787082", + "chksum_sha256": "06eb47716788d5240ba254ecefdb3f1d409876044e37eff9497968ffb2242777", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "19b7947b6ab8252d1d76661d734eefeded6aaeb7d951aeffa0addce670aa4bd3", + "chksum_sha256": "9d00d9a386f386ddb75b879de83a5ee69411386a8dedac51dccc0088290a5ee1", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_ntp_global/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ce5f704892852d0f18b14dc4ee89678a1d4341668e44751b7b2d6b7db5d04e14", + "chksum_sha256": "0223fd85a1c3f6e28b13edac1b465269dcdc5ea469049fad798edec9ff6f75cb", "format": 1 }, { - "name": "tests/integration/targets/junos_ospfv3/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_ntp_global/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_ntp_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "350496d406c1e1d55725df0ecb5fd30400275042de4daf41ae92cc70e380e334", + "chksum_sha256": "8942f742ca8c7e92dfe7a19192742bcd5ece3d60e64ecdd055e6744f59e1b3b1", "format": 1 }, { @@ -6301,17 +6553,24 @@ "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/defaults", + "name": "tests/integration/targets/junos_prefix_lists/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/defaults/main.yaml", + "name": "tests/integration/targets/junos_prefix_lists/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_prefix_lists/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { @@ -6329,24 +6588,17 @@ "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tasks", + "name": "tests/integration/targets/junos_prefix_lists/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_prefix_lists/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_prefix_lists/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { @@ -6364,59 +6616,59 @@ "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "260cdebe02248e2994669ddf2406dacf75f35d794c7aa1bb632fc206aab4969e", "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2cfa6379cd3bac4d9b364334ad4812ee7ec214ed4f113fa5d5c9689148261e4d", + "chksum_sha256": "bd88ebcdf63e03aa530319364228caa369894890daf117f259ba892e53973a60", "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb71d58e72f9a854cbcf5528dadd4abf4134f8284c86e1f46fdc2e3b4e43a79d", + "chksum_sha256": "99934f97a7d51eb4294206cbe75acc56c55895b6decbe884b613055e2179fc54", "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "393c341b9639e1082b65a78ec9007debaa99043a331958f9ac38bf30864ad506", + "chksum_sha256": "0f4c5c4214a07fe02adb0b614cae5b5ba8cef25129ace9de71e03ef43edd0dcf", "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "99934f97a7d51eb4294206cbe75acc56c55895b6decbe884b613055e2179fc54", + "chksum_sha256": "4f3451d6348f96082b66fc6d5b7c0fd7ab01d3e77e22f69090177fda3fdf7bc5", "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bd88ebcdf63e03aa530319364228caa369894890daf117f259ba892e53973a60", + "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "175077b38642507bcb0fe8a0cce63c6b5f2e7b8e9c185eeb747b98f0546b9d37", + "chksum_sha256": "2cfa6379cd3bac4d9b364334ad4812ee7ec214ed4f113fa5d5c9689148261e4d", "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f97cad7810c99bfa482f101e936ba4389d3bd9129eae57143d23f439f5e0d9bb", + "chksum_sha256": "9118328badb1bdd0fb390c0cd680051da3810adb7417c8d74a9560ae25f6daf7", "format": 1 }, { @@ -6427,2642 +6679,2481 @@ "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "841e97d3c2594908704ec3742b171855dcc0bd3e66f350ac38335219c99a9a43", + "chksum_sha256": "eb71d58e72f9a854cbcf5528dadd4abf4134f8284c86e1f46fdc2e3b4e43a79d", "format": 1 }, { - "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_prefix_lists/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "667998f4b1350ca6640abe63f610d9096ff4a78c9461d3d6598c50e5dc769785", + "chksum_sha256": "841e97d3c2594908704ec3742b171855dcc0bd3e66f350ac38335219c99a9a43", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances", + "name": "tests/integration/targets/junos_lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/defaults", + "name": "tests/integration/targets/junos_lldp_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/defaults/main.yaml", + "name": "tests/integration/targets/junos_lldp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/meta", + "name": "tests/integration/targets/junos_lldp_global/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_lldp_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/meta/main.yml", + "name": "tests/integration/targets/junos_lldp_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tasks", + "name": "tests/integration/targets/junos_lldp_global/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_instances/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_lldp_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_instances/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf", + "name": "tests/integration/targets/junos_lldp_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "049f649304e92c13c8f5e6d00b7deeac4bd7dd1c3b14321407a46ee15863d544", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "618fd41de1d2ba07af50f84e9e7e25ffee98121299422765bbd6a4cd43ea615c", + "chksum_sha256": "7678b66e0721e989ac00cb0fabc55742be8954ee0fdbfaa4345c3068b4e1d7d4", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8ba46007f3628fbe6ee4591f4ad6b279f6f19ac5d91248ff4cec5fee3a3be931", + "chksum_sha256": "1bfa3e00a1ee208f76f178cb14758673ee897155206b335bfb79b822bda7d809", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e724834f528933abedbb0ceb83d4e65e20bcaa1453eb22dfabb872427f960964", + "chksum_sha256": "d7b7d07fb1999244297de1f6b4586ae441d7ac97d9cfa8ce29e8efc98d4f4b4c", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a8d2acc111a2980a9bc317bac9d08c68230f8b44cef3ffb56b516c0a71596bc1", + "chksum_sha256": "b7516dd5a2f70ddc84f498cb4119e6f66d077a0e5dac0360a943531a2b6bbcd4", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4245f6c677e2c7abffa6c8be158ba432af572304448f2f7baa8156e107938c86", + "chksum_sha256": "f6e3d2216d5e7a2065ca2473544679e8ccd268d9768d4e3be595dff8bd82e714", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4ae5a233b2e4972a3a4ed019fd8619d163892922368c0f2dec0ada420929f304", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "403ccecc00bc5b7ba2e4c3be16558d2e9323e853e9c835ebca9d76ad233dd1bb", + "chksum_sha256": "dd2bd6bf5e3586c5121310490846758eeb302931b2b2a3fbce16e9405c849f67", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "707b5d9aa8e023d22f7ea57a1cce39fe05c6079f01c69dfe0d6312b76363cdba", + "chksum_sha256": "40f118df09dc8e09b05a021a4968bca80384856a19502d0474c386c64fd0ca1b", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "41158fc9c9c801d84be463ea99b38536554851c6a8a4427a333793b78b542869", + "chksum_sha256": "bfc0302be4a1562069cc24b33ad2f6032ec18c776cae96f47ac225a17caf4168", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_instances/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_lldp_global/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a37f33c984b33eea5ef51e2f3f82c8897bf8558e95eee9be12bd95a56db7578", + "chksum_sha256": "302ab946a8bae94f9da38cc06e80451b1fbd778790ab2de216e309847f7b5425", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options", + "name": "tests/integration/targets/junos_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/defaults", + "name": "tests/integration/targets/junos_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/defaults/main.yaml", + "name": "tests/integration/targets/junos_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/meta", + "name": "tests/integration/targets/junos_interfaces/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/meta/main.yml", + "name": "tests/integration/targets/junos_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tasks", + "name": "tests/integration/targets/junos_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_options/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_options/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tests/netconf", + "name": "tests/integration/targets/junos_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_interfaces/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aa310db3ac9c122a80e375582988ad5f7e3b27ee1ef2984a09e92db2826f4d1f", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aeec20572a2337eb6920f08c1e683df42a2d77157b627cc3c702ae785f381d6e", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/_reset_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "feacd22c689c662edd50c17c3daf13276734c2aea867a7af21dbeb13a309a6e2", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5afe0b0a0f964bbb1eacf828241f9d6880d4155e07dddebbc06cbab4fe1177be", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4f23a00ee4e2d649c926dfe56c6e601bf176145dafc88442dda848aa492d8797", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "88a72f59e38cc345203ff46ac64edf209142a669b6775a94ed60408dbce4fae3", + "chksum_sha256": "d9825909d170137f0169fb716d817d0aa41e949db1eea8d373f6723f57cba116", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "416b951f35c406018f3c693c2e1725e5eb83e2e9f85a416961f405e741ebedbc", + "chksum_sha256": "334b7920b11f296e7600cd48baeb18ce5cd288717543853461bc91e022041222", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4ab9fa3aa8db4f497ee6622493786c344d615850a118729d21540c674380972c", + "chksum_sha256": "6a059ca58a6906d2b6480ac0296a83f7ca7d61af0aaeb5d9ed342299c366bb32", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/groups.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "140f095f42a3049193e72a297b0f320e4f3c9d9bf630fd555033db3cb796e90b", + "chksum_sha256": "9e318dceb6f81af373d743ffa5272a28422a7e5f33f5a958cf2860c839901390", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f691b0994a2a45d0cb98c0f6fe2b9e9970be59a4dc8e48297d425499e52d1ba4", + "chksum_sha256": "14b9c10e6800af658dc1f3fcdfb13e168951de360be87867f15411b43076c223", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b888e4c7f6f283efac90d5688d8176e72ec1a01e55349e63bb63090ab6b3330", + "chksum_sha256": "95dc5232d1a73bc72ffb5dfab754c6d9971a24cf422e9001dc60ddaec899da07", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/tests/netconf/rtt.yml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97ed698e3215b67ef24ac3aa69d44da18c193f9f02d3ea2a876ea637273cd02c", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_routing_options/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "87e878b3a8097ffcca1fae275d5a643d86456c96f63ea9bafb5b7b7355afd10b", "format": 1 }, { - "name": "tests/integration/targets/junos_routing_options/vars/main.yaml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b0dad22bd982e1dc14740d32937c7c31ddf82f5fe6d1689a15fc723aa2fe5f91", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_rpc", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "41a3d2ec866ea5cf2258c06ffbbe31038cab3cc1d6f79cdff6a99f88190a39e5", "format": 1 }, { - "name": "tests/integration/targets/junos_rpc/defaults", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_rpc/defaults/main.yaml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_rpc/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "e0dcf81fecfea2443b931ea13585c90f86328910b71285add801bda7265c3636", "format": 1 }, { - "name": "tests/integration/targets/junos_rpc/meta/main.yml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_rpc/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "52957ef7daf70f40bf6a4741a42da5e7f82bbc6b67b830899667b62b6a5a4f85", "format": 1 }, { - "name": "tests/integration/targets/junos_rpc/tasks/main.yaml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", + "chksum_sha256": "6dc3ad5aaaa7664632e3d9aba1a81f29423fff040085b78ca0eed5aa60530b58", "format": 1 }, { - "name": "tests/integration/targets/junos_rpc/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_interfaces/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1946facde8e5b023ffc633db3d6261d8de690c1fb2101af1214f8d4d55ce1f56", + "chksum_sha256": "a745fb6c5059eb9c77cca93ddb1e91755acaa867ffd5f481395d43ad3728f5a5", "format": 1 }, { - "name": "tests/integration/targets/junos_rpc/tests", + "name": "tests/integration/targets/junos_acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_rpc/tests/netconf", + "name": "tests/integration/targets/junos_acls/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_rpc/tests/netconf/rpc.yaml", + "name": "tests/integration/targets/junos_acls/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6dcf22486f6872bfad638a22b0bf0c9d3bd8014426f56b5336a1a54cde62a6a0", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_security_policies", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/junos_security_policies/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "2f6151e4a2a93bc086b790ee3a501cdb7250d7f3f5a71fd06a1b89fe3881b101", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/defaults/main.yaml", + "name": "tests/integration/targets/junos_acls/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/meta", + "name": "tests/integration/targets/junos_acls/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/meta/main.yml", + "name": "tests/integration/targets/junos_acls/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tasks", + "name": "tests/integration/targets/junos_acls/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_security_policies/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_acls/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests", + "name": "tests/integration/targets/junos_acls/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf", + "name": "tests/integration/targets/junos_acls/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_acls/tests/netconf/idempotent.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "59eec828971eae9ba7b584d87b4e15dc788791d7e9a438765277f92163cea99f", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/fixtures/parsed.xml", + "name": "tests/integration/targets/junos_acls/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c675cea3f99d7bc6a5a9416e9ba20e6745aa981968cab970fb378e6ee37ce5aa", + "chksum_sha256": "4d36906bc9d6cb7839a210f7c688af552aced4332fe6d294c028c99c5d192808", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_acls/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63cb2d305f3b2b8375cfe110ccc027d605eb168ba862699a3b3a544b8d87296f", + "chksum_sha256": "1c78a03edc62e8fe5093769559049598ec54eed6ee34ff1be7a4bd7ca1d0f334", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/_populate_config.yaml", + "name": "tests/integration/targets/junos_acls/tests/netconf/reset_policy_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f28b62ace16039ab3d1a158658ad0eee2a5aa1b60759cf1f61e6f2b1257254df", + "chksum_sha256": "3133d054fb17cecc431da4aacabda89136ea669baf1f930c8dd8bf961d850d2d", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_acls/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "904c7f297382fe7a7994ee762c1baa400d1350c1b305e6969014d151de1d1a9a", + "chksum_sha256": "aa32412720d18dead847f85cd22c35705724541e489f3f045b117265c2da2b75", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_acls/tests/netconf/config_policy.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "39cd5df63bd55f3ddf784e611627b54029596c80fc25189fd00499a82de7d3ba", + "chksum_sha256": "a7b613e7f4b3d626ddc5821c283c9d55ddbba350d37d7c523bf248e0fc599bf4", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_acls/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3cb5abb3511da59cc841edf9b3120380ace3f373903d49a8df724d34940aefce", + "chksum_sha256": "3f489f5450522cf2ca9078abbba22c104222032df32804d3be2fef2878c426b9", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_acls/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ed9a5e80b3bb84e4aa1164d2542f3df9c0f7ec36f54a278c886f6c9ceac6031", + "chksum_sha256": "f53e6ab652b057dfaccda221c21c65173c5d42ae6fb848ba73396771a3d5fa63", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "261e69408b6a97f998dd932c6efd3d6e0a3eca9e928ec89b704787f035856864", + "name": "tests/integration/targets/junos_acls/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_acls/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ff33c3c375327d6182dfb18a85ca1cd94fb384336406695732fd1e0802b306a", + "chksum_sha256": "9692a9cc1e4349d5055f6592296758c5612979b869549b261d7f8cb22076ff52", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_acls/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "016771aea305560bd8dd151b5c956fc76a005fb72cb9499de0c379c194d1a704", + "chksum_sha256": "05b0bcb9ae22db881ed263fa127eac84a234021ee88118dbca5c5656679ff978", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_acls/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e14fe35238c7a90cbc7404ad0f44596371a2eebaaa1a212d64f6e34cbffb21eb", + "chksum_sha256": "c23da5d3f436231b378533a5ab89b086b7fa023f7a9780461f2d9c9ff3cdcab9", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_acls/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc7ee62ed78fec40515b1f436e3dd3d76fd733da62043000b6f9c2466a22d6da", + "chksum_sha256": "65b95de98f801d3efbbcc7c4ba777dc8af5e89a18d85876a2296d819243e9a4c", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/tests/netconf/rtt.yml", + "name": "tests/integration/targets/junos_acls/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ce4ffcc6b729daec418088a402e4625e7ac2b65af7260c79adb6f11c8ed2ec5", + "chksum_sha256": "08e46921760c563c33b03eac99d451230904fffa85ee387ae65f51e61cf05c19", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/vars", + "name": "tests/integration/targets/junos_vlans", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4deaf51b2f16c99c7681725fb943e6aebbd1148a35a640be0ab3eb755840ba3a", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_security_policies_global", + "name": "tests/integration/targets/junos_vlans/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_vlans/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/defaults/main.yaml", + "name": "tests/integration/targets/junos_vlans/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/meta", + "name": "tests/integration/targets/junos_vlans/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/meta/main.yml", + "name": "tests/integration/targets/junos_vlans/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "efb275d54a7c21fd007e1d1c8b10b65d148a9121af425a4e7fbd60abacd23fc8", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tasks", + "name": "tests/integration/targets/junos_vlans/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_security_policies_global/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_vlans/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_security_policies_global/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf", + "name": "tests/integration/targets/junos_vlans/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_vlans/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_vlans/tests/netconf/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a98bcfdfa2c2acbd0f2bc2061457d855d4e18bfccd39d517aa1fb43fc2ade15", + "chksum_sha256": "771b5ef527b2dc79fd79336d9485837675f5f6cf429434fc27943f49a7e164ee", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae8128c308746259f25d9bc41d97ee15b5c7405e674891d8ae599fc3e2328879", + "chksum_sha256": "217ad5b6e68a2d1cfdef9b4841dc5f91714a5034424265409be1ca7c7546c9a7", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/_populate_config.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b7bb3d4ac43a4b6c4920580458fde90451217805f6fbe2e8d26507559f083519", + "chksum_sha256": "640ec1521d32739f67366042c0ec200638ed1b81603b55af0fd7300a7a6ad9b0", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95666f3ea0c587421ce2de87a8d6335bbfff236e8b4d1a9835a0278f186867cd", + "chksum_sha256": "ae5ea725cc0a012e0c98b0a0e9d3d172dd8bb364f2e50779c4e6876b2e61c6bc", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/_base_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb80b4f48c8de02108eb0fea7d780d64e59eb7326362ac192eb782391cf7181c", + "chksum_sha256": "5d3cc2b3afe3dc0dadeea0b369c6745302fbbb6ada04c3defb870fea734f2d7b", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fafc2da62cf712d0117ae338fe363b040f5c7dd4969ce287dfa3318f6ac4423f", + "chksum_sha256": "f2bf894f4956d79da86103eab885a01457f893317ded8b0cf5f2cd0f63ab2239", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16c2a1698ee0dbd5edc0c239f8986c08f8159528fe3b7990ed5873f60d003f8b", + "chksum_sha256": "4fb4c83265fed002fe9ec78794e29394b3c567bdaf8df25da466ea56ad380bd2", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a589f47fc49da28c7f380734b48db2f682c1b2e432d77ab227d2f6f30682ff39", + "chksum_sha256": "5ea25501651a613ba680c4da9b6a018d85408f3bbe1290d9c79360ad041d0ac0", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "935fcb42d47d2cfe6ea5cd8aba20e8a83461f822ae45de8e2881c3393ae32139", + "chksum_sha256": "cfff19b900dd791ca391b9fd18742fc3c355acfa6d00810d24214ac0f6bfc871", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4905f9e7594d4b1d98f41721a16a66a810b538fbc0d6a85c0ce71f352c251523", + "name": "tests/integration/targets/junos_vlans/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac117f64285489963952a8c90bcf8a5eb34e6f73f47814300043e78bee1efce9", + "chksum_sha256": "3baba00d1d6d1dadb4b5976f47607540d8771ea4f07dcdcee03f5e376dd61165", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4f42d4ccdf3bbc1b40266f59bb4bf7bb5d17522b9f9024108c8e04b749cd0589", + "chksum_sha256": "63f819af50f638193f92ae6d4550e1db2ecc3e7f80eb2beade2288944c607988", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/tests/netconf/rtt.yml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "251482cdb55715eb323cb0c10b29292c8e73ba800d0fed4f4c192a846b25877a", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_security_policies_global/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "8c4c751a8589f2f8b9398d2f308546c9fd6f6786945135cafe407f05a7d6a551", "format": 1 }, { - "name": "tests/integration/targets/junos_security_policies_global/vars/main.yaml", + "name": "tests/integration/targets/junos_vlans/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc9a26cdbd03e746f437f26100d24dbea854043ca957d63a3238e8da719c29e9", + "chksum_sha256": "df538e025fc1c99a5bcd71a5fa94ef936be10c15b8cb69ee3eacc97c3ec1d526", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones", + "name": "tests/integration/targets/prepare_junos_tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/defaults", + "name": "tests/integration/targets/prepare_junos_tests/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/defaults/main.yaml", + "name": "tests/integration/targets/prepare_junos_tests/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "74b314e77e169d5a6035c8142bc45f78a868d1fccecef3e27cb3f3c750f72959", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/meta", + "name": "tests/integration/targets/prepare_junos_tests/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/meta/main.yml", + "name": "tests/integration/targets/prepare_junos_tests/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "851860fe2ed1258710d7fcf89ac5b7d8c3c87755e89ca56fdd79bea022eb2b92", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tasks", + "name": "tests/integration/targets/junos_lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tasks/main.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_lldp_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", + "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests", + "name": "tests/integration/targets/junos_lldp_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_lldp_interfaces/meta/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_lldp_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_lldp_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72a5d8773cfbf73e55a219ddd23fc03d5698af853088f5087cb9d3916a7e2743", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/_initial_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "97f5b6df3ba9463c6bffe711cf66d9f7ee8efeb65f153e4b47de128dc68e6a48", + "name": "tests/integration/targets/junos_lldp_interfaces/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0b0a4ab8f0b94769621bd3585b2338252acb7bb110fba2eaa0033eee5c669d48", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8d240f3c782eef1fd316414e92647db865fd6d8f416f4444f9c9fc13626703f3", + "chksum_sha256": "064e57d0ef1ecabdf04ecbd83a445a257815c58717956e79fe358948b5189c8a", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae8d6e41134cd6292e031bde0a1e41390a0877b7a8aa2609b0611d21f8c92dd7", + "chksum_sha256": "f8da092b479832d981e18a403a247a5f398be51d3618bf9bcd6adecd6ade6603", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29fb25dec128037263716c898deb0aaeb5aca9b98b069a7a4c3d0b941417f57b", + "chksum_sha256": "a91c48dc2e5c6fd960e2bac1fe2f708ef5ec53b73b5c58d4e2953479486935cc", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8ac531e0078326b78ed040e715ced5c69a57266a7ba0f8e878b5a132b3268a16", + "chksum_sha256": "3789650f6288e17a8c1999331b043bf9403a7a5afeac87b647348f1ba9a3c05a", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7a29442765f7f3776e1b43980900eb7f2ebe5d17904e3fc36c601c41b7d28fb", + "chksum_sha256": "724ff8d403f1e5199c4782652db55274115ea8129b74ef73a7c231ef394e2bb4", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8d829c21014964be69edddccf727e72f3e20c6e97019bede439270ad4f5edcc5", + "chksum_sha256": "b55ace9a6f0bfc64c2403a0dc378ad9ea4992f51795dd7e9580c244247ea688c", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8a7c2f670c6bc9435a0bd6eca8d81fdbd924cf4140c149c11a1b5623709d7dea", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8cc511b2192c8ed212733f44b30dc4ed907865504d862ef3701150be9366cc41", + "chksum_sha256": "6eb35350f92a0ae0527f94e27daa5506279c181db31be1a332a9f74cee66ad8f", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76407a5ce6e30b3b6bf16b5ae782d4fd7a0b92ae49ef92a7b77c755bbcbe2969", + "chksum_sha256": "1f0d41c05af0cfa16b80b0d129425353225ba19ea33206cf6dc4510f6efbffa1", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/tests/netconf/rtt.yml", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8610a0f4f2176625cff923f881740f3834ae1e11eb3707ee655a9a5bc28f66ec", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_security_zones/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "cb72a9194b46ee33eabbf1e9b67bb9e982f0033cb3ce2b1b19370db793c395e7", "format": 1 }, { - "name": "tests/integration/targets/junos_security_zones/vars/main.yaml", + "name": "tests/integration/targets/junos_lldp_interfaces/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af63125e0d6fbca0f844ff71b1f26210c452ad70cd094931bf0a177e1ddd73f7", + "chksum_sha256": "512148e07b86f3dfcda14c159b99af790e502329decce28fdad7dc87996133e7", "format": 1 }, { - "name": "tests/integration/targets/junos_smoke", + "name": "tests/integration/targets/junos_user", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/defaults", + "name": "tests/integration/targets/junos_user/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/defaults/main.yaml", + "name": "tests/integration/targets/junos_user/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_smoke/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/meta/main.yml", + "name": "tests/integration/targets/junos_user/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "1946facde8e5b023ffc633db3d6261d8de690c1fb2101af1214f8d4d55ce1f56", "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/tasks", + "name": "tests/integration/targets/junos_user/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/tasks/cli.yaml", + "name": "tests/integration/targets/junos_user/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7eda8f13afa1f0562fb7dcdb14a4fb53d6696be710bcbc7fb3c74fc47761b191", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1ed6aab865c43fdcad8b6871d5800e82ca311f8f3823e56bca3d06b9bf7ba94c", + "name": "tests/integration/targets/junos_user/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_user/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc09c85d3d223c19ea63a3fae43eb5638f3b5e6651609cf4d321208639122cbd", + "chksum_sha256": "58c4318f7d20aff7df7bc4267d1f9fe62a4333a9012420e84274b35d4adf1b26", "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/tests", + "name": "tests/integration/targets/junos_user/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/tests/cli", + "name": "tests/integration/targets/junos_user/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/tests/cli/caching.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "63d3d2578702ff3bc51e29d16b7b4e63ed28edbddda8627ba2fd65b29f07315e", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_smoke/tests/cli/reboot.yaml", + "name": "tests/integration/targets/junos_user/tests/netconf/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "530995a6ec518f3bdccb21e2d4c394de3a80f247694cf87b2347429cf1ce7470", + "chksum_sha256": "e8e92d7542ad280130c12b8a8b2a964692a947cfbd81f71b79a72ea0a47824e8", "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/tests/netconf", + "name": "tests/integration/targets/junos_bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_smoke/tests/netconf/common_utils.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "86f1d6186d9036ff2cda9b18be64f04264be2052476b9585b46f1cc18393299a", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_smoke/tests/netconf/module_utils_junos.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "591380db5e46372be7cdbe63d11848b9cef38dd8e57da857aad9739025919641", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_snmp_server", + "name": "tests/integration/targets/junos_bgp_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_bgp_global/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/defaults/main.yaml", + "name": "tests/integration/targets/junos_bgp_global/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/meta", + "name": "tests/integration/targets/junos_bgp_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/meta/main.yml", + "name": "tests/integration/targets/junos_bgp_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tasks", + "name": "tests/integration/targets/junos_bgp_global/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_snmp_server/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_bgp_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_snmp_server/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf", + "name": "tests/integration/targets/junos_bgp_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/backups", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/backups/empty_config.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a199720ea8a377c143b7563572b60e1e5bb12f929695b914785cd436ccb89d4a", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "8531868c12a65d880e751f8fccfdaa091562f8dea89c8641240946ec028f92af", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75d7ce74bc974651f36b79e38f6d82fa194348da859316ba96f7c8b46a462746", + "chksum_sha256": "1afed1f11693d4fcfcef6f5404d1bc14d62fdeb26bd3f43cc05ba1efd41762d6", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14013a1e318b507af1de7ddaf4d426ceb2f97ad1ebf63e8fda1f77dbbe8c4d0c", + "chksum_sha256": "a5ef27e2b0c24a04e52b871c4f660a2f2edd8420a4a5380c73da9382587bce8e", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/_populate_config.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dba186fea16ddf43f92a52e12447abb35f8768fa4ca4d4e197f40f4d67bbc6d9", + "chksum_sha256": "20a1538392897f7778c8219a43a8662cd4e63e8568bca44f0437de3d4bc2e621", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/_reset_config.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bbb796a3c0583ff6c13099ef154ff6cd0eca1950abcd511053a688abdf821a63", + "chksum_sha256": "aa3d594cdca27a7016fbedcfa2fb295611ebdc65dc26af22ba18ec6c8a4d617c", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92e2829fa0cb2f63063f5aace2377e2921f9321dd1e5268674a62dbd0d77a224", + "chksum_sha256": "6271267f45321582881e7c1b8b0a4d4edd7f37b5f79a9e12d0a4d856b048871b", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec3e130e584202fe4c138bb15e0474f12f42d852180097e5723932d797e8842f", + "chksum_sha256": "4dc545f32755c069f4533ed048730ad70050aea906982c181d43ec77cc4b7b1e", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6efb62f03f36c571dd83d43b78e7497edde18648430fea073e5ec4dd671b8201", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5fd3ec2ff87096f483fdab123ffe7ff5b711d1dcb2ce48bcbf248c83367bf288", + "chksum_sha256": "2d162dc9b1404da0180805dc8bf0f1b96f65950cbec78041396108887715866a", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6f2468285d5af083e19c8cc3abd325968b6317b8eb3edb45b7b88e1b806041e3", + "chksum_sha256": "8e52f99edc30a0e4ee431600fea788437a003b5c6035ec22bf22fa5abf03cc7a", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05b7d590b4a4a01cef48c86b56ba744e3b28e8fe1aab50a1ebcad40ac25fb79c", + "chksum_sha256": "f766f5ed3acca8c6b754d2bcdbbbbf459b75391dc12a6b63cef730358a39409f", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a10f5a5ea42df2a8c92afedc170caa9fb6b9bf04a3799e93f854f3a7faca8392", + "chksum_sha256": "b29393a5633254b0ccc43252a26235d5ddd9bae978d9a042ad63d114b99f3047", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/purged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "90840493979c1834355e8143fd04ab4ebce2fce9b771b42c91901aade52294f9", + "chksum_sha256": "d916c1d36d28898d24fa09e1345f52f171b57e994cbcb06de96c726ddd2facab", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/tests/netconf/rtt.yaml", + "name": "tests/integration/targets/junos_bgp_global/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7ff7fb0534ca8b333f965e51ff3fd5ebe47e18dc407ccf019e1d2e7f3e568d4", + "chksum_sha256": "92cf627fa61c4f4a4678156b3fa873264b1ced99c1c6bd2a93d8ccfa853aeb92", "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/vars", + "name": "tests/integration/targets/junos_bgp_global/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_snmp_server/vars/main.yaml", + "name": "tests/integration/targets/junos_bgp_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c4e6dcf836133187698bb50c0b6519d46d0663d6f67e4e21d6f33aeb53004df", + "chksum_sha256": "b153b729248015e1aaa1e5bc6f4db2bfa87170e1cd347099f4f4a31fb86a2b02", "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes", + "name": "tests/integration/targets/junos_acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/defaults", + "name": "tests/integration/targets/junos_acl_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/defaults/main.yaml", + "name": "tests/integration/targets/junos_acl_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "dedf802497c657594764c710abb69c6a2eb5bf58fc7d51282731973a56e85168", "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/meta", + "name": "tests/integration/targets/junos_acl_interfaces/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_acl_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/meta/main.yaml", + "name": "tests/integration/targets/junos_acl_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efb275d54a7c21fd007e1d1c8b10b65d148a9121af425a4e7fbd60abacd23fc8", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/tasks", + "name": "tests/integration/targets/junos_acl_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_static_routes/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_acl_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/tests", + "name": "tests/integration/targets/junos_acl_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/tests/netconf", + "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/tests/netconf/_base_config.yaml", + "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bfa5d38b676c52b6303d08a88a4ee86a430b36fa79822eb251fda92224af9933", + "chksum_sha256": "ef107c677fdfb30ff79d823577ee1c84890bd7886acb6fb2396107b99fbcab53", "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/tests/netconf/_remove_config.yaml", + "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5171aa16ecd105acab742140d5bf420826bb08bcf99443a828654fc43aa6d85c", + "chksum_sha256": "856be5720d341ecfe38ed73a6fc5b38bef58ba3cabda135a42df90fd65db649b", "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43a270a33afb7540ca2cb5821789d8f2a9b71776705192143f6bf96411d182da", + "chksum_sha256": "91b36b428ce955f7929ec4195a256dccb2d2b5926093c9cfdfb969895c50786e", "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/tests/netconf/merged.yaml", + "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "66c6475bd4eee3d410773a8ce7967c9418330832db74cd3837caf59c1453f33a", + "chksum_sha256": "47cd198cd9eb3a08e813c896b92cfc0eda48eb31e4b11a35b55a7b97a0eb8932", "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "db7a3b1bfe392ac0508c34d9ac8f2703cfce6e40b18084df4174f2bbbaab5180", + "chksum_sha256": "b0433b5d3c8b197deeb46826bc3d796bdecc84e7eb860984bbf654aa610c6e6b", "format": 1 }, { - "name": "tests/integration/targets/junos_static_routes/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac2005d102db20c86a18c7297c9ee1cb0519c00d8194975027d3185ff1ba003a", + "chksum_sha256": "4e8c520f54c6ce56d0da73b90650b12c638dc19db9ee6df206077bdd6b07a626", "format": 1 }, { - "name": "tests/integration/targets/junos_system", + "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "382845484c54c164ed28ab7b0ec3ee53e12e7d5c15f449715d5aa50aa201372b", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_acl_interfaces/tests/netconf/_reset_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1b74a6f4e78bc9098e835c4eaa579a97f4264f521bbb3e5c2fb1b30e956370c1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_system/defaults", + "name": "tests/integration/targets/junos_lag_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_system/defaults/main.yaml", + "name": "tests/integration/targets/junos_lag_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", "format": 1 }, { - "name": "tests/integration/targets/junos_system/meta", + "name": "tests/integration/targets/junos_lag_interfaces/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_lag_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_system/meta/main.yml", + "name": "tests/integration/targets/junos_lag_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_system/tasks", + "name": "tests/integration/targets/junos_lag_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_system/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_system/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_lag_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3006a95309847acbfecc0a9c6cbeaad782956e7814679010a9bbb7782cab4aa8", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/junos_system/tests", + "name": "tests/integration/targets/junos_lag_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_system/tests/netconf", + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_system/tests/netconf/basic.yaml", + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "737db05e1953f8db6a60807a390b2ade773dcf92b8f21d3aed93f10aa6a1c87b", + "chksum_sha256": "1cb41bf2ef192855fa29d8ba1fc78380ae705498ba17b54345b003c15d8eea30", "format": 1 }, { - "name": "tests/integration/targets/junos_system/aliases", + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_user", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "72efe0c964cbc8425cf2dbcd901ae1e93d5702142a0b3b7531686f4dbe896dd8", "format": 1 }, { - "name": "tests/integration/targets/junos_user/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bcf0f0aeee50ed4d9bafe71db01017fc7f05ef1d8451bd48cc8bb7ca7d309593", "format": 1 }, { - "name": "tests/integration/targets/junos_user/defaults/main.yaml", + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/_base_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "58c4318f7d20aff7df7bc4267d1f9fe62a4333a9012420e84274b35d4adf1b26", + "chksum_sha256": "422b30525a97a151a644f4ef3e0905f48f6baba2382b53fda2d0670bcdc47c68", "format": 1 }, { - "name": "tests/integration/targets/junos_user/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0354f48c3517eea3b0643f7999f6d127c124f7990be5cd6be92bba3c87aec71b", "format": 1 }, { - "name": "tests/integration/targets/junos_user/meta/main.yml", + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "chksum_sha256": "d15eee369dbf92bd5b263170f19ecceccb1d29295f86f1ec0afa1b2542f8a43a", "format": 1 }, { - "name": "tests/integration/targets/junos_user/tasks", + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_user/tasks/main.yaml", + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", + "chksum_sha256": "6362681d72bb84236c6063867d677a9c6802996a268047dc081ae4dead5345fe", "format": 1 }, { - "name": "tests/integration/targets/junos_user/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1660f28932b0b657c01edc618dfd1903faceaf82740206242dce77fb19e4f43", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_user/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "cac34b639c32c5c27f26cda22f7d9aa11b4cbcaf8a8c2694622e3890526ebcc7", "format": 1 }, { - "name": "tests/integration/targets/junos_user/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/parsed.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f6a63f014861a62d22b7969689f1dc3966a4282b8c95a165b1cc3d35018ae88e", "format": 1 }, { - "name": "tests/integration/targets/junos_user/tests/netconf/basic.yaml", + "name": "tests/integration/targets/junos_lag_interfaces/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e8e92d7542ad280130c12b8a8b2a964692a947cfbd81f71b79a72ea0a47824e8", + "chksum_sha256": "657037ae627b0e9265dbf5ed20bcd7e0e10f3987c751a443e5708a47df928de9", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans", + "name": "tests/integration/targets/junos_routing_options", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/defaults", + "name": "tests/integration/targets/junos_routing_options/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/defaults/main.yaml", + "name": "tests/integration/targets/junos_routing_options/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_vlans/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/meta/main.yaml", + "name": "tests/integration/targets/junos_routing_options/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efb275d54a7c21fd007e1d1c8b10b65d148a9121af425a4e7fbd60abacd23fc8", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tasks", + "name": "tests/integration/targets/junos_routing_options/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_vlans/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_routing_options/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests", + "name": "tests/integration/targets/junos_routing_options/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf", + "name": "tests/integration/targets/junos_routing_options/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_routing_options/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/fixtures", + "name": "tests/integration/targets/junos_routing_options/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/fixtures/parsed.cfg", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3baba00d1d6d1dadb4b5976f47607540d8771ea4f07dcdcee03f5e376dd61165", + "chksum_sha256": "5afe0b0a0f964bbb1eacf828241f9d6880d4155e07dddebbc06cbab4fe1177be", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/_base_config.yaml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d3cc2b3afe3dc0dadeea0b369c6745302fbbb6ada04c3defb870fea734f2d7b", + "chksum_sha256": "88a72f59e38cc345203ff46ac64edf209142a669b6775a94ed60408dbce4fae3", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/_initial_config.yaml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2bf894f4956d79da86103eab885a01457f893317ded8b0cf5f2cd0f63ab2239", + "chksum_sha256": "4f23a00ee4e2d649c926dfe56c6e601bf176145dafc88442dda848aa492d8797", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/_remove_config.yaml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "771b5ef527b2dc79fd79336d9485837675f5f6cf429434fc27943f49a7e164ee", + "chksum_sha256": "33aaaf4d48243dbe9296e9e042cb27f360bee34a8587a1516ce0e8796e498fce", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/deleted.yaml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "217ad5b6e68a2d1cfdef9b4841dc5f91714a5034424265409be1ca7c7546c9a7", + "chksum_sha256": "38c77427a98ffbc4a623dc01722e565c08754282a0a0eaf02e7dfe440badb6ef", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/empty_config.yaml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae5ea725cc0a012e0c98b0a0e9d3d172dd8bb364f2e50779c4e6876b2e61c6bc", + "chksum_sha256": "97ed698e3215b67ef24ac3aa69d44da18c193f9f02d3ea2a876ea637273cd02c", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/gathered.yaml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "640ec1521d32739f67366042c0ec200638ed1b81603b55af0fd7300a7a6ad9b0", + "chksum_sha256": "aeec20572a2337eb6920f08c1e683df42a2d77157b627cc3c702ae785f381d6e", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4fb4c83265fed002fe9ec78794e29394b3c567bdaf8df25da466ea56ad380bd2", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/overridden.yaml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ea25501651a613ba680c4da9b6a018d85408f3bbe1290d9c79360ad041d0ac0", + "chksum_sha256": "aa310db3ac9c122a80e375582988ad5f7e3b27ee1ef2984a09e92db2826f4d1f", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/parsed.yaml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c4c751a8589f2f8b9398d2f308546c9fd6f6786945135cafe407f05a7d6a551", + "chksum_sha256": "b9eb04d768dfe49511a2c8588034ed0e5a60781148eaa462083fde53f558a501", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/rendered.yaml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "df538e025fc1c99a5bcd71a5fa94ef936be10c15b8cb69ee3eacc97c3ec1d526", + "chksum_sha256": "140f095f42a3049193e72a297b0f320e4f3c9d9bf630fd555033db3cb796e90b", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/replaced.yaml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63f819af50f638193f92ae6d4550e1db2ecc3e7f80eb2beade2288944c607988", + "chksum_sha256": "feacd22c689c662edd50c17c3daf13276734c2aea867a7af21dbeb13a309a6e2", "format": 1 }, { - "name": "tests/integration/targets/junos_vlans/tests/netconf/rtt.yml", + "name": "tests/integration/targets/junos_routing_options/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cfff19b900dd791ca391b9fd18742fc3c355acfa6d00810d24214ac0f6bfc871", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_vrf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "f691b0994a2a45d0cb98c0f6fe2b9e9970be59a4dc8e48297d425499e52d1ba4", "format": 1 }, { - "name": "tests/integration/targets/junos_vrf/defaults", + "name": "tests/integration/targets/junos_routing_options/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vrf/defaults/main.yaml", + "name": "tests/integration/targets/junos_routing_options/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "b0dad22bd982e1dc14740d32937c7c31ddf82f5fe6d1689a15fc723aa2fe5f91", "format": 1 }, { - "name": "tests/integration/targets/junos_vrf/meta", + "name": "tests/integration/targets/junos_routing_instances", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vrf/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", - "format": 1 - }, - { - "name": "tests/integration/targets/junos_vrf/tasks", + "name": "tests/integration/targets/junos_routing_instances/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vrf/tasks/main.yaml", + "name": "tests/integration/targets/junos_routing_instances/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e727033350980ea9df8bbfde6b874c51150f907f51fa8fc4cc8070e3f50ec5d3", + "chksum_sha256": "6859e775c6926fd41248bfce2e80a71c7e08cc626a5cf5882bbd5134e1e58e46", "format": 1 }, { - "name": "tests/integration/targets/junos_vrf/tasks/netconf.yaml", + "name": "tests/integration/targets/junos_routing_instances/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1946facde8e5b023ffc633db3d6261d8de690c1fb2101af1214f8d4d55ce1f56", + "chksum_sha256": "15aaeadf08b810a04988939fc6892194f234c2d34ed21230574d914448e20ce1", "format": 1 }, { - "name": "tests/integration/targets/junos_vrf/tests", + "name": "tests/integration/targets/junos_routing_instances/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vrf/tests/netconf", + "name": "tests/integration/targets/junos_routing_instances/meta/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_routing_instances/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/junos_vrf/tests/netconf/basic.yaml", + "name": "tests/integration/targets/junos_routing_instances/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1b0fe67be093ce85673fdb2a29646edd61025742313f8ee12467201c6301d1c", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/prepare_junos_tests", + "name": "tests/integration/targets/junos_routing_instances/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_junos_tests/meta", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_junos_tests/meta/main.yaml", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "851860fe2ed1258710d7fcf89ac5b7d8c3c87755e89ca56fdd79bea022eb2b92", + "chksum_sha256": "7f82e8795705fb9302d04f74dcce0137f7a8788c9c85eb2379ca6acdae0482d6", "format": 1 }, { - "name": "tests/integration/targets/prepare_junos_tests/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4245f6c677e2c7abffa6c8be158ba432af572304448f2f7baa8156e107938c86", "format": 1 }, { - "name": "tests/integration/targets/prepare_junos_tests/tasks/main.yml", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28ccc103547268c07d8ee21ba862fc9bfcdf9444c3137cd74d744fa96e732644", + "chksum_sha256": "a8d2acc111a2980a9bc317bac9d08c68230f8b44cef3ffb56b516c0a71596bc1", "format": 1 }, { - "name": "tests/integration/target-prefixes.network", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/_initial_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3f98508805af0da212b0fd104e964e875cc1964a31ed0e264fad016ac56f037", + "chksum_sha256": "618fd41de1d2ba07af50f84e9e7e25ffee98121299422765bbd6a4cd43ea615c", "format": 1 }, { - "name": "tests/sanity", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e4083fb5493628e48734ba76d4cf99b1f4e7fe815a6aa18f740e6021310a1f3f", "format": 1 }, { - "name": "tests/sanity/ignore-2.10.txt", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "18bf204fc6f6e08b0c20807cd7974995ed92b7d77df238e11ca5f3116c537e29", + "chksum_sha256": "d32cbe476e915ccf76733adf534ccf9309395d6799353ef8aed11b3fbd6ca301", "format": 1 }, { - "name": "tests/sanity/ignore-2.11.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "18bf204fc6f6e08b0c20807cd7974995ed92b7d77df238e11ca5f3116c537e29", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.12.txt", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a22828d62510cc005b3aef3efd6de9b7698179bb6b6500d65febba541e9a8a5", + "chksum_sha256": "049f649304e92c13c8f5e6d00b7deeac4bd7dd1c3b14321407a46ee15863d544", "format": 1 }, { - "name": "tests/sanity/ignore-2.13.txt", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a22828d62510cc005b3aef3efd6de9b7698179bb6b6500d65febba541e9a8a5", + "chksum_sha256": "2629804c535bb7e552f7d44b7ffced5fa494809e44aa0a016dd4bea636741c08", "format": 1 }, { - "name": "tests/sanity/ignore-2.14.txt", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a22828d62510cc005b3aef3efd6de9b7698179bb6b6500d65febba541e9a8a5", + "chksum_sha256": "707b5d9aa8e023d22f7ea57a1cce39fe05c6079f01c69dfe0d6312b76363cdba", "format": 1 }, { - "name": "tests/sanity/ignore-2.15.txt", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/_reset_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a22828d62510cc005b3aef3efd6de9b7698179bb6b6500d65febba541e9a8a5", + "chksum_sha256": "8ba46007f3628fbe6ee4591f4ad6b279f6f19ac5d91248ff4cec5fee3a3be931", "format": 1 }, { - "name": "tests/sanity/ignore-2.9.txt", + "name": "tests/integration/targets/junos_routing_instances/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a90852c77b0d5a009cc1b24061eb696aefd763873d1886600bef6e4c9e15d6d9", + "chksum_sha256": "41158fc9c9c801d84be463ea99b38536554851c6a8a4427a333793b78b542869", "format": 1 }, { - "name": "tests/unit", + "name": "tests/integration/targets/junos_config", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/compat", + "name": "tests/integration/targets/junos_config/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/compat/__init__.py", + "name": "tests/integration/targets/junos_config/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "fba795a2f2f8c6b449e057d2c14be5aa9ea9e94bfc19aa628dddb26130e7911f", "format": 1 }, { - "name": "tests/unit/compat/builtins.py", + "name": "tests/integration/targets/junos_config/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "04633fb05536d80aea8dd451d6413ec01cee493596750d8557ba3c389951597e", + "chksum_sha256": "be90db2aa35bf39ec0fc02a996e8d5e40b83b0917dab8aa2339a1d22ed5cad0e", "format": 1 }, { - "name": "tests/unit/compat/mock.py", + "name": "tests/integration/targets/junos_config/tasks/cli_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f53efe1d1a5f178012316ac04ba2a911c8a4ecd02810214e7b70ee3285fae252", + "chksum_sha256": "898ac0c25c8756735dba3ece1d68f589e01c1351ddae4f4d045873fe65c9f064", "format": 1 }, { - "name": "tests/unit/compat/unittest.py", + "name": "tests/integration/targets/junos_config/tasks/redirection.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "727203a3846be41893b78a4b77852a1658925e936fb19539551958a5d8e8fb81", + "chksum_sha256": "fc890d4d4d13191bbbbe07f1edf38861cd83759d33e4456fdacfc21acce63db3", "format": 1 }, { - "name": "tests/unit/mock", + "name": "tests/integration/targets/junos_config/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/mock/__init__.py", + "name": "tests/integration/targets/junos_config/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/unit/mock/loader.py", + "name": "tests/integration/targets/junos_config/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_config/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "657412953ce0db75de55e7f16e441d36c8c4fa31f2bf6299cc90051b61ab66ca", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/unit/mock/path.py", + "name": "tests/integration/targets/junos_config/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_config/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/junos_config/tests/netconf/invalid.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a402ff41d20717a59a59e360966df71293571ff7bab36af7d55ab3bdcbda0014", + "chksum_sha256": "76594cda9479fe42fcc322308d028e273d33d8f54f4be9ae59d47fbf2b64c611", "format": 1 }, { - "name": "tests/unit/mock/procenv.py", + "name": "tests/integration/targets/junos_config/tests/netconf/multiple.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0060a3b1408dd90d8da17535f812a7273f84b73bc8cc96b311b5adee393ec465", + "chksum_sha256": "a101529e9f690d667375cbc2c1af3c165b84bbf028a57e32e656335bc6fd8b48", "format": 1 }, { - "name": "tests/unit/mock/vault_helper.py", + "name": "tests/integration/targets/junos_config/tests/netconf/single.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55bd0e924dcc22d050612c944bff0ef745e51faac9260dce9b9b2018c4c8a661", + "chksum_sha256": "8a764839bae6345fe760c187666e16afa24c8ef0e1d2394976516abe824c041a", "format": 1 }, { - "name": "tests/unit/mock/yaml_helper.py", + "name": "tests/integration/targets/junos_config/tests/netconf/bad_action.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "134eef238c83a9611799871b743e49e9bfbcd8bdddf2cc6a7bf69fd1000345b3", + "chksum_sha256": "1a8a59bf146aaa8353f85ecae0b178f16409782aa376f42ff22c7707ec351b6c", "format": 1 }, { - "name": "tests/unit/modules", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_config/tests/netconf/src_basic.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "48b84bd53ef11400ce442cba8558667a982dd8e84497e3e23ffa7791b1c342dd", "format": 1 }, { - "name": "tests/unit/modules/network", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/junos_config/tests/netconf/backup.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fc13146756466fb242b2846c094c66512bef612525d04b84ec383e2ae76b58f8", "format": 1 }, { - "name": "tests/unit/modules/network/junos", + "name": "tests/integration/targets/junos_config/tests/netconf/src_invalid.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c2d40a306a95cbd2ec37c729bba258c2a7acdded7eac74eb3fc18f5c78e83e60", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_config/tests/redirection", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures", + "name": "tests/integration/targets/junos_config/tests/redirection/shortname.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6b1f7d41f6377e7456ac464eef4de5bc86a5dbef030d57b77b361c73471b91b3", + "format": 1 + }, + { + "name": "tests/integration/targets/junos_config/tests/cli_config", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/__init__.py", + "name": "tests/integration/targets/junos_config/tests/cli_config/cli_backup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "1cfa70ec55d445903975a372167840d1f175641604c847f8741acf28ee8e378b", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply.txt", + "name": "tests/integration/targets/junos_config/tests/cli_config/cli_basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1794bf9ef01dea9904756da46036db8e8520e95c292a68bcf3e8545ef0c9f90", + "chksum_sha256": "eba80fbddca0baa46c7439ee80946990cd91e55da912b9571ae6559288b6d15c", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply_diff.txt", + "name": "tests/integration/targets/junos_config/tests/cli_config/cli_replace.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c61cfce095ac967c024d72f88f3f6fb02d8597af464fe68aed4e19ee125fa0a", + "chksum_sha256": "b1a748515ac3e7ede4724251b01372dcc5b4a9676a417aaf744fdbfb1e597994", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply_json.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1e77d8a4c829ca72a36c925ed12e7dcb6117ab7369f1f059b4fa9dedbea7f589", + "name": "tests/integration/targets/junos_config/templates", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply_set.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0b9e2ca1106615a162444ab130bdeb6c56f601e617060022b96ad5ff2311d0d6", + "name": "tests/integration/targets/junos_config/templates/basic", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply_text.txt", + "name": "tests/integration/targets/junos_config/templates/basic/config.xml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b8288d3ef161c912a6016c1979234cfb8061d730f90ad6cac8a55de097d5ea1c", + "chksum_sha256": "4d6334450d173802f80b0c55ea41fa8e094afeabfe76c14d54c036b8d48a9eee", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/get_configuration_rpc_reply_xml.txt", + "name": "tests/integration/targets/junos_config/templates/basic/config.set", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9646d44347455a648826a01a979a033c85488b33f0663ef83a1602f98a3eabd0", + "chksum_sha256": "e55d8c57f22746493a68395134a4c07e361bf83a7f5b21a95905ef7ee40cbda1", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_bgp_address_family.cfg", + "name": "tests/integration/targets/junos_config/templates/basic/config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b3b18f683207cb7d272bbc509b50c37eda8b58dc6cfe4aa04978241a32c802b", + "chksum_sha256": "7f984e7d5384674518e1bd994d53139ad2a3d56cc8d823c078c00a1e65c94cda", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_bgp_address_family_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c0bf370e7a4fd2b80232065fd7c03cfc5ef7aaecc5597a7d8e6e45dda8301dee", + "name": "tests/integration/targets/junos_l3_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_bgp_global.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7b3b18f683207cb7d272bbc509b50c37eda8b58dc6cfe4aa04978241a32c802b", + "name": "tests/integration/targets/junos_l3_interfaces/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_bgp_global_config.cfg", + "name": "tests/integration/targets/junos_l3_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8951ff0e1a3b6d71c64c3c00e22d6a9abf665c4ba9cc9ac55aa3f2fc487c7a22", + "chksum_sha256": "4239ce4ad6fc58a529cc073139b7b2abbdba62ae32bfc234e309af398d365eb6", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_config.json", + "name": "tests/integration/targets/junos_l3_interfaces/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "38efed50de799e3f3a85e4609ee840ad8dd285d1e59d2c21d30dacbb136e85b7", + "chksum_sha256": "07a74b16a6595dcb47295bc6af7c5d3d58f1e5920c9c3d9ff99d2c0b644897a7", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_config.set", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "533fb52817ff0c37cf4de7ad9fee8fb63587882fccfdbcd1f6a928b5f4ac0165", + "name": "tests/integration/targets/junos_l3_interfaces/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_config.text", + "name": "tests/integration/targets/junos_l3_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52acbee815525e2a4ce9fca63c85297c52a32a0d6957c41bc3f37c3b90b4ae3b", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_config.xml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7f20565b1504913b40b5e6c3a181a184884847beaad0b5e9d153f4695acd6c8d", + "name": "tests/integration/targets/junos_l3_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_hostname_config.cfg", + "name": "tests/integration/targets/junos_l3_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "86436c245da27a6ddaf085a66679b98fcba33b0d5ef801652d8bde564c5f4417", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_interfaces.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "65df2d02ae1f7f5dca4d74f0ae59e12737cdf93eb7ea35de636b0d14ea9322c6", + "name": "tests/integration/targets/junos_l3_interfaces/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_interfaces_config.xml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e0dcf81fecfea2443b931ea13585c90f86328910b71285add801bda7265c3636", + "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_l2_interfaces.cfg", + "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf/junos_l3_interfaces.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24c59086e1366073480715f57aacecc54e44c120e17b25b2f7402333aa1cb0ef", + "chksum_sha256": "13a0fdaad9f2c794ac4176d880607e72107f644d0cb12e7751bb487b4ad59f55", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_l3_interfaces.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "98490f3b9ec1e6e82897e25048eec0a74e602fba1047832f132ab97b87e3e2fa", + "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_logging_global_config.cfg", + "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0536991827ef435cce6176c19a2fd1f906673459e231018172247fac6f606f7b", + "chksum_sha256": "e1de14afc1f1c7fdfd493a909abb1a7750c41e523202b5f1b28b5e72697dc392", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ntp_global_config.cfg", + "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cf65e12feb7d404a9b0e0a999103bf037c07ed11709f676988d5debcbaadafbf", + "chksum_sha256": "aae73401a3875d3e300c6cb1feaecfb90dda0960cb8a5e90ea0315542f199dc9", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ospf_interfaces.cfg", + "name": "tests/integration/targets/junos_l3_interfaces/tests/netconf/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "50828852d511aafe1ec8580f427386ded914d7cfcd79fe6ccaadab5f8128164a", + "chksum_sha256": "800b45c331345dde3e54b0b067ff922982049dfa5f38a66d4dd3d84aba033581", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ospf_interfaces_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b9f3fc1df4bee23098cf23bfa6a67d0c6fb9f1cae822426af13ad6c4268b3361", + "name": "tests/integration/targets/junos_logging", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ospfv2.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0fb6b3eba75e5cf010f196a9f376f6d890508caa25726faeeec3cf0b8120579c", + "name": "tests/integration/targets/junos_logging/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ospfv2_config.cfg", + "name": "tests/integration/targets/junos_logging/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e1bcc758c62f6dc37d12ab0d864b2773d42bfc82ab16b0acefd2080cda3ebcb", + "chksum_sha256": "92cbd43574bbfdaa210122a3fbe9a20faf7284bd562f1f6a350853884fa4eac2", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ospfv3.cfg", + "name": "tests/integration/targets/junos_logging/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4473a0f4634d65ecdf1d9ab0e02ad91ffc7a6ed9031abe91a0ef9e4e02aadd58", + "chksum_sha256": "3006a95309847acbfecc0a9c6cbeaad782956e7814679010a9bbb7782cab4aa8", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ospfv3_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b9f3fc1df4bee23098cf23bfa6a67d0c6fb9f1cae822426af13ad6c4268b3361", + "name": "tests/integration/targets/junos_logging/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ping_ping_10.10.10.10_count_2", + "name": "tests/integration/targets/junos_logging/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45b8dcf26e3f693cbfd5e66a886f6c42c8427844e62cc3fee6fa02950c80e832", + "chksum_sha256": "9bc68ec01fd23c20e3b8b8c51a032ab8839e7bb710a457f32a3627c9dd7f8591", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ping_ping_10.10.10.11_count_5_size_512_interval_2", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2dc39ef974356df3ba62871556a0253541b5fad3cad4e3ff1ea3d69101b6ad43", + "name": "tests/integration/targets/junos_logging/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ping_ping_10.10.10.12_count_5_do-not-fragment_rapid", + "name": "tests/integration/targets/junos_logging/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "58cfa0cf75995cf12c2dc3bc72fc13182c13f1cbbab31543a07e8545350d19b1", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_ping_ping_10.10.10.20_count_4", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bf73afa78e3abecd0fd0f9fcce47d0e8684deed25a54bccdcfce911a083e7c0c", + "name": "tests/integration/targets/junos_logging/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_prefix_lists_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bbb29c36dc361586ea1762fbb6f8ded0716e7046e0b3ab5022b3c96ba4b45dce", + "name": "tests/integration/targets/junos_logging/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_routing_instances_config.cfg", + "name": "tests/integration/targets/junos_logging/tests/netconf/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9492071c37154f5769046e38477904bf0829498697f3c2b4fd0b214ef14a27da", + "chksum_sha256": "e2b732c602d35d29c0c823ec48c9358fc33a537bf82295e1d0548884eb046872", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_routing_options_config.cfg", + "name": "tests/integration/targets/junos_logging/aliases", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28bb98e8ecfb270479852cb8a0ab34c6e6362ec60e7858f64bd4843c76d548b7", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_security_policies_config.cfg", + "name": "tests/integration/target-prefixes.network", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1216c97a8cdee96ebcab47ca43769b6ed167880e85eef5e9ccb179ce19ccafd0", + "chksum_sha256": "e3f98508805af0da212b0fd104e964e875cc1964a31ed0e264fad016ac56f037", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_security_policies_global_config.cfg", + "name": "tests/.gitignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e9462852c080047c4d22f2521a2915964b45d55848dbc2c348bf6238f1b4114b", + "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_security_zones_config.cfg", + "name": "docs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "docs/junipernetworks.junos.junos_cliconf.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72a5d8773cfbf73e55a219ddd23fc03d5698af853088f5087cb9d3916a7e2743", + "chksum_sha256": "61ef607afd8afff078c3787f3b75a4c870ac27a71aeb77037b02d909c304298b", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_snmp_server_config.cfg", + "name": "docs/junipernetworks.junos.junos_lag_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff3d690032a33fc60a78b722b81c3f2038df2cb1b8aa56d5b186c80bfecdd195", + "chksum_sha256": "787d7b1e44363c18b45a8471765f6937e1235a8499865000bd700ecb3c893f54", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/junos_vlans_config.cfg", + "name": "docs/junipernetworks.junos.junos_ospfv2_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b3800aac4bb8cb5e3e3d7e95fafdf870ad2bcff4507f9d4f763c8229d4dd4e3", + "chksum_sha256": "bcbecba974a852853e4ffde32b3c9d1c68dc618d2ab5a7aef9d98dd4ea87917e", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/load_configuration_xml.txt", + "name": "docs/junipernetworks.junos.junos_scp_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b9095b5352838f46207fca0046504e331c8d370dc85332520ccc0247028479f9", + "chksum_sha256": "3502ed01a666b445e325e1e2abf8bc04c81a8cfc7f9862a2c5534b9a58819950", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/show_chassis_hardware_xml.txt", + "name": "docs/junipernetworks.junos.junos_acl_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6d686902c059632720826594a665ebdda8cfe166ec082796ae56da11d64e421", + "chksum_sha256": "3c9478dbc1fd1b32cc6f78ab9a8ff48ddd84acfeb0570a38505f886979108594", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/show_chassis_routing-engine_xml.txt", + "name": "docs/junipernetworks.junos.junos_bgp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a9818e113293701cc01971ed0c7edb733f81384d539c08d49af16b56356ead12", + "chksum_sha256": "91445b0062de1b99f12289e8328a4101c52c53b212112dc9f29b754e9f9134d5", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/show_interfaces_details_xml.txt", + "name": "docs/junipernetworks.junos.junos_acls_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5da1160ee1c09d42921f8664244e49c31ac21bf2b784e94794b4f134a36af4ed", + "chksum_sha256": "a1aae5fd4ccc313041592cb9ec553b76f8d777117686d3b338b49134bca1859f", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/show_system_memory_xml.txt", + "name": "docs/junipernetworks.junos.junos_l2_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "962e8ea71a1ac6eb59d63e094f6fdc59afa2906c2d566a6f6092a8ec5e3f8e6f", + "chksum_sha256": "96866e1ee001591b23c3faed8f46997b467fcbe035efb0729266f47b5f03e778", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/show_system_storage_xml.txt", + "name": "docs/junipernetworks.junos.junos_ntp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95430aab542287c13556d64fedaa017250d82bcd09bd9fcca6f7439838d9af7f", + "chksum_sha256": "0bed0c9b369ba164f031f315c549e23656b15b354cf1d8e2e43346c1c6f0bb41", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/show_version_json.txt", + "name": "docs/junipernetworks.junos.junos_vlans_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "00d9dd3100b96e96a6692f58f5d3a792275f1703a64acdbddf69601a7c93834c", + "chksum_sha256": "83c2fb1aaf33310b74aa7748e60afc3d86a97f690c9117dc0cfa5d54bd51af95", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/show_version_text.txt", + "name": "docs/junipernetworks.junos.junos_package_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a1956bb5615571aa71269bb65caae43c44f59430097b755eaee205ce60c4da8", + "chksum_sha256": "b2715ee74e9bf47a94740757ec2b3162778fead244a5377370db03a2fb45ae9b", "format": 1 }, { - "name": "tests/unit/modules/network/junos/fixtures/show_version_xml.txt", + "name": "docs/junipernetworks.junos.junos_hostname_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "919747d67bc939991faa1a64441e9a22b997d240df74c0991e361776dc8ecaa2", + "chksum_sha256": "535066e80fb4273d3a68c3b5e84712073fd96468befd6b02bdf0a2d7ef3396a9", "format": 1 }, { - "name": "tests/unit/modules/network/junos/__init__.py", + "name": "docs/junipernetworks.junos.junos_snmp_server_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ac35e68138cfe63db4ff782b8392aa3cd119c613c49fc33417dbc6360fc12f3b", "format": 1 }, { - "name": "tests/unit/modules/network/junos/junos_module.py", + "name": "docs/junipernetworks.junos.junos_routing_options_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec6ec14d16a38806d8df01b13add058c2a8a0f1ae63e6ce609838f80dc114eec", + "chksum_sha256": "9c1834da84af51c1b3ed8546da1c684c160f30b5cd1bcfbeb0723d3ed8d139e3", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_bgp_address_family.py", + "name": "docs/junipernetworks.junos.junos_l3_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07f74b42154bbc08b9d6d6800070b83627b6225107a1b3fbe4b792cff611d2c1", + "chksum_sha256": "ac905e997c9a2e6b0b83a67219b974f5371dcbe28ade5ac20f0090efe71f9123", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_bgp_global.py", + "name": "docs/junipernetworks.junos.junos_lldp_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0bd60871d00cd1630ce390242532897ecdd0d778bdf22d5f40070b752aba8a40", + "chksum_sha256": "ee14b6e2216a1bfcfd1dd8aab64c9eac783991e07c20a7631772a73f7b15dd8a", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_command.py", + "name": "docs/junipernetworks.junos.junos_ospf_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c70da07b11b558c26a13c7008ab3429e495610ef60c67515b7111d4f8619277", + "chksum_sha256": "6da3d02bfa0065ed2bf60e824dce71cc6dc497463834d076ffef3dfb81d58267", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_config.py", + "name": "docs/junipernetworks.junos.junos_security_policies_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c04df6a051d87635227fd91671b21878a95530026409d7a733bdae3e24d745c", + "chksum_sha256": "47c7313a45350d46a3207879849a7edbc352234fa5e1a1d0e5e98d87606834ef", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_facts.py", + "name": "docs/junipernetworks.junos.junos_lacp_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb48518e169120b21c92fa4ae9509ee6e079276081b8aa3f27cedfed6c56f296", + "chksum_sha256": "ffbeecae6323b644f732e52db7d332c214c506b2aa19148cf9dc0dba931a7b2f", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_hostname.py", + "name": "docs/junipernetworks.junos.junos_prefix_lists_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb1d2e7cae039c517d42c1e1d328ce004f7a9c78cb3bfcdde3dabc60bbf161a0", + "chksum_sha256": "f4eced326ba76538041bf131b2a3d3943c8669ea70a7d815de198f1b0bc9bf49", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_interfaces.py", + "name": "docs/junipernetworks.junos.junos_ospfv3_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f40160461ea0bcdb7f51bb5edf100040256708f88da5b751e761748f9b1badc2", + "chksum_sha256": "a650d32f15db73b74f7e20214910a331e2e7f2fb2462e1ce8fb06466b32801e4", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_l2_interfaces.py", + "name": "docs/junipernetworks.junos.junos_security_policies_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65dae46ea6443a633b674ab54976814816ecf737d43e9939208cc8696eca1653", + "chksum_sha256": "b81dd1c97963377c1dba6b703821ed668395028d7e73b6f34db98d5b7fe29c09", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_l3_interfaces.py", + "name": "docs/junipernetworks.junos.junos_banner_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d2db61567220c96e4887bd3383d25631bd759b0e22757e2b1a8c27aa1d0f214", + "chksum_sha256": "bbdbf43cc2c8724c1a66127fcf74ee0ab928cd8633a2ddfe9650573628ef5f2d", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_logging_global.py", + "name": "docs/junipernetworks.junos.junos_logging_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dad36e0bafdcec3bde8808b305f972f1a2e19cddd5b4ebcb1bd65d1097ab4490", + "chksum_sha256": "f763a82d4c20f1c993e7f74d86b2b95776876edcb8aea75da1a9f4fc2703464a", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_netconf.py", + "name": "docs/junipernetworks.junos.junos_facts_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a29f9911e1470e60e2a71bc7f5f65670ee8d43645c30307ebd3d52e1fb379a44", + "chksum_sha256": "e9ececb593dd9136f764612c8cb554cee711dcfe27a8f19881cc0337f76571ab", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_ntp_global.py", + "name": "docs/junipernetworks.junos.junos_ping_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2dc3549e0cfdb401166bc9c3a112a7202ad0ed55f340fef23d795db97ada6445", + "chksum_sha256": "ff706f3ef5240227e799bf098f4b56bbc5eb6b01bb87ba8392e7ea15a87372bd", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_ospf_interfaces.py", + "name": "docs/junipernetworks.junos.junos_lacp_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "987a7c3d65d856973d8c775225d23da22b5cdfe2ebf4aef39300b177f57f45a7", + "chksum_sha256": "0532794a875b1d401e0094762cf6feed20ef030a7029d84871dd4f0c390b37fe", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_ospfv2.py", + "name": "docs/junipernetworks.junos.junos_logging_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a01882bb3e0affc221f1d9897a829e9452dda377d08f7891d0536dab2dbf258c", + "chksum_sha256": "f1475a33fa62807e09b4d03f83ab453e7b37f390cd1a2b31e3f72f1eb030d7b0", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_ospfv3.py", + "name": "docs/junipernetworks.junos.junos_static_routes_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c18092423be656b5cffe58eec3ddab5cd245c78815c50a49a810d910945e91ec", + "chksum_sha256": "d68f20c26bc65ccd116efbcb04180adc5a141787d7ee60153d5ae8ff7f93c624", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_package.py", + "name": "docs/junipernetworks.junos.junos_netconf_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "636f74687ca332cbf37f8e73b8a9539137b88496406f56a2f54ff15d054880f8", + "chksum_sha256": "ee525c5a38123911d4e47ea6a316ec446ba36a5a59b28476cedc6c097ab3e691", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_ping.py", + "name": "docs/junipernetworks.junos.junos_rpc_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "598585442aa7c45c51a328d1767bdfe554b9efa0f88108312699c597e1860f57", + "chksum_sha256": "82b147bd7ec071bb0703718174ecd74576e9105a7f397c0edbca1e408dfdda00", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_prefix_lists.py", + "name": "docs/junipernetworks.junos.junos_routing_instances_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "444602e7a299d6b905bfdb9704682185ee37c0d3b3cf8ca79fc33bf5b1f094db", + "chksum_sha256": "53a67c02be94bbc8b0b35faecf99d7ff076a1457e85f9fa16d060ae2d59ce289", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_routing_instances.py", + "name": "docs/junipernetworks.junos.junos_user_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f57731c928380c9a8ca2f09710f64f5c147809f9e8e9e766dd760a6e9146ba26", + "chksum_sha256": "03ea649e081efdde592357ee35447384128fc5048912562ecc329e2c5525566b", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_routing_options.py", + "name": "docs/junipernetworks.junos.junos_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "66303035081d82b0e2eae079f9a826d5be699cdf4485381c012431dfb77a50d5", + "chksum_sha256": "60f7bf31a86baf8e03946528a413476991a0d4745ebd7e47ae64e20a68fbc7e0", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_rpc.py", + "name": "docs/junipernetworks.junos.junos_lldp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3103e9de544000bef5c79f6651f606ccadcaf50a2b69e207ae8e061753ca58da", + "chksum_sha256": "a70269e3652b27a94dab6c442a114fed0cd552dc79ff2699c824f7b2ed354efc", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_scp.py", + "name": "docs/junipernetworks.junos.junos_security_zones_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab3e6ec24e41150cc7b2951f78cec58407ab5a3287b64b440c8753c4331c9f61", + "chksum_sha256": "84470a721603716fc9f96148a70ef6a6cfafc230b4b0862175366d0d743fbac1", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_security_policies.py", + "name": "docs/junipernetworks.junos.junos_command_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "98a264edcad364a4ca192308e96c05a873ff546362f2ca392b6e740ea9ee6700", + "chksum_sha256": "39f5d111cb71f425c44278a9f0c1bbfbe16d311c794a98d06c36fadf22a94265", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_security_policies_global.py", + "name": "docs/junipernetworks.junos.junos_netconf.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "026e23b951c6f79e30b389efad8874eb4c59f751829e5df870f489e12567383b", + "chksum_sha256": "14b028e7197d8b36e5548a189873cac83617ed127d11284f4ab557203b0d7f88", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_security_zones.py", + "name": "docs/junipernetworks.junos.junos_vrf_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3f42b1bc1079f7c4e0eeb0e653400fbb2be7876cd91210d97004bb7b3646f2f9", + "chksum_sha256": "3c37761090a81cc597a23d31e0202da7c6803ba70b9dfb54db87f17a05717d67", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_snmp_server.py", + "name": "docs/junipernetworks.junos.junos_config_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e626450c1b90596bc64228331a14c7eddaa1a25dc8bb85c300b8dfe73d1e9bfb", + "chksum_sha256": "9216d75e7c90d93153752899275ca7e6717403c54fda6df5c71c36df21875b22", "format": 1 }, { - "name": "tests/unit/modules/network/junos/test_junos_vlans.py", + "name": "docs/junipernetworks.junos.junos_bgp_address_family_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "623946836ebc7547eea1151c17dc3baf22214108db1c339ffa0936e75eb3b002", + "chksum_sha256": "0f3eb30b2db1124c4139d7fba1ad18cfb1ce8be2d4b052fb89cebfb961963eb3", "format": 1 }, { - "name": "tests/unit/modules/network/__init__.py", + "name": "docs/junipernetworks.junos.junos_system_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "284394786b5d048e1f6833dd1581437e69edfd3e9012b87ace78b500dfe7884c", "format": 1 }, { - "name": "tests/unit/modules/__init__.py", + "name": ".isort.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9a0037e12d4e5d11a360d4522e64be506299bad16812825ebd7b5f0be9918524", "format": 1 }, { - "name": "tests/unit/modules/conftest.py", + "name": "pyproject.toml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0ae70fa7c2a5e56d7f02a47c3602398cff60c8eb021772ac59a76df2a234048", + "chksum_sha256": "1cb6a45dfa2625123890b93ad7fdc156b063c16e8ae6dba11511a1d1986b0fcc", "format": 1 }, { - "name": "tests/unit/modules/utils.py", + "name": "bindep.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6e21e604a63f7e84baf5dc408224b29638864242d11c0ccac4e56a8e2f1f5d15", + "chksum_sha256": "600b108016611a2a846e0ed86f52da6a9184cddea7e4b6859ffdf2aa5a9af19b", "format": 1 }, { - "name": "tests/unit/plugins", + "name": "changelogs", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/terminal", + "name": "changelogs/fragments", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/terminal/__init__.py", + "name": "changelogs/fragments/.keep", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/plugins/terminal/test_junos.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0c1a68c4e3aa8f143a63f903461ac72b7db68911ec8800961455f6d68c5c7ffb", - "format": 1 - }, - { - "name": "tests/unit/plugins/__init__.py", + "name": "changelogs/config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5cfa2df4e55abdedbdf6786d3152af410249523c96a41f89a34be3510af3395e", "format": 1 }, { - "name": "tests/unit/__init__.py", + "name": "changelogs/changelog.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8523dd9b7099cc44e9350fe1bca05f7725558c72eff3ceaa277a827566aae9f2", "format": 1 }, { - "name": "tests/unit/requirements.txt", + "name": "tox.ini", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49ba996dc4735c3463e9af561344346dfae14bcc1a68096ce78364b377f0df1f", + "chksum_sha256": "5f3772a197ba80e8bd7dfd59cf18c30f081e1247f42ea7e20dc1e8df3b06c184", "format": 1 }, { - "name": "tests/.gitignore", + "name": "CHANGELOG.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600", + "chksum_sha256": "9a2c1afa7d6f2bd436195a262607daeb9ddcff82bcdff3bc3499a229eb1c0fd8", "format": 1 }, { @@ -9073,17 +9164,10 @@ "format": 1 }, { - "name": ".isort.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9a0037e12d4e5d11a360d4522e64be506299bad16812825ebd7b5f0be9918524", - "format": 1 - }, - { "name": ".pre-commit-config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eaadf8ea95a4ab3a0e1814a796fbdf55a375a6e4d687357b410f6d3ba198538a", + "chksum_sha256": "08940a10222925e0f47d36e2457f1b3e7045ed20b4e72989208b83cda88a2c25", "format": 1 }, { @@ -9094,66 +9178,66 @@ "format": 1 }, { - "name": ".yamllint", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "827ef9e031ecdcaf137be239d33ef93fcbbc3611cbb6b30b0e507d0e03373d0e", + "name": ".github", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "CHANGELOG.rst", + "name": ".github/dependabot.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8fd210f0eea19fa65b20868dc9c3d9f5e877313dd10179e5186868ece3b5effe", + "chksum_sha256": "11ceee3c57116e9fd08bc423414b1095ff002aa012d6fb325b1a7e24d7e28461", "format": 1 }, { - "name": "LICENSE", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "name": ".github/workflows", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "README.md", + "name": ".github/workflows/codecoverage.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc9ad230457364f5690251a39d3cfba82cce3a647a11bc2cdd960851e211168f", + "chksum_sha256": "a56c8aba05b81d2e1d6575b37963f40df663387030de5eaac6f5c9dfd7af54f1", "format": 1 }, { - "name": "bindep.txt", + "name": ".github/workflows/ack.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "600b108016611a2a846e0ed86f52da6a9184cddea7e4b6859ffdf2aa5a9af19b", + "chksum_sha256": "24c6fbafaa69e3e3ee696f2cefa5120794b62cef7e870553dddce8b8af0a127c", "format": 1 }, { - "name": "pyproject.toml", + "name": ".github/workflows/release.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1cb6a45dfa2625123890b93ad7fdc156b063c16e8ae6dba11511a1d1986b0fcc", + "chksum_sha256": "c9b7dba505905600bbb9f0d8e9956b7cc20f80edfa742dfdae9395542f417aa1", "format": 1 }, { - "name": "requirements.txt", + "name": ".github/workflows/push.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72120963f8c7e635d07e9383be6e58963fe00d8496e6545facd7e00082a4351b", + "chksum_sha256": "ae51ce2e47c0569a12eed22cec3fcf7f609e44fc8d75ad67e076770717adfd2f", "format": 1 }, { - "name": "test-requirements.txt", + "name": ".github/workflows/tests.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "252dc496236f786a9c503a0e569eff6990316b93d55bd58bf4a34cde2404c59a", + "chksum_sha256": "171f96988e94904529bd337341a93ebb689e4a220663260d5cc0839aac584d21", "format": 1 }, { - "name": "tox.ini", + "name": ".github/release-drafter.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5f3772a197ba80e8bd7dfd59cf18c30f081e1247f42ea7e20dc1e8df3b06c184", + "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", "format": 1 } ], diff --git a/ansible_collections/junipernetworks/junos/MANIFEST.json b/ansible_collections/junipernetworks/junos/MANIFEST.json index 0338c6fc5..778cc30f6 100644 --- a/ansible_collections/junipernetworks/junos/MANIFEST.json +++ b/ansible_collections/junipernetworks/junos/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "junipernetworks", "name": "junos", - "version": "4.1.0", + "version": "5.3.1", "authors": [ "Ansible Network Community (ansible-network)" ], @@ -30,7 +30,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ffffaeac4412a002d1af36f146718deb19ba63e1636aa586c41a20d33fe9ff8e", + "chksum_sha256": "ceb92f0594402948a6a16ec8c3b6cc0f3a38433e1e96efed3abb5c3a7730af25", "format": 1 }, "format": 1 diff --git a/ansible_collections/junipernetworks/junos/README.md b/ansible_collections/junipernetworks/junos/README.md index 038390ef1..c0d2a7014 100644 --- a/ansible_collections/junipernetworks/junos/README.md +++ b/ansible_collections/junipernetworks/junos/README.md @@ -1,6 +1,8 @@ # Juniper Networks Junos Collection [![CI](https://zuul-ci.org/gated.svg)](https://dashboard.zuul.ansible.com/t/ansible/project/github.com/ansible-collections/junipernetworks.junos) <!--[![Codecov](https://img.shields.io/codecov/c/github/ansible-collections/vyos)](https://codecov.io/gh/ansible-collections/junipernetworks.junos)--> +[![Codecov](https://codecov.io/gh/ansible-collections/junipernetworks.junos/branch/main/graph/badge.svg)](https://codecov.io/gh/ansible-collections/junipernetworks.junos) +[![CI](https://github.com/ansible-collections/junipernetworks.junos/actions/workflows/tests.yml/badge.svg?branch=main&event=schedule)](https://github.com/ansible-collections/junipernetworks.junos/actions/workflows/tests.yml) The Ansible Juniper Networks Junos collection includes a variety of Ansible content to help automate the management of Juniper Networks Junos network appliances. diff --git a/ansible_collections/junipernetworks/junos/changelogs/changelog.yaml b/ansible_collections/junipernetworks/junos/changelogs/changelog.yaml index 518dfa5a7..d7b1308e0 100644 --- a/ansible_collections/junipernetworks/junos/changelogs/changelog.yaml +++ b/ansible_collections/junipernetworks/junos/changelogs/changelog.yaml @@ -464,3 +464,115 @@ releases: - logging_global_size.yaml - update_trivial_changes.yaml release_date: "2022-11-30" + 5.0.0: + changes: + bugfixes: + - enable provider support for junos_scp and junos_package. + - fix diff to result when prepared diff exists. + - fix junos_security_zones facts gathering when we have single interface configured. + - revert diff mode to default. + major_changes: + - change gathered key from junos_acls to acls + fragments: + - bug_fix_for_security_zones_facts.yaml + - fix_trivial_issues.yaml + - junos_acls_gathered_key_fix.yaml + - prepared_diff_fix.yaml + - provider_support_for_legacy_modules.yaml + - reboot_task_tag.yaml + - rollback_diffmode.yaml + - update_bgp_global_fqcn.yaml + - update_reboot_timer.yaml + release_date: "2023-02-28" + 5.1.0: + changes: + bugfixes: + - Fix enabled attribute implementation. + - Fix lldp_global_assertion. + - Fix sanity issues. + - Fix the snmp view and traps configuration. + - fix the implementation of disabling interface. + - module should return with failure when rollback is 0 and device is not reachable. + doc_changes: + - Update bgp_address_family docs with examples. + - Update bgp_global docs with examples. + - junos_interfaces - Updated documentation with examples and task output. + - junos_static_routes - add task output to module documentation examples. (https://github.com/ansible-collections/junipernetworks.junos/pull/402). + minor_changes: + - Adding unlink option to junos package installation. + fragments: + - boolean_normalization.yaml + - ci_codecov.yaml + - codecov_fix.yml + - fix_docs_static_route.yaml + - fix_downstream.yaml + - fix_downstream_testing_issues.yaml + - fix_enabling.yaml + - fix_lldp_global_assertion.yaml + - fix_snmp_traps_and_view.yaml + - gha_workflow_fix.yml + - junos_cofig_rollback_fix.yaml + - lldp_global_test_update.yaml + - package_unlink.yaml + - update_bgp_address_family_docs.yaml + - update_bgp_global_docs.yaml + - update_inft_docs.yaml + - update_timeout.yaml + release_date: "2023-04-28" + 5.2.0: + changes: + deprecated_features: + - "`junos_ospfv2` - add deprecate warning for area_range." + - add deprecate warning for junos_acl_interfaces key for junos facts results. + doc_changes: + - Update examples for junos_ospfv3 + minor_changes: + - "`junos_ospfv2` - Fix the authentication config when password is configured" + - "`junos_ospfv2` - Rename key ospf to ospfv2 in facts." + - "`junos_ospfv2` - add area_ranges attribute which supports list of dict attributes." + - "`junos_ospfv2` - add attributes `allow_route_leaking`, `stub_network` and + `as-external` to overload dict." + - "`junos_ospfv2` - add attributes `no_ignore_out_externals` to spf_options + dict." + - "`junos_ospfv2` - fix to gather reference_bandwidth and rfc1583compatibility." + - add acl_interfaces key for junos_facts output. + fragments: + - add_gha_periodic.yaml + - deprecate_junos_acl_interafaces_facts_key.yaml + - gha_release.yml + - junos_ospfv2_fixes.yaml + - junos_ospfv3_health_check.yaml + - lint.yaml + release_date: "2023-07-05" + 5.3.0: + changes: + bugfixes: + - fix `no_advertise_adjacency_segment` config implementation. + - fix `no_eligible_backup` config implementation. + - fix `no_eligible_remote_backup` config implementation. + - fix `no_interface_state_traps` config implementation. + - fix `no_neighbor_down_notification` config implementation. + - fix `node_link_protection` implementation. + - fix md5 authentication which allows list of keys to be configured. + minor_changes: + - add overridden state opperation support. + fragments: + - bgp_global_tests_fix.yaml + - codecov_pr.yml + - overridden_support.yaml + release_date: "2023-09-06" + 5.3.1: + changes: + bugfixes: + - fix to gather l2_interfaces facts with default port-mode access. + doc_changes: + - Improve docs of prefix-lists RM. + - ios_l2_interfaces - Fixed module documentation and examples. + - ios_l3_interfaces - Fixed module documentation and examples. + fragments: + - default_mode_l2_interfaces.yaml + - fix_prefix_lists_docs.yaml + - lint_fixtures.yaml + - sanity_job_fix.yaml + - update_l2_3_docs.yaml + release_date: "2023-11-27" diff --git a/ansible_collections/junipernetworks/junos/codecov.yml b/ansible_collections/junipernetworks/junos/codecov.yml new file mode 100644 index 000000000..c77c91a90 --- /dev/null +++ b/ansible_collections/junipernetworks/junos/codecov.yml @@ -0,0 +1,15 @@ +--- +codecov: + require_ci_to_pass: true +comment: + layout: " diff, flags, files" + behavior: default + require_changes: false + require_base: false + require_head: true +coverage: + status: + patch: false + project: + default: + threshold: 0.3% diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_acl_interfaces_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_acl_interfaces_module.rst index 55faeffc0..e5e04b215 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_acl_interfaces_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_acl_interfaces_module.rst @@ -254,15 +254,15 @@ Examples - name: Delete JUNOS L3 interface filter junipernetworks.junos.junos_acl_interfaces: config: - - name: ge-1/0/0 - access_groups: - - afi: ipv4 - acls: - - name: inbound_acl - direction: in - - name: outbound_acl - direction: out - state: deleted + - name: ge-1/0/0 + access_groups: + - afi: ipv4 + acls: + - name: inbound_acl + direction: in + - name: outbound_acl + direction: out + state: deleted # After state: # ------------- @@ -298,15 +298,15 @@ Examples - name: Merge JUNOS L3 interface filter junipernetworks.junos.junos_acl_interfaces: config: - - name: ge-1/0/0 - access_groups: - - afi: ipv4 - acls: - - name: inbound_acl - direction: in - - name: outbound_acl - direction: out - state: merged + - name: ge-1/0/0 + access_groups: + - afi: ipv4 + acls: + - name: inbound_acl + direction: in + - name: outbound_acl + direction: out + state: merged # After state: # ------------- @@ -349,15 +349,15 @@ Examples - name: Override JUNOS L3 interface filter junipernetworks.junos.junos_acl_interfaces: config: - - name: ge-1/0/0 - access_groups: - - afi: ipv4 - acls: - - name: inbound_acl - direction: in - - name: outbound_acl - direction: out - state: overridden + - name: ge-1/0/0 + access_groups: + - afi: ipv4 + acls: + - name: inbound_acl + direction: in + - name: outbound_acl + direction: out + state: overridden # After state: # ------------- @@ -401,13 +401,13 @@ Examples - name: Replace JUNOS L3 interface filter junipernetworks.junos.junos_acl_interfaces: config: - - name: ge-1/0/0 - access_groups: - - afi: ipv4 - acls: - - name: inbound_acl - direction: in - state: replaced + - name: ge-1/0/0 + access_groups: + - afi: ipv4 + acls: + - name: inbound_acl + direction: in + state: replaced # After state: # ------------- diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_acls_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_acls_module.rst index 610cb3d77..ea8584d2d 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_acls_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_acls_module.rst @@ -1171,16 +1171,16 @@ Examples - name: Merge JUNOS acl junipernetworks.junos.junos_acls: config: - - afi: ipv4 - acls: - - name: allow_ssh_acl - aces: - - name: ssh_rule - source: - port_protocol: - eq: ssh - protocol: tcp - state: merged + - afi: ipv4 + acls: + - name: allow_ssh_acl + aces: + - name: ssh_rule + source: + port_protocol: + eq: ssh + protocol: tcp + state: merged # After state: # ------------- diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_bgp_address_family_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_bgp_address_family_module.rst index 992887a17..d0915c0db 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_bgp_address_family_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_bgp_address_family_module.rst @@ -6148,6 +6148,90 @@ Examples graceful_restart_forwarding_state_bit: 'from-fib' state: merged + # Task Output: + # ------------ + # + # before: {} + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:family><nc:evpn><nc:signaling> + # <nc:accepted-prefix-limit><nc:maximum>20</nc:maximum><nc:teardown><nc:limit-threshold>98</nc:limit-threshold> + # <nc:idle-timeout><nc:timeout>2001</nc:timeout></nc:idle-timeout></nc:teardown></nc:accepted-prefix-limit> + # <nc:damping/><nc:defer-initial-multipath-build><nc:maximum-delay>2</nc:maximum-delay> + # </nc:defer-initial-multipath-build></nc:signaling></nc:evpn><nc:inet><nc:flow><nc:legacy-redirect-ip-action> + # <nc:send/><nc:receive/></nc:legacy-redirect-ip-action><nc:loops>4</nc:loops><nc:no-install/> + # <nc:output-queue-priority><nc:expedited/></nc:output-queue-priority><nc:secondary-independent-resolution/> + # </nc:flow><nc:unicast><nc:extended-nexthop/><nc:extended-nexthop-color/><nc:local-ipv4-address>9.9.9.9</nc:local-ipv4-address> + # </nc:unicast><nc:labeled-unicast><nc:entropy-label><nc:no-next-hop-validation/></nc:entropy-label> + # <nc:explicit-null><nc:connected-only/></nc:explicit-null><nc:per-prefix-label/><nc:per-group-label/> + # <nc:prefix-limit><nc:maximum>20</nc:maximum><nc:teardown>99<nc:idle-timeout><nc:forever/></nc:idle-timeout> + # </nc:teardown></nc:prefix-limit><nc:resolve-vpn/><nc:rib><nc:inet.3/></nc:rib><nc:route-refresh-priority> + # <nc:expedited/><nc:priority>3</nc:priority></nc:route-refresh-priority></nc:labeled-unicast><nc:any> + # <nc:accepted-prefix-limit><nc:maximum>20</nc:maximum><nc:teardown><nc:limit-threshold>99</nc:limit-threshold> + # <nc:idle-timeout><nc:timeout>2000</nc:timeout></nc:idle-timeout></nc:teardown></nc:accepted-prefix-limit> + # <nc:damping/><nc:defer-initial-multipath-build><nc:maximum-delay>2</nc:maximum-delay></nc:defer-initial-multipath-build> + # <nc:delay-route-advertisements><nc:maximum-delay><nc:route-age>20</nc:route-age><nc:routing-uptime>32000</nc:routing-uptime> + # </nc:maximum-delay><nc:minimum-delay><nc:inbound-convergence>32000</nc:inbound-convergence> + # <nc:routing-uptime>23000</nc:routing-uptime></nc:minimum-delay></nc:delay-route-advertisements><nc:graceful-restart> + # <nc:forwarding-state-bit>from-fib</nc:forwarding-state-bit></nc:graceful-restart></nc:any></nc:inet></nc:family> + # </nc:bgp></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> + # + # after: + # address_family: + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2001 + # limit_threshold: 98 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # type: signaling + # afi: evpn + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2000 + # limit_threshold: 99 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # delay_route_advertisements: + # max_delay_route_age: 20 + # max_delay_routing_uptime: 32000 + # min_delay_inbound_convergence: 32000 + # min_delay_routing_uptime: 23000 + # graceful_restart_forwarding_state_bit: from-fib + # type: any + # - legacy_redirect_ip_action: + # receive: true + # send: true + # loops: 4 + # no_install: true + # output_queue_priority_expedited: true + # secondary_independent_resolution: true + # type: flow + # - entropy_label: + # no_next_hop_validation: true + # explicit_null: + # connected_only: true + # per_group_label: true + # per_prefix_label: true + # prefix_limit: + # forever: true + # limit_threshold: 99 + # maximum: 20 + # resolve_vpn: true + # rib: inet.3 + # route_refresh_priority_priority: 3 + # type: labeled-unicast + # - extended_nexthop: true + # extended_nexthop_color: true + # local_ipv4_address: 9.9.9.9 + # type: unicast + # afi: inet + # After state # ----------- # @@ -6221,6 +6305,8 @@ Examples # } # } # } + + # # Using replaced # # Before state @@ -6310,38 +6396,154 @@ Examples - name: Replace existing Junos BGP address family config with provided config junipernetworks.junos.junos_bgp_address_family: - config: - address_family: - - afi: 'evpn' - af_type: - - type: 'signaling' - accepted_prefix_limit: - maximum: 21 - limit_threshold: 99 - idle_timeout_value: 2002 - delay_route_advertisements: - max_delay_route_age: 20 - max_delay_routing_uptime: 32000 - min_delay_inbound_convergence: 32000 - min_delay_routing_uptime: 23000 - damping: true - state: replaced + config: + address_family: + - afi: 'evpn' + af_type: + - type: 'signaling' + accepted_prefix_limit: + maximum: 21 + limit_threshold: 99 + idle_timeout_value: 2002 + delay_route_advertisements: + max_delay_route_age: 20 + max_delay_routing_uptime: 32000 + min_delay_inbound_convergence: 32000 + min_delay_routing_uptime: 23000 + damping: true + state: replaced + # Task Output: + # ------------ + # + # before: + # address_family: + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2001 + # limit_threshold: 98 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # type: signaling + # afi: evpn + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2000 + # limit_threshold: 99 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # delay_route_advertisements: + # max_delay_route_age: 20 + # max_delay_routing_uptime: 32000 + # min_delay_inbound_convergence: 32000 + # min_delay_routing_uptime: 23000 + # graceful_restart_forwarding_state_bit: from-fib + # type: any + # - legacy_redirect_ip_action: + # receive: true + # send: true + # loops: 4 + # no_install: true + # output_queue_priority_expedited: true + # secondary_independent_resolution: true + # type: flow + # - entropy_label: + # no_next_hop_validation: true + # explicit_null: + # connected_only: true + # per_group_label: true + # per_prefix_label: true + # prefix_limit: + # forever: true + # limit_threshold: 99 + # maximum: 20 + # resolve_vpn: true + # rib: inet.3 + # route_refresh_priority_priority: 3 + # type: labeled-unicast + # - extended_nexthop: true + # extended_nexthop_color: true + # local_ipv4_address: 9.9.9.9 + # type: unicast + # afi: inet + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:family> + # <nc:evpn delete="delete"/></nc:family><nc:family><nc:evpn><nc:signaling><nc:accepted-prefix-limit> + # <nc:maximum>21</nc:maximum><nc:teardown><nc:limit-threshold>99</nc:limit-threshold><nc:idle-timeout> + # <nc:timeout>2002</nc:timeout></nc:idle-timeout></nc:teardown></nc:accepted-prefix-limit><nc:damping/> + # <nc:delay-route-advertisements><nc:maximum-delay><nc:route-age>20</nc:route-age> + # <nc:routing-uptime>32000</nc:routing-uptime></nc:maximum-delay><nc:minimum-delay> + # <nc:inbound-convergence>32000</nc:inbound-convergence><nc:routing-uptime>23000</nc:routing-uptime> + # </nc:minimum-delay></nc:delay-route-advertisements></nc:signaling></nc:evpn></nc:family></nc:bgp></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> + # + # after: + # address_family: + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2002 + # limit_threshold: 99 + # maximum: 21 + # damping: true + # delay_route_advertisements: + # max_delay_route_age: 20 + # max_delay_routing_uptime: 32000 + # min_delay_inbound_convergence: 32000 + # min_delay_routing_uptime: 23000 + # type: signaling + # afi: evpn + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2000 + # limit_threshold: 99 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # delay_route_advertisements: + # max_delay_route_age: 20 + # max_delay_routing_uptime: 32000 + # min_delay_inbound_convergence: 32000 + # min_delay_routing_uptime: 23000 + # graceful_restart_forwarding_state_bit: from-fib + # type: any + # - legacy_redirect_ip_action: + # receive: true + # send: true + # loops: 4 + # no_install: true + # output_queue_priority_expedited: true + # secondary_independent_resolution: true + # type: flow + # - entropy_label: + # no_next_hop_validation: true + # explicit_null: + # connected_only: true + # per_group_label: true + # per_prefix_label: true + # prefix_limit: + # forever: true + # limit_threshold: 99 + # maximum: 20 + # resolve_vpn: true + # rib: inet.3 + # route_refresh_priority_priority: 3 + # type: labeled-unicast + # - extended_nexthop: true + # extended_nexthop_color: true + # local_ipv4_address: 9.9.9.9 + # type: unicast + # afi: inet + # # After state # ----------- # # admin# show protocols bgp - # preference 2; - # hold-time 5; - # advertise-inactive; - # out-delay 10; - # bgp-error-tolerance { - # malformed-route-limit 40000000; - # } - # authentication-algorithm md5; - # advertise-bgp-static { - # policy static-to-bgp; - # } # family inet { # unicast { # local-ipv4-address 9.9.9.9; @@ -6418,6 +6620,7 @@ Examples # } # } # } + # Using overridden # # Before state @@ -6496,23 +6699,96 @@ Examples - name: Override Junos BGP address family config junipernetworks.junos.junos_bgp_address_family: - config: - address_family: - - afi: 'evpn' - af_type: - - type: 'signaling' - accepted_prefix_limit: - maximum: 21 - limit_threshold: 99 - idle_timeout_value: 2002 - delay_route_advertisements: - max_delay_route_age: 20 - max_delay_routing_uptime: 32000 - min_delay_inbound_convergence: 32000 - min_delay_routing_uptime: 23000 - damping: true - state: overridden + config: + address_family: + - afi: 'evpn' + af_type: + - type: 'signaling' + accepted_prefix_limit: + maximum: 21 + limit_threshold: 99 + idle_timeout_value: 2002 + delay_route_advertisements: + max_delay_route_age: 20 + max_delay_routing_uptime: 32000 + min_delay_inbound_convergence: 32000 + min_delay_routing_uptime: 23000 + damping: true + state: overridden + # Task Output: + # ------------ + # + # before: + # address_family: + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2002 + # limit_threshold: 99 + # maximum: 21 + # damping: true + # delay_route_advertisements: + # max_delay_route_age: 20 + # max_delay_routing_uptime: 32000 + # min_delay_inbound_convergence: 32000 + # min_delay_routing_uptime: 23000 + # type: signaling + # afi: evpn + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2000 + # limit_threshold: 99 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # delay_route_advertisements: + # max_delay_route_age: 20 + # max_delay_routing_uptime: 32000 + # min_delay_inbound_convergence: 32000 + # min_delay_routing_uptime: 23000 + # graceful_restart_forwarding_state_bit: from-fib + # type: any + # - legacy_redirect_ip_action: + # receive: true + # send: true + # loops: 4 + # no_install: true + # output_queue_priority_expedited: true + # secondary_independent_resolution: true + # type: flow + # - entropy_label: + # no_next_hop_validation: true + # explicit_null: + # connected_only: true + # per_group_label: true + # per_prefix_label: true + # prefix_limit: + # forever: true + # limit_threshold: 99 + # maximum: 20 + # resolve_vpn: true + # rib: inet.3 + # route_refresh_priority_priority: 3 + # type: labeled-unicast + # - extended_nexthop: true + # extended_nexthop_color: true + # local_ipv4_address: 9.9.9.9 + # type: unicast + # afi: inet + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:family> + # <nc:evpn delete="delete"/><nc:inet delete="delete"/></nc:family><nc:family><nc:evpn delete="delete"/> + # </nc:family><nc:family><nc:evpn><nc:signaling><nc:accepted-prefix-limit><nc:maximum>21</nc:maximum> + # <nc:teardown><nc:limit-threshold>99</nc:limit-threshold><nc:idle-timeout><nc:timeout>2002</nc:timeout> + # </nc:idle-timeout></nc:teardown></nc:accepted-prefix-limit><nc:damping/><nc:delay-route-advertisements> + # <nc:maximum-delay><nc:route-age>20</nc:route-age><nc:routing-uptime>32000</nc:routing-uptime> + # </nc:maximum-delay><nc:minimum-delay><nc:inbound-convergence>32000</nc:inbound-convergence> + # <nc:routing-uptime>23000</nc:routing-uptime></nc:minimum-delay></nc:delay-route-advertisements> + # </nc:signaling></nc:evpn></nc:family></nc:bgp></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> + # # After state # ----------- # @@ -6619,19 +6895,91 @@ Examples - name: Delete Junos BGP address family config based on the afi junipernetworks.junos.junos_bgp_address_family: - config: - address_family: - - afi: 'inet' - state: deleted + config: + address_family: + - afi: 'inet' + state: deleted + # Task Output: + # ------------ + # + # before: + # address_family: + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2001 + # limit_threshold: 98 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # type: signaling + # afi: evpn + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2000 + # limit_threshold: 99 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # delay_route_advertisements: + # max_delay_route_age: 20 + # max_delay_routing_uptime: 32000 + # min_delay_inbound_convergence: 32000 + # min_delay_routing_uptime: 23000 + # graceful_restart_forwarding_state_bit: from-fib + # type: any + # - legacy_redirect_ip_action: + # receive: true + # send: true + # loops: 4 + # no_install: true + # output_queue_priority_expedited: true + # secondary_independent_resolution: true + # type: flow + # - entropy_label: + # no_next_hop_validation: true + # explicit_null: + # connected_only: true + # per_group_label: true + # per_prefix_label: true + # prefix_limit: + # forever: true + # limit_threshold: 99 + # maximum: 20 + # resolve_vpn: true + # rib: inet.3 + # route_refresh_priority_priority: 3 + # type: labeled-unicast + # - extended_nexthop: true + # extended_nexthop_color: true + # local_ipv4_address: 9.9.9.9 + # type: unicast + # afi: inet + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp> + # <nc:family><nc:inet delete="delete"/></nc:family></nc:bgp></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> + # + # after: + # address_family: + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2001 + # limit_threshold: 98 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # type: signaling + # afi: evpn + # # After state # ----------- # # admin# show protocols bgp - # preference 2; - # hold-time 5; - # advertise-inactive; - # out-delay 10; # family evpn { # signaling { # accepted-prefix-limit { @@ -6651,10 +6999,6 @@ Examples # ------------ # # admin# show protocols bgp - # preference 2; - # hold-time 5; - # advertise-inactive; - # out-delay 10; # family inet { # unicast { # local-ipv4-address 9.9.9.9; @@ -6727,18 +7071,79 @@ Examples - name: Delete complete Junos BGP address family config junipernetworks.junos.junos_bgp_address_family: - config: - state: deleted + config: + state: deleted + + # Task Output: + # ------------ + # + # before: + # address_family: + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2001 + # limit_threshold: 98 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # type: signaling + # afi: evpn + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2000 + # limit_threshold: 99 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # delay_route_advertisements: + # max_delay_route_age: 20 + # max_delay_routing_uptime: 32000 + # min_delay_inbound_convergence: 32000 + # min_delay_routing_uptime: 23000 + # graceful_restart_forwarding_state_bit: from-fib + # type: any + # - legacy_redirect_ip_action: + # receive: true + # send: true + # loops: 4 + # no_install: true + # output_queue_priority_expedited: true + # secondary_independent_resolution: true + # type: flow + # - entropy_label: + # no_next_hop_validation: true + # explicit_null: + # connected_only: true + # per_group_label: true + # per_prefix_label: true + # prefix_limit: + # forever: true + # limit_threshold: 99 + # maximum: 20 + # resolve_vpn: true + # rib: inet.3 + # route_refresh_priority_priority: 3 + # type: labeled-unicast + # - extended_nexthop: true + # extended_nexthop_color: true + # local_ipv4_address: 9.9.9.9 + # type: unicast + # afi: inet + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:bgp><nc:family><nc:evpn delete="delete"/><nc:inet delete="delete"/> + # </nc:family></nc:bgp></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> + # + # after: {} # After state # ----------- # # admin# show protocols bgp - # preference 2; - # hold-time 5; - # advertise-inactive; - # out-delay 10; - + # # Using gathered # @@ -6746,10 +7151,6 @@ Examples # ------------ # # admin# show protocols bgp - # preference 2; - # hold-time 5; - # advertise-inactive; - # out-delay 10; # family inet { # unicast { # local-ipv4-address 9.9.9.9; @@ -6826,92 +7227,64 @@ Examples state: gathered # # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # "gathered": { - # "address_family": [ - # { - # "af_type": [ - # { - # "accepted_prefix_limit": { - # "idle_timeout_value": 2001, - # "limit_threshold": 98, - # "maximum": 20 - # }, - # "damping": true, - # "defer_initial_multipath_build": { - # "maximum_delay": 2 - # }, - # "type": "signaling" - # } - # ], - # "afi": "evpn" - # }, - # { - # "af_type": [ - # { - # "accepted_prefix_limit": { - # "idle_timeout_value": 2000, - # "limit_threshold": 99, - # "maximum": 20 - # }, - # "damping": true, - # "defer_initial_multipath_build": { - # "maximum_delay": 2 - # }, - # "delay_route_advertisements": { - # "max_delay_route_age": 20, - # "max_delay_routing_uptime": 32000, - # "min_delay_inbound_convergence": 32000, - # "min_delay_routing_uptime": 23000 - # }, - # "graceful_restart_forwarding_state_bit": "from-fib", - # "type": "any" - # }, - # { - # "legacy_redirect_ip_action": { - # "receive": true, - # "send": true - # }, - # "loops": 4, - # "no_install": true, - # "output_queue_priority_expedited": true, - # "secondary_independent_resolution": true, - # "type": "flow" - # }, - # { - # "entropy_label": { - # "no_next_hop_validation": true - # }, - # "explicit_null": { - # "connected_only": true - # }, - # "per_group_label": true, - # "per_prefix_label": true, - # "prefix_limit": { - # "forever": true, - # "limit_threshold": 99, - # "maximum": 20 - # }, - # "resolve_vpn": true, - # "rib": "inet.3", - # "route_refresh_priority_priority": 3, - # "type": "labeled-unicast" - # }, - # { - # "extended_nexthop": true, - # "extended_nexthop_color": true, - # "local_ipv4_address": "9.9.9.9", - # "type": "unicast" - # } - # ], - # "afi": "inet" - # } - # ] - # } + # Task Output: + # ------------ # + # gathered: + # address_family: + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2001 + # limit_threshold: 98 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # type: signaling + # afi: evpn + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2000 + # limit_threshold: 99 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # delay_route_advertisements: + # max_delay_route_age: 20 + # max_delay_routing_uptime: 32000 + # min_delay_inbound_convergence: 32000 + # min_delay_routing_uptime: 23000 + # graceful_restart_forwarding_state_bit: from-fib + # type: any + # - legacy_redirect_ip_action: + # receive: true + # send: true + # loops: 4 + # no_install: true + # output_queue_priority_expedited: true + # secondary_independent_resolution: true + # type: flow + # - entropy_label: + # no_next_hop_validation: true + # explicit_null: + # connected_only: true + # per_group_label: true + # per_prefix_label: true + # prefix_limit: + # forever: true + # limit_threshold: 99 + # maximum: 20 + # resolve_vpn: true + # rib: inet.3 + # route_refresh_priority_priority: 3 + # type: labeled-unicast + # - extended_nexthop: true + # extended_nexthop_color: true + # local_ipv4_address: 9.9.9.9 + # type: unicast + # afi: inet + # Using parsed # parsed.cfg # ------------ @@ -7055,96 +7428,66 @@ Examples running_config: "{{ lookup('file', './parsed.cfg') }}" state: parsed # + # Task Output: + # ------------ # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # - # "parsed": { - # "address_family": [ - # { - # "af_type": [ - # { - # "accepted_prefix_limit": { - # "idle_timeout_value": 2001, - # "limit_threshold": 98, - # "maximum": 20 - # }, - # "damping": true, - # "defer_initial_multipath_build": { - # "maximum_delay": 2 - # }, - # "type": "signaling" - # } - # ], - # "afi": "evpn" - # }, - # { - # "af_type": [ - # { - # "accepted_prefix_limit": { - # "idle_timeout_value": 2000, - # "limit_threshold": 99, - # "maximum": 20 - # }, - # "damping": true, - # "defer_initial_multipath_build": { - # "maximum_delay": 2 - # }, - # "delay_route_advertisements": { - # "max_delay_route_age": 20, - # "max_delay_routing_uptime": 32000, - # "min_delay_inbound_convergence": 32000, - # "min_delay_routing_uptime": 23000 - # }, - # "graceful_restart_forwarding_state_bit": "from-fib", - # "type": "any" - # }, - # { - # "legacy_redirect_ip_action": { - # "receive": true, - # "send": true - # }, - # "loops": 4, - # "no_install": true, - # "output_queue_priority_expedited": true, - # "secondary_independent_resolution": true, - # "type": "flow" - # }, - # { - # "entropy_label": { - # "no_next_hop_validation": true - # }, - # "explicit_null": { - # "connected_only": true - # }, - # "per_group_label": true, - # "per_prefix_label": true, - # "prefix_limit": { - # "forever": true, - # "limit_threshold": 99, - # "maximum": 20 - # }, - # "resolve_vpn": true, - # "rib": "inet.3", - # "route_refresh_priority_priority": 3, - # "type": "labeled-unicast" - # }, - # { - # "extended_nexthop": true, - # "extended_nexthop_color": true, - # "local_ipv4_address": "9.9.9.9", - # "type": "unicast" - # } - # ], - # "afi": "inet" - # } - # ] - # } + # parsed: + # address_family: + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2001 + # limit_threshold: 98 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # type: signaling + # afi: evpn + # - af_type: + # - accepted_prefix_limit: + # idle_timeout_value: 2000 + # limit_threshold: 99 + # maximum: 20 + # damping: true + # defer_initial_multipath_build: + # maximum_delay: 2 + # delay_route_advertisements: + # max_delay_route_age: 20 + # max_delay_routing_uptime: 32000 + # min_delay_inbound_convergence: 32000 + # min_delay_routing_uptime: 23000 + # graceful_restart_forwarding_state_bit: from-fib + # type: any + # - legacy_redirect_ip_action: + # receive: true + # send: true + # loops: 4 + # no_install: true + # output_queue_priority_expedited: true + # secondary_independent_resolution: true + # type: flow + # - entropy_label: + # no_next_hop_validation: true + # explicit_null: + # connected_only: true + # per_group_label: true + # per_prefix_label: true + # prefix_limit: + # forever: true + # limit_threshold: 99 + # maximum: 20 + # resolve_vpn: true + # rib: inet.3 + # route_refresh_priority_priority: 3 + # type: labeled-unicast + # - extended_nexthop: true + # extended_nexthop_color: true + # local_ipv4_address: 9.9.9.9 + # type: unicast + # afi: inet + # Using rendered # - # - name: Render the commands for provided configuration junipernetworks.junos.junos_bgp_address_family: config: @@ -7207,14 +7550,10 @@ Examples graceful_restart_forwarding_state_bit: 'from-fib' state: rendered + # Task Output: + # ------------ # - # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # - # "rendered": "<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # rendered: "<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> # <nc:bgp><nc:family><nc:evpn><nc:signaling><nc:accepted-prefix-limit><nc:maximum>20</nc:maximum> # <nc:teardown><nc:limit-threshold>98</nc:limit-threshold><nc:idle-timeout><nc:timeout>2001</nc:timeout> # </nc:idle-timeout></nc:teardown></nc:accepted-prefix-limit><nc:damping/><nc:defer-initial-multipath-build> @@ -7308,6 +7647,57 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:bgp><nc:family><nc:evpn><nc:signaling><nc:accepted-prefix-limit> <nc:maximum>21</nc:maximum><nc:teardown><nc:limit-threshold>99</nc:limit-threshold> <nc:idle-timeout><nc:timeout>2002</nc:timeout></nc:idle-timeout> </nc:teardown></nc:accepted-prefix-limit><nc:damping/> <nc:delay-route-advertisements><nc:maximum-delay> <nc:route-age>20</nc:route-age><nc:routing-uptime>32000</nc:routing-uptime> </nc:maximum-delay><nc:minimum-delay><nc:inbound-convergence>32000</nc:inbound-convergence> <nc:routing-uptime>23000</nc:routing-uptime></nc:minimum-delay></nc:delay-route-advertisements> </nc:signaling></nc:evpn></nc:family></nc:bgp></nc:protocols>', 'xml 2', 'xml 3']</div> </td> </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>gathered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>gathered</code></td> + <td> + <div>Facts about the network resource gathered from the remote device as structured data.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>parsed</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>parsed</code></td> + <td> + <div>The device native config provided in <em>running_config</em> option parsed into structured data as per module argspec.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>rendered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>rendered</code></td> + <td> + <div>The provided configuration in the task rendered in device-native format (offline).</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">']</div> + </td> + </tr> </table> <br/><br/> diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_bgp_global_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_bgp_global_module.rst index 27246dbb3..e116888b2 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_bgp_global_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_bgp_global_module.rst @@ -10548,6 +10548,7 @@ Parameters <li>purged</li> <li><div style="color: blue"><b>merged</b> ←</div></li> <li>replaced</li> + <li>overridden</li> <li>deleted</li> <li>gathered</li> <li>parsed</li> @@ -10583,16 +10584,15 @@ Examples # Using merged # - # Before state - # ------------ + # Before state: + # ------------- # - # admin# show protocols bgp - # [edit] + # vsrx# show bgp summary + # BGP is not running - # admin# show routing-options autonomous-system - # [edit] + # vsrx# show routing-options autonomous-system - - name: Merge Junos BGP config + - name: Merge provided bgp config with device configuration junipernetworks.junos.junos_bgp_global: config: as_number: "65534" @@ -10600,8 +10600,6 @@ Examples asdot_notation: true accept_remote_nexthop: true add_path_display_ipv4_address: true - advertise_bgp_static: - policy: "static-to-bgp" advertise_from_main_vpn_tables: true advertise_inactive: true authentication_algorithm: "md5" @@ -10624,13 +10622,50 @@ Examples preference: 2 state: merged - # After state - # ----------- + # Task Output: + # ------------ + # before: {} + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:accept-remote-nexthop/> + # <nc:add-path-display-ipv4-address/><nc:advertise-from-main-vpn-tables/><nc:advertise-> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:autonomous-system>65534<nc:loops>3</nc:loops><nc:asdot-notation/></nc:autonomous-system></nc:routing-options> + # + # after: + # accept_remote_nexthop: true + # add_path_display_ipv4_address: true + # advertise_from_main_vpn_tables: true + # advertise_inactive: true + # as_number: '65534' + # asdot_notation: true + # authentication_algorithm: md5 + # bgp_error_tolerance: + # malformed_route_limit: 20000000 + # bmp: + # monitor: true + # damping: true + # description: This is configured with Junos_bgp resource module + # egress_te_sid_stats: true + # hold_time: 5 + # holddown_all_stale_labels: true + # include_mp_next_hop: true + # log_updown: true + # loops: 3 + # no_advertise_peer_as: true + # no_aggregator_id: true + # no_client_reflect: true + # out_delay: 10 + # precision_timers: true + # preference: '2' + + # After state: + # ------------ # - # admin# show routing-options autonomous-system + # vsrx# show routing-options autonomous-system # 65534 loops 3 asdot-notation; - # admin# show protocols bgp + # vsrx# show protocols bgp # precision-timers; # advertise-from-main-vpn-tables; # holddown-all-stale-labels; @@ -10653,22 +10688,17 @@ Examples # bmp { # monitor enable; # } - # advertise-bgp-static { - # policy static-to-bgp; - # } # add-path-display-ipv4-address; # egress-te-sid-stats; - - # Using merged + # Using replaced # - # Before state - # ------------ + # Before state: + # ------------- # - # admin# show routing-options autonomous-system - # 65534 loops 3 asdot-notation; - - # admin# show protocols bgp + # vsrx# show routing-options autonomous-system + # [edit] + # vsrx# show protocols bgp # precision-timers; # advertise-from-main-vpn-tables; # holddown-all-stale-labels; @@ -10691,146 +10721,123 @@ Examples # bmp { # monitor enable; # } - # advertise-bgp-static { - # policy static-to-bgp; - # } # add-path-display-ipv4-address; # egress-te-sid-stats; - - name: Update running Junos BGP config + - name: Replace running config with provided config junipernetworks.junos.junos_bgp_global: config: - egress_te_backup_paths: - templates: - - path_name: customer1 - peers: - - '11.11.11.11' - - '11.11.11.12' - - '11.11.11.13' - remote_nexthop: '2.2.2.2' - groups: - - name: 'internal' - type: 'internal' - vpn_apply_export: true - out_delay: 30 - accept_remote_nexthop: true - add_path_display_ipv4_address: true - peer_as: '65534' - allow: - - 'all' - - '1.1.1.0/24' - neighbors: - - neighbor_address: '11.11.11.11' - peer_as: '65534' - out_delay: 11 - - neighbor_address: '11.11.11.12' - peer_as: '65534' - out_delay: 12 - - - name: 'external' - out_delay: 20 - peer_as: '65534' - accept_remote_nexthop: true - add_path_display_ipv4_address: true - neighbors: - - neighbor_address: '12.12.12.12' - peer_as: '65534' - out_delay: 21 - accept_remote_nexthop: true - add_path_display_ipv4_address: true - - neighbor_address: '11.11.11.13' - peer_as: '65534' - out_delay: 31 - accept_remote_nexthop: true - add_path_display_ipv4_address: true - state: merged + advertise_inactive: true + authentication_algorithm: "md5" + bfd_liveness_detection: + minimum_receive_interval: 8 + multiplier: 30 + no_adaptation: true + transmit_interval: + minimum_interval: 4 + version: "automatic" + bgp_error_tolerance: + malformed_route_limit: 40000000 + description: "Replace running bgp config" + egress_te_sid_stats: true + hold_time: 5 + out_delay: 10 + preference: "2" + state: replaced - # After state - # ----------- + # Task Output: + # ------------ # - # admin# show routing-options autonomous-system - # 65534 loops 3 asdot-notation; + # before: + # accept_remote_nexthop: true + # add_path_display_ipv4_address: true + # advertise_from_main_vpn_tables: true + # advertise_inactive: true + # as_number: '65534' + # asdot_notation: true + # authentication_algorithm: md5 + # bgp_error_tolerance: + # malformed_route_limit: 20000000 + # bmp: + # monitor: true + # damping: true + # description: This is configured with Junos_bgp resource module + # egress_te_sid_stats: true + # hold_time: 5 + # holddown_all_stale_labels: true + # include_mp_next_hop: true + # log_updown: true + # loops: 3 + # no_advertise_peer_as: true + # no_aggregator_id: true + # no_client_reflect: true + # out_delay: 10 + # precision_timers: true + # preference: '2' + + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp> + # <nc:accept-remote-nexthop delete="delete"/><nc:add-path-display-ipv4-address delete="delete"/><nc:advertise-bgp-t + # delete="delete"/><nc:include-mp-next-hop delete="delete"/><nc:ipsec-sa delete="delete"/><nc:keep delete="delete"/> + # <nc:local-address delete="delete"/><nc:local-interface delete="delete"/t + # delete="delete"/></nc:bgp><nc:bgp><nc:advertise-inactive/><nc:egress-te-sid-stats/> + # <nc:authentication-algorithm>md5</nc:authentication-algorithm><nc:description>Replace running bgp conf> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:autonomous-system delete="delete"/></nc:routing-options> - # admin# show protocols bgp - # precision-timers; - # advertise-from-main-vpn-tables; - # holddown-all-stale-labels; - # egress-te-backup-paths { - # template customer1 { - # peer 11.11.11.11; - # peer 11.11.11.12; - # peer 11.11.11.13; - # remote-nexthop { - # 2.2.2.2; - # } - # } - # } - # description "This is configured with Junos_bgp resource module"; - # accept-remote-nexthop; + # + # after: + # advertise_inactive: true + # authentication_algorithm: md5 + # bfd_liveness_detection: + # minimum_receive_interval: 8 + # multiplier: 30 + # no_adaptation: true + # transmit_interval: + # minimum_interval: 4 + # version: automatic + # bgp_error_tolerance: + # malformed_route_limit: 40000000 + # description: Replace running bgp config + # egress_te_sid_stats: true + # hold_time: 5 + # out_delay: 10 + # preference: '2' + + # After state: + # ------------ + # + # varx# show protocols bgp + # description "Replace running bgp config"; # preference 2; # hold-time 5; # advertise-inactive; - # no-advertise-peer-as; - # no-aggregator-id; # out-delay 10; - # log-updown; - # damping; # bgp-error-tolerance { - # malformed-route-limit 20000000; + # malformed-route-limit 40000000; # } # authentication-algorithm md5; - # no-client-reflect; - # include-mp-next-hop; - # bmp { - # monitor enable; - # } - # add-path-display-ipv4-address; - # egress-te-sid-stats; - # group internal { - # type internal; - # accept-remote-nexthop; - # out-delay 30; - # vpn-apply-export; - # peer-as 65534; - # add-path-display-ipv4-address; - # allow [ 0.0.0.0/0 1.1.1.0/24 ]; - # neighbor 11.11.11.11 { - # out-delay 11; - # peer-as 65534; - # } - # neighbor 11.11.11.12 { - # out-delay 12; - # peer-as 65534; - # } - # } - # group external { - # accept-remote-nexthop; - # out-delay 20; - # peer-as 65534; - # add-path-display-ipv4-address; - # neighbor 12.12.12.12 { - # accept-remote-nexthop; - # out-delay 21; - # peer-as 65534; - # add-path-display-ipv4-address; - # } - # neighbor 11.11.11.13 { - # accept-remote-nexthop; - # out-delay 31; - # peer-as 65534; - # add-path-display-ipv4-address; + # bfd-liveness-detection { + # version automatic; + # minimum-receive-interval 8; + # multiplier 30; + # no-adaptation; + # transmit-interval { + # minimum-interval 4; # } # } + # egress-te-sid-stats; + # vsrx# show routing-options autonomous-system - # Using replaced + # Using overridden + # "(NOTE: This will work same as replaced operation)" # - # Before state - # ------------ + # Before state: + # ------------- # - # admin# show routing-options autonomous-system + # vsrx# show routing-options autonomous-system # [edit] - # admin# show protocols bgp + # vsrx# show protocols bgp # precision-timers; # advertise-from-main-vpn-tables; # holddown-all-stale-labels; @@ -10853,40 +10860,93 @@ Examples # bmp { # monitor enable; # } - # advertise-bgp-static { - # policy static-to-bgp; - # } # add-path-display-ipv4-address; # egress-te-sid-stats; - - name: Replace Junos BGP global config + - name: Override running config with provided config junipernetworks.junos.junos_bgp_global: - config: - advertise_bgp_static: - policy: "static-to-bgp" - advertise_inactive: true - authentication_algorithm: "md5" - bfd_liveness_detection: - minimum_receive_interval: 8 - multiplier: 30 - no_adaptation: true - transmit_interval: - minimum_interval: 4 - version: "automatic" - bgp_error_tolerance: - malformed_route_limit: 40000000 - description: "This is configured with Junos_bgp resource module replace" - egress_te_sid_stats: true - hold_time: 5 - out_delay: 10 - preference: "2" - state: replaced - - # After state - # ----------- + config: + advertise_inactive: true + authentication_algorithm: "md5" + bfd_liveness_detection: + minimum_receive_interval: 8 + multiplier: 30 + no_adaptation: true + transmit_interval: + minimum_interval: 4 + version: "automatic" + bgp_error_tolerance: + malformed_route_limit: 40000000 + description: "Replace running bgp config" + egress_te_sid_stats: true + hold_time: 5 + out_delay: 10 + preference: "2" + state: overridden + + # Task Output: + # ------------ + # + # before: + # accept_remote_nexthop: true + # add_path_display_ipv4_address: true + # advertise_from_main_vpn_tables: true + # advertise_inactive: true + # as_number: '65534' + # asdot_notation: true + # authentication_algorithm: md5 + # bgp_error_tolerance: + # malformed_route_limit: 20000000 + # bmp: + # monitor: true + # damping: true + # description: This is configured with Junos_bgp resource module + # egress_te_sid_stats: true + # hold_time: 5 + # holddown_all_stale_labels: true + # include_mp_next_hop: true + # log_updown: true + # loops: 3 + # no_advertise_peer_as: true + # no_aggregator_id: true + # no_client_reflect: true + # out_delay: 10 + # precision_timers: true + # preference: '2' + + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp> + # <nc:accept-remote-nexthop delete="delete"/><nc:add-path-display-ipv4-address delete="delete"/><nc:advertise-bgp-t + # delete="delete"/><nc:include-mp-next-hop delete="delete"/><nc:ipsec-sa delete="delete"/><nc:keep delete="delete"/> + # <nc:local-address delete="delete"/><nc:local-interface delete="delete"/t + # delete="delete"/></nc:bgp><nc:bgp><nc:advertise-inactive/><nc:egress-te-sid-stats/> + # <nc:authentication-algorithm>md5</nc:authentication-algorithm><nc:description>Replace running bgp conf> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:autonomous-system delete="delete"/></nc:routing-options> + + # + # after: + # advertise_inactive: true + # authentication_algorithm: md5 + # bfd_liveness_detection: + # minimum_receive_interval: 8 + # multiplier: 30 + # no_adaptation: true + # transmit_interval: + # minimum_interval: 4 + # version: automatic + # bgp_error_tolerance: + # malformed_route_limit: 40000000 + # description: Replace running bgp config + # egress_te_sid_stats: true + # hold_time: 5 + # out_delay: 10 + # preference: '2' + + # After state: + # ------------ # - # admin# show protocols bgp - # description "This is configured with Junos_bgp resource module replace"; + # varx# show protocols bgp + # description "Replace running bgp config"; # preference 2; # hold-time 5; # advertise-inactive; @@ -10895,9 +10955,6 @@ Examples # malformed-route-limit 40000000; # } # authentication-algorithm md5; - # advertise-bgp-static { - # policy static-to-bgp; - # } # bfd-liveness-detection { # version automatic; # minimum-receive-interval 8; @@ -10909,136 +10966,149 @@ Examples # } # egress-te-sid-stats; - # admin# show routing-options autonomous-system - # [edit] + # vsrx# show routing-options autonomous-system - # # Using deleted - # + # "(NOTE: This WILL delete the bgp global attributes)" # Before state # ------------ # - # admin# show protocols bgp - # precision-timers; - # advertise-from-main-vpn-tables; - # holddown-all-stale-labels; - # description "This is configured with Junos_bgp resource module"; - # accept-remote-nexthop; + # vsrx# show protocols bgp + # description "Replace running bgp config"; # preference 2; # hold-time 5; # advertise-inactive; - # no-advertise-peer-as; - # no-aggregator-id; # out-delay 10; - # log-updown; - # damping; # bgp-error-tolerance { - # malformed-route-limit 20000000; + # malformed-route-limit 40000000; # } # authentication-algorithm md5; - # no-client-reflect; - # include-mp-next-hop; - # bmp { - # monitor enable; + # bfd-liveness-detection { + # version automatic; + # minimum-receive-interval 8; + # multiplier 30; + # no-adaptation; + # transmit-interval { + # minimum-interval 4; + # } # } - # add-path-display-ipv4-address; # egress-te-sid-stats; - # group internal { - # out-delay 12; - # } - # admin# show routing-options autonomous-system - # 65534 loops 3 asdot-notation; - - name: Delete Junos BGP global config + - name: Delete bgp section of running config junipernetworks.junos.junos_bgp_global: config: state: deleted - # After state - # ----------- - # admin# show protocols bgp - # group internal { - # out-delay 12; - # } - + # Task Output: + # ------------ + # before: + # advertise_inactive: true + # authentication_algorithm: md5 + # bfd_liveness_detection: + # minimum_receive_interval: 8 + # multiplier: 30 + # no_adaptation: true + # transmit_interval: + # minimum_interval: 4 + # version: automatic + # bgp_error_tolerance: + # malformed_route_limit: 40000000 + # description: Replace running bgp config + # egress_te_sid_stats: true + # hold_time: 5 + # out_delay: 10 + # preference: '2' + + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:accept-remote-nexthop delete="delete"/> + # <nc:add-path-display-ipv4-address delete="delete"/><nc:advertise-bgp-t + # delete="delete"/><nc:include-mp-next-hop delete="delete"/><nc:ipsec-sa delete="delete"/><nc:keep delete="delete"/> + # <nc:local-address delete="delete"/><nc:local-interface delete="delete"/t + # delete="delete"/></nc:bgp></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> + + # after: {} + + # After state: + # ------------ + # vsrx# show protocols bgp - # admin# show protocols bgp - # [edit] + # vsrx# show routing-options autonomous-system - # admin# show routing-options autonomous-system - # [edit] # Using gathered # - # Before state - # ------------ + # Before state: + # ------------- # - # admin# show protocols bgp - # description "This is configured with Junos_bgp resource module replace"; + # vsrx# show protocols bgp + # precision-timers; + # advertise-from-main-vpn-tables; + # holddown-all-stale-labels; + # description "This is configured with Junos_bgp resource module"; + # accept-remote-nexthop; # preference 2; # hold-time 5; # advertise-inactive; + # no-advertise-peer-as; + # no-aggregator-id; # out-delay 10; + # log-updown; + # damping; # bgp-error-tolerance { - # malformed-route-limit 40000000; + # malformed-route-limit 20000000; # } # authentication-algorithm md5; - # advertise-bgp-static { - # policy static-to-bgp; - # } - # bfd-liveness-detection { - # version automatic; - # minimum-receive-interval 8; - # multiplier 30; - # no-adaptation; - # transmit-interval { - # minimum-interval 4; - # } + # no-client-reflect; + # include-mp-next-hop; + # bmp { + # monitor enable; # } + # add-path-display-ipv4-address; # egress-te-sid-stats; - - name: Gather Junos BGP global config + - name: Gather BGP facts from running config junipernetworks.junos.junos_bgp_global: config: state: gathered - # - # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # "gathered": { - # "advertise_bgp_static": { - # "policy": "static-to-bgp" - # }, - # "advertise_inactive": true, - # "authentication_algorithm": "md5", - # "bfd_liveness_detection": { - # "minimum_receive_interval": 8, - # "multiplier": 30, - # "no_adaptation": true, - # "transmit_interval": { - # "minimum_interval": 4 - # }, - # "version": "automatic" - # }, - # "bgp_error_tolerance": { - # "malformed_route_limit": 40000000 - # }, - # "description": "This is configured with Junos_bgp resource module replace", - # "egress_te_sid_stats": true, - # "hold_time": 5, - # "out_delay": 10, - # "preference": "2" - # } - # - # - # Using purged - # - # Before state + + # Task Output: # ------------ + + # gathered: + # accept_remote_nexthop: true + # add_path_display_ipv4_address: true + # advertise_from_main_vpn_tables: true + # advertise_inactive: true + # as_number: '65534' + # asdot_notation: true + # authentication_algorithm: md5 + # bgp_error_tolerance: + # malformed_route_limit: 20000000 + # bmp: + # monitor: true + # damping: true + # description: This is configured with Junos_bgp resource module + # egress_te_sid_stats: true + # hold_time: 5 + # holddown_all_stale_labels: true + # include_mp_next_hop: true + # log_updown: true + # loops: 3 + # no_advertise_peer_as: true + # no_aggregator_id: true + # no_client_reflect: true + # out_delay: 10 + # precision_timers: true + # preference: '2' + + # Using purged + # "(NOTE: This WILL delete the configured global BGP, and BGP address family config)" + + # Before state: + # ------------- # - # admin# show protocols bgp + # vsrx# show protocols bgp # precision-timers; # advertise-from-main-vpn-tables; # holddown-all-stale-labels; @@ -11063,41 +11133,68 @@ Examples # } # add-path-display-ipv4-address; # egress-te-sid-stats; - # group internal { - # out-delay 12; - # } - # admin# show routing-options autonomous-system - # 65534 loops 3 asdot-notation; - - name: Purge Junos BGP global config + - name: Purge BGP config from running config junipernetworks.junos.junos_bgp_global: config: state: purged - # After state - # ---------- - # admin# show protocols bgp - # - # [edit] - # admin# show routing-options autonomous-system - # - #[edit] + # Task Output: + # ------------ + + # before: + # accept_remote_nexthop: true + # add_path_display_ipv4_address: true + # advertise_from_main_vpn_tables: true + # advertise_inactive: true + # as_number: '65534' + # asdot_notation: true + # authentication_algorithm: md5 + # bgp_error_tolerance: + # malformed_route_limit: 20000000 + # bmp: + # monitor: true + # damping: true + # description: This is configured with Junos_bgp resource module + # egress_te_sid_stats: true + # hold_time: 5 + # holddown_all_stale_labels: true + # include_mp_next_hop: true + # log_updown: true + # loops: 3 + # no_advertise_peer_as: true + # no_aggregator_id: true + # no_client_reflect: true + # out_delay: 10 + # precision_timers: true + # preference: '2' + + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp delete="delete"/></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:autonomous-system delete="delete"/></nc:routing-options> + + # after: {} + + # After state: + # ------------ + # vsrx# show protocols bgp + # vsrx# show routing-options autonomous-system # Using rendered - # - # - - name: Render the commands for provided configuration + + - name: Render the commands for provided configuration junipernetworks.junos.junos_bgp_global: config: + as_number: "65534" + loops: 3 + asdot_notation: true + accept_remote_nexthop: true + add_path_display_ipv4_address: true + advertise_from_main_vpn_tables: true + advertise_inactive: true authentication_algorithm: "md5" - bfd_liveness_detection: - minimum_receive_interval: 4 - multiplier: 10 - no_adaptation: true - transmit_interval: - minimum_interval: 2 - version: "automatic" bgp_error_tolerance: malformed_route_limit: 20000000 bmp: @@ -11106,41 +11203,25 @@ Examples description: "This is configured with Junos_bgp resource module" egress_te_sid_stats: true hold_time: 5 + holddown_all_stale_labels: true + include_mp_next_hop: true + log_updown: true + no_advertise_peer_as: true + no_aggregator_id: true + no_client_reflect: true + out_delay: 10 + precision_timers: true + preference: 2 state: rendered - # - # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # - # "rendered": " - # <nc:protocols - # xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> - # <nc:bgp> - # <nc:damping/> - # <nc:egress-te-sid-stats/> - # <nc:authentication-algorithm>md5</nc:authentication-algorithm> - # <nc:description>This is configured with Junos_bgp resource module</nc:description> - # <nc:hold-time>5</nc:hold-time> - # <nc:bfd-liveness-detection> - # <nc:transmit-interval> - # <nc:minimum-interval>2</nc:minimum-interval> - # </nc:transmit-interval> - # <nc:minimum-receive-interval>4</nc:minimum-receive-interval> - # <nc:multiplier>10</nc:multiplier> - # <nc:no-adaptation/> - # <nc:version>automatic</nc:version> - # </nc:bfd-liveness-detection> - # <nc:bgp-error-tolerance> - # <nc:malformed-route-limit>20000000</nc:malformed-route-limit> - # </nc:bgp-error-tolerance> - # <nc:bmp> - # <nc:monitor>enable</nc:monitor> - # </nc:bmp> - # </nc:bgp> - # </nc:protocols>" + # Task Output: + # ------------ + + # rendered: + # <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:bgp><nc:accept-remote-nexthop/><nc:add-path-display-ipv4-address/> + # <nc:advertise-from-main-vpn-tables/><nc:ad> + # # Using parsed # parsed.cfg @@ -11246,63 +11327,66 @@ Examples # </rpc-reply> - - name: Parsed the device configuration to get output commands + - name: Parsed the device configuration to get ansible facts junipernetworks.junos.junos_bgp_global: running_config: "{{ lookup('file', './parsed.cfg') }}" state: parsed - # - # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # - # "parsed": { - # "accept_remote_nexthop": true, - # "add_path_display_ipv4_address": true, - # "advertise_bgp_static": { - # "policy": "static-to-bgp" - # }, - # "advertise_from_main_vpn_tables": true, - # "advertise_inactive": true, - # "as_number": "65432", - # "authentication_algorithm": "md5", - # "bfd_liveness_detection": { - # "detection_time": { - # "threshold": 300000 - # }, - # "minimum_receive_interval": 4, - # "multiplier": 10, - # "no_adaptation": true, - # "transmit_interval": { - # "minimum_interval": 2 - # }, - # "version": "automatic" - # }, - # "bgp_error_tolerance": { - # "malformed_route_limit": 20000000 - # }, - # "bmp": { - # "monitor": false, - # "route_monitoring": { - # "none": true - # } - # }, - # "damping": true, - # "description": "This is configured with Junos_bgp resource module", - # "egress_te_sid_stats": true, - # "hold_time": 5, - # "holddown_all_stale_labels": true, - # "include_mp_next_hop": true, - # "log_updown": true, - # "no_advertise_peer_as": true, - # "no_aggregator_id": true, - # "no_client_reflect": true, - # "out_delay": 10, - # "precision_timers": true, - # "preference": "2" - # } - # + + # Task Output: + # ------------ + + # parsed: + # accept_remote_nexthop: true + # add_path_display_ipv4_address: true + # advertise_bgp_static: + # policy: static-to-bgp + # advertise_from_main_vpn_tables: true + # advertise_inactive: true + # as_number: '65432' + # authentication_algorithm: md5 + # bfd_liveness_detection: + # detection_time: + # threshold: 300000 + # minimum_receive_interval: 4 + # multiplier: 10 + # no_adaptation: true + # transmit_interval: + # minimum_interval: 2 + # version: automatic + # bgp_error_tolerance: + # malformed_route_limit: 20000000 + # bmp: + # monitor: false + # route_monitoring: + # none: true + # damping: true + # description: This is configured with Junos_bgp resource module + # egress_te_sid_stats: true + # groups: + # - name: internal + # out_delay: 8 + # - name: external + # out_delay: 9 + # - name: inboun + # type: internal + # - export: static-to-bgp + # local_address: 10.2.2.2 + # name: ibgp + # neighbors: + # - neighbor_address: 10.1.1.1 + # type: internal + # hold_time: 5 + # holddown_all_stale_labels: true + # include_mp_next_hop: true + # log_updown: true + # no_advertise_peer_as: true + # no_aggregator_id: true + # no_client_reflect: true + # out_delay: 10 + # precision_timers: true + # preference: '2' + # remove_private: + # set: true @@ -11371,6 +11455,57 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[' <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:bgp> <nc:damping/> <nc:egress-te-sid-stats/> <nc:authentication-algorithm>md5</nc:authentication-algorithm> <nc:description>This is configured with Junos_bgp resource module</nc:description> <nc:hold-time>5</nc:hold-time> <nc:bfd-liveness-detection> <nc:transmit-interval> <nc:minimum-interval>2</nc:minimum-interval> </nc:transmit-interval> <nc:minimum-receive-interval>4</nc:minimum-receive-interval> <nc:multiplier>10</nc:multiplier> <nc:no-adaptation/> <nc:version>automatic</nc:version> </nc:bfd-liveness-detection> <nc:bgp-error-tolerance> <nc:malformed-route-limit>20000000</nc:malformed-route-limit> </nc:bgp-error-tolerance> <nc:bmp> <nc:monitor>enable</nc:monitor> </nc:bmp> </nc:bgp> </nc:protocols>', 'xml 2', 'xml 3']</div> </td> </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>gathered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>gathered</code></td> + <td> + <div>Facts about the network resource gathered from the remote device as structured data.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>parsed</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>parsed</code></td> + <td> + <div>The device native config provided in <em>running_config</em> option parsed into structured data as per module argspec.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>rendered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>rendered</code></td> + <td> + <div>The provided configuration in the task rendered in device-native format (offline).</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">']</div> + </td> + </tr> </table> <br/><br/> diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_command_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_command_module.rst index 96f550b31..f7aad42db 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_command_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_command_module.rst @@ -197,17 +197,17 @@ Examples - name: run multiple commands on remote nodes junipernetworks.junos.junos_command: commands: - - show version - - show interfaces + - show version + - show interfaces - name: run multiple commands and evaluate the output junipernetworks.junos.junos_command: commands: - - show version - - show interfaces + - show version + - show interfaces wait_for: - - result[0] contains Juniper - - result[1] contains Loopback0 + - result[0] contains Juniper + - result[1] contains Loopback0 - name: run commands and specify the output format junipernetworks.junos.junos_command: diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_config_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_config_module.rst index 624ac8812..5abc26ee7 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_config_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_config_module.rst @@ -70,7 +70,7 @@ Parameters <td> </td> <td> - <div>This is a dict object containing configurable options related to backup file path. The value of this option is read only when <code>backup</code> is set to <em>yes</em>, if <code>backup</code> is set to <em>no</em> this option will be silently ignored.</div> + <div>This is a dict object containing configurable options related to backup file path. The value of this option is read only when <code>backup</code> is set to <em>true</em>, if <code>backup</code> is set to <em>false</em> this option will be silently ignored.</div> </td> </tr> <tr> @@ -336,7 +336,7 @@ Notes .. note:: - This module requires the netconf system service be enabled on the remote device being managed. - - Abbreviated commands are NOT idempotent, see L(Network FAQ,../network/user_guide/faq.html + - Abbreviated commands are NOT idempotent, see `Network FAQ <../network/user_guide/faq.html>`_ - Loading JSON-formatted configuration *json* is supported starting in Junos OS Release 16.1 onwards. - Update ``override`` not currently compatible with ``set`` notation. - Tested against vSRX JUNOS version 15.1X49-D15.4, vqfx-10000 JUNOS Version 15.1X53-D60.4. @@ -361,20 +361,20 @@ Examples - name: load configure lines into device junipernetworks.junos.junos_config: lines: - - set interfaces ge-0/0/1 unit 0 description "Test interface" - - set vlans vlan01 description "Test vlan" + - set interfaces ge-0/0/1 unit 0 description "Test interface" + - set vlans vlan01 description "Test vlan" comment: update config - name: Set routed VLAN interface (RVI) IPv4 address junipernetworks.junos.junos_config: lines: - - set vlans vlan01 vlan-id 1 - - set interfaces irb unit 10 family inet address 10.0.0.1/24 - - set vlans vlan01 l3-interface irb.10 + - set vlans vlan01 vlan-id 1 + - set interfaces irb unit 10 family inet address 10.0.0.1/24 + - set vlans vlan01 l3-interface irb.10 - name: Check correctness of commit configuration junipernetworks.junos.junos_config: - check_commit: yes + check_commit: true - name: rollback the configuration to id 10 junipernetworks.junos.junos_config: @@ -382,31 +382,30 @@ Examples - name: zero out the current configuration junipernetworks.junos.junos_config: - zeroize: yes + zeroize: true - name: Set VLAN access and trunking junipernetworks.junos.junos_config: lines: - - set vlans vlan02 vlan-id 6 - - set interfaces ge-0/0/6.0 family ethernet-switching interface-mode access vlan - members vlan02 - - set interfaces ge-0/0/6.0 family ethernet-switching interface-mode trunk vlan - members vlan02 + - set vlans vlan02 vlan-id 6 + - set interfaces ge-0/0/6.0 family ethernet-switching interface-mode access vlan + members vlan02 + - set interfaces ge-0/0/6.0 family ethernet-switching interface-mode trunk vlan + members vlan02 - name: confirm a previous commit junipernetworks.junos.junos_config: - confirm_commit: yes + confirm_commit: true - name: for idempotency, use full-form commands junipernetworks.junos.junos_config: lines: - # - set int ge-0/0/1 unit 0 desc "Test interface" - - set interfaces ge-0/0/1 unit 0 description "Test interface" + - set interfaces ge-0/0/1 unit 0 description "Test interface" - name: configurable backup path junipernetworks.junos.junos_config: src: srx.cfg - backup: yes + backup: true backup_options: filename: backup.cfg dir_path: /home/user @@ -434,7 +433,7 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <span style="color: purple">string</span> </div> </td> - <td>when backup is yes</td> + <td>when backup is true</td> <td> <div>The full path to the backup file</div> <br/> @@ -451,7 +450,7 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <span style="color: purple">string</span> </div> </td> - <td>when backup is yes</td> + <td>when backup is true</td> <td> <div>The date extracted from the backup file name</div> <br/> @@ -468,7 +467,7 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <span style="color: purple">string</span> </div> </td> - <td>when backup is yes and filename is not specified in backup options</td> + <td>when backup is true and filename is not specified in backup options</td> <td> <div>The name of the backup file</div> <br/> @@ -485,7 +484,7 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <span style="color: purple">string</span> </div> </td> - <td>when backup is yes and filename is not specified in backup options</td> + <td>when backup is true and filename is not specified in backup options</td> <td> <div>The full path to the backup file excluding the timestamp</div> <br/> @@ -502,7 +501,7 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <span style="color: purple">string</span> </div> </td> - <td>when backup is yes</td> + <td>when backup is true</td> <td> <div>The time extracted from the backup file name</div> <br/> diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_interfaces_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_interfaces_module.rst index a0e0238bd..0a5d41ae0 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_interfaces_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_interfaces_module.rst @@ -318,8 +318,8 @@ Notes .. note:: - This module requires the netconf system service be enabled on the remote device being managed. - Tested against vSRX JUNOS version 18.4R1. - - This module works with connection ``netconf``. - - See `the Junos OS Platform Options <https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html>`_. + - This module works with connection ``netconf``. See https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html + - The module examples uses callback plugin (stdout_callback = yaml) to generate task output in yaml format. @@ -328,54 +328,158 @@ Examples .. code-block:: yaml - # Using deleted + # Using merged # Before state: # ------------- + # # user@junos01# show interfaces # ge-0/0/1 { - # description "Configured by Ansible-1"; - # speed 1g; - # mtu 1800 - # unit 0 { - # description "This is logical intf unit0"; + # description "test interface"; + # speed 1g; # } - # ge-0/0/2 { - # description "Configured by Ansible-2"; - # ether-options { - # auto-negotiation; - # } + # fe-0/0/2 { + # vlan-tagging; + # unit 10 { + # vlan-id 10; + # } + # unit 11 { + # vlan-id 11; + # } + # } + # ge-0/0/3 { + # description "Configured by Ansible-3"; + # } + # fxp0 { + # unit 0 { + # family inet { + # dhcp; + # } + # } + # } + # lo0 { + # unit 0 { + # family inet { + # address 192.0.2.1/32; + # } + # } # } - - name: "Delete given options for the interface (Note: This won't delete the interface itself if any other values are configured for interface)" + - name: Merge provided configuration with device configuration (default operation + is merge) junipernetworks.junos.junos_interfaces: config: - - name: ge-0/0/1 - description: Configured by Ansible-1 - speed: 1g - mtu: 1800 - - name: ge-0/0/2 - description: Configured by Ansible -2 - state: deleted + - name: ge-0/0/1 + description: Configured by Ansible-1 + enabled: true + units: + - name: 0 + description: "This is logical intf unit0" + mtu: 1800 + - name: ge-0/0/2 + description: Configured by Ansible-2 + enabled: false + state: merged + + # Task Output + # ----------- + # + # before: + # - description: test interface + # enabled: true + # name: ge-0/0/1 + # speed: 1g + # - enabled: true + # name: fe-0/0/2 + # - description: Configured by Ansible-3 + # enabled: true + # name: ge-0/0/3 + # - enabled: true + # name: fxp0 + # - enabled: true + # name: lo0 + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface><nc:name>ge-0/0/1</nc:name> + # <nc:description>Configured by Ansible-1</nc:description><nc:mtu>1800</nc:mtu><nc:unit><nc:name>0</nc:name> + # <nc:description>This is logical intf unit0</nc:description></nc:unit></nc:interface><nc:interface><nc:name>ge-0/0/2</nc:name> + # <nc:description>Configured by Ansible-2</nc:description><nc:disable/></nc:interface></nc:interfaces> + # after: + # - description: Configured by Ansible-1 + # enabled: true + # mtu: 1800 + # name: ge-0/0/1 + # speed: 1g + # units: + # - description: This is logical intf unit0 + # name: 0 + # - enabled: true + # name: fe-0/0/2 + # - description: Configured by Ansible-2 + # enabled: false + # name: ge-0/0/2 + # - description: Configured by Ansible-3 + # enabled: true + # name: ge-0/0/3 + # - enabled: true + # name: fxp0 + # - enabled: true + # name: lo0 # After state: # ------------ + # # user@junos01# show interfaces + # ge-0/0/1 { + # description "Configured by Ansible-1"; + # speed 1g; + # mtu 1800; + # unit 0 { + # description "This is logical intf unit0"; + # } + # } + # fe-0/0/2 { + # vlan-tagging; + # unit 10 { + # vlan-id 10; + # } + # unit 11 { + # vlan-id 11; + # } + # } # ge-0/0/2 { - # ether-options { - # auto-negotiation; - # } + # description "Configured by Ansible-2"; + # disable; + # } + # ge-0/0/3 { + # description "Configured by Ansible-3"; + # } + # fxp0 { + # unit 0 { + # family inet { + # dhcp; + # } + # } + # } + # lo0 { + # unit 0 { + # family inet { + # address 192.0.2.1/32; + # } + # } # } - - # Using merged + # Using deleted # Before state: # ------------- - # user@junos01# show interfaces + # # ge-0/0/1 { - # description "test interface"; - # speed 1g; + # description "Configured by Ansible-1"; + # speed 1g; + # mtu 1800; + # unit 0 { + # description "This is logical intf unit0"; + # } # } # fe-0/0/2 { # vlan-tagging; @@ -386,82 +490,262 @@ Examples # vlan-id 11; # } # } + # ge-0/0/2 { + # description "Configured by Ansible-2"; + # disable; + # } + # ge-0/0/3 { + # description "Configured by Ansible-3"; + # } + # fxp0 { + # unit 0 { + # family inet { + # dhcp; + # } + # } + # } + # lo0 { + # unit 0 { + # family inet { + # address 192.0.2.1/32; + # } + # } + # } - - name: Merge provided configuration with device configuration (default operation - is merge) + - name: "Delete given options for the interface (Note: This won't delete the interface itself if any other values are configured for interface)" junipernetworks.junos.junos_interfaces: config: - - name: ge-0/0/1 - description: Configured by Ansible-1 - enabled: true - units: - - name: 0 - description: "This is logical intf unit0" - mtu: 1800 - - name: ge-0/0/2 - description: Configured by Ansible-2 - enabled: false - state: merged + - name: ge-0/0/1 + description: Configured by Ansible-1 + speed: 1g + mtu: 1800 + - name: ge-0/0/2 + description: Configured by Ansible -2 + state: deleted + + # Task Output + # ----------- + # + # before: + # - description: Configured by Ansible-1 + # enabled: true + # mtu: 1800 + # name: ge-0/0/1 + # speed: 1g + # units: + # - description: This is logical intf unit0 + # name: 0 + # - enabled: true + # name: fe-0/0/2 + # - description: Configured by Ansible-2 + # enabled: false + # name: ge-0/0/2 + # - description: Configured by Ansible-3 + # enabled: true + # name: ge-0/0/3 + # - enabled: true + # name: fxp0 + # - enabled: true + # name: lo0 + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface> + # <nc:name>ge-0/0/1</nc:name><nc:description delete="delete"/> + # <nc:speed delete="delete"/><nc:mtu delete="delete"/><nc:link-mode delete="delete"/> + # <nc:disable delete="delete"/><nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time><nc:unit> + # <nc:name>0</nc:name><nc:description delete="delete"/></nc:unit></nc:interface><nc:interface><nc:name>ge-0/0/2</nc:name> + # <nc:description delete="delete"/><nc:speed delete="delete"/><nc:mtu delete="delete"/><nc:link-mode delete="delete"/> + # <nc:disable delete="delete"/><nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time></nc:interface> + # </nc:interfaces> + # after: + # - enabled: true + # name: ge-0/0/1 + # - enabled: true + # name: fe-0/0/2 + # - description: Configured by Ansible-3 + # enabled: true + # name: ge-0/0/3 + # - enabled: true + # name: fxp0 + # - enabled: true + # name: lo0 # After state: # ------------ + # # user@junos01# show interfaces # ge-0/0/1 { - # description "Configured by Ansible-1"; - # speed 1g; - # mtu 1800 - # unit 0 { - # description "This is logical intf unit0"; - # } + # unit 0; # } - # ge-0/0/2 { - # disable; - # description "Configured by Ansible-2"; + # fe-0/0/2 { + # vlan-tagging; + # unit 10 { + # vlan-id 10; + # } + # unit 11 { + # vlan-id 11; + # } + # } + # ge-0/0/3 { + # description "Configured by Ansible-3"; + # } + # fxp0 { + # unit 0 { + # family inet { + # dhcp; + # } + # } + # } + # lo0 { + # unit 0 { + # family inet { + # address 192.0.2.1/32; + # } + # } # } - # Using overridden # Before state: # ------------- + # # user@junos01# show interfaces # ge-0/0/1 { - # description "Configured by Ansible-1"; - # speed 1g; - # mtu 1800 + # unit 0; # } - # ge-0/0/2 { - # disable; - # description "Configured by Ansible-2"; - # ether-options { - # auto-negotiation; - # } + # fe-0/0/2 { + # vlan-tagging; + # unit 10 { + # vlan-id 10; + # } + # unit 11 { + # vlan-id 11; + # } + # } + # ge-0/0/3 { + # description "Configured by Ansible-3"; # } - # ge-0/0/11 { - # description "Configured by Ansible-11"; + # fxp0 { + # unit 0 { + # family inet { + # dhcp; + # } + # } + # } + # lo0 { + # unit 0 { + # family inet { + # address 192.0.2.1/32; + # } + # } # } - name: Override device configuration of all interfaces with provided configuration junipernetworks.junos.junos_interfaces: config: - - name: ge-0/0/2 - description: Configured by Ansible-2 - enabled: false - mtu: 2800 - - name: ge-0/0/3 - description: Configured by Ansible-3 + - enabled: true + name: ge-0/0/1 + - name: fe-0/0/2 + description: Configured by Ansible-2 + enabled: false + mtu: 2800 + - description: Updated by Ansible-3 + enabled: true + name: ge-0/0/3 + - enabled: true + name: fxp0 + - enabled: true + name: lo0 state: overridden + # Task Output + # ----------- + # + # before: + # - enabled: true + # name: ge-0/0/1 + # - enabled: true + # name: fe-0/0/2 + # - description: Configured by Ansible-3 + # enabled: true + # name: ge-0/0/3 + # - enabled: true + # name: fxp0 + # - enabled: true + # name: lo0 + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:interface><nc:name>ge-0/0/1</nc:name><nc:description delete="delete"/> + # <nc:speed delete="delete"/><nc:mtu delete="delete"/><nc:link-mode delete="delete"/> + # <nc:disable delete="delete"/><nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/> + # </nc:hold-time></nc:interface><nc:interface><nc:name>fe-0/0/2</nc:name><nc:description delete="delete"/> + # <nc:speed delete="delete"/><nc:mtu delete="delete"/><nc:link-mode delete="delete"/><nc:disable delete="delete"/> + # <nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time></nc:interface><nc:interface> + # <nc:name>ge-0/0/3</nc:name><nc:description delete="delete"/><nc:speed delete="delete"/><nc:mtu delete="delete"/> + # <nc:link-mode delete="delete"/><nc:disable delete="delete"/><nc:hold-time> + # <nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time></nc:interface> + # <nc:interface><nc:name>fxp0</nc:name><nc:description delete="delete"/><nc:speed delete="delete"/> + # <nc:link-mode delete="delete"/><nc:disable delete="delete"/> + # <nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/> + # </nc:hold-time></nc:interface><nc:interface><nc:name>lo0</nc:name> + # <nc:description delete="delete"/><nc:disable delete="delete"/> + # <nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/> + # </nc:hold-time></nc:interface><nc:interface><nc:name>ge-0/0/1</nc:name> + # </nc:interface><nc:interface><nc:name>fe-0/0/2</nc:name> + # <nc:description>Configured by Ansible-2</nc:description> + # <nc:mtu>2800</nc:mtu><nc:disable/></nc:interface><nc:interface> + # <nc:name>ge-0/0/3</nc:name><nc:description>Updated by Ansible-3</nc:description> + # </nc:interface><nc:interface><nc:name>fxp0</nc:name></nc:interface><nc:interface> + # <nc:name>lo0</nc:name></nc:interface></nc:interfaces> + # after: + # - enabled: true + # name: ge-0/0/1 + # - description: Configured by Ansible-2 + # enabled: false + # mtu: 2800 + # name: fe-0/0/2 + # - description: Updated by Ansible-3 + # enabled: true + # name: ge-0/0/3 + # - enabled: true + # name: fxp0 + # - enabled: true + # name: lo0 + # After state: # ------------ + # # user@junos01# show interfaces - # ge-0/0/2 { - # disable; - # description "Configured by Ansible-2"; - # mtu 2800 + # ge-0/0/1 { + # unit 0; + # } + # fe-0/0/2 { + # description "Configured by Ansible-2"; + # disable; + # vlan-tagging; + # mtu 2800; + # unit 10 { + # vlan-id 10; + # } + # unit 11 { + # vlan-id 11; + # } # } # ge-0/0/3 { - # description "Configured by Ansible-3"; + # description "Updated by Ansible-3"; + # } + # fxp0 { + # unit 0 { + # family inet { + # dhcp; + # } + # } + # } + # lo0 { + # unit 0 { + # family inet { + # address 192.0.2.1/32; + # } + # } # } @@ -469,143 +753,212 @@ Examples # Before state: # ------------- + # # user@junos01# show interfaces # ge-0/0/1 { - # description "Configured by Ansible-1"; - # speed 1g; - # mtu 1800 + # unit 0; # } - # ge-0/0/2 { - # disable; - # mtu 1800; - # speed 1g; - # description "Configured by Ansible-2"; - # ether-options { - # auto-negotiation; - # } + # fe-0/0/2 { + # description "Configured by Ansible-2"; + # disable; + # vlan-tagging; + # mtu 2800; + # unit 10 { + # vlan-id 10; + # } + # unit 11 { + # vlan-id 11; + # } # } - # ge-0/0/11 { - # description "Configured by Ansible-11"; + # ge-0/0/3 { + # description "Updated by Ansible-3"; + # } + # fxp0 { + # unit 0 { + # family inet { + # dhcp; + # } + # } + # } + # lo0 { + # unit 0 { + # family inet { + # address 192.0.2.1/32; + # } + # } # } - - name: Replaces device configuration of listed interfaces with provided configuration + - name: Replace device configuration of listed interfaces with provided configuration junipernetworks.junos.junos_interfaces: config: - - name: ge-0/0/2 - description: Configured by Ansible-2 - enabled: false - mtu: 2800 - - name: ge-0/0/3 - description: Configured by Ansible-3 + - name: ge-0/0/2 + description: Configured by Ansible-2 + enabled: false + mtu: 2800 + - name: ge-0/0/3 + description: Configured by Ansible-3 state: replaced + # Task Output + # ----------- + # + # before: + # - enabled: true + # name: ge-0/0/1 + # - description: Configured by Ansible-2 + # enabled: false + # mtu: 2800 + # name: fe-0/0/2 + # - description: Updated by Ansible-3 + # enabled: true + # name: ge-0/0/3 + # - enabled: true + # name: fxp0 + # - enabled: true + # name: lo0 + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface> + # <nc:name>ge-0/0/2</nc:name><nc:description delete="delete"/><nc:speed delete="delete"/> + # <nc:mtu delete="delete"/><nc:link-mode delete="delete"/><nc:disable delete="delete"/> + # <nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time></nc:interface> + # <nc:interface><nc:name>ge-0/0/3</nc:name><nc:description delete="delete"/><nc:speed delete="delete"/> + # <nc:mtu delete="delete"/><nc:link-mode delete="delete"/><nc:disable delete="delete"/><nc:hold-time> + # <nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time></nc:interface><nc:interface><nc:name>ge-0/0/2</nc:name> + # <nc:description>Configured by Ansible-2</nc:description><nc:mtu>2800</nc:mtu><nc:disable/></nc:interface><nc:interface> + # <nc:name>ge-0/0/3</nc:name><nc:description>Configured by Ansible-3</nc:description></nc:interface></nc:interfaces> + # after: + # - enabled: true + # name: ge-0/0/1 + # - description: Configured by Ansible-2 + # enabled: false + # mtu: 2800 + # name: fe-0/0/2 + # - description: Configured by Ansible-2 + # enabled: false + # mtu: 2800 + # name: ge-0/0/2 + # - description: Configured by Ansible-3 + # enabled: true + # name: ge-0/0/3 + # - enabled: true + # name: fxp0 + # - enabled: true + # name: lo0 + # After state: # ------------ + # # user@junos01# show interfaces # ge-0/0/1 { - # description "Configured by Ansible-1"; - # speed 1g; - # mtu 1800 - # } - # ge-0/0/2 { - # disable; - # description "Configured by Ansible-2"; - # mtu 2800 - # } - # ge-0/0/3 { - # description "Configured by Ansible-3"; - # } - # ge-0/0/11 { - # description "Configured by Ansible-11"; + # unit 0; # } - # Using gathered - # Before state: - # ------------ - # - # vagrant@vsrx# show interfaces # fe-0/0/2 { - # description "This is interface DESCRIPTION"; + # description "Configured by Ansible-2"; + # disable; # vlan-tagging; + # mtu 2800; # unit 10 { - # description "UNIT 10 DESCRIPTION"; # vlan-id 10; # } # unit 11 { - # description "UNIT 11 DESCRIPTION"; # vlan-id 11; # } # } + # ge-0/0/2 { + # description "Configured by Ansible-2"; + # disable; + # mtu 2800; + # } + # ge-0/0/3 { + # description "Configured by Ansible-3"; + # } # fxp0 { - # description OUTER; # unit 0 { - # description "Sample config"; # family inet { # dhcp; # } # } # } - # - - name: Gather junos interfaces as in given arguments - junipernetworks.junos.junos_interfaces: - state: gathered - # Task Output (redacted) - # ----------------------- - # - # "gathered": [ - # { - # "description": "This is interface DESCRIPTION", - # "enabled": true, - # "name": "fe-0/0/2", - # "units": [ - # { - # "description": "UNIT 10 DESCRIPTION", - # "name": 10 - # }, - # { - # "description": "UNIT 11 DESCRIPTION", - # "name": 11 - # } - # ] - # }, - # { - # "description": "OUTER", - # "enabled": true, - # "name": "fxp0", - # "units": [ - # { - # "description": "Sample config", - # "name": 0 - # } - # ] + # lo0 { + # unit 0 { + # family inet { + # address 192.0.2.1/32; # } - # ] - # After state: + # } + # } + + # Using gathered + + # Before state: # ------------ # # vagrant@vsrx# show interfaces + # ge-0/0/1 { + # unit 0; + # } # fe-0/0/2 { - # description "This is interface DESCRIPTION"; + # description "Configured by Ansible-2"; + # disable; # vlan-tagging; + # mtu 2800; # unit 10 { - # description "UNIT 10 DESCRIPTION"; # vlan-id 10; # } # unit 11 { - # description "UNIT 11 DESCRIPTION"; # vlan-id 11; # } # } + # ge-0/0/2 { + # description "Configured by Ansible-2"; + # disable; + # mtu 2800; + # } + # ge-0/0/3 { + # description "Configured by Ansible-3"; + # } # fxp0 { - # description OUTER; # unit 0 { - # description "Sample config"; # family inet { # dhcp; # } # } # } + # lo0 { + # unit 0 { + # family inet { + # address 192.0.2.1/32; + # } + # } + # } + + - name: Gather junos interfaces as in given arguments + junipernetworks.junos.junos_interfaces: + state: gathered + + # Task Output + # ----------- # + # gathered: + # - enabled: true + # name: ge-0/0/1 + # - description: Configured by Ansible-2 + # enabled: false + # mtu: 2800 + # name: fe-0/0/2 + # - description: Configured by Ansible-2 + # enabled: false + # mtu: 2800 + # name: ge-0/0/2 + # - description: Configured by Ansible-3 + # enabled: true + # name: ge-0/0/3 + # - enabled: true + # name: fxp0 + # - enabled: true + # name: lo0 + # Using parsed + # parsed.cfg # ------------ # @@ -639,46 +992,48 @@ Examples # </interfaces> # </configuration> # </rpc-reply> - # - name: Convert interfaces config to argspec without connecting to the appliance + + # - name: Convert interfaces config to structured data without connecting to the appliance # junipernetworks.junos.junos_interfaces: # running_config: "{{ lookup('file', './parsed.cfg') }}" # state: parsed - # Task Output (redacted) - # ----------------------- - # "parsed": [ - # { - # "description": "Configured by Ansible", - # "duplex": "full-duplex", - # "enabled": false, - # "hold_time": { - # "down": 2200, - # "up": 2000 - # }, - # "mtu": 1024, - # "name": "ge-0/0/1", - # "speed": "100m" - # } - # ] + + # Task Output + # ----------- # + # parsed: + # - description: Configured by Ansible + # duplex: full-duplex + # enabled: false + # hold_time: + # down: 2200 + # up: 2000 + # mtu: 1024 + # name: ge-0/0/1 + # speed: 100m + # Using rendered + - name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_interfaces: config: - - name: ge-0/0/2 - description: Configured by Ansibull - mtu: 2048 - speed: 20m - hold_time: - up: 3200 - down: 3200 + - name: ge-0/0/2 + description: Configured by Ansible + mtu: 2048 + speed: 20m + hold_time: + up: 3200 + down: 3200 state: rendered - # Task Output (redacted) - # ----------------------- - # "rendered": <nc:interfaces + + # Task Output + # ----------- + # + # rendered: <nc:interfaces # xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> # <nc:interface> # <nc:name>ge-0/0/2</nc:name> - # <nc:description>Configured by Ansibull</nc:description> + # <nc:description>Configured by Ansible</nc:description> # <nc:speed>20m</nc:speed> # <nc:mtu>2048</nc:mtu> # <nc:hold-time> @@ -741,6 +1096,57 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <tr> <td colspan="1"> <div class="ansibleOptionAnchor" id="return-"></div> + <b>gathered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>gathered</code></td> + <td> + <div>Facts about the network resource gathered from the remote device as structured data.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>parsed</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>parsed</code></td> + <td> + <div>The device native config provided in <em>running_config</em> option parsed into structured data as per module argspec.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>rendered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>rendered</code></td> + <td> + <div>The provided configuration in the task rendered in device-native format (offline).</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">']</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> <b>xml</b> <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> <div style="font-size: small"> diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_l2_interfaces_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_l2_interfaces_module.rst index c39d2b55e..b14828db2 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_l2_interfaces_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_l2_interfaces_module.rst @@ -246,7 +246,8 @@ Notes .. note:: - This module requires the netconf system service be enabled on the remote device being managed. - Tested against vSRX JUNOS version 18.4R1. - - This module works with connection ``netconf``. See `the Junos OS Platform Options <../network/user_guide/platform_junos.html>`_. + - This module works with connection ``netconf``. See https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html + - The module examples uses callback plugin (stdout_callback = yaml) to generate task output in yaml format. @@ -255,119 +256,162 @@ Examples .. code-block:: yaml - # Using deleted + # Using merged # Before state: # ------------- # # ansible@junos01# show interfaces # ge-0/0/1 { - # description "L2 interface"; - # speed 1g; - # unit 0 { - # family ethernet-switching { - # interface-mode access; - # vlan { - # members vlan30; - # } - # } - # } - #} - #ge-0/0/2 { - # description "non L2 interface"; - # unit 0 { - # family inet { - # address 192.168.56.14/24; - # } - # } - - - name: "Delete L2 attributes of given interfaces (Note: This won't delete the - interface itself)." - junipernetworks.junos.junos_l2_interfaces: - config: - - name: ge-0/0/1 - - name: ge-0/0/2 - state: deleted - - # After state: - # ------------ - # - # ansible@junos01# show interfaces - # ge-0/0/1 { - # description "L2 interface"; - # speed 1g; + # unit 0 { + # family inet; + # family inet6; + # } + # } + # ge-0/0/2 { + # unit 0 { + # family inet; + # family inet6; + # } # } - #ge-0/0/2 { - # description "non L2 interface"; - # unit 0 { - # family inet { - # address 192.168.56.14/24; - # } - # } - - - # Using merged - - # Before state: - # ------------- - # ansible@junos01# show interfaces # ge-0/0/3 { - # description "test interface"; - # speed 1g; - #} + # unit 0 { + # family ethernet-switching { + # interface-mode access; + # } + # } + # } # ge-0/0/4 { - # description interface-trunk; - # native-vlan-id 100; - # unit 0 { - # family ethernet-switching { - # interface-mode trunk; - # vlan { - # members [ vlan40 ]; - # } - # } - # } - # } - - - name: Merge provided configuration with device configuration (default operation - is merge) + # unit 0 { + # family ethernet-switching { + # interface-mode access; + # } + # } + # } + # fxp0 { + # enable; + # unit 0 { + # family inet { + # dhcp; + # } + # family inet6; + # } + # } + + - name: Merge provided configuration with device configuration junipernetworks.junos.junos_l2_interfaces: config: - - name: ge-0/0/3 - access: - vlan: v101 - - name: ge-0/0/4 - trunk: - allowed_vlans: - - vlan30 - native_vlan: 50 + - name: ge-0/0/3 + access: + vlan: v101 + - name: ge-0/0/4 + trunk: + allowed_vlans: + - vlan30 + native_vlan: 50 state: merged + # Task Output + # ----------- + # + # before: + # - enhanced_layer: true + # name: ge-0/0/3 + # unit: 0 + # - enhanced_layer: true + # name: ge-0/0/4 + # unit: 0 + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:interface> + # <nc:name>ge-0/0/3</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:ethernet-switching> + # <nc:interface-mode>access</nc:interface-mode> + # <nc:vlan> + # <nc:members>v101</nc:members> + # </nc:vlan> + # </nc:ethernet-switching> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/4</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:ethernet-switching> + # <nc:interface-mode>trunk</nc:interface-mode> + # <nc:vlan> + # <nc:members>vlan30</nc:members> + # </nc:vlan> + # </nc:ethernet-switching> + # </nc:family> + # </nc:unit> + # <nc:native-vlan-id>50</nc:native-vlan-id> + # </nc:interface> + # </nc:interfaces> + # after: + # - access: + # vlan: v101 + # enhanced_layer: true + # name: ge-0/0/3 + # unit: 0 + # - enhanced_layer: true + # name: ge-0/0/4 + # trunk: + # allowed_vlans: + # - vlan30 + # native_vlan: '50' + # unit: 0 + # After state: # ------------ + # # user@junos01# show interfaces + # ge-0/0/1 { + # unit 0 { + # family inet; + # family inet6; + # } + # } + # ge-0/0/2 { + # unit 0 { + # family inet; + # family inet6; + # } + # } # ge-0/0/3 { - # description "test interface"; - # speed 1g; - # unit 0 { - # family ethernet-switching { - # interface-mode access; - # vlan { - # members v101; - # } - # } - # } + # unit 0 { + # family ethernet-switching { + # interface-mode access; + # vlan { + # members v101; + # } + # } + # } # } # ge-0/0/4 { - # description interface-trunk; - # native-vlan-id 50; - # unit 0 { - # family ethernet-switching { - # interface-mode trunk; - # vlan { - # members [ vlan40 vlan30 ]; - # } - # } - # } + # native-vlan-id 50; + # unit 0 { + # family ethernet-switching { + # interface-mode trunk; + # vlan { + # members vlan30; + # } + # } + # } + # } + # fxp0 { + # enable; + # unit 0 { + # family inet { + # dhcp; + # } + # family inet6; + # } # } @@ -376,94 +420,211 @@ Examples # Before state: # ------------- # ansible@junos01# show interfaces + # ge-0/0/1 { + # unit 0 { + # family inet; + # family inet6; + # } + # } + # ge-0/0/2 { + # unit 0 { + # family inet; + # family inet6; + # } + # } # ge-0/0/3 { - # description "test interface"; - # speed 1g; - #} + # unit 0 { + # family ethernet-switching { + # interface-mode access; + # vlan { + # members v101; + # } + # } + # } + # } # ge-0/0/4 { - # description interface-trunk; - # native-vlan-id 100; - # unit 0 { - # family ethernet-switching { - # interface-mode trunk; - # vlan { - # members [ vlan40 ]; - # } - # } - # } - # } - # ge-0/0/5 { - # description "Configured by Ansible-11"; - # unit 0 { - # family ethernet-switching { - # interface-mode access; - # vlan { - # members v101; - # } - # } - # } + # native-vlan-id 50; + # unit 0 { + # family ethernet-switching { + # interface-mode trunk; + # vlan { + # members vlan30; + # } + # } + # } + # } + # fxp0 { + # enable; + # unit 0 { + # family inet { + # dhcp; + # } + # family inet6; + # } # } - name: Override provided configuration with device configuration junipernetworks.junos.junos_l2_interfaces: config: - - name: ge-0/0/3 - access: - vlan: v101 - name: ge-0/0/4 trunk: allowed_vlans: - - vlan30 - native_vlan: 50 + - v101 + native_vlan: 30 state: overridden + # Task Output + # ----------- + # + # before: + # - access: + # vlan: v101 + # enhanced_layer: true + # name: ge-0/0/3 + # unit: 0 + # - enhanced_layer: true + # name: ge-0/0/4 + # trunk: + # allowed_vlans: + # - vlan30 + # native_vlan: '50' + # unit: 0 + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:interface> + # <nc:name>ge-0/0/4</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:ethernet-switching> + # <nc:interface-mode delete="delete"/> + # <nc:vlan delete="delete"/> + # </nc:ethernet-switching> + # </nc:family> + # </nc:unit> + # <nc:native-vlan-id delete="delete"/> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/4</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:ethernet-switching> + # <nc:interface-mode>trunk</nc:interface-mode> + # <nc:vlan> + # <nc:members>v101</nc:members> + # </nc:vlan> + # </nc:ethernet-switching> + # </nc:family> + # </nc:unit> + # <nc:native-vlan-id>30</nc:native-vlan-id> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/3</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:ethernet-switching> + # <nc:interface-mode delete="delete"/> + # <nc:vlan delete="delete"/> + # </nc:ethernet-switching> + # </nc:family> + # </nc:unit> + # <nc:native-vlan-id delete="delete"/> + # </nc:interface> + # </nc:interfaces> + # after: + # - enhanced_layer: true + # name: ge-0/0/4 + # trunk: + # allowed_vlans: + # - v101 + # native_vlan: '30' + # unit: 0 + # After state: # ------------ # user@junos01# show interfaces + # ge-0/0/1 { + # unit 0 { + # family inet; + # family inet6; + # } + # } + # ge-0/0/2 { + # unit 0 { + # family inet; + # family inet6; + # } + # } # ge-0/0/3 { - # unit 0 { - # family ethernet-switching { - # interface-mode access; - # vlan { - # members v101; - # } - # } - # } + # unit 0 { + # family ethernet-switching; + # } # } # ge-0/0/4 { - # description interface-trunk; - # native-vlan-id 50; - # unit 0 { - # family ethernet-switching { - # interface-mode trunk; - # vlan { - # members [ vlan30 ]; - # } - # } - # } + # native-vlan-id 30; + # unit 0 { + # family ethernet-switching { + # interface-mode trunk; + # vlan { + # members v101; + # } + # } + # } + # } + # fxp0 { + # enable; + # unit 0 { + # family inet { + # dhcp; + # } + # family inet6; + # } # } - # Using replaced # Before state: # ------------- + # # ansible@junos01# show interfaces + # ge-0/0/1 { + # unit 0 { + # family inet; + # family inet6; + # } + # } + # ge-0/0/2 { + # unit 0 { + # family inet; + # family inet6; + # } + # } # ge-0/0/3 { - # description "test interface"; - # speed 1g; - #} + # unit 0 { + # family ethernet-switching; + # } + # } # ge-0/0/4 { - # description interface-trunk; - # native-vlan-id 100; - # unit 0 { - # family ethernet-switching { - # interface-mode trunk; - # vlan { - # members [ vlan40 ]; - # } - # } - # } + # native-vlan-id 30; + # unit 0 { + # family ethernet-switching { + # interface-mode trunk; + # vlan { + # members v101; + # } + # } + # } + # } + # fxp0 { + # enable; + # unit 0 { + # family inet { + # dhcp; + # } + # family inet6; + # } # } - name: Replace provided configuration with device configuration @@ -479,111 +640,268 @@ Examples native_vlan: 50 state: replaced + # Task Output + # ----------- + # + # before: + # - enhanced_layer: true + # name: ge-0/0/4 + # trunk: + # allowed_vlans: + # - v101 + # native_vlan: '30' + # unit: 0 + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:interface> + # <nc:name>ge-0/0/4</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:ethernet-switching> + # <nc:interface-mode delete="delete"/> + # <nc:vlan delete="delete"/> + # </nc:ethernet-switching> + # </nc:family> + # </nc:unit> + # <nc:native-vlan-id delete="delete"/> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/3</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:ethernet-switching> + # <nc:interface-mode>access</nc:interface-mode> + # <nc:vlan> + # <nc:members>v101</nc:members> + # </nc:vlan> + # </nc:ethernet-switching> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/4</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:ethernet-switching> + # <nc:interface-mode>trunk</nc:interface-mode> + # <nc:vlan> + # <nc:members>vlan30</nc:members> + # </nc:vlan> + # </nc:ethernet-switching> + # </nc:family> + # </nc:unit> + # <nc:native-vlan-id>50</nc:native-vlan-id> + # </nc:interface> + # </nc:interfaces> + # after: + # - access: + # vlan: v101 + # enhanced_layer: true + # name: ge-0/0/3 + # unit: 0 + # - enhanced_layer: true + # name: ge-0/0/4 + # trunk: + # allowed_vlans: + # - vlan30 + # native_vlan: '50' + # unit: 0 + # After state: # ------------ + # # user@junos01# show interfaces + # ge-0/0/1 { + # unit 0 { + # family inet; + # family inet6; + # } + # } + # ge-0/0/2 { + # unit 0 { + # family inet; + # family inet6; + # } + # } # ge-0/0/3 { - # unit 0 { - # family ethernet-switching { - # interface-mode access; - # vlan { - # members v101; - # } - # } - # } + # unit 0 { + # family ethernet-switching { + # interface-mode access; + # vlan { + # members v101; + # } + # } + # } # } # ge-0/0/4 { - # description interface-trunk; - # native-vlan-id 50; - # unit 0 { - # family ethernet-switching { - # interface-mode trunk; - # vlan { - # members [ vlan30 ]; - # } - # } - # } + # native-vlan-id 50; + # unit 0 { + # family ethernet-switching { + # interface-mode trunk; + # vlan { + # members vlan30; + # } + # } + # } # } - # Using gathered + # fxp0 { + # enable; + # unit 0 { + # family inet { + # dhcp; + # } + # family inet6; + # } + # } + + # Using deleted + # Before state: - # ------------ + # ------------- # - # user@junos01# show interfaces + # ansible@junos01# show interfaces # ge-0/0/1 { - # description "Configured by Ansible"; - # disable; - # speed 100m; - # mtu 1024; - # hold-time up 2000 down 2200; - # link-mode full-duplex; + # unit 0 { + # family inet; + # family inet6; + # } + # } + # ge-0/0/2 { + # unit 0 { + # family inet; + # family inet6; + # } + # } + # ge-0/0/3 { # unit 0 { # family ethernet-switching { # interface-mode access; # vlan { - # members vlan100; + # members v101; # } # } # } # } - # ge-0/0/2 { - # description "Configured by Ansible"; - # native-vlan-id 400; - # speed 10m; - # mtu 2048; - # hold-time up 3000 down 3200; + # ge-0/0/4 { + # native-vlan-id 50; # unit 0 { # family ethernet-switching { # interface-mode trunk; # vlan { - # members [ vlan200 vlan300 ]; + # members vlan30; # } # } # } # } - # em1 { - # description TEST; - # } # fxp0 { - # description ANSIBLE; - # speed 1g; - # link-mode automatic; + # enable; # unit 0 { # family inet { - # address 10.8.38.38/24; + # dhcp; # } + # family inet6; # } # } - - name: Gather junos layer 2 interfaces as in given arguments + + - name: "Delete L2 attributes of given interfaces (Note: This won't delete the + interface itself)." junipernetworks.junos.junos_l2_interfaces: - state: gathered - # Task Output (redacted) - # ----------------------- + config: + - name: ge-0/0/1 + - name: ge-0/0/2 + state: deleted + + # Task Output + # ----------- # - # "gathered": [ - # { - # "access": { - # "vlan": "vlan100" - # }, - # "enhanced_layer": true, - # "name": "ge-0/0/1", - # "unit": 0 - # }, - # { - # "enhanced_layer": true, - # "name": "ge-0/0/2", - # "trunk": { - # "allowed_vlans": [ - # "vlan200", - # "vlan300" - # ], - # "native_vlan": "400" - # }, - # "unit": 0 - # } - # ] + # before: + # - access: + # vlan: v101 + # enhanced_layer: true + # name: ge-0/0/3 + # unit: 0 + # - enhanced_layer: true + # name: ge-0/0/4 + # trunk: + # allowed_vlans: + # - vlan30 + # native_vlan: '50' + # unit: 0 + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:interface> + # <nc:name>ge-0/0/3</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:ethernet-switching> + # <nc:interface-mode delete="delete"/> + # <nc:vlan delete="delete"/> + # </nc:ethernet-switching> + # </nc:family> + # </nc:unit> + # <nc:native-vlan-id delete="delete"/> + # </nc:interface> + # </nc:interfaces> + # after: + # - enhanced_layer: true + # name: ge-0/0/4 + # trunk: + # allowed_vlans: + # - vlan30 + # native_vlan: '50' + # unit: 0 + # After state: # ------------ # + # ansible@junos01# show interfaces + # ge-0/0/1 { + # unit 0 { + # family inet; + # family inet6; + # } + # } + # ge-0/0/2 { + # unit 0 { + # family inet; + # family inet6; + # } + # } + # ge-0/0/3 { + # unit 0 { + # family ethernet-switching; + # } + # } + # ge-0/0/4 { + # native-vlan-id 50; + # unit 0 { + # family ethernet-switching { + # interface-mode trunk; + # vlan { + # members vlan30; + # } + # } + # } + # } + # fxp0 { + # enable; + # unit 0 { + # family inet { + # dhcp; + # } + # family inet6; + # } + # } + + # Using gathered + + # Before state: + # ------------- + # # user@junos01# show interfaces # ge-0/0/1 { # description "Configured by Ansible"; @@ -629,7 +947,31 @@ Examples # } # } # } + + - name: Gather junos layer 2 interfaces facts + junipernetworks.junos.junos_l2_interfaces: + state: gathered + + # Task Output + # ----------- + # + # gathered: + # - access: + # vlan: vlan100 + # enhanced_layer: true + # name: ge-0/0/1 + # unit: 0 + # - enhanced_layer: true + # name: ge-0/0/2 + # trunk: + # allowed_vlans: + # - vlan200 + # - vlan300 + # native_vlan: '400' + # unit: 0 + # Using parsed + # parsed.cfg # ------------ # @@ -663,36 +1005,32 @@ Examples # </interfaces> # </configuration> # </rpc-reply> - # - name: Convert interfaces config to argspec without connecting to the appliance - # junipernetworks.junos.junos_l2_interfaces: - # running_config: "{{ lookup('file', './parsed.cfg') }}" - # state: parsed - # Task Output (redacted) - # ----------------------- - # "parsed": [ - # { - # "access": { - # "vlan": "vlan100" - # }, - # "enhanced_layer": true, - # "name": "ge-0/0/1", - # "unit": 0 - # }, - # { - # "enhanced_layer": true, - # "name": "ge-0/0/2", - # "trunk": { - # "allowed_vlans": [ - # "vlan200", - # "vlan300" - # ], - # "native_vlan": "400" - # }, - # "unit": 0 - # } - # ] + + - name: Convert interfaces config to argspec without connecting to the appliance + junipernetworks.junos.junos_l2_interfaces: + running_config: "{{ lookup('file', './parsed.cfg') }}" + state: parsed + + # Task Output + # ----------- # + # parsed: + # - access: + # vlan: vlan100 + # enhanced_layer: true + # name: ge-0/0/1 + # unit: 0 + # - enhanced_layer: true + # name: ge-0/0/2 + # trunk: + # allowed_vlans: + # - vlan200 + # - vlan300 + # native_vlan: '400' + # unit: 0 + # Using rendered + - name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_l2_interfaces: config: @@ -706,10 +1044,11 @@ Examples - vlan300 native_vlan: '400' state: rendered - # Task Output (redacted) - # ----------------------- - # "rendered": "<nc:interfaces - # xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + + # Task Output + # ----------- + # + # "rendered": "<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> # <nc:interface> # <nc:name>ge-0/0/1</nc:name> # <nc:unit> @@ -809,6 +1148,57 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:interface> <nc:name>ge-0/0/1</nc:name> <nc:unit> <nc:name>0</nc:name> <nc:family> <nc:ethernet-switching> <nc:interface-mode>access</nc:interface-mode> <nc:vlan> <nc:members>vlan100</nc:members> </nc:vlan> </nc:ethernet-switching> </nc:family> </nc:unit> </nc:interface> <nc:interface> <nc:name>ge-0/0/2</nc:name> <nc:unit> <nc:name>0</nc:name> <nc:family> <nc:ethernet-switching> <nc:interface-mode>trunk</nc:interface-mode> <nc:vlan> <nc:members>vlan200</nc:members> <nc:members>vlan300</nc:members> </nc:vlan> </nc:ethernet-switching> </nc:family> </nc:unit> <nc:native-vlan-id>400</nc:native-vlan-id> </nc:interface> </nc:interfaces>', 'xml 2', 'xml 3']</div> </td> </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>gathered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>gathered</code></td> + <td> + <div>Facts about the network resource gathered from the remote device as structured data.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>parsed</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>parsed</code></td> + <td> + <div>The device native config provided in <em>running_config</em> option parsed into structured data as per module argspec.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>rendered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>rendered</code></td> + <td> + <div>The provided configuration in the task rendered in device-native format (offline).</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">']</div> + </td> + </tr> </table> <br/><br/> diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_l3_interfaces_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_l3_interfaces_module.rst index 3ec94094d..ef68d82f2 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_l3_interfaces_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_l3_interfaces_module.rst @@ -210,8 +210,9 @@ Notes .. note:: - This module requires the netconf system service be enabled on the device being managed. - - This module works with connection ``netconf``. See `the Junos OS Platform Options <../network/user_guide/platform_junos.html>`_. - Tested against JunOS v18.4R1 + - This module works with connection ``netconf``. See https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html + - The module examples uses callback plugin (stdout_callback = yaml) to generate task output in yaml format. @@ -220,75 +221,22 @@ Examples .. code-block:: yaml - # Using deleted - - # Before state: - # ------------- - # - # admin# show interfaces - # ge-0/0/1 { - # description "L3 interface"; - # unit 0 { - # family inet { - # address 10.200.16.10/24; - # } - # } - # } - # ge-0/0/2 { - # description "non L3 interface"; - # unit 0 { - # family ethernet-switching { - # interface-mode access; - # vlan { - # members 2; - # } - # } - # } - # } - - - name: Delete JUNOS L3 logical interface - junipernetworks.junos.junos_l3_interfaces: - config: - - name: ge-0/0/1 - - name: ge-0/0/2 - state: deleted - - # After state: - # ------------ - # - # admin# show interfaces - # ge-0/0/1 { - # description "deleted L3 interface"; - # } - # ge-0/0/2 { - # description "non L3 interface"; - # unit 0 { - # family ethernet-switching { - # interface-mode access; - # vlan { - # members 2; - # } - # } - # } - # } # Using merged + # Before state # ------------ # # admin# show interfaces - # ge-0/0/1 { - # description "L3 interface"; + # fxp0 { + # enable; # unit 0 { # family inet { - # address 10.200.16.10/24; + # dhcp; # } # } # } - # ge-0/0/2 { - # description "non configured interface"; - # unit 0; - # } - - name: Merge provided configuration with device configuration (default operation is merge) + + - name: Merge provided configuration with device configuration junipernetworks.junos.junos_l3_interfaces: config: - name: ge-0/0/1 @@ -301,15 +249,71 @@ Examples - address: dhcp state: merged + # Task Output + # ----------- + # + # before: + # - ipv4: + # - address: dhcp + # name: fxp0 + # unit: '0' + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:interface> + # <nc:name>ge-0/0/1</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:address> + # <nc:name>192.168.1.10/24</nc:name> + # </nc:address> + # </nc:inet> + # </nc:family> + # <nc:family> + # <nc:inet6> + # <nc:address> + # <nc:name>8d8d:8d01::1/64</nc:name> + # </nc:address> + # </nc:inet6> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/2</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:dhcp/> + # </nc:inet> + # </nc:family> + # </nc:unit> + # </nc:interface> + # </nc:interfaces> + # after: + # - ipv4: + # - address: 192.168.1.10/24 + # ipv6: + # - address: 8d8d:8d01::1/64 + # name: ge-0/0/1 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: ge-0/0/2 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: fxp0 + # unit: '0' + # After state: # ------------ # # admin# show interfaces # ge-0/0/1 { - # description "L3 interface"; # unit 0 { # family inet { - # address 10.200.16.10/24; # address 192.168.1.10/24; # } # family inet6 { @@ -318,14 +322,20 @@ Examples # } # } # ge-0/0/2 { - # description "L3 interface with dhcp"; # unit 0 { # family inet { # dhcp; # } # } # } - + # fxp0 { + # enable; + # unit 0 { + # family inet { + # dhcp; + # } + # } + # } # Using overridden @@ -334,26 +344,27 @@ Examples # # admin# show interfaces # ge-0/0/1 { - # description "L3 interface"; # unit 0 { # family inet { - # address 10.200.16.10/24; + # address 192.168.1.10/24; + # } + # family inet6 { + # address 8d8d:8d01::1/64; # } # } # } # ge-0/0/2 { - # description "L3 interface with dhcp"; # unit 0 { # family inet { # dhcp; # } # } # } - # ge-0/0/3 { - # description "another L3 interface"; + # fxp0 { + # enable; # unit 0 { # family inet { - # address 192.168.1.10/24; + # dhcp; # } # } # } @@ -364,42 +375,139 @@ Examples - name: ge-0/0/1 ipv4: - address: 192.168.1.10/24 - ipv6: - - address: 8d8d:8d01::1/64 - - name: ge-0/0/2 - ipv6: - - address: 2001:db8:3000::/64 + - ipv4: + - address: dhcp + name: fxp0 + unit: '0' state: overridden + # Task Output + # ----------- + # + # before: + # - ipv4: + # - address: 192.168.1.10/24 + # ipv6: + # - address: 8d8d:8d01::1/64 + # name: ge-0/0/1 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: ge-0/0/2 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: fxp0 + # unit: '0' + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:interface> + # <nc:name>ge-0/0/1</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:address delete="delete"/> + # </nc:inet> + # <nc:inet6> + # <nc:address delete="delete"/> + # </nc:inet6> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/2</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:dhcp delete="delete"/> + # </nc:inet> + # <nc:inet6> + # <nc:address delete="delete"/> + # </nc:inet6> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>fxp0</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:dhcp delete="delete"/> + # </nc:inet> + # <nc:inet6> + # <nc:address delete="delete"/> + # </nc:inet6> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/1</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:address> + # <nc:name>192.168.1.10/24</nc:name> + # </nc:address> + # </nc:inet> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>fxp0</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:dhcp/> + # </nc:inet> + # </nc:family> + # </nc:unit> + # </nc:interface> + # </nc:interfaces> + # after: + # - ipv4: + # - address: 192.168.1.10/24 + # name: ge-0/0/1 + # unit: '0' + # - name: ge-0/0/2 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: fxp0 + # unit: '0' + # After state: # ------------ # # admin# show interfaces # ge-0/0/1 { - # description "L3 interface"; # unit 0 { # family inet { # address 192.168.1.10/24; # } - # family inet6 { - # address 8d8d:8d01::1/64; - # } + # family inet6; # } # } # ge-0/0/2 { - # description "L3 interface with ipv6"; # unit 0 { - # family inet6 { - # address 2001:db8:3000::/64; - # } + # family inet; + # family inet6; # } # } - # ge-0/0/3 { - # description "overridden L3 interface"; - # unit 0; + # fxp0 { + # enable; + # unit 0 { + # family inet { + # dhcp; + # } + # family inet6; + # } # } - # Using replaced # Before state @@ -407,23 +515,26 @@ Examples # # admin# show interfaces # ge-0/0/1 { - # description "L3 interface"; # unit 0 { # family inet { - # address 10.200.16.10/24; + # address 192.168.1.10/24; # } + # family inet6; # } # } # ge-0/0/2 { - # description "non configured interface"; - # unit 0; + # unit 0 { + # family inet; + # family inet6; + # } # } - # ge-0/0/3 { - # description "another L3 interface"; + # fxp0 { + # enable; # unit 0 { # family inet { - # address 192.168.1.10/24; + # dhcp; # } + # family inet6; # } # } @@ -440,12 +551,101 @@ Examples - address: dhcp state: replaced + # Task Output + # ----------- + # + # before: + # - ipv4: + # - address: 192.168.1.10/24 + # name: ge-0/0/1 + # unit: '0' + # - name: ge-0/0/2 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: fxp0 + # unit: '0' + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:interface> + # <nc:name>ge-0/0/1</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:address delete="delete"/> + # </nc:inet> + # <nc:inet6> + # <nc:address delete="delete"/> + # </nc:inet6> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/2</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet/> + # <nc:inet6> + # <nc:address delete="delete"/> + # </nc:inet6> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/1</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:address> + # <nc:name>192.168.1.10/24</nc:name> + # </nc:address> + # </nc:inet> + # </nc:family> + # <nc:family> + # <nc:inet6> + # <nc:address> + # <nc:name>8d8d:8d01::1/64</nc:name> + # </nc:address> + # </nc:inet6> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/2</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:dhcp/> + # </nc:inet> + # </nc:family> + # </nc:unit> + # </nc:interface> + # </nc:interfaces> + # after: + # - ipv4: + # - address: 192.168.1.10/24 + # ipv6: + # - address: 8d8d:8d01::1/64 + # name: ge-0/0/1 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: ge-0/0/2 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: fxp0 + # unit: '0' + # After state: # ------------ # # admin# show interfaces # ge-0/0/1 { - # description "L3 interface"; # unit 0 { # family inet { # address 192.168.1.10/24; @@ -456,151 +656,152 @@ Examples # } # } # ge-0/0/2 { - # description "L3 interface with dhcp"; # unit 0 { # family inet { # dhcp; # } + # family inet6; # } # } - # ge-0/0/3 { - # description "another L3 interface"; + # fxp0 { + # enable; # unit 0 { # family inet { - # address 192.168.1.10/24; + # dhcp; # } + # family inet6; # } # } - # Using gathered + + # Using deleted + # Before state: - # ------------ + # ------------- # - # user@junos01# show interfaces + # admin# show interfaces # ge-0/0/1 { - # description "Configured by Ansible"; - # disable; - # speed 100m; - # mtu 1024; - # hold-time up 2000 down 2200; - # link-mode full-duplex; # unit 0 { - # family ethernet-switching { - # interface-mode access; - # vlan { - # members vlan100; - # } + # family inet { + # address 192.168.1.10/24; + # } + # family inet6 { + # address 8d8d:8d01::1/64; # } # } # } # ge-0/0/2 { - # description "Configured by Ansible"; - # native-vlan-id 400; - # speed 10m; - # mtu 2048; - # hold-time up 3000 down 3200; # unit 0 { - # family ethernet-switching { - # interface-mode trunk; - # vlan { - # members [ vlan200 vlan300 ]; - # } + # family inet { + # dhcp; # } + # family inet6; # } # } - # ge-1/0/0 { + # fxp0 { + # enable; # unit 0 { # family inet { - # address 192.168.100.1/24; - # address 10.200.16.20/24; + # dhcp; # } # family inet6; # } # } - # ge-2/0/0 { + + - name: Delete L3 logical interface + junipernetworks.junos.junos_l3_interfaces: + config: + - name: ge-0/0/1 + - name: ge-0/0/2 + state: deleted + + # Task Output + # ----------- + # + # before: + # - ipv4: + # - address: 192.168.1.10/24 + # ipv6: + # - address: 8d8d:8d01::1/64 + # name: ge-0/0/1 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: ge-0/0/2 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: fxp0 + # unit: '0' + # commands: + # - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:interface> + # <nc:name>ge-0/0/1</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:address delete="delete"/> + # </nc:inet> + # <nc:inet6> + # <nc:address delete="delete"/> + # </nc:inet6> + # </nc:family> + # </nc:unit> + # </nc:interface> + # <nc:interface> + # <nc:name>ge-0/0/2</nc:name> + # <nc:unit> + # <nc:name>0</nc:name> + # <nc:family> + # <nc:inet> + # <nc:dhcp delete="delete"/> + # </nc:inet> + # <nc:inet6> + # <nc:address delete="delete"/> + # </nc:inet6> + # </nc:family> + # </nc:unit> + # </nc:interface> + # </nc:interfaces> + # after: + # - name: ge-0/0/1 + # unit: '0' + # - name: ge-0/0/2 + # unit: '0' + # - ipv4: + # - address: dhcp + # name: fxp0 + # unit: '0' + + # After state: + # ------------ + # + # admin# show interfaces + # ge-0/0/1 { # unit 0 { - # family inet { - # address 192.168.100.2/24; - # address 10.200.16.21/24; - # } + # family inet; # family inet6; # } # } - # ge-3/0/0 { + # ge-0/0/2 { # unit 0 { - # family inet { - # address 192.168.100.3/24; - # address 10.200.16.22/24; - # } + # family inet; # family inet6; # } # } - # em1 { - # description TEST; - # } # fxp0 { - # description ANSIBLE; - # speed 1g; - # link-mode automatic; + # enable; # unit 0 { # family inet { - # address 10.8.38.38/24; + # dhcp; # } + # family inet6; # } # } - - name: Gather junos layer3 interfaces as in given arguments - junipernetworks.junos.junos_l3_interfaces: - state: gathered - # Task Output (redacted) - # ----------------------- - # - # "gathered": [ - # { - # "ipv4": [ - # { - # "address": "192.168.100.1/24" - # }, - # { - # "address": "10.200.16.20/24" - # } - # ], - # "name": "ge-1/0/0", - # "unit": "0" - # }, - # { - # "ipv4": [ - # { - # "address": "192.168.100.2/24" - # }, - # { - # "address": "10.200.16.21/24" - # } - # ], - # "name": "ge-2/0/0", - # "unit": "0" - # }, - # { - # "ipv4": [ - # { - # "address": "192.168.100.3/24" - # }, - # { - # "address": "10.200.16.22/24" - # } - # ], - # "name": "ge-3/0/0", - # "unit": "0" - # }, - # { - # "ipv4": [ - # { - # "address": "10.8.38.38/24" - # } - # ], - # "name": "fxp0", - # "unit": "0" - # } - # ] - # After state: + + # Using gathered + + # Before state: # ------------ # # user@junos01# show interfaces @@ -675,7 +876,37 @@ Examples # } # } # } + + - name: Gather layer3 interfaces facts + junipernetworks.junos.junos_l3_interfaces: + state: gathered + + # Task Output + # ----------- + # + # gathered: + # - ipv4: + # - address: 192.168.100.1/24 + # - address: 10.200.16.20/24 + # name: ge-1/0/0 + # unit: '0' + # - ipv4: + # - address: 192.168.100.2/24 + # - address: 10.200.16.21/24 + # name: ge-2/0/0 + # unit: '0' + # - ipv4: + # - address: 192.168.100.3/24 + # - address: 10.200.16.22/24 + # name: ge-3/0/0 + # unit: '0' + # - ipv4: + # - address: 10.8.38.38/24 + # name: fxp0 + # unit: '0' + # Using parsed + # parsed.cfg # ------------ # @@ -720,40 +951,29 @@ Examples # </interfaces> # </configuration> # </rpc-reply> + # - name: Convert interfaces config to argspec without connecting to the appliance # junipernetworks.junos.junos_l3_interfaces: # running_config: "{{ lookup('file', './parsed.cfg') }}" # state: parsed - # Task Output (redacted) - # ----------------------- - # "parsed": [ - # { - # "ipv4": [ - # { - # "address": "192.168.100.1/24" - # }, - # { - # "address": "10.200.16.20/24" - # } - # ], - # "name": "ge-1/0/0", - # "unit": "0" - # }, - # { - # "ipv4": [ - # { - # "address": "192.168.100.2/24" - # }, - # { - # "address": "10.200.16.21/24" - # } - # ], - # "name": "ge-2/0/0", - # "unit": "0" - # } - # ] + + # Task Output + # ----------- # + # parsed: + # - ipv4: + # - address: 192.168.100.1/24 + # - address: 10.200.16.20/24 + # name: ge-1/0/0 + # unit: '0' + # - ipv4: + # - address: 192.168.100.2/24 + # - address: 10.200.16.21/24 + # name: ge-2/0/0 + # unit: '0' + # Using rendered + - name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_l3_interfaces: config: @@ -762,17 +982,17 @@ Examples - address: 192.168.100.1/24 - address: 10.200.16.20/24 unit: 0 - - name: ge-2/0/0 ipv4: - address: 192.168.100.2/24 - address: 10.200.16.21/24 unit: 0 state: rendered - # Task Output (redacted) - # ----------------------- - # "rendered": "<nc:interfaces - # xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + + # Task Output + # ----------- + # + # "rendered": "<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> # <nc:interface> # <nc:name>ge-1/0/0</nc:name> # <nc:unit> @@ -874,6 +1094,57 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:interface> <nc:name>ge-1/0/0</nc:name> <nc:unit> <nc:name>0</nc:name> <nc:family> <nc:inet> <nc:address> <nc:name>192.168.100.1/24</nc:name> </nc:address> <nc:address> <nc:name>10.200.16.20/24</nc:name> </nc:address> </nc:inet> </nc:family> </nc:unit> </nc:interfaces>', 'xml 2', 'xml 3']</div> </td> </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>gathered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>gathered</code></td> + <td> + <div>Facts about the network resource gathered from the remote device as structured data.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>parsed</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>parsed</code></td> + <td> + <div>The device native config provided in <em>running_config</em> option parsed into structured data as per module argspec.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>rendered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>rendered</code></td> + <td> + <div>The provided configuration in the task rendered in device-native format (offline).</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">']</div> + </td> + </tr> </table> <br/><br/> diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lacp_interfaces_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lacp_interfaces_module.rst index a1af096ad..3e4115223 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lacp_interfaces_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lacp_interfaces_module.rst @@ -301,16 +301,16 @@ Examples - name: Merge provided configuration with device configuration junipernetworks.junos.junos_lacp_interfaces: config: - - name: ae0 - period: fast - sync_reset: enable - system: - priority: 100 - mac: - address: 00:00:00:00:00:02 - - name: ge-0/0/3 - port_priority: 100 - force_up: true + - name: ae0 + period: fast + sync_reset: enable + system: + priority: 100 + mac: + address: 00:00:00:00:00:02 + - name: ge-0/0/3 + port_priority: 100 + force_up: true state: merged # After state: @@ -399,8 +399,8 @@ Examples - name: Replace device LACP interfaces configuration with provided configuration junipernetworks.junos.junos_lacp_interfaces: config: - - name: ae0 - period: slow + - name: ae0 + period: slow state: replaced # After state: @@ -483,14 +483,14 @@ Examples - name: Overrides all device LACP interfaces configuration with provided configuration junipernetworks.junos.junos_lacp_interfaces: config: - - name: ae0 - system: - priority: 300 - mac: - address: 00:00:00:00:00:03 - - name: ge-0/0/2 - port_priority: 200 - force_up: false + - name: ae0 + system: + priority: 300 + mac: + address: 00:00:00:00:00:03 + - name: ge-0/0/2 + port_priority: 200 + force_up: false state: overridden # After state: @@ -585,9 +585,9 @@ Examples - name: "Delete LACP interfaces attributes of given interfaces (Note: This won't delete the interface itself)" junipernetworks.junos.junos_lacp_interfaces: config: - - name: ae0 - - name: ge-0/0/3 - - name: ge-0/0/2 + - name: ae0 + - name: ge-0/0/3 + - name: ge-0/0/2 state: deleted # After state: @@ -979,17 +979,17 @@ Examples - name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_lacp_interfaces: config: - - name: ae1 - period: fast - sync_reset: enable - system: - priority: 100 - mac: - address: 00:00:00:00:00:02 + - name: ae1 + period: fast + sync_reset: enable + system: + priority: 100 + mac: + address: 00:00:00:00:00:02 - - name: ge-0/0/1 - port_priority: 100 - force_up: true + - name: ge-0/0/1 + port_priority: 100 + force_up: true state: rendered # Task Output (redacted) # ----------------------- diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lag_interfaces_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lag_interfaces_module.rst index d3ab7e89b..8c1f66268 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lag_interfaces_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lag_interfaces_module.rst @@ -256,8 +256,8 @@ Examples - name: "Delete LAG attributes of given interfaces (Note: This won't delete the interface itself)" junipernetworks.junos.junos_lag_interfaces: config: - - name: ae0 - - name: ae1 + - name: ae0 + - name: ae1 state: deleted # After state: @@ -286,12 +286,12 @@ Examples - name: Merge provided configuration with device configuration junipernetworks.junos.junos_lag_interfaces: config: - - name: ae0 - members: - - member: ge-0/0/1 - link_type: primary - - member: ge-0/0/2 - link_type: backup + - name: ae0 + members: + - member: ge-0/0/1 + link_type: primary + - member: ge-0/0/2 + link_type: backup state: merged # After state: @@ -344,13 +344,13 @@ Examples - name: Overrides all device LAG configuration with provided configuration junipernetworks.junos.junos_lag_interfaces: config: - - name: ae0 - members: - - member: ge-0/0/2 - - name: ae1 - members: - - member: ge-0/0/1 - mode: passive + - name: ae0 + members: + - member: ge-0/0/2 + - name: ae1 + members: + - member: ge-0/0/1 + mode: passive state: overridden # After state: @@ -398,10 +398,10 @@ Examples - name: Replace device LAG configuration with provided configuration junipernetworks.junos.junos_lag_interfaces: config: - - name: ae0 - members: - - member: ge-0/0/1 - mode: active + - name: ae0 + members: + - member: ge-0/0/1 + mode: active state: replaced # After state: @@ -814,20 +814,20 @@ Examples - name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_lag_interfaces: config: - - name: ae1 - members: - - member: ge-0/0/1 - - member: ge-0/0/2 - mode: active - - - name: ae2 - link_protection: true - members: - - member: ge-0/0/3 - link_type: primary - - member: ge-0/0/4 - link_type: backup - mode: passive + - name: ae1 + members: + - member: ge-0/0/1 + - member: ge-0/0/2 + mode: active + + - name: ae2 + link_protection: true + members: + - member: ge-0/0/3 + link_type: primary + - member: ge-0/0/4 + link_type: backup + mode: passive # Task Output (redacted) # ----------------------- # "rendered": "<nc:interfaces diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lldp_interfaces_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lldp_interfaces_module.rst index 8b6738407..d4721c000 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lldp_interfaces_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_lldp_interfaces_module.rst @@ -149,9 +149,9 @@ Examples - name: Merge provided configuration with device configuration junipernetworks.junos.junos_lldp_interfaces: config: - - name: ge-0/0/1 - - name: ge-0/0/2 - enabled: false + - name: ge-0/0/1 + - name: ge-0/0/2 + enabled: false state: merged # After state: @@ -178,10 +178,10 @@ Examples - name: Replace provided configuration with device configuration junipernetworks.junos.junos_lldp_interfaces: config: - - name: ge-0/0/2 - disable: false - - name: ge-0/0/3 - enabled: false + - name: ge-0/0/2 + disable: false + - name: ge-0/0/3 + enabled: false state: replaced # After state: @@ -209,8 +209,8 @@ Examples - name: Override provided configuration with device configuration junipernetworks.junos.junos_lldp_interfaces: config: - - name: ge-0/0/2 - enabled: false + - name: ge-0/0/2 + enabled: false state: overridden # After state: @@ -236,8 +236,8 @@ Examples - name: Delete lldp interface configuration (this will not delete other lldp configuration) junipernetworks.junos.junos_lldp_interfaces: config: - - name: ge-0/0/1 - - name: ge-0/0/3 + - name: ge-0/0/1 + - name: ge-0/0/3 state: deleted # After state: @@ -251,7 +251,7 @@ Examples # Before state: # ------------ # - #ansible@cm123456tr21# show protocols lldp + # ansible@cm123456tr21# show protocols lldp # interface ge-0/0/1; # interface ge-0/0/2 { # disable; @@ -274,7 +274,7 @@ Examples # After state: # ------------ # - #ansible@cm123456tr21# show protocols lldp + # ansible@cm123456tr21# show protocols lldp # interface ge-0/0/1; # interface ge-0/0/2 { # disable; diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_logging_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_logging_module.rst index a1957a65c..7274d565b 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_logging_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_logging_module.rst @@ -421,19 +421,19 @@ Examples junipernetworks.junos.junos_logging: dest: file aggregate: - - name: test-1 - facility: pfe - level: critical - - name: test-2 - facility: kernel - level: emergency + - name: test-1 + facility: pfe + level: critical + - name: test-2 + facility: kernel + level: emergency active: true - name: Delete file logging using aggregate junipernetworks.junos.junos_logging: aggregate: - - {dest: file, name: test-1, facility: pfe, level: critical} - - {dest: file, name: test-2, facility: kernel, level: emergency} + - {dest: file, name: test-1, facility: pfe, level: critical} + - {dest: file, name: test-2, facility: kernel, level: emergency} state: absent diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospf_interfaces_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospf_interfaces_module.rst index 46b39a7c5..8a68a001b 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospf_interfaces_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospf_interfaces_module.rst @@ -178,7 +178,8 @@ Parameters <b>md5</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> <div style="font-size: small"> - <span style="color: purple">dictionary</span> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> </div> </td> <td> @@ -198,7 +199,7 @@ Parameters <b>key_id</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> <div style="font-size: small"> - <span style="color: purple">string</span> + <span style="color: purple">integer</span> </div> </td> <td> @@ -606,10 +607,14 @@ Parameters <b>node_link_protection</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> <div style="font-size: small"> - <span style="color: purple">string</span> + <span style="color: purple">boolean</span> </div> </td> <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> </td> <td> <div>Protect interface from both link and node faults.</div> @@ -855,14 +860,14 @@ Examples - name: Merge Junos OSPF interfaces config junipernetworks.junos.junos_ospf_interfaces: config: - - name: 'ge-0/0/2.0' - address_family: - - afi: 'ipv4' - processes: - area: - area_id: '0.0.0.2' - priority: 3 - metric: 5 + - name: 'ge-0/0/2.0' + address_family: + - afi: 'ipv4' + processes: + area: + area_id: '0.0.0.2' + priority: 3 + metric: 5 state: merged # After state @@ -890,16 +895,16 @@ Examples # } - name: Replace Junos OSPF interfaces config junipernetworks.junos.junos_ospf_interfaces: - config: - - name: 'ge-0/0/2.0' - address_family: - - afi: 'ipv4' - processes: - area: - area_id: '0.0.0.1' - priority: 6 - metric: 6 - state: replaced + config: + - name: 'ge-0/0/2.0' + address_family: + - afi: 'ipv4' + processes: + area: + area_id: '0.0.0.1' + priority: 6 + metric: 6 + state: replaced # After state # ----------- @@ -1047,14 +1052,14 @@ Examples - name: Render the commands for provided configuration junipernetworks.junos.junos_ospf_interfaces: config: - - name: 'ge-0/0/2.0' - address_family: - - afi: 'ipv4' - processes: - area: - area_id: '0.0.0.2' - priority: 3 - metric: 5 + - name: 'ge-0/0/2.0' + address_family: + - afi: 'ipv4' + processes: + area: + area_id: '0.0.0.2' + priority: 3 + metric: 5 state: rendered # diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospfv2_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospfv2_module.rst index 6e253ec59..18e04ea6b 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospfv2_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospfv2_module.rst @@ -17,7 +17,7 @@ Version added: 1.0.0 Synopsis -------- -- This module manages global OSPFv2 configuration on devices running Juniper JUNOS. +- This module manages OSPFv2 configuration on devices running Juniper JUNOS. @@ -36,12 +36,12 @@ Parameters <table border=0 cellpadding=0 class="documentation-table"> <tr> - <th colspan="5">Parameter</th> + <th colspan="6">Parameter</th> <th>Choices/<font color="blue">Defaults</font></th> <th width="100%">Comments</th> </tr> <tr> - <td colspan="5"> + <td colspan="6"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>config</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -58,7 +58,7 @@ Parameters </tr> <tr> <td class="elbow-placeholder"></td> - <td colspan="4"> + <td colspan="5"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>areas</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -76,7 +76,7 @@ Parameters <tr> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="3"> + <td colspan="4"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>area_id</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -94,7 +94,7 @@ Parameters <tr> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="3"> + <td colspan="4"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>area_range</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -106,13 +106,114 @@ Parameters </td> <td> <div>Configure an address range for the area.</div> + <div>Included for compatibility, remove/deprecate after 2025-07-01.</div> + <div>Alternate for this would be area_ranges which is a list.</div> </td> </tr> <tr> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>area_ranges</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Configure IP address ranges for the area.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>address</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify ip address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>exact</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enforce exact match for advertisement of this area range.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>override_metric</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Override the dynamic metric for this area-range.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>restrict</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Restrict advertisement of this area range.</div> + </td> + </tr> + + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> <b>interfaces</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> <div style="font-size: small"> @@ -130,7 +231,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="2"> + <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>authentication</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -149,8 +250,108 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>md5</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>MD5 authentication keys</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>key</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify key value</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>key_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify the key identity</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> <td colspan="1"> <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>start_time</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify Start time for key transmission (YYYY-MM-DD.HH:MM)</div> + </td> + </tr> + + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify authentication key.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> <b>type</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> <div style="font-size: small"> @@ -161,6 +362,7 @@ Parameters </td> <td> <div>Type of authentication to use.</div> + <div>Included for compatibility, remove/deprecate after 2025-07-01.</div> </td> </tr> @@ -168,7 +370,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="2"> + <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>bandwidth_based_metrics</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -188,7 +390,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>bandwidth</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -211,7 +413,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>metric</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -230,7 +432,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="2"> + <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>flood_reduction</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -252,7 +454,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="2"> + <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>metric</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -270,7 +472,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="2"> + <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>name</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -289,7 +491,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="2"> + <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>passive</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -311,7 +513,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="2"> + <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>priority</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -329,7 +531,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="2"> + <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>timers</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -348,7 +550,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>dead_interval</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -367,7 +569,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>hello_interval</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -386,7 +588,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>poll_interval</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -405,7 +607,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>retransmit_interval</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -424,7 +626,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>transit_delay</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -443,7 +645,7 @@ Parameters <tr> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="3"> + <td colspan="4"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>stub</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -461,7 +663,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="2"> + <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>default_metric</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -479,7 +681,7 @@ Parameters <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="2"> + <td colspan="3"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>set</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -501,7 +703,7 @@ Parameters <tr> <td class="elbow-placeholder"></td> - <td colspan="4"> + <td colspan="5"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>external_preference</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -517,7 +719,7 @@ Parameters </tr> <tr> <td class="elbow-placeholder"></td> - <td colspan="4"> + <td colspan="5"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>overload</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -534,7 +736,70 @@ Parameters <tr> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="3"> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>allow_route_leaking</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Allow routes to be leaked when overload is configured.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>as_external</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Advertise As External with maximum usable metric.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>stub_network</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Advertise Stub Network with maximum metric.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="4"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>timeout</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -551,7 +816,7 @@ Parameters <tr> <td class="elbow-placeholder"></td> - <td colspan="4"> + <td colspan="5"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>preference</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -567,7 +832,7 @@ Parameters </tr> <tr> <td class="elbow-placeholder"></td> - <td colspan="4"> + <td colspan="5"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>prefix_export_limit</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -583,7 +848,7 @@ Parameters </tr> <tr> <td class="elbow-placeholder"></td> - <td colspan="4"> + <td colspan="5"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>reference_bandwidth</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -603,7 +868,7 @@ Parameters </tr> <tr> <td class="elbow-placeholder"></td> - <td colspan="4"> + <td colspan="5"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>rfc1583compatibility</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -623,7 +888,7 @@ Parameters </tr> <tr> <td class="elbow-placeholder"></td> - <td colspan="4"> + <td colspan="5"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>router_id</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -639,7 +904,7 @@ Parameters </tr> <tr> <td class="elbow-placeholder"></td> - <td colspan="4"> + <td colspan="5"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>spf_options</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -656,7 +921,7 @@ Parameters <tr> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="3"> + <td colspan="4"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>delay</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -673,7 +938,7 @@ Parameters <tr> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="3"> + <td colspan="4"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>holddown</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -690,7 +955,28 @@ Parameters <tr> <td class="elbow-placeholder"></td> <td class="elbow-placeholder"></td> - <td colspan="3"> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>no_ignore_our_externals</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Do not ignore self-generated external and NSSA LSAs.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="4"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>rapid_runs</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -707,7 +993,7 @@ Parameters <tr> - <td colspan="5"> + <td colspan="6"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>running_config</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -719,12 +1005,12 @@ Parameters </td> <td> <div>This option is used only with state <em>parsed</em>.</div> - <div>The value of this option should be the output received from the Junos device by executing the command B(show protocols ospf.</div> + <div>The value of this option should be the output received from the Junos device by executing the command <b>show protocols ospf</b>.</div> <div>The state <em>parsed</em> reads the configuration from <code>running_config</code> option and transforms it into Ansible structured data as per the resource module's argspec and the value is then returned in the <em>parsed</em> key within the result</div> </td> </tr> <tr> - <td colspan="5"> + <td colspan="6"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>state</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -774,44 +1060,588 @@ Examples # # admin# show protocols ospf - - name: Merge Junos OSPFv2 config + - name: Merge provided OSPFv2 configuration into running config. junipernetworks.junos.junos_ospfv2: config: - - reference_bandwidth: 10g - areas: - - area_id: 0.0.0.100 - area_range: 10.200.16.0/24 - stub: - default_metric: 100 - set: true - interfaces: - - name: so-0/0/0.0 - priority: 3 - metric: 5 - flood_reduction: false - passive: true - bandwidth_based_metrics: - - bandwidth: 1g - metric: 5 - - bandwidth: 10g - metric: 40 - timers: - dead_interval: 4 - hello_interval: 2 - poll_interval: 2 - retransmit_interval: 2 - rfc1583compatibility: false + - reference_bandwidth: 10g + areas: + - area_id: 0.0.0.100 + area_ranges: + - address: 10.200.17.0/24 + exact: true + restrict: true + override_metric: 2000 + - address: 10.200.15.0/24 + exact: true + restrict: true + override_metric: 2000 + stub: + default_metric: 100 + set: true + interfaces: + - name: so-0/0/0.0 + priority: 3 + metric: 5 + flood_reduction: false + passive: true + bandwidth_based_metrics: + - bandwidth: 1g + metric: 5 + - bandwidth: 10g + metric: 40 + timers: + dead_interval: 4 + hello_interval: 2 + poll_interval: 2 + retransmit_interval: 2 + rfc1583compatibility: false state: merged + # Task Output: + # ------------ + # + # before: [] + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:ospf><nc:reference-bandwidth>10g</nc:reference-bandwidth><nc:no-rfc-1583/> + # <nc:area><nc:name>0.0.0.100</nc:name><nc:area-range><nc:name>10.200.17.0/24</nc:name><nc:exact/> + # <nc:restrict/><nc:override-metric>2000</nc:override-metric></nc:area-range><nc:area-range> + # <nc:name>10.200.15.0/24</nc:name><nc:exact/><nc:restrict/><nc:override-metric>2000</nc:override-metric> + # </nc:area-range><nc:interface><nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority> + # <nc:metric>5</nc:metric><nc:passive/><nc:bandwidth-based-metrics><nc:bandwidth><nc:name>1g</nc:name> + # <nc:metric>5</nc:metric></nc:bandwidth><nc:bandwidth><nc:name>10g</nc:name><nc:metric>40</nc:metric> + # </nc:bandwidth></nc:bandwidth-based-metrics><nc:dead-interval>4</nc:dead-interval> + # <nc:hello-interval>2</nc:hello-interval><nc:poll-interval>2</nc:poll-interval> + # <nc:retransmit-interval>2</nc:retransmit-interval></nc:interface><nc:stub> + # <nc:default-metric>100</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols> + # + # after: + # - areas: + # - area_id: 0.0.0.100 + # area_range: '[''10.200.17.0/24'', ''10.200.15.0/24'']' + # area_ranges: + # - address: 10.200.17.0/24 + # exact: true + # override_metric: 2000 + # restrict: true + # - address: 10.200.15.0/24 + # exact: true + # override_metric: 2000 + # restrict: true + # interfaces: + # - bandwidth_based_metrics: + # - bandwidth: 1g + # metric: 5 + # - bandwidth: 10g + # metric: 40 + # metric: 5 + # name: so-0/0/0.0 + # passive: true + # priority: 3 + # timers: + # dead_interval: 4 + # hello_interval: 2 + # poll_interval: 2 + # retransmit_interval: 2 + # stub: + # default_metric: 100 + # set: true + # reference_bandwidth: 10g + # rfc1583compatibility: false + + # After state + # ----------- + # + # admin# show protocols ospf + # reference-bandwidth 10g; + # no-rfc-1583; + # area 0.0.0.100 { + # stub default-metric 100; + # area-range 10.200.17.0/24 { + # restrict; + # exact; + # override-metric 2000; + # } + # area-range 10.200.15.0/24 { + # restrict; + # exact; + # override-metric 2000; + # } + # interface so-0/0/0.0 { + # passive; + # bandwidth-based-metrics { + # bandwidth 1g metric 5; + # bandwidth 10g metric 40; + # } + # metric 5; + # priority 3; + # retransmit-interval 2; + # hello-interval 2; + # dead-interval 4; + # poll-interval 2; + # } + # } + # + # Using replaced + # + # Before state + # ------------ + # + # admin# show protocols ospf + # reference-bandwidth 10g; + # no-rfc-1583; + # area 0.0.0.100 { + # stub default-metric 100; + # area-range 10.200.17.0/24 { + # restrict; + # exact; + # override-metric 2000; + # } + # area-range 10.200.15.0/24 { + # restrict; + # exact; + # override-metric 2000; + # } + # interface so-0/0/0.0 { + # passive; + # bandwidth-based-metrics { + # bandwidth 1g metric 5; + # bandwidth 10g metric 40; + # } + # metric 5; + # priority 3; + # retransmit-interval 2; + # hello-interval 2; + # dead-interval 4; + # poll-interval 2; + # } + # } + + - name: Replace existing Junos OSPFv2 config with provided config + junipernetworks.junos.junos_ospfv2: + config: + - reference_bandwidth: 10g + areas: + - area_id: 0.0.0.100 + area_ranges: + - address: 10.200.17.0/24 + exact: true + restrict: true + - address: 10.200.16.0/24 + exact: true + restrict: true + override_metric: 1000 + stub: + default_metric: 100 + set: true + interfaces: + - name: so-0/0/0.0 + priority: 3 + metric: 5 + flood_reduction: false + passive: true + bandwidth_based_metrics: + - bandwidth: 1g + metric: 5 + - bandwidth: 10g + metric: 40 + timers: + dead_interval: 4 + hello_interval: 2 + poll_interval: 2 + retransmit_interval: 2 + rfc1583compatibility: false + state: replacedd + + # Task Output: + # ------------ + # + # before: + # - areas: + # - area_id: 0.0.0.100 + # area_range: '[''10.200.17.0/24'', ''10.200.15.0/24'']' + # area_ranges: + # - address: 10.200.17.0/24 + # exact: true + # override_metric: 2000 + # restrict: true + # - address: 10.200.15.0/24 + # exact: true + # override_metric: 2000 + # restrict: true + # interfaces: + # - bandwidth_based_metrics: + # - bandwidth: 1g + # metric: 5 + # - bandwidth: 10g + # metric: 40 + # metric: 5 + # name: so-0/0/0.0 + # passive: true + # priority: 3 + # timers: + # dead_interval: 4 + # hello_interval: 2 + # poll_interval: 2 + # retransmit_interval: 2 + # stub: + # default_metric: 100 + # set: true + # reference_bandwidth: 10g + # rfc1583compatibility: false + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:ospf><nc:area delete="delete">0.0.0.100</nc:area></nc:ospf><nc:ospf> + # <nc:reference-bandwidth>10g</nc:reference-bandwidth><nc:no-rfc-1583/><nc:area> + # <nc:name>0.0.0.100</nc:name><nc:area-range><nc:name>10.200.17.0/24</nc:name><nc:exact/> + # <nc:restrict/></nc:area-range><nc:area-range><nc:name>10.200.16.0/24</nc:name><nc:exact/> + # <nc:restrict/><nc:override-metric>1000</nc:override-metric></nc:area-range><nc:interface> + # <nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority><nc:metric>5</nc:metric><nc:passive/> + # <nc:bandwidth-based-metrics><nc:bandwidth><nc:name>1g</nc:name><nc:metric>5</nc:metric> + # </nc:bandwidth><nc:bandwidth><nc:name>10g</nc:name><nc:metric>40</nc:metric></nc:bandwidth> + # </nc:bandwidth-based-metrics><nc:dead-interval>4</nc:dead-interval><nc:hello-interval>2</nc:hello-interval> + # <nc:poll-interval>2</nc:poll-interval><nc:retransmit-interval>2</nc:retransmit-interval></nc:interface> + # <nc:stub><nc:default-metric>100</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols> + # + # after: + # - areas: + # - area_id: 0.0.0.100 + # area_range: '[''10.200.17.0/24'', ''10.200.16.0/24'']' + # area_ranges: + # - address: 10.200.17.0/24 + # exact: true + # restrict: true + # - address: 10.200.16.0/24 + # exact: true + # override_metric: 1000 + # restrict: true + # interfaces: + # - bandwidth_based_metrics: + # - bandwidth: 1g + # metric: 5 + # - bandwidth: 10g + # metric: 40 + # metric: 5 + # name: so-0/0/0.0 + # passive: true + # priority: 3 + # timers: + # dead_interval: 4 + # hello_interval: 2 + # poll_interval: 2 + # retransmit_interval: 2 + # stub: + # default_metric: 100 + # set: true + # reference_bandwidth: 10g + # rfc1583compatibility: false + # + # After state + # ----------- + # + # admin# show protocols ospf + # reference-bandwidth 10g; + # no-rfc-1583; + # area 0.0.0.100 { + # stub default-metric 100; + # area-range 10.200.17.0/24 { + # restrict; + # exact; + # } + # area-range 10.200.16.0/24 { + # restrict; + # exact; + # override-metric 1000; + # } + # interface so-0/0/0.0 { + # passive; + # bandwidth-based-metrics { + # bandwidth 1g metric 5; + # bandwidth 10g metric 40; + # } + # metric 5; + # priority 3; + # retransmit-interval 2; + # hello-interval 2; + # dead-interval 4; + # poll-interval 2; + # } + # } + # + # Using overridden + # + # Before state + # ------------ + # + # admin# show protocols ospf + # reference-bandwidth 10g; + # no-rfc-1583; + # area 0.0.0.100 { + # stub default-metric 100; + # area-range 10.200.17.0/24 { + # restrict; + # exact; + # } + # area-range 10.200.16.0/24 { + # restrict; + # exact; + # override-metric 1000; + # } + # interface so-0/0/0.0 { + # passive; + # bandwidth-based-metrics { + # bandwidth 1g metric 5; + # bandwidth 10g metric 40; + # } + # metric 5; + # priority 3; + # retransmit-interval 2; + # hello-interval 2; + # dead-interval 4; + # poll-interval 2; + # } + # } + + - name: Override runnig OSPFv2 config with provided config + junipernetworks.junos.junos_ospfv2: + config: + - reference_bandwidth: 10g + areas: + - area_id: 0.0.0.110 + area_ranges: + - address: 20.200.17.0/24 + exact: true + restrict: true + override_metric: 2000 + - address: 20.200.15.0/24 + exact: true + restrict: true + override_metric: 2000 + stub: + default_metric: 200 + set: true + interfaces: + - name: so-0/0/0.0 + priority: 3 + metric: 5 + flood_reduction: false + passive: true + bandwidth_based_metrics: + - bandwidth: 1g + metric: 5 + - bandwidth: 10g + metric: 40 + state: overridden + + # Task Output: + # ------------ + # + # before: + # - areas: + # - area_id: 0.0.0.100 + # area_range: '[''10.200.17.0/24'', ''10.200.16.0/24'']' + # area_ranges: + # - address: 10.200.17.0/24 + # exact: true + # restrict: true + # - address: 10.200.16.0/24 + # exact: true + # override_metric: 1000 + # restrict: true + # interfaces: + # - bandwidth_based_metrics: + # - bandwidth: 1g + # metric: 5 + # - bandwidth: 10g + # metric: 40 + # metric: 5 + # name: so-0/0/0.0 + # passive: true + # priority: 3 + # timers: + # dead_interval: 4 + # hello_interval: 2 + # poll_interval: 2 + # retransmit_interval: 2 + # stub: + # default_metric: 100 + # set: true + # reference_bandwidth: 10g + # rfc1583compatibility: false + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:ospf><nc:area delete="delete">0.0.0.100</nc:area></nc:ospf><nc:ospf> + # <nc:reference-bandwidth>10g</nc:reference-bandwidth><nc:area><nc:name>0.0.0.110</nc:name> + # <nc:area-range><nc:name>20.200.17.0/24</nc:name><nc:exact/><nc:restrict/> + # <nc:override-metric>2000</nc:override-metric></nc:area-range><nc:area-range> + # <nc:name>20.200.15.0/24</nc:name><nc:exact/><nc:restrict/><nc:override-metric>2000</nc:override-metric> + # </nc:area-range><nc:interface><nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority> + # <nc:metric>5</nc:metric><nc:passive/><nc:bandwidth-based-metrics><nc:bandwidth><nc:name>1g</nc:name> + # <nc:metric>5</nc:metric></nc:bandwidth><nc:bandwidth><nc:name>10g</nc:name><nc:metric>40</nc:metric> + # </nc:bandwidth></nc:bandwidth-based-metrics></nc:interface><nc:stub> + # <nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols> + # + # after: + # - areas: + # - area_id: 0.0.0.110 + # area_range: '[''20.200.17.0/24'', ''20.200.15.0/24'']' + # area_ranges: + # - address: 20.200.17.0/24 + # exact: true + # override_metric: 2000 + # restrict: true + # - address: 20.200.15.0/24 + # exact: true + # override_metric: 2000 + # restrict: true + # interfaces: + # - bandwidth_based_metrics: + # - bandwidth: 1g + # metric: 5 + # - bandwidth: 10g + # metric: 40 + # metric: 5 + # name: so-0/0/0.0 + # passive: true + # priority: 3 + # stub: + # default_metric: 200 + # set: true + # reference_bandwidth: 10g + # rfc1583compatibility: false + # After state # ----------- # # admin# show protocols ospf # reference-bandwidth 10g; # no-rfc-1583; + # area 0.0.0.110 { + # stub default-metric 200; + # area-range 20.200.17.0/24 { + # restrict; + # exact; + # override-metric 2000; + # } + # area-range 20.200.15.0/24 { + # restrict; + # exact; + # override-metric 2000; + # } + # interface so-0/0/0.0 { + # passive; + # bandwidth-based-metrics { + # bandwidth 1g metric 5; + # bandwidth 10g metric 40; + # } + # metric 5; + # priority 3; + # } + # } + # Using deleted + # + # Before state + # ------------ + # + # admin# show protocols ospf + # reference-bandwidth 10g; + # no-rfc-1583; + # area 0.0.0.110 { + # stub default-metric 200; + # area-range 20.200.17.0/24 { + # restrict; + # exact; + # override-metric 2000; + # } + # area-range 20.200.15.0/24 { + # restrict; + # exact; + # override-metric 2000; + # } + # interface so-0/0/0.0 { + # passive; + # bandwidth-based-metrics { + # bandwidth 1g metric 5; + # bandwidth 10g metric 40; + # } + # metric 5; + # priority 3; + # } + # } + + - name: Delete OSPFv2 running config. + junipernetworks.junos.junos_ospfv2: + config: + state: deleted + + # Task Output: + # ------------ + # + # before: + # - areas: + # - area_id: 0.0.0.110 + # area_range: '[''20.200.17.0/24'', ''20.200.15.0/24'']' + # area_ranges: + # - address: 20.200.17.0/24 + # exact: true + # override_metric: 2000 + # restrict: true + # - address: 20.200.15.0/24 + # exact: true + # override_metric: 2000 + # restrict: true + # interfaces: + # - bandwidth_based_metrics: + # - bandwidth: 1g + # metric: 5 + # - bandwidth: 10g + # metric: 40 + # metric: 5 + # name: so-0/0/0.0 + # passive: true + # priority: 3 + # stub: + # default_metric: 200 + # set: true + # reference_bandwidth: 10g + # rfc1583compatibility: false + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:ospf><nc:area delete="delete">0.0.0.100</nc:area><nc:reference-bandwidth delete="delete"/> + # <nc:no-rfc-1583 delete="delete"/></nc:ospf></nc:protocols> + # + # after: [] + # + # + # After state + # ----------- + # + # admin# show protocols ospf + + # Using gathered + # + # Before state + # ------------ + # + # admin# show protocols ospf + # reference-bandwidth 10g; + # no-rfc-1583; # area 0.0.0.100 { # stub default-metric 100; - # area-range 10.200.16.0/24; + # area-range 10.200.17.0/24 { + # restrict; + # exact; + # override-metric 2000; + # } + # area-range 10.200.15.0/24 { + # restrict; + # exact; + # override-metric 2000; + # } # interface so-0/0/0.0 { # passive; # bandwidth-based-metrics { @@ -827,6 +1657,211 @@ Examples # } # } + - name: Gather Junos OSPFv2 running-configuration + junipernetworks.junos.junos_ospfv2: + config: + state: gathered + # + # + # Task Output: + # ------------ + # + # gathered: + # + # - areas: + # - area_id: 0.0.0.100 + # area_range: '[''10.200.17.0/24'', ''10.200.15.0/24'']' + # area_ranges: + # - address: 10.200.17.0/24 + # exact: true + # override_metric: 2000 + # restrict: true + # - address: 10.200.15.0/24 + # exact: true + # override_metric: 2000 + # restrict: true + # interfaces: + # - bandwidth_based_metrics: + # - bandwidth: 1g + # metric: 5 + # - bandwidth: 10g + # metric: 40 + # metric: 5 + # name: so-0/0/0.0 + # passive: true + # priority: 3 + # timers: + # dead_interval: 4 + # hello_interval: 2 + # poll_interval: 2 + # retransmit_interval: 2 + # stub: + # default_metric: 100 + # set: true + # reference_bandwidth: 10g + # rfc1583compatibility: false + + # Using parsed + # parsed.cfg + # ------------ + # <?xml version="1.0" encoding="UTF-8"?> + # <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> + # <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> + # <version>18.4R1-S2.4</version> + # <protocols> + # <ospf> + # <reference-bandwidth>10g</reference-bandwidth> + # <no-rfc-1583/> + # <area> + # <name>0.0.0.100</name> + # <stub> + # <default-metric>100</default-metric> + # </stub> + # <area-range> + # <name>10.200.16.0/24</name> + # <exact/> + # <override-metric>10000</override-metric> + # </area-range> + # <area-range> + # <name>10.200.11.0/24</name> + # <restrict/> + # <exact/> + # </area-range> + # <interface> + # <name>so-0/0/0.0</name> + # <passive> + # </passive> + # <bandwidth-based-metrics> + # <bandwidth> + # <name>1g</name> + # <metric>5</metric> + # </bandwidth> + # <bandwidth> + # <name>10g</name> + # <metric>40</metric> + # </bandwidth> + # </bandwidth-based-metrics> + # <metric>5</metric> + # <priority>3</priority> + # <retransmit-interval>2</retransmit-interval> + # <hello-interval>2</hello-interval> + # <dead-interval>4</dead-interval> + # <poll-interval>2</poll-interval> + # </interface> + # </area> + # </ospf> + # </protocols> + # <routing-options> + # <static> + # <route> + # <name>172.16.17.0/24</name> + # <discard /> + # </route> + # </static> + # <router-id>10.200.16.75</router-id> + # <autonomous-system> + # <as-number>65432</as-number> + # </autonomous-system> + # </routing-options> + # </configuration> + # </rpc-reply> + + + - name: Parsed the ospfv2 config into structured ansible resource facts. + junipernetworks.junos.junos_ospfv2: + running_config: "{{ lookup('file', './parsed.cfg') }}" + state: parsed + # + # Task Output: + # ------------ + # + # parsed: + # - areas: + # - area_id: 0.0.0.100 + # area_range: '[''10.200.16.0/24'', ''10.200.11.0/24'']' + # area_ranges: + # - address: 10.200.16.0/24 + # exact: true + # override_metric: 10000 + # - address: 10.200.11.0/24 + # exact: true + # restrict: true + # interfaces: + # - bandwidth_based_metrics: + # - bandwidth: 1g + # metric: 5 + # - bandwidth: 10g + # metric: 40 + # metric: 5 + # name: so-0/0/0.0 + # passive: true + # priority: 3 + # timers: + # dead_interval: 4 + # hello_interval: 2 + # poll_interval: 2 + # retransmit_interval: 2 + # stub: + # default_metric: 100 + # set: true + # reference_bandwidth: 10g + # rfc1583compatibility: false + # router_id: 10.200.16.75 + + # Using rendered + # + - name: Render the commands for provided configuration + junipernetworks.junos.junos_ospfv2: + config: + - reference_bandwidth: 10g + areas: + - area_id: 0.0.0.100 + area_ranges: + - address: 10.200.17.0/24 + exact: true + restrict: true + override_metric: 2000 + - address: 10.200.15.0/24 + exact: true + restrict: true + override_metric: 2000 + stub: + default_metric: 100 + set: true + interfaces: + - name: so-0/0/0.0 + priority: 3 + metric: 5 + flood_reduction: false + passive: true + bandwidth_based_metrics: + - bandwidth: 1g + metric: 5 + - bandwidth: 10g + metric: 40 + timers: + dead_interval: 4 + hello_interval: 2 + poll_interval: 2 + retransmit_interval: 2 + rfc1583compatibility: false + state: rendered + + # Task Output: + # ------------ + # + # rendered: "<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:ospf><nc:reference-bandwidth>10g</nc:reference-bandwidth><nc:no-rfc-1583/><nc:area><nc:name>0.0.0.100</nc:name> + # <nc:area-range><nc:name>10.200.17.0/24</nc:name><nc:exact/><nc:restrict/><nc:override-metric>2000</nc:override-metric> + # </nc:area-range><nc:area-range><nc:name>10.200.15.0/24</nc:name><nc:exact/><nc:restrict/> + # <nc:override-metric>2000</nc:override-metric></nc:area-range><nc:interface><nc:name>so-0/0/0.0</nc:name> + # <nc:priority>3</nc:priority><nc:metric>5</nc:metric><nc:passive/><nc:bandwidth-based-metrics><nc:bandwidth> + # <nc:name>1g</nc:name><nc:metric>5</nc:metric></nc:bandwidth><nc:bandwidth><nc:name>10g</nc:name> + # <nc:metric>40</nc:metric></nc:bandwidth></nc:bandwidth-based-metrics><nc:dead-interval>4</nc:dead-interval> + # <nc:hello-interval>2</nc:hello-interval><nc:poll-interval>2</nc:poll-interval> + # <nc:retransmit-interval>2</nc:retransmit-interval></nc:interface><nc:stub> + # <nc:default-metric>100</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols>" + Return Values @@ -852,7 +1887,7 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late </td> <td>when changed</td> <td> - <div>The resulting configuration model invocation.</div> + <div>The resulting configuration module invocation.</div> <br/> <div style="font-size: smaller"><b>Sample:</b></div> <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">The configuration returned will always be in the same format @@ -870,7 +1905,7 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late </td> <td>always</td> <td> - <div>The configuration prior to the model invocation.</div> + <div>The configuration prior to the module invocation.</div> <br/> <div style="font-size: smaller"><b>Sample:</b></div> <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">The configuration returned will always be in the same format @@ -891,7 +1926,58 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <div>The set of commands pushed to the remote device.</div> <br/> <div style="font-size: smaller"><b>Sample:</b></div> - <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['command 1', 'command 2', 'command 3']</div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">< nc:ospf><nc:area delete="delete">0.0.0.100</nc:area><nc:reference-bandwidth delete="delete"/> <nc:no-rfc-1583 delete="delete"/></nc:ospf></nc:protocols>', 'xml 2', 'xml 3']</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>gathered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>gathered</code></td> + <td> + <div>Facts about the network resource gathered from the remote device as structured data.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>parsed</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>parsed</code></td> + <td> + <div>The device native config provided in <em>running_config</em> option parsed into structured data as per module argspec.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>rendered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>rendered</code></td> + <td> + <div>The provided configuration in the task rendered in device-native format (offline).</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">']</div> </td> </tr> </table> @@ -906,3 +1992,4 @@ Authors ~~~~~~~ - Daniel Mellado (@dmellado) +- Rohit Thakur (@rohitthakur2590) diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospfv3_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospfv3_module.rst index fa38facb1..82a4fef10 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospfv3_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ospfv3_module.rst @@ -719,7 +719,7 @@ Parameters </td> <td> <div>This option is used only with state <em>parsed</em>.</div> - <div>The value of this option should be the output received from the Junos device by executing the command B(show protocols ospf.</div> + <div>The value of this option should be the output received from the Junos device by executing the command <b>show protocols ospf</b>.</div> <div>The state <em>parsed</em> reads the configuration from <code>running_config</code> option and transforms it into Ansible structured data as per the resource module's argspec and the value is then returned in the <em>parsed</em> key within the result</div> </td> </tr> @@ -776,57 +776,148 @@ Examples - name: Merge Junos OSPFv3 config junipernetworks.junos.junos_ospfv3: config: - - areas: - - area_id: 0.0.0.100 - stub: - default_metric: 200 - set: true - interfaces: - - name: so-0/0/0.0 - priority: 3 - metric: 5 + - router_id: 10.200.16.75 + areas: + - area_id: 0.0.0.100 + interfaces: + - metric: 5 + name: so-0/0/0.0 + priority: 3 + - metric: 6 + name: so-0/0/1.0 + priority: 2 + stub: + default_metric: 200 + set: true state: merged + # Task Output: + # ------------ + # + # before: [] + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface><nc:name>so-0/0/0.0</nc:name> + # <nc:priority>3</nc:priority><nc:metric>5</nc:metric></nc:interface><nc:interface> + # <nc:name>so-0/0/1.0</nc:name><nc:priority>2</nc:priority><nc:metric>6</nc:metric> + # </nc:interface><nc:stub><nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf3></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:router-id>10.200.16.75</nc:router-id></nc:routing-options> + # + # after: + # - areas: + # - area_id: 0.0.0.100 + # interfaces: + # - metric: 5 + # name: so-0/0/0.0 + # priority: 3 + # - metric: 6 + # name: so-0/0/1.0 + # priority: 2 + # stub: + # default_metric: 200 + # set: true + # router_id: 10.200.16.75 + # After state # ----------- # - # adimn# show protocols ospf3 + # admin# show protocols ospf3 # area 0.0.0.100 { # stub default-metric 200; # interface so-0/0/0.0 { # metric 5; # priority 3; # } + # interface so-0/0/1.0 { + # metric 6; + # priority 2; + # } # } + # # Using replaced # # Before state # ------------ # - # adimn# show protocols ospf3 + # admin# show protocols ospf3 + # admin# show protocols ospf3 # area 0.0.0.100 { # stub default-metric 200; # interface so-0/0/0.0 { # metric 5; # priority 3; # } + # interface so-0/0/1.0 { + # metric 6; + # priority 2; + # } # } - - name: Replace Junos OSPFv3 config + + - name: Replace existing Junos OSPFv3 config with provided config junipernetworks.junos.junos_ospfv3: - config: - - areas: - - area_id: 0.0.0.100 - interfaces: - - name: so-0/0/0.0 - state: replaced + config: + - router_id: 10.200.16.75 + areas: + - area_id: 0.0.0.100 + interfaces: + - name: so-0/0/0.0 + state: replaced + # Task Output: + # ------------ + # + # before: + # - areas: + # - area_id: 0.0.0.100 + # interfaces: + # - metric: 5 + # name: so-0/0/0.0 + # priority: 3 + # - metric: 6 + # name: so-0/0/1.0 + # priority: 2 + # stub: + # default_metric: 200 + # set: true + # router_id: 10.200.16.75 + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface delete="delete"> + # <nc:name>so-0/0/0.0</nc:name></nc:interface></nc:area></nc:ospf3><nc:ospf3> + # <nc:area><nc:name>0.0.0.100</nc:name><nc:interface><nc:name>so-0/0/0.0</nc:name> + # </nc:interface></nc:area></nc:ospf3></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:router-id>10.200.16.75</nc:router-id><nc:router-id>10.200.16.75</nc:router-id></nc:routing-options> + # + # after: + # - areas: + # - area_id: 0.0.0.100 + # interfaces: + # - metric: 6 + # name: so-0/0/1.0 + # priority: 2 + # - name: so-0/0/0.0 + # stub: + # default_metric: 200 + # set: true + # router_id: 10.200.16.75 + # # After state # ----------- # # admin# show protocols ospf3 # area 0.0.0.100 { + # stub default-metric 200; + # interface so-0/0/1.0 { + # metric 6; + # priority 2; + # } # interface so-0/0/0.0; # } + # # Using overridden # # Before state @@ -834,27 +925,80 @@ Examples # # admin# show protocols ospf3 # area 0.0.0.100 { + # stub default-metric 200; + # interface so-0/0/1.0 { + # metric 6; + # priority 2; + # } # interface so-0/0/0.0; # } - - name: Override Junos OSPFv3 config + + - name: Override runnig OSPFv3 config with provided config junipernetworks.junos.junos_ospfv3: - config: - - areas: - - area_id: 0.0.0.100 - stub: - default_metric: 200 - set: true - interfaces: - - name: so-0/0/0.0 - priority: 3 - metric: 5 - flood_reduction: true - passive: true - - area_id: 0.0.0.200 - interfaces: - - name: ge-1/1/0.0 - - name: ge-2/2/0.0 - state: overridden + config: + - router_id: 10.200.16.75 + areas: + - area_id: 0.0.0.100 + stub: + default_metric: 200 + set: true + interfaces: + - name: so-0/0/0.0 + priority: 3 + metric: 5 + flood_reduction: true + passive: true + - area_id: 0.0.0.200 + interfaces: + - name: ge-1/1/0.0 + - name: ge-2/2/0.0 + state: overridden + + # Task Output: + # ------------ + # + # before: + # - areas: + # - area_id: 0.0.0.100 + # interfaces: + # - metric: 6 + # name: so-0/0/1.0 + # priority: 2 + # - name: so-0/0/0.0 + # stub: + # default_metric: 200 + # set: true + # router_id: 10.200.16.75 + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:ospf3 delete="delete"/><nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name> + # <nc:interface><nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority><nc:flood-reduction/> + # <nc:metric>5</nc:metric><nc:passive/></nc:interface> + # <nc:stub><nc:default-metric>200</nc:default-metric></nc:stub></nc:area> + # <nc:area><nc:name>0.0.0.200</nc:name><nc:interface><nc:name>ge-1/1/0.0</nc:name> + # </nc:interface><nc:interface><nc:name>ge-2/2/0.0</nc:name></nc:interface></nc:area> + # </nc:ospf3></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:router-id delete="delete"/><nc:router-id>10.200.16.75</nc:router-id></nc:routing-options> + # + # after: + # - areas: + # - area_id: 0.0.0.100 + # interfaces: + # - flood_reduction: true + # metric: 5 + # name: so-0/0/0.0 + # passive: true + # priority: 3 + # stub: + # default_metric: 200 + # set: true + # - area_id: 0.0.0.200 + # interfaces: + # - name: ge-1/1/0.0 + # - name: ge-2/2/0.0 + # router_id: 10.200.16.75 # After state # ----------- @@ -873,274 +1017,202 @@ Examples # interface ge-1/1/0.0; # interface ge-2/2/0.0; # } - # # Using deleted # # Before state # ------------ # - # adimn# show protocols ospf3 + # admin# show protocols ospf3 # area 0.0.0.100 { # stub default-metric 200; # interface so-0/0/0.0 { + # passive; # metric 5; # priority 3; + # flood-reduction; # } # } + # area 0.0.0.200 { + # interface ge-1/1/0.0; + # interface ge-2/2/0.0; + # } - - name: Delete Junos OSPFv3 config + - name: Delete OSPFv3 running config. junipernetworks.junos.junos_ospfv3: config: - - areas: - - area_id: 0.0.0.100 - interfaces: - - name: so-0/0/0.0 state: deleted + # Task Output: + # ------------ + # + # before: + # - areas: + # - area_id: 0.0.0.100 + # interfaces: + # - flood_reduction: true + # metric: 5 + # name: so-0/0/0.0 + # passive: true + # priority: 3 + # stub: + # default_metric: 200 + # set: true + # - area_id: 0.0.0.200 + # interfaces: + # - name: ge-1/1/0.0 + # - name: ge-2/2/0.0 + # router_id: 10.200.16.75 + # + # commands: + # - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:ospf3 delete="delete"/></nc:protocols> + # - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:router-id delete="delete"/></nc:routing-options> + # + # after: [] + # + # # After state # ----------- # # admin# show protocols ospf3 + # Using gathered # # Before state # ------------ # - # adimn# show protocols ospf3 + # admin# show protocols ospf3 # area 0.0.0.100 { # stub default-metric 200; # interface so-0/0/0.0 { - # passive; # metric 5; # priority 3; - # flood-reduction; # } - # } - # area 0.0.0.200 { - # interface ge-1/1/0.0; - # interface ge-2/2/0.0; - # } + # interface so-0/0/1.0 { + # metric 6; + # priority 2; + # } - - name: Gather Junos OSPFv3 config + - name: Gather Junos OSPFv3 running-configuration junipernetworks.junos.junos_ospfv3: config: state: gathered # # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # "gathered": { - # "areas": [ - # { - # "area_id": "0.0.0.100", - # "interfaces": [ - # { - # "flood_reduction": true, - # "metric": 5, - # "name": "so-0/0/0.0", - # "passive": true, - # "priority": 3 - # } - # ], - # "stub": { - # "default_metric": 200, - # "set": true - # } - # }, - # { - # "area_id": "0.0.0.200", - # "interfaces": [ - # { - # "name": "ge-1/1/0.0" - # }, - # { - # "name": "ge-2/2/0.0" - # } - # ] - # } - # ], - # } - # - # Using rendered + # Task Output: + # ------------ # + # gathered: # - - name: Render the commands for provided configuration - junipernetworks.junos.junos_ospfv3: - config: - - areas: - - area_id: 0.0.0.100 - stub: - default_metric: 200 - set: true - interfaces: - - name: so-0/0/0.0 - priority: 3 - metric: 5 - flood_reduction: true - passive: true - - area_id: 0.0.0.200 - interfaces: - - name: ge-1/1/0.0 - - name: ge-2/2/0.0 - state: rendered + # - areas: + # - area_id: 0.0.0.100 + # interfaces: + # - metric: 5 + # name: so-0/0/0.0 + # priority: 3 + # - metric: 6 + # name: so-0/0/1.0 + # priority: 2 + # stub: + # default_metric: 200 + # set: true + # router_id: 10.200.16.75 - # - # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # - # "rendered": " - # <nc:protocols - # xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> - # <nc:ospf3> - # <nc:area> - # <nc:name>0.0.0.100</nc:name> - # <nc:interface> - # <nc:name>so-0/0/0.0</nc:name> - # <nc:priority>3</nc:priority> - # <nc:flood-reduction/> - # <nc:metric>5</nc:metric> - # <nc:passive/> - # </nc:interface> - # <nc:stub> - # <nc:default-metric>200</nc:default-metric> - # </nc:stub> - # </nc:area> - # <nc:area> - # <nc:name>0.0.0.200</nc:name> - # <nc:interface> - # <nc:name>ge-1/1/0.0</nc:name> - # </nc:interface> - # <nc:interface> - # <nc:name>ge-2/2/0.0</nc:name> - # </nc:interface> - # </nc:area> - # </nc:ospf3> - # </nc:protocols>" - # # Using parsed # parsed.cfg # ------------ - # <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.4R1/junos"> - # <data> - # <configuration xmlns="http://xml.juniper.net/xnm/1.1/xnm" - # junos:commit-seconds="1601355317" junos:commit-localtime="2020-09-29 04:55:17 UTC" junos:commit-user="rohit"> - # <version>18.4R1-S2.4</version> - # <interfaces> - # <interface> - # <name>ge-0/0/0</name> - # <description>Configured by Ansi-Team</description> - # </interface> - # <interface> - # <name>gr-0/0/0</name> - # <description>Configured Manually</description> - # </interface> - # <interface> - # <name>fxp0</name> - # <unit> - # <name>0</name> - # <family> - # <inet> - # <dhcp> - # </dhcp> - # </inet> - # </family> - # </unit> - # </interface> - # </interfaces> - # <protocols> - # <ospf3> - # <area> - # <name>0.0.0.100</name> - # <stub> - # <default-metric>200</default-metric> - # </stub> - # <interface> - # <name>so-0/0/0.0</name> - # <passive> - # </passive> - # <metric>5</metric> - # <priority>3</priority> - # <flood-reduction/> - # </interface> - # </area> - # <area> - # <name>0.0.0.200</name> - # <interface> - # <name>ge-1/1/0.0</name> - # </interface> - # <interface> - # <name>ge-2/2/0.0</name> - # </interface> - # </area> - # </ospf3> - # </protocols> - # <routing-options> - # <router-id>10.200.16.75</router-id> - # </routing-options> - # </configuration> - # <database-status-information> - # <database-status> - # <user>rohit</user> - # <terminal>pts/0</terminal> - # <pid>38210</pid> - # <start-time junos:seconds="1601354977">2020-09-29 04:49:37 UTC</start-time> - # <idle-time junos:seconds="546">00:09:06</idle-time> - # <edit-path>[edit]</edit-path> - # </database-status> - # </database-status-information> - # </data> + # <?xml version="1.0" encoding="UTF-8"?> + # <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> + # <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> + # <protocols> + # <ospf3> + # <area> + # <name>0.0.0.100</name> + # <stub> + # <default-metric>200</default-metric> + # </stub> + # <interface> + # <name>so-0/0/0.0</name> + # <passive></passive> + # <metric>5</metric> + # <priority>3</priority> + # <flood-reduction/> + # </interface> + # </area> + # <area> + # <name>0.0.0.200</name> + # <interface> + # <name>ge-1/1/0.0</name> + # </interface> + # <interface> + # <name>ge-2/2/0.0</name> + # </interface> + # </area> + # </ospf3> + # </protocols> + # <routing-options> + # <router-id>10.200.16.75</router-id> + # </routing-options> + # </configuration> # </rpc-reply> - - name: Parsed the device configuration to get output commands + + - name: Parsed the ospfv3 config into structured ansible resource facts. junipernetworks.junos.junos_ospfv3: running_config: "{{ lookup('file', './parsed.cfg') }}" state: parsed # + # Task Output: + # ------------ # - # ------------------------- - # Module Execution Result - # ------------------------- - # + # parsed: + # - router_id: 10.200.16.75 + # areas: + # - area_id: 0.0.0.100 + # stub: + # default_metric: 200 + # set: true + # interfaces: + # - name: so-0/0/0.0 + # priority: 3 + # metric: 5 + # flood_reduction: true + # passive: true + # - area_id: 0.0.0.200 + # interfaces: + # - name: ge-1/1/0.0 + # - name: ge-2/2/0.0 + + # Using rendered # - # "parsed": [ - # { - # "areas": [ - # { - # "area_id": "0.0.0.100", - # "interfaces": [ - # { - # "flood_reduction": true, - # "metric": 5, - # "name": "so-0/0/0.0", - # "passive": true, - # "priority": 3 - # } - # ], - # "stub": { - # "default_metric": 200, - # "set": true - # } - # }, - # { - # "area_id": "0.0.0.200", - # "interfaces": [ - # { - # "name": "ge-1/1/0.0" - # }, - # { - # "name": "ge-2/2/0.0" - # } - # ] - # } - # ], - # } - # ] + - name: Render the commands for provided configuration + junipernetworks.junos.junos_ospfv3: + config: + - router_id: 10.200.16.75 + areas: + - area_id: 0.0.0.100 + interfaces: + - metric: 5 + name: so-0/0/0.0 + priority: 3 + - metric: 6 + name: so-0/0/1.0 + priority: 2 + stub: + default_metric: 200 + set: true + state: rendered + + # Task Output: + # ------------ # + # rendered: "<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # <nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface> + # <nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority> + # <nc:metric>5</nc:metric></nc:interface><nc:interface><nc:name>so-0/0/1.0</nc:name> + # <nc:priority>2</nc:priority><nc:metric>6</nc:metric></nc:interface><nc:stub> + # <nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf3></nc:protocols>" @@ -1167,7 +1239,7 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late </td> <td>when changed</td> <td> - <div>The resulting configuration model invocation.</div> + <div>The resulting configuration module invocation.</div> <br/> <div style="font-size: smaller"><b>Sample:</b></div> <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">The configuration returned will always be in the same format @@ -1185,7 +1257,7 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late </td> <td>always</td> <td> - <div>The configuration prior to the model invocation.</div> + <div>The configuration prior to the module invocation.</div> <br/> <div style="font-size: smaller"><b>Sample:</b></div> <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">The configuration returned will always be in the same format @@ -1206,7 +1278,58 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <div>The set of commands pushed to the remote device.</div> <br/> <div style="font-size: smaller"><b>Sample:</b></div> - <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:ospf3 delete="delete"/> <nc:ospf3> <nc:area> <nc:name>0.0.0.100</nc:name> <nc:interface> <nc:name>so-0/0/0.0</nc:name> <nc:priority>3</nc:priority> <nc:flood-reduction/> <nc:metric>5</nc:metric> <nc:passive/> </nc:interface> <nc:stub> <nc:default-metric>200</nc:default-metric> </nc:stub> </nc:area> <nc:area> <nc:name>0.0.0.200</nc:name> <nc:interface> <nc:name>ge-1/1/0.0</nc:name> </nc:interface> <nc:interface> <nc:name>ge-2/2/0.0</nc:name> </nc:interface> </nc:area> </nc:ospf3> </nc:protocols>", " <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:router-id delete="delete"/> <nc:router-id>10.200.16.75</nc:router-id> </nc:routing-options>', 'xml 2', 'xml 3']</div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">< nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface>', 'xml 2', 'xml 3']</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>gathered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>gathered</code></td> + <td> + <div>Facts about the network resource gathered from the remote device as structured data.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>parsed</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>parsed</code></td> + <td> + <div>The device native config provided in <em>running_config</em> option parsed into structured data as per module argspec.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>rendered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>rendered</code></td> + <td> + <div>The provided configuration in the task rendered in device-native format (offline).</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">']</div> </td> </tr> </table> diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_package_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_package_module.rst index 3fc1afcc5..228875575 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_package_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_package_module.rst @@ -36,12 +36,12 @@ Parameters <table border=0 cellpadding=0 class="documentation-table"> <tr> - <th colspan="1">Parameter</th> + <th colspan="2">Parameter</th> <th>Choices/<font color="blue">Defaults</font></th> <th width="100%">Comments</th> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>force</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -60,7 +60,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>force_host</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -79,7 +79,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>issu</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -98,7 +98,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>no_copy</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -117,8 +117,144 @@ Parameters </td> </tr> <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>provider</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div><b>Deprecated</b></div> + <div>Starting with Ansible 2.5 we recommend using <code>connection: network_cli</code> or <code>connection: netconf</code>.</div> + <div>For more information please see the <a href='../network/user_guide/platform_junos.html'>Junos OS Platform Options guide</a>.</div> + <div><hr/></div> + <div>A dict object containing connection details.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies the DNS host name or address for connecting to the remote device over the specified transport. The value of host is used as the destination address for the transport.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies the password to use to authenticate the connection to the remote device. This value is used to authenticate the SSH session. If the value is not specified in the task, the value of environment variable <code>ANSIBLE_NET_PASSWORD</code> will be used instead.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies the port to use when building the connection to the remote device. The port value will default to the well known SSH port of 22 (for <code>transport=cli</code>) or port 830 (for <code>transport=netconf</code>) device.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ssh_keyfile</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies the SSH key to use to authenticate the connection to the remote device. This value is the path to the key used to authenticate the SSH session. If the value is not specified in the task, the value of environment variable <code>ANSIBLE_NET_SSH_KEYFILE</code> will be used instead.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies the timeout in seconds for communicating with the network device for either connecting or sending commands. If the timeout is exceeded before the operation is completed, the module will error.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>transport</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>cli</li> + <li><div style="color: blue"><b>netconf</b> ←</div></li> + </ul> + </td> + <td> + <div>Configures the transport connection to use when connecting to the remote device.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> <td colspan="1"> <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Configures the username to use to authenticate the connection to the remote device. This value is used to authenticate the SSH session. If the value is not specified in the task, the value of environment variable <code>ANSIBLE_NET_USERNAME</code> will be used instead.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> <b>reboot</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> <div style="font-size: small"> @@ -136,7 +272,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>src</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -153,7 +289,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>ssh_config</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -168,7 +304,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>ssh_private_key_file</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -183,7 +319,26 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>unlink</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>The <em>unlink</em> argument is responsible for instructing the remote device to remove the installation packages after installation.</div> + </td> + </tr> + <tr> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>validate</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -202,7 +357,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>version</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -249,7 +404,7 @@ Examples - name: install local package on remote device without rebooting junipernetworks.junos.junos_package: src: junos-vsrx-12.1X46-D10.2-domestic.tgz - reboot: no + reboot: false - name: install local package on remote device with jumpost junipernetworks.junos.junos_package: diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ping_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ping_module.rst index f484231b6..0c32f602d 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ping_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_ping_module.rst @@ -250,8 +250,8 @@ Examples - name: Test reachability to 10.50.50.50 using do-not-fragment and rapid junipernetworks.junos.junos_ping: dest: 10.50.50.50 - df_bit: True - rapid: True + df_bit: true + rapid: true diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_prefix_lists_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_prefix_lists_module.rst index 2609c521f..383e7d87d 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_prefix_lists_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_prefix_lists_module.rst @@ -196,45 +196,35 @@ Examples - 172.16.7.32 - 172.16.9.32 state: merged - # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # "before": [] - # "commands": [ - # "<nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> - # "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>" - # "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name>" - # "</nc:prefix-list-item></nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name>" - # "<nc:dynamic-db/></nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name>" - # "<nc:prefix-list-item><nc:name>172.16.2.32</nc:name></nc:prefix-list-item>" - # "<nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>" - # "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>" - # "</nc:prefix-list></nc:policy-options>" - # ] - # - # "after": [ - # { - # "address_prefixes": [ - # "172.16.1.32/32", - # "172.16.3.32/32" - # ], - # "name": "Internal" - # }, - # { - # "dynamic_db": true, - # "name": "Test1" - # }, - # { - # "address_prefixes": [ - # "172.16.2.32/32", - # "172.16.7.32/32", - # "172.16.9.32/32" - # ], - # "name": "Test2" - # } - # ] + + # Task Output + # ------------- + # + # before: [] + # commands: + # - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # - "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>" + # - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name>" + # - "</nc:prefix-list-item></nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name>" + # - "<nc:dynamic-db/></nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name>" + # - "<nc:prefix-list-item><nc:name>172.16.2.32</nc:name></nc:prefix-list-item>" + # - "<nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>" + # - "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>" + # - "</nc:prefix-list></nc:policy-options>" + # after: + # - address_prefixes: + # - 172.16.1.32/32 + # - 172.16.3.32/32 + # name: Internal + # - dynamic_db: true + # name: Test1 + # - address_prefixes: + # - 172.16.2.32/32 + # - 172.16.7.32/32 + # - 172.16.9.32/32 + # name: Test2 + + # After state # ----------- # @@ -251,7 +241,8 @@ Examples # 172.16.7.32/32; # 172.16.9.32/32; # } - # + + # Using gathered # # Before state @@ -274,36 +265,28 @@ Examples - name: Gather Junos prefix-lists junipernetworks.junos.junos_prefix_lists: state: gathered + + + # Task Output + # ------------- # - # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # "gathered": [ - # { - # "address_prefixes": [ - # "172.16.1.32/32", - # "172.16.3.32/32" - # ], - # "name": "Internal" - # }, - # { - # "dynamic_db": true, - # "name": "Test1" - # }, - # { - # "address_prefixes": [ - # "172.16.2.32/32", - # "172.16.7.32/32", - # "172.16.9.32/32" - # ], - # "name": "Test2" - # } - # ] - # + # gathered: + # - address_prefixes: + # - 172.16.1.32/32 + # - 172.16.3.32/32 + # name: Internal + # - dynamic_db: true + # name: Test1 + # - address_prefixes: + # - 172.16.2.32/32 + # - 172.16.7.32/32 + # - 172.16.9.32/32 + # name: Test2 + + # Using replaced - # + + # Before state # ------------ # @@ -320,70 +303,54 @@ Examples # 172.16.7.32/32; # 172.16.9.32/32; # } + + - name: Replace existing Junos prefix-lists configuration with provided config junipernetworks.junos.junos_prefix_lists: - config: - - name: Test2 - address_prefixes: - - 172.16.4.32 - - 172.16.8.32 - - 172.16.9.32" - state: replaced - # ------------------------- - # Module Execution Result - # ------------------------- - # - # "before": [ - # { - # "address_prefixes": [ - # "172.16.1.32/32", - # "172.16.3.32/32" - # ], - # "name": "Internal" - # }, - # { - # "dynamic_db": true, - # "name": "Test1" - # }, - # { - # "address_prefixes": [ - # "172.16.2.32/32", - # "172.16.7.32/32", - # "172.16.9.32/32" - # ], - # "name": "Test2" - # } - # ] - # "commands": [ - # "<nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> - # "<nc:prefix-list delete="delete"><nc:name>Test2</nc:name></nc:prefix-list>" - # "<nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item><nc:name>172.16.4.32</nc:name>" - # "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.8.32</nc:name>" - # "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.9.32</nc:name>" - # "</nc:prefix-list-item></nc:prefix-list></nc:policy-options>" - # ] - # - # "after": [ - # { - # "address_prefixes": [ - # "172.16.1.32/32", - # "172.16.3.32/32" - # ], - # "name": "Internal" - # }, - # { - # "dynamic_db": true, - # "name": "Test1" - # }, - # { - # "address_prefixes": [ - # "172.16.4.32/32", - # "172.16.8.32/32", - # "172.16.9.32/32" - # ], - # "name": "Test2" - # } - # ] + config: + - name: Test2 + address_prefixes: + - 172.16.4.32 + - 172.16.8.32 + - 172.16.9.32" + state: replaced + + + # Task Output + # ------------- + # + # before: + # - address_prefixes: + # - 172.16.1.32/32 + # - 172.16.3.32/32 + # name: Internal + # - dynamic_db: true + # name: Test1 + # - address_prefixes: + # - 172.16.2.32/32 + # - 172.16.7.32/32 + # - 172.16.9.32/32 + # name: Test2 + # commands: + # - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # - <nc:prefix-list delete="delete"><nc:name>Test2</nc:name></nc:prefix-list> + # - "<nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item><nc:name>172.16.4.32</nc:name>" + # - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.8.32</nc:name>" + # - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.9.32</nc:name>" + # - "</nc:prefix-list-item></nc:prefix-list></nc:policy-options>" + # after: + # - address_prefixes: + # - 172.16.1.32/32 + # - 172.16.3.32/32 + # name: Internal + # - dynamic_db: true + # name: Test1 + # - address_prefixes: + # - 172.16.4.32/32 + # - 172.16.8.32/32 + # - 172.16.9.32/32 + # name: Test2 + # After state # ----------- # @@ -400,8 +367,10 @@ Examples # 172.16.8.32/32; # 172.16.9.32/32; # } + + # Using overridden - # + # Before state # ------------ # @@ -418,62 +387,50 @@ Examples # 172.16.8.32/32; # 172.16.9.32/32; # } + + - name: Override Junos prefix-lists configuration with provided configuration junipernetworks.junos.junos_prefix_lists: - config: - - name: Test2 - address_prefixes: - - 172.16.4.32/28 - - 172.16.8.32/28 - - 172.16.9.32/28 - state: overridden - - # ------------------------- - # Module Execution Result - # ------------------------- - # - # "before": [ - # { - # "address_prefixes": [ - # "172.16.1.32/32", - # "172.16.3.32/32" - # ], - # "name": "Internal" - # }, - # { - # "dynamic_db": true, - # "name": "Test1" - # }, - # { - # "address_prefixes": [ - # "172.16.4.32/32", - # "172.16.8.32/32", - # "172.16.9.32/32" - # ], - # "name": "Test2" - # } - # ] - # "commands": [ - # "<nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> - # "<nc:prefix-list delete="delete"><nc:name>Internal</nc:name>" - # "</nc:prefix-list><nc:prefix-list delete="delete"><nc:name>Test1</nc:name>" - # "</nc:prefix-list><nc:prefix-list delete="delete"><nc:name>Test2</nc:name>" - # "</nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item>" - # "<nc:name>172.16.4.32/28</nc:name></nc:prefix-list-item><nc:prefix-list-item>" - # "<nc:name>172.16.8.32/28</nc:name></nc:prefix-list-item><nc:prefix-list-item>" - # "<nc:name>172.16.9.32/28</nc:name></nc:prefix-list-item></nc:prefix-list></nc:policy-options>" - # ] - # - # "after": [ - # { - # "address_prefixes": [ - # "172.16.4.32/28", - # "172.16.8.32/28", - # "172.16.9.32/28" - # ], - # "name": "Test2" - # } - # ] + config: + - name: Test2 + address_prefixes: + - 172.16.4.32/28 + - 172.16.8.32/28 + - 172.16.9.32/28 + state: overridden + + + # Task Output + # ------------- + # + # before: + # - address_prefixes: + # - 172.16.1.32/32 + # - 172.16.3.32/32 + # name: Internal + # - dynamic_db: true + # name: Test1 + # - address_prefixes: + # - 172.16.4.32/32 + # - 172.16.8.32/32 + # - 172.16.9.32/32 + # name: Test2 + # commands: + # - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # - <nc:prefix-list delete="delete"><nc:name>Internal</nc:name> + # - </nc:prefix-list><nc:prefix-list delete="delete"><nc:name>Test1</nc:name> + # - </nc:prefix-list><nc:prefix-list delete="delete"><nc:name>Test2</nc:name> + # - "</nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item>" + # - "<nc:name>172.16.4.32/28</nc:name></nc:prefix-list-item><nc:prefix-list-item>" + # - "<nc:name>172.16.8.32/28</nc:name></nc:prefix-list-item><nc:prefix-list-item>" + # - "<nc:name>172.16.9.32/28</nc:name></nc:prefix-list-item></nc:prefix-list></nc:policy-options>" + # after: + # - address_prefixes: + # - 172.16.4.32/28 + # - 172.16.8.32/28 + # - 172.16.9.32/28 + # name: Test2 + # After state # ----------- # @@ -483,8 +440,11 @@ Examples # 172.16.8.32/28; # 172.16.9.32/28; # } + + # Using deleted - # + + # Before state # ------------ # @@ -502,52 +462,41 @@ Examples # 172.16.9.32/32; # } + - name: Delete provided prefix-lists junipernetworks.junos.junos_prefix_lists: - config: - - name: "Test1" - - name: "Test2" - state: deleted - # ------------------------ - # Module Execution Results - # ------------------------ - # - # "before": [ - # { - # "address_prefixes": [ - # "172.16.1.32/32", - # "172.16.3.32/32" - # ], - # "name": "Internal" - # }, - # { - # "dynamic_db": true, - # "name": "Test1" - # }, - # { - # "address_prefixes": [ - # "172.16.2.32/32", - # "172.16.7.32/32", - # "172.16.9.32/32" - # ], - # "name": "Test2" - # } - # ] - # "commands": [ - # "<nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> - # "<nc:prefix-list delete="delete"><nc:name>Test1</nc:name></nc:prefix-list>" - # "<nc:prefix-list delete="delete"><nc:name>Test2</nc:name></nc:prefix-list></nc:policy-options>" - # ] - # - # "after": [ - # { - # "address_prefixes": [ - # "172.16.1.32/32", - # "172.16.3.32/32" - # ], - # "name": "Internal" - # } - # ] + config: + - name: "Test1" + - name: "Test2" + state: deleted + + + # Task Output + # ------------- + # + # before: + # - address_prefixes: + # - 172.16.1.32/32 + # - 172.16.3.32/32 + # name: Internal + # - dynamic_db: true + # name: Test1 + # - address_prefixes: + # - 172.16.2.32/32 + # - 172.16.7.32/32 + # - 172.16.9.32/32 + # name: Test2 + # commands: + # - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # - <nc:prefix-list delete="delete"><nc:name>Test1</nc:name></nc:prefix-list> + # - <nc:prefix-list delete="delete"><nc:name>Test2</nc:name></nc:prefix-list></nc:policy-options> + # after: + # - address_prefixes: + # - 172.16.1.32/32 + # - 172.16.3.32/32 + # name: Internal + + # After state # ----------- # @@ -557,8 +506,11 @@ Examples # 172.16.3.32/32; # } # + + # Using deleted without specifying config - # + + # Before state # ------------ # @@ -576,40 +528,33 @@ Examples # 172.16.9.32/32; # } + - name: Delete complete Junos prefix-lists configuration junipernetworks.junos.junos_prefix_lists: - state: deleted + state: deleted + + + # Task Output + # ------------- + # + # before: + # - address_prefixes: + # - 172.16.1.32/32 + # - 172.16.3.32/32 + # name: Internal + # - dynamic_db: true + # name: Test1 + # - address_prefixes: + # - 172.16.2.32/32 + # - 172.16.7.32/32 + # - 172.16.9.32/32 + # name: Test2 + # commands: + # - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # - <nc:prefix-list delete="delete"/></nc:policy-options> + # after: [] + - # ------------------------ - # Module Execution Results - # ------------------------ - # - # "before": [ - # { - # "address_prefixes": [ - # "172.16.1.32/32", - # "172.16.3.32/32" - # ], - # "name": "Internal" - # }, - # { - # "dynamic_db": true, - # "name": "Test1" - # }, - # { - # "address_prefixes": [ - # "172.16.2.32/32", - # "172.16.7.32/32", - # "172.16.9.32/32" - # ], - # "name": "Test2" - # } - # ] - # "commands": ["<nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> - # "<nc:prefix-list delete="delete"/></nc:policy-options>" - # ] - # - # "after": [] # After state # ----------- # @@ -617,8 +562,10 @@ Examples # # [edit] - # + # Using parsed + + # parsed.cfg # ------------ # <?xml version="1.0" encoding="UTF-8"?> @@ -642,34 +589,28 @@ Examples # </policy-options> # </configuration> # </rpc-reply> + + - name: Parse running prefix-lists configuration junipernetworks.junos.junos_prefix_lists: running_config: "{{ lookup('file', './parsed.cfg') }}" state: parsed - # - # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # - # "parsed": [ - # { - # "name": "64510" - # }, - # { - # "address_prefixes": [ - # "172.16.1.16/28", - # "172.16.1.32/28" - # ], - # "dynamic_db": true, - # "name": "64500" - # } - # ] - # - # + + + # Task Output + # ------------- + # parsed: + # - name: '64510' + # - address_prefixes: + # - 172.16.1.16/28 + # - 172.16.1.32/28 + # dynamic_db: true + # name: '64500' + + # Using rendered - # + + - name: Render the xml for provided configuration junipernetworks.junos.junos_prefix_lists: config: @@ -685,91 +626,22 @@ Examples - 172.16.7.32 - 172.16.9.32 state: rendered - # - # - # ------------------------- - # Module Execution Result - # ------------------------- - # - # - # "rendered": "<nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> - # "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>" - # "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name></nc:prefix-list-item>" - # "</nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name><nc:dynamic-db/></nc:prefix-list>" - # "<nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item><nc:name>172.16.2.32</nc:name>" - # "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>" - # "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>" - # "</nc:prefix-list></nc:policy-options>" - -Return Values -------------- -Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + # Task Output + # ------------- + # rendered: + # - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + # - "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>" + # - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name>" + # - "</nc:prefix-list-item></nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name>" + # - "<nc:dynamic-db/></nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name>" + # - "<nc:prefix-list-item><nc:name>172.16.2.32</nc:name></nc:prefix-list-item>" + # - "<nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>" + # - "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>" + # - "</nc:prefix-list></nc:policy-options>" -.. raw:: html - <table border=0 cellpadding=0 class="documentation-table"> - <tr> - <th colspan="1">Key</th> - <th>Returned</th> - <th width="100%">Description</th> - </tr> - <tr> - <td colspan="1"> - <div class="ansibleOptionAnchor" id="return-"></div> - <b>after</b> - <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> - <div style="font-size: small"> - <span style="color: purple">list</span> - </div> - </td> - <td>when changed</td> - <td> - <div>The resulting configuration model invocation.</div> - <br/> - <div style="font-size: smaller"><b>Sample:</b></div> - <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">The configuration returned will always be in the same format - of the parameters above.</div> - </td> - </tr> - <tr> - <td colspan="1"> - <div class="ansibleOptionAnchor" id="return-"></div> - <b>before</b> - <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> - <div style="font-size: small"> - <span style="color: purple">list</span> - </div> - </td> - <td>always</td> - <td> - <div>The configuration prior to the model invocation.</div> - <br/> - <div style="font-size: smaller"><b>Sample:</b></div> - <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">The configuration returned will always be in the same format - of the parameters above.</div> - </td> - </tr> - <tr> - <td colspan="1"> - <div class="ansibleOptionAnchor" id="return-"></div> - <b>commands</b> - <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> - <div style="font-size: small"> - <span style="color: purple">list</span> - </div> - </td> - <td>always</td> - <td> - <div>The set of commands pushed to the remote device.</div> - <br/> - <div style="font-size: smaller"><b>Sample:</b></div> - <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> "<nc:prefix-list delete="delete"/></nc:policy-options>"', 'xml 2', 'command 3']</div> - </td> - </tr> - </table> - <br/><br/> Status diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_routing_instances_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_routing_instances_module.rst index 9b76b6d47..939482c20 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_routing_instances_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_routing_instances_module.rst @@ -674,21 +674,21 @@ Examples - name: Replace existing Junos routing instance config with provided config junipernetworks.junos.junos_routing_instances: - config: - address_family: - - name: "test" - type: "vrf" - route_distinguisher: "10.57.255.1:37" - vrf_imports: - - "test-policy" - vrf_exports: - - "test-policy" - interfaces: - - name: "sp-0/0/0.0" - - name: "gr-0/0/0.0" - connector_id_advertise: false - description: "Configured by Ansible Content Team" - state: replaced + config: + address_family: + - name: "test" + type: "vrf" + route_distinguisher: "10.57.255.1:37" + vrf_imports: + - "test-policy" + vrf_exports: + - "test-policy" + interfaces: + - name: "sp-0/0/0.0" + - name: "gr-0/0/0.0" + connector_id_advertise: false + description: "Configured by Ansible Content Team" + state: replaced # After state # ----------- @@ -730,25 +730,25 @@ Examples - name: Override Junos routing-instances configuration junipernetworks.junos.junos_routing_instances: - config: - - name: "test" - type: "vrf" - route_distinguisher: "10.58.255.1:37" - vrf_imports: - - "test-policy" - vrf_exports: - - "test-policy" - - "test-policy-1" - interfaces: - - name: "sp-0/0/0.0" - - name: "gr-0/0/0.0" - connector_id_advertise: true - - name: "forwardinst" - type: "forwarding" - description: "Configured by Ansible Content Team" - - name: "vtest1" - type: "virtual-router" - state: overridden + config: + - name: "test" + type: "vrf" + route_distinguisher: "10.58.255.1:37" + vrf_imports: + - "test-policy" + vrf_exports: + - "test-policy" + - "test-policy-1" + interfaces: + - name: "sp-0/0/0.0" + - name: "gr-0/0/0.0" + connector_id_advertise: true + - name: "forwardinst" + type: "forwarding" + description: "Configured by Ansible Content Team" + - name: "vtest1" + type: "virtual-router" + state: overridden # After state # ----------- @@ -794,9 +794,9 @@ Examples - name: Delete provided junos routing-instamce junipernetworks.junos.junos_routing_instances: - config: - - name: "test" - state: deleted + config: + - name: "test" + state: deleted # After state # ----------- @@ -832,8 +832,8 @@ Examples - name: Delete complete Junos routing-instances config junipernetworks.junos.junos_routing_instances: - config: - state: deleted + config: + state: deleted # After state # ----------- diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_scp_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_scp_module.rst index 96f38d085..389939e19 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_scp_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_scp_module.rst @@ -14,6 +14,13 @@ Version added: 1.0.0 :local: :depth: 1 +DEPRECATED +---------- +:Removed in collection release after 2025-01-01 +:Why: Updated modules released with more functionality +:Alternative: Use :ref:`ansible.netcommon.net_get <ansible.netcommon.net_get_module>`, :ref:`ansible.netcommon.net_put <ansible.netcommon.net_put_module>` instead. + + Synopsis -------- @@ -36,12 +43,12 @@ Parameters <table border=0 cellpadding=0 class="documentation-table"> <tr> - <th colspan="1">Parameter</th> + <th colspan="2">Parameter</th> <th>Choices/<font color="blue">Defaults</font></th> <th width="100%">Comments</th> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>dest</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -57,8 +64,144 @@ Parameters </td> </tr> <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>provider</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div><b>Deprecated</b></div> + <div>Starting with Ansible 2.5 we recommend using <code>connection: network_cli</code> or <code>connection: netconf</code>.</div> + <div>For more information please see the <a href='../network/user_guide/platform_junos.html'>Junos OS Platform Options guide</a>.</div> + <div><hr/></div> + <div>A dict object containing connection details.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies the DNS host name or address for connecting to the remote device over the specified transport. The value of host is used as the destination address for the transport.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies the password to use to authenticate the connection to the remote device. This value is used to authenticate the SSH session. If the value is not specified in the task, the value of environment variable <code>ANSIBLE_NET_PASSWORD</code> will be used instead.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> <td colspan="1"> <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies the port to use when building the connection to the remote device. The port value will default to the well known SSH port of 22 (for <code>transport=cli</code>) or port 830 (for <code>transport=netconf</code>) device.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ssh_keyfile</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies the SSH key to use to authenticate the connection to the remote device. This value is the path to the key used to authenticate the SSH session. If the value is not specified in the task, the value of environment variable <code>ANSIBLE_NET_SSH_KEYFILE</code> will be used instead.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies the timeout in seconds for communicating with the network device for either connecting or sending commands. If the timeout is exceeded before the operation is completed, the module will error.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>transport</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>cli</li> + <li><div style="color: blue"><b>netconf</b> ←</div></li> + </ul> + </td> + <td> + <div>Configures the transport connection to use when connecting to the remote device.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Configures the username to use to authenticate the connection to the remote device. This value is used to authenticate the SSH session. If the value is not specified in the task, the value of environment variable <code>ANSIBLE_NET_USERNAME</code> will be used instead.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> <b>recursive</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> <div style="font-size: small"> @@ -76,7 +219,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>remote_src</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -95,7 +238,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>src</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -112,7 +255,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>ssh_config</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -127,7 +270,7 @@ Parameters </td> </tr> <tr> - <td colspan="1"> + <td colspan="2"> <div class="ansibleOptionAnchor" id="parameter-"></div> <b>ssh_private_key_file</b> <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> @@ -223,6 +366,10 @@ Status ------ +- This module will be removed in a release after 2025-01-01. *[deprecated]* +- For more information see `DEPRECATED`_. + + Authors ~~~~~~~ diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_security_policies_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_security_policies_module.rst index a8751992b..34e35428e 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_security_policies_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_security_policies_module.rst @@ -7225,18 +7225,18 @@ Examples - junipernetworks.junos.junos_security_policies: config: global: - policies: - - description: test update - match: - application: - any: true - destination_address: - any_ipv6: true - source_address: - any: true - name: test_glob_3 - then: - deny: true + policies: + - description: test update + match: + application: + any: true + destination_address: + any_ipv6: true + source_address: + any: true + name: test_glob_3 + then: + deny: true state: rendered # # ------------------------- diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_security_zones_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_security_zones_module.rst index 25bf73d6b..cf06a1f42 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_security_zones_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_security_zones_module.rst @@ -1141,72 +1141,72 @@ Examples description: test description host_inbound_traffic: protocols: - - name: all - - name: bgp - except: true + - name: all + - name: bgp + except: true system_services: - - name: all - - except: true - name: dhcp + - name: all + - except: true + name: dhcp interfaces: - ge-0/0/1.0 - ge-0/0/2.0 screen: test_screen security_zones: - - address_book: - address_sets: - - addresses: - - test_adr1 - - test_adr2 - name: test_adrset1 - - addresses: - - test_adr3 - - test_adr4 - name: test_adrset2 - - address_sets: - - test_adrset1 - - test_adrset2 + - address_book: + address_sets: + - addresses: + - test_adr1 + - test_adr2 + name: test_adrset1 + - addresses: + - test_adr3 + - test_adr4 + name: test_adrset2 + - address_sets: + - test_adrset1 + - test_adrset2 + addresses: + - test_adr5 + description: test description + name: test_adrset3 addresses: - - test_adr5 - description: test description - name: test_adrset3 - addresses: - - description: test desc - ip_prefix: 10.0.0.0/24 - name: test_adr1 - - dns_name: - ipv6_only: true - name: 1.1.1.1 - name: test_adr2 - - name: test_adr3 - range_address: - from: 10.2.0.1 - to: 10.2.0.2 - - name: test_adr4 - wildcard_address: 10.3.0.1/24 - - description: test desc - ip_prefix: 10.1.0.0/24 - name: test_adr5 - advance_policy_based_routing_profile: test_profile - application_tracking: true - description: test description - enable_reverse_reroute: true - host_inbound_traffic: - protocols: - - name: all - - except: true - name: bgp - system_services: - - name: all - - except: true - name: dhcp - interfaces: - - ge-0/0/3.0 - - ge-0/0/4.0 - name: test_sec_zone1 - screen: test_screen - source_identity_log: true - tcp_rst: true + - description: test desc + ip_prefix: 10.0.0.0/24 + name: test_adr1 + - dns_name: + ipv6_only: true + name: 1.1.1.1 + name: test_adr2 + - name: test_adr3 + range_address: + from: 10.2.0.1 + to: 10.2.0.2 + - name: test_adr4 + wildcard_address: 10.3.0.1/24 + - description: test desc + ip_prefix: 10.1.0.0/24 + name: test_adr5 + advance_policy_based_routing_profile: test_profile + application_tracking: true + description: test description + enable_reverse_reroute: true + host_inbound_traffic: + protocols: + - name: all + - except: true + name: bgp + system_services: + - name: all + - except: true + name: dhcp + interfaces: + - ge-0/0/3.0 + - ge-0/0/4.0 + name: test_sec_zone1 + screen: test_screen + source_identity_log: true + tcp_rst: true state: merged # # ------------------------- @@ -1565,16 +1565,16 @@ Examples description: test description host_inbound_traffic: protocols: - - name: all - - name: bgp - except: true + - name: all + - name: bgp + except: true system_services: - - name: all - - except: true - name: dhcp - interfaces: - - ge-0/0/1.0 - - ge-0/0/2.0 + - name: all + - except: true + name: dhcp + interfaces: + - ge-0/0/1.0 + - ge-0/0/2.0 screen: test_screen state: replaced # @@ -1880,13 +1880,13 @@ Examples description: test description host_inbound_traffic: protocols: - - name: all - - name: bgp - except: true + - name: all + - name: bgp + except: true system_services: - - name: all - - except: true - name: dhcp + - name: all + - except: true + name: dhcp interfaces: - ge-0/0/1.0 - ge-0/0/2.0 @@ -2413,72 +2413,72 @@ Examples description: test description host_inbound_traffic: protocols: - - name: all - - name: bgp - except: true + - name: all + - name: bgp + except: true system_services: - - name: all - - except: true - name: dhcp + - name: all + - except: true + name: dhcp interfaces: - ge-0/0/1.0 - ge-0/0/2.0 screen: test_screen security_zones: - - address_book: - address_sets: - - addresses: - - test_adr1 - - test_adr2 - name: test_adrset1 - - addresses: - - test_adr3 - - test_adr4 - name: test_adrset2 - - address_sets: - - test_adrset1 - - test_adrset2 + - address_book: + address_sets: + - addresses: + - test_adr1 + - test_adr2 + name: test_adrset1 + - addresses: + - test_adr3 + - test_adr4 + name: test_adrset2 + - address_sets: + - test_adrset1 + - test_adrset2 + - addresses: + - test_adr5 + description: test description + name: test_adrset3 addresses: - - test_adr5 - description: test description - name: test_adrset3 - addresses: - - description: test desc - ip_prefix: 10.0.0.0/24 - name: test_adr1 - - dns_name: - ipv6_only: true - name: 1.1.1.1 - name: test_adr2 - - name: test_adr3 - range_address: - from: 10.2.0.1 - to: 10.2.0.2 - - name: test_adr4 - wildcard_address: 10.3.0.1/24 - - description: test desc - ip_prefix: 10.1.0.0/24 - name: test_adr5 - advance_policy_based_routing_profile: test_profile - application_tracking: true - description: test description - enable_reverse_reroute: true - host_inbound_traffic: - protocols: - - name: all - - except: true - name: bgp - system_services: - - name: all - - except: true - name: dhcp - interfaces: - - ge-0/0/3.0 - - ge-0/0/4.0 - name: test_sec_zone1 - screen: test_screen - source_identity_log: true - tcp_rst: true + - description: test desc + ip_prefix: 10.0.0.0/24 + name: test_adr1 + - dns_name: + ipv6_only: true + name: 1.1.1.1 + name: test_adr2 + - name: test_adr3 + range_address: + from: 10.2.0.1 + to: 10.2.0.2 + - name: test_adr4 + wildcard_address: 10.3.0.1/24 + - description: test desc + ip_prefix: 10.1.0.0/24 + name: test_adr5 + advance_policy_based_routing_profile: test_profile + application_tracking: true + description: test description + enable_reverse_reroute: true + host_inbound_traffic: + protocols: + - name: all + - except: true + name: bgp + system_services: + - name: all + - except: true + name: dhcp + interfaces: + - ge-0/0/3.0 + - ge-0/0/4.0 + name: test_sec_zone1 + screen: test_screen + source_identity_log: true + tcp_rst: true state: rendered # # ------------------------- diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_snmp_server_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_snmp_server_module.rst index eac23b97a..35996ebff 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_snmp_server_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_snmp_server_module.rst @@ -5414,15 +5414,15 @@ Examples set: true host_name_resolution: true client_lists: # ATTR-----2 - - name: cl1 - addresses: - - address: "192.16.1.0/24" - - address: "192.16.2.0/24" - - address: "11.11.11.11" - restrict: true - - name: cl2 - addresses: - - address: "192.16.4.0/24" + - name: cl1 + addresses: + - address: "192.16.1.0/24" + - address: "192.16.2.0/24" + - address: "11.11.11.11" + restrict: true + - name: cl2 + addresses: + - address: "192.16.4.0/24" routing_instance_access: # ATTR-----3 set: true access_lists: @@ -5549,16 +5549,16 @@ Examples config: contact: "ansiblesupport11@redhat.com" customization: - ether_stats_ifd_only: True + ether_stats_ifd_only: true description: "Local SNMP Server" engine_id: local: "local1" - use_default_ip_address: True - use_mac_address: True - filter_duplicates: True + use_default_ip_address: true + use_mac_address: true + filter_duplicates: true filter_interfaces: - set: True - all_internal_interfaces: True + set: true + all_internal_interfaces: true interfaces: - "eth1" - "eth2" @@ -5699,20 +5699,20 @@ Examples config: contact: "ansiblesupport11@redhat.com" customization: - ether_stats_ifd_only: True + ether_stats_ifd_only: true description: "Local SNMP Server" engine_id: local: "local1" - use_default_ip_address: True - use_mac_address: True - filter_duplicates: True + use_default_ip_address: true + use_mac_address: true + filter_duplicates: true filter_interfaces: - set: True - all_internal_interfaces: True + set: true + all_internal_interfaces: true interfaces: - "eth1" - "eth2" - state: overridden + state: overridden # # ------------------------- # Module Execution Result diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_static_routes_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_static_routes_module.rst index debb94ccd..9d275e414 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_static_routes_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_static_routes_module.rst @@ -276,27 +276,50 @@ Examples # static { # route 192.168.47.0/24 next-hop 172.16.1.2; # route 192.168.16.0/24 next-hop 172.16.1.2; - # route 10.200.16.75/24 next-hop 10.200.16.2; # } - name: Delete provided configuration (default operation is merge) junipernetworks.junos.junos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 10.200.16.75/24 - next_hop: - - forward_router_address: 10.200.16.2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.168.16.0/24 + next_hop: + - forward_router_address: 172.16.1.2 state: deleted + # Task Output + # ----------- + # before: + # - address_families: + # - afi: ipv4 + # routes: + # - dest: 192.168.47.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # - dest: 192.168.16.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # commands: + # - '<nc:routing-options + # xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:static><nc:route + # delete="delete"><nc:name>192.168.16.0/24</nc:name></nc:route></nc:static></nc:routing-options>' + # - '<nc:routing-instances xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>' + # after: + # - address_families: + # - afi: ipv4 + # routes: + # - dest: 192.168.47.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # After state: # ------------ # # admin# show routing-options # static { # route 192.168.47.0/24 next-hop 172.16.1.2; - # route 192.168.16.0/24 next-hop 172.16.1.2; # } # Using merged @@ -307,21 +330,44 @@ Examples # admin# show routing-options # static { # route 192.168.47.0/24 next-hop 172.16.1.2; - # route 192.168.16.0/24 next-hop 172.16.1.2; # } - name: Merge provided configuration with device configuration (default operation is merge) junipernetworks.junos.junos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 10.200.16.75/24 - next_hop: - - forward_router_address: 10.200.16.2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.168.16.0/24 + next_hop: + - forward_router_address: 172.16.1.2 state: merged + # Task Output + # ----------- + # before: + # - address_families: + # - afi: ipv4 + # routes: + # - dest: 192.168.47.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # commands: + # - '<nc:routing-options + # xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:static><nc:route><nc:name>192.168.16.0/24</nc:name> + # <nc:next-hop>172.16.1.2</nc:next-hop></nc:route></nc:static></nc:routing-options>' + # - '<nc:routing-instances xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>' + # after: + # - address_families: + # - afi: ipv4 + # routes: + # - dest: 192.168.47.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # - dest: 192.168.16.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 # After state: # ------------ # @@ -329,7 +375,6 @@ Examples # static { # route 192.168.47.0/24 next-hop 172.16.1.2; # route 192.168.16.0/24 next-hop 172.16.1.2; - # route 10.200.16.75/24 next-hop 10.200.16.2; # } # Using overridden @@ -340,27 +385,53 @@ Examples # admin# show routing-options # static { # route 192.168.47.0/24 next-hop 172.16.1.2; - # route 192.168.16.0/24 next-hop 172.16.0.1; + # route 192.168.16.0/24 next-hop 172.16.1.2; # } - - name: Override provided configuration with device configuration (default operation + - name: Override running configuration with provided configuration (default operation is merge) junipernetworks.junos.junos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 10.200.16.75/24 - next_hop: - - forward_router_address: 10.200.16.2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.168.16.0/24 + next_hop: + - forward_router_address: 172.16.0.1 state: overridden + # Task Output: + # ------------ + # before: + # - address_families: + # - afi: ipv4 + # routes: + # - dest: 192.168.47.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # - dest: 192.168.16.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # commands: + # - >- + # <nc:routing-options + # xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:static><nc:route + # delete="delete"><nc:name>192.168.47.0/24</nc:name></nc:route><nc:route + # delete="delete"><nc:name>192.168.16.0/24</nc:name></nc:route></nc:static><nc:static><nc:route><nc:name>192.168.16.0/24</nc:name><nc:next-hop>172.16.0.1</nc:next-hop></nc:route></nc:static></nc:routing-options> + # - '<nc:routing-instances xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>' + # after: + # - address_families: + # - afi: ipv4 + # routes: + # - dest: 192.168.16.0/24 + # next_hop: + # - forward_router_address: 172.16.0.1 # After state: # ------------ # # admin# show routing-options # static { - # route 10.200.16.75/24 next-hop 10.200.16.2; + # route 192.168.16.0/24 next-hop 172.16.0.1; # } # Using replaced @@ -378,14 +449,43 @@ Examples is merge) junipernetworks.junos.junos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 192.168.47.0/24 - next_hop: - - forward_router_address: 10.200.16.2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.168.47.0/24 + next_hop: + - forward_router_address: 10.200.16.2 state: replaced + # Task Output: + # ------------ + # before: + # - address_families: + # - afi: ipv4 + # routes: + # - dest: 192.168.47.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # - dest: 192.168.16.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # commands: + # - >- + # <nc:routing-options + # xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:static><nc:route + # delete="delete"><nc:name>192.168.47.0/24</nc:name></nc:route></nc:static><nc:static><nc:route><nc:name>192.168.47.0/24</nc:name><nc:next-hop>10.200.16.2</nc:next-hop></nc:route></nc:static></nc:routing-options> + # - '<nc:routing-instances xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>' + # after: + # - address_families: + # - afi: ipv4 + # routes: + # - dest: 192.168.16.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # - dest: 192.168.47.0/24 + # next_hop: + # - forward_router_address: 10.200.16.2 + # After state: # ------------ # @@ -395,6 +495,93 @@ Examples # route 192.168.16.0/24 next-hop 172.16.1.2; # } + # Using gathered to gather static route facts from the device + # Before state + # ------------ + # admin# show routing-options + # static { + # route 192.168.16.0/24 next-hop 172.16.1.2; + # route 192.168.47.0/24 next-hop 10.200.16.2; + # } + - name: Gather static routes facts from the device using junos_static_routes module + junipernetworks.junos.junos_static_routes: + state: gathered + + # Task output: + # ------------ + # gathered: + # - address_families: + # - afi: ipv4 + # routes: + # - dest: 192.168.16.0/24 + # next_hop: + # - forward_router_address: 172.16.1.2 + # - dest: 192.168.47.0/24 + # next_hop: + # - forward_router_address: 10.200.16.2 + + # Using rendered + + - name: Render platform specific commands (without connecting to the device) + junipernetworks.junos.junos_static_routes: + config: + - address_families: + - afi: ipv4 + routes: + - dest: 192.168.16.0/24 + next_hop: + - forward_router_address: 172.16.1.2 + state: rendered + + # Task output: + # ------------ + # rendered: + # - '<nc:routing-options + # xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:static><nc:route><nc:name>192.168.16.0/24</nc:name> + # <nc:next-hop>172.16.1.2</nc:next-hop></nc:route></nc:static></nc:routing-options>' + + # Using parsed + + # parsed.cfg + # ------------ + # <?xml version="1.0" encoding="UTF-8"?> + # <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> + # <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> + # <version>18.4R1-S2.4</version> + # <routing-options> + # <static> + # <route> + # <name>192.168.16.0/24</name> + # <next-hop>172.16.1.2</next-hop> + # <next-hop>172.16.1.3</next-hop> + # </route> + # <route> + # <name>192.168.47.0/24</name> + # <next-hop>10.200.16.2</next-hop> + # </route> + # </static> + # </routing-options> + # </configuration> + # </rpc-reply> + + - name: Parsed running config (without connecting to the device) + junipernetworks.junos.junos_static_routes: + running_config: "{{ lookup('file', 'parsed.cfg') }}" + state: parsed + + # Task output: + # ------------ + # parsed: + # - address_families: + # - afi: ipv4 + # routes: + # - dest: 192.168.16.0/24 + # next_hop: + # - forward_router_address: '[''172.16.1.2'', ''172.16.1.3'']' + # - dest: 192.168.47.0/24 + # next_hop: + # - forward_router_address: 10.200.16.2 + Return Values @@ -462,6 +649,57 @@ Common return values are documented `here <https://docs.ansible.com/ansible/late <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['command 1', 'command 2', 'command 3']</div> </td> </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>gathered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>gathered</code></td> + <td> + <div>Facts about the network resource gathered from the remote device as structured data.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>parsed</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>parsed</code></td> + <td> + <div>The device native config provided in <em>running_config</em> option parsed into structured data as per module argspec.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">This output will always be in the same format as the module argspec.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>rendered</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>when <em>state</em> is <code>rendered</code></td> + <td> + <div>The provided configuration in the task rendered in device-native format (offline).</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">']</div> + </td> + </tr> </table> <br/><br/> diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_system_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_system_module.rst index 6a4f081c8..c7cdaa0f6 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_system_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_system_module.rst @@ -167,9 +167,9 @@ Examples hostname: junos01 domain_name: test.example.com domain-search: - - ansible.com - - redhat.com - - juniper.net + - ansible.com + - redhat.com + - juniper.net - name: remove configuration junipernetworks.junos.junos_system: @@ -178,8 +178,8 @@ Examples - name: configure name servers junipernetworks.junos.junos_system: name_servers: - - 8.8.8.8 - - 8.8.4.4 + - 8.8.8.8 + - 8.8.4.4 diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_user_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_user_module.rst index 0991c42d3..256362cfc 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_user_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_user_module.rst @@ -380,8 +380,8 @@ Examples - name: remove all user accounts except ansible junipernetworks.junos.junos_user: aggregate: - - name: ansible - purge: yes + - name: ansible + purge: true - name: set user password junipernetworks.junos.junos_user: @@ -393,14 +393,14 @@ Examples - name: Create list of users junipernetworks.junos.junos_user: aggregate: - - {name: test_user1, full_name: test_user2, role: operator, state: present} - - {name: test_user2, full_name: test_user2, role: read-only, state: present} + - {name: test_user1, full_name: test_user2, role: operator, state: present} + - {name: test_user2, full_name: test_user2, role: read-only, state: present} - name: Delete list of users junipernetworks.junos.junos_user: aggregate: - - {name: test_user1, full_name: test_user2, role: operator, state: absent} - - {name: test_user2, full_name: test_user2, role: read-only, state: absent} + - {name: test_user1, full_name: test_user2, role: operator, state: absent} + - {name: test_user2, full_name: test_user2, role: read-only, state: absent} diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_vlans_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_vlans_module.rst index 1958735b4..d8f934c72 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_vlans_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_vlans_module.rst @@ -194,11 +194,11 @@ Examples - name: Merge provided Junos vlans config with running-config junipernetworks.junos.junos_vlans: config: - - name: vlan1 - vlan_id: 1 - - name: vlan2 - vlan_id: 2 - l3_interface: irb.12 + - name: vlan1 + vlan_id: 1 + - name: vlan2 + vlan_id: 2 + l3_interface: irb.12 state: merged # # ------------------------- @@ -252,12 +252,12 @@ Examples - name: Replace Junos vlans running-config with the provided config junipernetworks.junos.junos_vlans: config: - - name: vlan1 - vlan_id: 11 - l3_interface: irb.10 + - name: vlan1 + vlan_id: 11 + l3_interface: irb.10 - - name: vlan2 - vlan_id: 2 + - name: vlan2 + vlan_id: 2 state: replaced # ------------------------- # Module Execution Result @@ -321,9 +321,9 @@ Examples - name: Override Junos running-config with provided config junipernetworks.junos.junos_vlans: config: - - name: vlan3 - vlan_id: 3 - l3_interface: irb.13 + - name: vlan3 + vlan_id: 3 + l3_interface: irb.13 state: overridden # ------------------------- # Module Execution Result @@ -375,7 +375,7 @@ Examples - name: Delete specific vlan junipernetworks.junos.junos_vlans: config: - - name: vlan3 + - name: vlan3 state: deleted # ------------------------- # Module Execution Result @@ -427,12 +427,12 @@ Examples - name: Render xml for provided facts. junipernetworks.junos.junos_vlans: config: - - name: vlan1 - vlan_id: 1 + - name: vlan1 + vlan_id: 1 - - name: vlan2 - vlan_id: 2 - l3_interface: irb.12 + - name: vlan2 + vlan_id: 2 + l3_interface: irb.12 state: rendered # # ------------------------- diff --git a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_vrf_module.rst b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_vrf_module.rst index eb366810b..b3cbc3a0d 100644 --- a/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_vrf_module.rst +++ b/ansible_collections/junipernetworks/junos/docs/junipernetworks.junos.junos_vrf_module.rst @@ -363,8 +363,8 @@ Examples name: test-1 description: test-vrf-1 interfaces: - - ge-0/0/3 - - ge-0/0/2 + - ge-0/0/3 + - ge-0/0/2 rd: 192.0.2.1:10 target: target:65514:113 state: present @@ -374,8 +374,8 @@ Examples name: test-1 description: test-vrf-1 interfaces: - - ge-0/0/3 - - ge-0/0/2 + - ge-0/0/3 + - ge-0/0/2 rd: 192.0.2.1:10 target: target:65514:113 state: absent @@ -385,8 +385,8 @@ Examples name: test-1 description: test-vrf-1 interfaces: - - ge-0/0/3 - - ge-0/0/2 + - ge-0/0/3 + - ge-0/0/2 rd: 192.0.2.1:10 target: target:65514:113 active: false @@ -396,8 +396,8 @@ Examples name: test-1 description: test-vrf-1 interfaces: - - ge-0/0/3 - - ge-0/0/2 + - ge-0/0/3 + - ge-0/0/2 rd: 192.0.2.1:10 target: target:65514:113 active: true @@ -405,19 +405,19 @@ Examples - name: Create vrf using aggregate junipernetworks.junos.junos_vrf: aggregate: - - name: test-1 - description: test-vrf-1 - interfaces: - - ge-0/0/3 - ge-0/0/2 - rd: 192.0.2.1:10 - target: target:65514:113 - - name: test-2 - description: test-vrf-2 - interfaces: - - ge-0/0/4 - - ge-0/0/5 - rd: 192.0.2.2:10 - target: target:65515:114 + - name: test-1 + description: test-vrf-1 + interfaces: + - ge-0/0/3 - ge-0/0/2 + rd: 192.0.2.1:10 + target: target:65514:113 + - name: test-2 + description: test-vrf-2 + interfaces: + - ge-0/0/4 + - ge-0/0/5 + rd: 192.0.2.2:10 + target: target:65515:114 state: present diff --git a/ansible_collections/junipernetworks/junos/meta/runtime.yml b/ansible_collections/junipernetworks/junos/meta/runtime.yml index cf79dc0da..d66238ec0 100644 --- a/ansible_collections/junipernetworks/junos/meta/runtime.yml +++ b/ansible_collections/junipernetworks/junos/meta/runtime.yml @@ -242,6 +242,13 @@ plugin_routing: redirect: junipernetworks.junos.junos_rpc scp: redirect: junipernetworks.junos.junos_scp + deprecation: + removal_date: "2025-01-01" + warning_text: See the plugin documentation for more details + junos_scp: + deprecation: + removal_date: "2025-01-01" + warning_text: See the plugin documentation for more details static_routes: redirect: junipernetworks.junos.junos_static_routes system: diff --git a/ansible_collections/junipernetworks/junos/plugins/action/junos.py b/ansible_collections/junipernetworks/junos/plugins/action/junos.py index 7c0389a8b..4c5d480af 100644 --- a/ansible_collections/junipernetworks/junos/plugins/action/junos.py +++ b/ansible_collections/junipernetworks/junos/plugins/action/junos.py @@ -21,10 +21,20 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +import copy +import sys + from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( ActionModule as ActionNetworkModule, ) +from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import ( + load_provider, +) + +from ansible_collections.junipernetworks.junos.plugins.module_utils.network.junos.junos import ( + junos_provider_spec, +) display = Display() @@ -41,14 +51,114 @@ class ActionModule(ActionNetworkModule): persistent_connection = self._play_context.connection.split(".")[-1] warnings = [] - if persistent_connection not in ("netconf", "network_cli"): - return { - "failed": True, - "msg": "Connection type '%s' is not valid for '%s' module. " - "Please see https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html" - % (self._play_context.connection, module_name), - } + if self._play_context.connection == "local": + provider = load_provider(junos_provider_spec, self._task.args) + pc = copy.deepcopy(self._play_context) + pc.network_os = "junipernetworks.junos.junos" + pc.remote_addr = provider["host"] or self._play_context.remote_addr + + if provider["transport"] == "cli" and module_name not in CLI_SUPPORTED_MODULES: + return { + "failed": True, + "msg": "Transport type '%s' is not valid for '%s' module. " + "Please see https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html" + % (provider["transport"], module_name), + } + + if module_name == "junos_netconf" or ( + provider["transport"] == "cli" and module_name == "junos_command" + ): + pc.connection = "ansible.netcommon.network_cli" + pc.port = int( + provider["port"] or self._play_context.port or 22, + ) + else: + pc.connection = "ansible.netcommon.netconf" + pc.port = int( + provider["port"] or self._play_context.port or 830, + ) + + pc.remote_user = provider["username"] or self._play_context.connection_user + pc.password = provider["password"] or self._play_context.password + pc.private_key_file = provider["ssh_keyfile"] or self._play_context.private_key_file + + connection = self._shared_loader_obj.connection_loader.get( + "ansible.netcommon.persistent", + pc, + sys.stdin, + task_uuid=self._task._uuid, + ) + + # TODO: Remove below code after ansible minimal is cut out + if connection is None: + pc.network_os = "junos" + if pc.connection.split(".")[-1] == "netconf": + pc.connection = "netconf" + else: + pc.connection = "network_cli" + + connection = self._shared_loader_obj.connection_loader.get( + "persistent", + pc, + sys.stdin, + task_uuid=self._task._uuid, + ) + + display.vvv( + "using connection plugin %s (was local)" % pc.connection, + pc.remote_addr, + ) + + command_timeout = ( + int(provider["timeout"]) + if provider["timeout"] + else connection.get_option("persistent_command_timeout") + ) + connection.set_options( + direct={"persistent_command_timeout": command_timeout}, + ) + + socket_path = connection.run() + display.vvvv("socket_path: %s" % socket_path, pc.remote_addr) + if not socket_path: + return { + "failed": True, + "msg": "unable to open shell. Please see: " + + "https://docs.ansible.com/ansible/network_debug_troubleshooting.html#unable-to-open-shell", + } + + task_vars["ansible_socket"] = socket_path + warnings.append( + [ + "connection local support for this module is deprecated and will be removed in version 2.14, use connection %s" + % pc.connection, + ], + ) + elif persistent_connection in ("netconf", "network_cli"): + provider = self._task.args.get("provider", {}) + if any(provider.values()): + # for legacy reasons provider value is required for junos_facts(optional) and junos_package + # modules as it uses junos_eznc library to connect to remote host + if not ( + module_name == "junos_facts" + or module_name == "junos_package" + or module_name == "junos_scp" + ): + display.warning( + "provider is unnecessary when using %s and will be ignored" + % self._play_context.connection, + ) + del self._task.args["provider"] + if ( + persistent_connection == "network_cli" and module_name not in CLI_SUPPORTED_MODULES + ) or (persistent_connection == "netconf" and module_name in CLI_SUPPORTED_MODULES[0:2]): + return { + "failed": True, + "msg": "Connection type '%s' is not valid for '%s' module. " + "Please see https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html" + % (self._play_context.connection, module_name), + } result = super(ActionModule, self).run(task_vars=task_vars) if warnings: if "warnings" in result: diff --git a/ansible_collections/junipernetworks/junos/plugins/cliconf/junos.py b/ansible_collections/junipernetworks/junos/plugins/cliconf/junos.py index 72ffec99e..75a2e23bd 100644 --- a/ansible_collections/junipernetworks/junos/plugins/cliconf/junos.py +++ b/ansible_collections/junipernetworks/junos/plugins/cliconf/junos.py @@ -106,7 +106,7 @@ class Cliconf(CliconfBase): return self._device_info - def get_config(self, source="running", format="text", flags=None): + def get_config(self, source="running", flags=None, format="text"): if source != "running": raise ValueError( "fetching configuration from %s is not supported" % source, @@ -136,7 +136,6 @@ class Cliconf(CliconfBase): replace=None, comment=None, ): - operations = self.get_device_operations() self.check_edit_config_capability( operations, @@ -188,8 +187,8 @@ class Cliconf(CliconfBase): prompt=None, answer=None, sendonly=False, - output=None, newline=True, + output=None, check_all=False, ): if output: diff --git a/ansible_collections/junipernetworks/junos/plugins/doc_fragments/junos.py b/ansible_collections/junipernetworks/junos/plugins/doc_fragments/junos.py index 23bf60bb2..bf4aad342 100644 --- a/ansible_collections/junipernetworks/junos/plugins/doc_fragments/junos.py +++ b/ansible_collections/junipernetworks/junos/plugins/doc_fragments/junos.py @@ -9,7 +9,6 @@ __metaclass__ = type class ModuleDocFragment(object): - # Standard files documentation fragment DOCUMENTATION = r"""options: {} notes: diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/bgp_global/bgp_global.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/bgp_global/bgp_global.py index 2cbbdf5e2..63c4347b2 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/bgp_global/bgp_global.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/bgp_global/bgp_global.py @@ -1260,6 +1260,7 @@ class Bgp_globalArgs(object): # pylint: disable=R0903 "purged", "merged", "replaced", + "overridden", "deleted", "gathered", "parsed", diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/ospf_interfaces/ospf_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/ospf_interfaces/ospf_interfaces.py index 5bf718991..be2515642 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/ospf_interfaces/ospf_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/ospf_interfaces/ospf_interfaces.py @@ -58,15 +58,16 @@ class Ospf_interfacesArgs(object): # pylint: disable=R0903 "authentication": { "options": { "md5": { + "elements": "dict", "options": { - "key_id": {"type": "str"}, + "key_id": {"type": "int"}, "key_value": { "type": "str", "no_log": True, }, "start_time": {"type": "str"}, }, - "type": "dict", + "type": "list", }, "simple_password": { "type": "str", @@ -106,7 +107,7 @@ class Ospf_interfacesArgs(object): # pylint: disable=R0903 "no_neighbor_down_notification": { "type": "bool", }, - "node_link_protection": {"type": "str"}, + "node_link_protection": {"type": "bool"}, "poll_interval": {"type": "int"}, "priority": {"type": "int"}, "passive": {"type": "bool"}, diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/ospfv2/ospfv2.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/ospfv2/ospfv2.py index a160512a2..c93722137 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/ospfv2/ospfv2.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/argspec/ospfv2/ospfv2.py @@ -39,6 +39,16 @@ class Ospfv2Args(object): # pylint: disable=R0903 "options": { "area_id": {"required": True, "type": "str"}, "area_range": {"type": "str"}, + "area_ranges": { + "type": "list", + "elements": "dict", + "options": { + "address": {"type": "str"}, + "exact": {"type": "bool"}, + "restrict": {"type": "bool"}, + "override_metric": {"type": "int"}, + }, + }, "stub": { "type": "dict", "options": { @@ -51,7 +61,25 @@ class Ospfv2Args(object): # pylint: disable=R0903 "options": { "authentication": { "type": "dict", - "options": {"type": {"type": "dict"}}, + "options": { + "type": {"type": "dict"}, + "password": { + "type": "str", + "no_log": False, + }, + "md5": { + "type": "list", + "elements": "dict", + "options": { + "key_id": {"type": "int"}, + "key": { + "type": "str", + "no_log": False, + }, + "start_time": {"type": "str"}, + }, + }, + }, }, "bandwidth_based_metrics": { "elements": "dict", @@ -88,7 +116,12 @@ class Ospfv2Args(object): # pylint: disable=R0903 "external_preference": {"type": "int"}, "overload": { "type": "dict", - "options": {"timeout": {"type": "int"}}, + "options": { + "timeout": {"type": "int"}, + "allow_route_leaking": {"type": "bool"}, + "as_external": {"type": "bool"}, + "stub_network": {"type": "bool"}, + }, }, "preference": {"type": "int"}, "prefix_export_limit": {"type": "int"}, @@ -103,6 +136,7 @@ class Ospfv2Args(object): # pylint: disable=R0903 "delay": {"type": "int"}, "holddown": {"type": "int"}, "rapid_runs": {"type": "int"}, + "no_ignore_our_externals": {"type": "bool"}, }, }, }, diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/acl_interfaces/acl_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/acl_interfaces/acl_interfaces.py index 67f5fe309..e4b263eac 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/acl_interfaces/acl_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/acl_interfaces/acl_interfaces.py @@ -60,7 +60,7 @@ class Acl_interfaces(ConfigBase): data=data, ) acl_interfaces_facts = facts["ansible_network_resources"].get( - "junos_acl_interfaces", + "acl_interfaces", ) if not acl_interfaces_facts: return [] diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/acls/acls.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/acls/acls.py index 540ffe271..05e174279 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/acls/acls.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/acls/acls.py @@ -59,7 +59,7 @@ class Acls(ConfigBase): self.gather_network_resources, data=data, ) - acls_facts = facts["ansible_network_resources"].get("junos_acls") + acls_facts = facts["ansible_network_resources"].get("acls") if not acls_facts: return [] return acls_facts diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/bgp_global/bgp_global.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/bgp_global/bgp_global.py index da512c6f9..08e3f9048 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/bgp_global/bgp_global.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/bgp_global/bgp_global.py @@ -168,7 +168,7 @@ class Bgp_global(ConfigBase): config_xmls = self._state_purged(want, have) elif state in ("merged", "rendered"): config_xmls = self._state_merged(want, have) - elif state == "replaced": + elif state in ("replaced", "overridden"): config_xmls = self._state_replaced(want, have) if config_xmls: diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/interfaces/interfaces.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/interfaces/interfaces.py index ad6b58668..1b7edef27 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/interfaces/interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/interfaces/interfaces.py @@ -210,7 +210,6 @@ class Interfaces(ConfigBase): the current configuration """ intf_xml = [] - for config in want: intf = build_root_xml_node("interface") build_child_xml_node(intf, "name", config["name"]) @@ -225,8 +224,8 @@ class Interfaces(ConfigBase): if config.get("duplex"): build_child_xml_node(intf, "link-mode", config["duplex"]) - if config.get("enabled") is False: - build_child_xml_node(intf, "disable") + if config.get("enabled") is not None: + build_child_xml_node(intf, "enable" if config.get("enabled") else "disable") if config.get("units"): units = config.get("units") diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/lag_interfaces/lag_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/lag_interfaces/lag_interfaces.py index 2b17498ee..c52190ca7 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/lag_interfaces/lag_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/lag_interfaces/lag_interfaces.py @@ -245,7 +245,6 @@ class Lag_interfaces(ConfigBase): "aggregated-ether-options", ) if config["mode"]: - lacp_node = build_child_xml_node(ether_options_node, "lacp") build_child_xml_node(lacp_node, config["mode"]) diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/lldp_global/lldp_global.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/lldp_global/lldp_global.py index 4efac0315..5b0d5c78f 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/lldp_global/lldp_global.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/lldp_global/lldp_global.py @@ -209,7 +209,7 @@ class Lldp_global(ConfigBase): "hold-multiplier", want["hold_multiplier"], ) - enable = want.get("enable") + enable = want.get("enabled") if enable is not None: if enable is False: build_child_xml_node(lldp_root, "disable") diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospf_interfaces/ospf_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospf_interfaces/ospf_interfaces.py index 2cbc8f24f..990cae77e 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospf_interfaces/ospf_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospf_interfaces/ospf_interfaces.py @@ -179,7 +179,6 @@ class Ospf_interfaces(ConfigBase): for xml in config_xmls: self.protocols.append(xml) - return [tostring(xml) for xml in self.root.getchildren()] def _state_replaced(self, want, have): @@ -293,6 +292,36 @@ class Ospf_interfaces(ConfigBase): existing_config = have[0] if existing_config["name"] == ospf_interfaces["name"]: intf_node.attrib.update(delete) + + if "authentication" in processes: + auth = processes.get("authentication") + auth_node = build_child_xml_node(intf_node, "authentication") + if "simple_password" in auth: + build_child_xml_node( + auth_node, + "simple-password", + auth.get("simple_password"), + ) + if "md5" in auth: + md5_lst = auth.get("md5") + for md5 in md5_lst: + md5_node = build_child_xml_node(auth_node, "md5") + build_child_xml_node( + md5_node, + "name", + md5.get("key_id"), + ) + build_child_xml_node( + md5_node, + "key", + md5.get("key_value"), + ) + if "start_time" in md5: + build_child_xml_node( + md5_node, + "start-time", + md5.get("start_time"), + ) if processes.get("priority"): build_child_xml_node( intf_node, @@ -357,6 +386,48 @@ class Ospf_interfaces(ConfigBase): "retransmit-interval", processes.get("retransmit_interval"), ) + if "node_link_protection" in processes: + if processes.get("node_link_protection"): + build_child_xml_node( + intf_node, + "node-link-protection", + ) + if "no_advertise_adjacency_segment" in processes: + if processes.get("no_advertise_adjacency_segment"): + build_child_xml_node( + intf_node, + "no-advertise-adjacency-segment", + ) + if "no_neighbor_down_notification" in processes: + if processes.get("no_neighbor_down_notification"): + build_child_xml_node( + intf_node, + "no-neighbor-down-notification", + ) + if "no_interface_state_traps" in processes: + if processes.get("no_interface_state_traps"): + build_child_xml_node( + intf_node, + "no-interface-state-traps", + ) + if "no_eligible_remote_backup" in processes: + if processes.get("no_eligible_remote_backup"): + build_child_xml_node( + intf_node, + "no-eligible-remote-backup", + ) + if "no_eligible_backup" in processes: + if processes.get("no_eligible_backup"): + build_child_xml_node( + intf_node, + "no-eligible-backup", + ) + if "demand_circuit" in processes: + if processes.get("demand_circuit"): + build_child_xml_node( + intf_node, + "demand-circuit", + ) ospf_interfaces_xml.append(protocol) return ospf_interfaces_xml diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospfv2/ospfv2.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospfv2/ospfv2.py index 23730746f..46952929f 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospfv2/ospfv2.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospfv2/ospfv2.py @@ -57,7 +57,7 @@ class Ospfv2(ConfigBase): gather_subset = ["!all", "!min"] - gather_network_resources = ["ospf"] + gather_network_resources = ["ospfv2"] def __init__(self, module): super(Ospfv2, self).__init__(module) @@ -221,18 +221,59 @@ class Ospfv2(ConfigBase): """ ospf_xml = [] delete = {"delete": "delete"} + ospf_node = None if have: + ospf_node = build_child_xml_node(self.protocols, "ospf") for have_ospf in have: have_areas = have_ospf.get("areas") or [] for area in have_areas: - ospf_node = build_child_xml_node(self.protocols, "ospf") area_node = build_child_xml_node( ospf_node, "area", area["area_id"], ) area_node.attrib.update(delete) - ospf_xml.append(ospf_node) + for item in have: + if item.get("spf_options"): + spf_node = build_child_xml_node( + ospf_node, + "spf-options", + ) + spf_node.attrib.update(delete) + if item.get("external_preference"): + ref_node = build_child_xml_node( + ospf_node, + "external-preference", + ) + ref_node.attrib.update(delete) + if item.get("reference_bandwidth"): + ref_node = build_child_xml_node( + ospf_node, + "reference-bandwidth", + ) + ref_node.attrib.update(delete) + if item.get("rfc1583compatibility") is False: + rfc_node = build_child_xml_node( + ospf_node, + "no-rfc-1583", + ) + rfc_node.attrib.update(delete) + if item.get("overload"): + over_node = build_child_xml_node( + ospf_node, + "overload", + ) + over_node.attrib.update(delete) + if item.get("prefix_export_limit"): + pel_node = build_child_xml_node( + ospf_node, + "prefix-export-limit", + ) + pel_node.attrib.update(delete) + + if ospf_node is not None: + ospf_xml.append(ospf_node) + return ospf_xml def _state_merged(self, want, have): @@ -285,6 +326,11 @@ class Ospfv2(ConfigBase): "rapid-runs", ospf["spf_options"].get("rapid_runs"), ) + if ospf["spf_options"].get("no_ignore_our_externals"): + build_child_xml_node( + spf_options_node, + "no-ignore-our-externals", + ) if ospf.get("overload"): overload_node = build_child_xml_node(protocol, "overload") @@ -294,6 +340,22 @@ class Ospfv2(ConfigBase): "timeout", ospf["overload"].get("timeout"), ) + if ospf["overload"].get("allow_route_leaking"): + build_child_xml_node( + overload_node, + "allow-route-leaking", + ) + if ospf["overload"].get("as_external"): + build_child_xml_node( + overload_node, + "as-external", + ) + + if ospf["overload"].get("stub_network"): + build_child_xml_node( + overload_node, + "stub-network", + ) if ospf.get("external_preference"): build_child_xml_node( @@ -332,6 +394,7 @@ class Ospfv2(ConfigBase): area_node = build_child_xml_node(protocol, "area") area_id = area.get("area_id") build_child_xml_node(area_node, "name", area_id) + # Included for compatibility, remove after 2025-07-01 if area.get("area_range"): area_range_node = build_child_xml_node( area_node, @@ -342,88 +405,153 @@ class Ospfv2(ConfigBase): "name", area["area_range"], ) - - for intf in area.get("interfaces"): - intf_node = build_child_xml_node( - area_node, - "interface", - ) - build_child_xml_node( - intf_node, - "name", - intf.get("name"), - ) - - if intf.get("priority"): - build_child_xml_node( - intf_node, - "priority", - intf.get("priority"), + if "area_ranges" in area: + for a_range in area.get("area_ranges"): + range_node = build_child_xml_node( + area_node, + "area-range", ) - if intf.get("flood_reduction"): build_child_xml_node( - intf_node, - "flood-reduction", - None, + range_node, + "name", + a_range["address"], ) + if "exact" in a_range: + build_child_xml_node( + range_node, + "exact", + ) - if intf.get("metric"): + if "restrict" in a_range: + build_child_xml_node( + range_node, + "restrict", + ) + if a_range.get("override_metric"): + build_child_xml_node( + range_node, + "override-metric", + a_range.get("override_metric"), + ) + if "interfaces" in area: + for intf in area.get("interfaces"): + intf_node = build_child_xml_node( + area_node, + "interface", + ) build_child_xml_node( intf_node, - "metric", - intf["metric"], + "name", + intf.get("name"), ) - if intf.get("passive"): - build_child_xml_node(intf_node, "passive") - - if intf.get("bandwidth_based_metrics"): - bw_metrics_node = build_child_xml_node( - intf_node, - "bandwidth-based-metrics", - ) - bw_metrics = intf.get("bandwidth_based_metrics") - for bw_metric in bw_metrics: - bw_metric_node = build_child_xml_node( - bw_metrics_node, - "bandwidth", - ) + if intf.get("priority"): build_child_xml_node( - bw_metric_node, - "name", - bw_metric.get("bandwidth"), - ) - build_child_xml_node( - bw_metric_node, - "metric", - bw_metric.get("metric"), + intf_node, + "priority", + intf.get("priority"), ) - if intf.get("timers"): - if intf["timers"].get("dead_interval"): + + if intf.get("flood_reduction"): build_child_xml_node( intf_node, - "dead-interval", - intf["timers"].get("dead_interval"), + "flood-reduction", + None, ) - if intf["timers"].get("hello_interval"): + + if intf.get("metric"): build_child_xml_node( intf_node, - "hello-interval", - intf["timers"].get("hello_interval"), + "metric", + intf["metric"], ) - if intf["timers"].get("poll_interval"): - build_child_xml_node( + + if intf.get("passive"): + build_child_xml_node(intf_node, "passive") + + if intf.get("bandwidth_based_metrics"): + bw_metrics_node = build_child_xml_node( intf_node, - "poll-interval", - intf["timers"].get("poll_interval"), + "bandwidth-based-metrics", ) - if intf["timers"].get("retransmit_interval"): - build_child_xml_node( + bw_metrics = intf.get("bandwidth_based_metrics") + for bw_metric in bw_metrics: + bw_metric_node = build_child_xml_node( + bw_metrics_node, + "bandwidth", + ) + build_child_xml_node( + bw_metric_node, + "name", + bw_metric.get("bandwidth"), + ) + build_child_xml_node( + bw_metric_node, + "metric", + bw_metric.get("metric"), + ) + if intf.get("authentication"): + auth = intf.get("authentication") + auth_node = build_child_xml_node( intf_node, - "retransmit-interval", - intf["timers"].get("retransmit_interval"), + "authentication", ) + if "password" in auth.keys(): + build_child_xml_node( + auth_node, + "simple-password", + auth.get("password"), + ) + elif "md5" in auth.keys(): + md5 = auth.get("md5") + md_node = build_child_xml_node( + auth_node, + "md5", + ) + for item in md5: + build_child_xml_node( + md_node, + "name", + item["key_id"], + ) + build_child_xml_node( + md_node, + "key", + item["key"], + ) + + if "start_time" in item: + build_child_xml_node( + md_node, + "start-time", + item["start_time"], + ) + if intf.get("timers"): + if intf["timers"].get("dead_interval"): + build_child_xml_node( + intf_node, + "dead-interval", + intf["timers"].get("dead_interval"), + ) + if intf["timers"].get("hello_interval"): + build_child_xml_node( + intf_node, + "hello-interval", + intf["timers"].get("hello_interval"), + ) + if intf["timers"].get("poll_interval"): + build_child_xml_node( + intf_node, + "poll-interval", + intf["timers"].get("poll_interval"), + ) + if intf["timers"].get("retransmit_interval"): + build_child_xml_node( + intf_node, + "retransmit-interval", + intf["timers"].get("retransmit_interval"), + ) if area.get("stub"): if area["stub"]["set"]: diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospfv3/ospfv3.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospfv3/ospfv3.py index a9aea34ec..1de305498 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospfv3/ospfv3.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/ospfv3/ospfv3.py @@ -73,7 +73,7 @@ class Ospfv3(ConfigBase): self.gather_network_resources, data=data, ) - ospfv3_facts = facts["ansible_network_resources"].get("junos_ospfv3") + ospfv3_facts = facts["ansible_network_resources"].get("ospfv3") if not ospfv3_facts: return [] return ospfv3_facts diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/snmp_server/snmp_server.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/snmp_server/snmp_server.py index 754b890d1..70d4d597c 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/snmp_server/snmp_server.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/config/snmp_server/snmp_server.py @@ -527,111 +527,134 @@ class Snmp_server(ConfigBase): mem_node = build_child_xml_node(trace_node, "memory-trace") build_child_xml_node(mem_node, "size", mem.get("size")) - if "trap_groups" in want.keys(): - groups = want.get("trap_groups") + if "trap_groups" in want.keys(): + groups = want.get("trap_groups") - for trap in groups: - trap_node = build_child_xml_node(snmp_node, "trap-group") - for key in trap.keys(): - if key == "name": - build_child_xml_node( - trap_node, - "name", - trap["name"], - ) - if key == "destination_port": - build_child_xml_node( - trap_node, - "destination-port", - trap["destination_port"], - ) - if key == "categories": - cat_node = build_child_xml_node( - trap_node, - "categories", - ) - categories = trap.get("categories") - for key in categories: - if key == "otn_alarms": - alarms = categories.get("otn_alarms") - alarm_node = build_child_xml_node( - cat_node, - "otn-alarms", - ) - for key in alarms: - build_child_xml_node( - alarm_node, - key.replace("_", "-"), - ) - else: + for trap in groups: + trap_node = build_child_xml_node(snmp_node, "trap-group") + for key in trap.keys(): + if key == "name": + build_child_xml_node( + trap_node, + "name", + trap["name"], + ) + if key == "destination_port": + build_child_xml_node( + trap_node, + "destination-port", + trap["destination_port"], + ) + if key == "categories": + cat_node = build_child_xml_node( + trap_node, + "categories", + ) + categories = trap.get("categories") + for key in categories: + if key == "otn_alarms": + alarms = categories.get("otn_alarms") + alarm_node = build_child_xml_node( + cat_node, + "otn-alarms", + ) + for key in alarms: build_child_xml_node( - cat_node, + alarm_node, key.replace("_", "-"), ) - if key == "routing_instance": - build_child_xml_node( - trap_node, - "routing-instance", - trap.get(key), - ) - if key == "version": - build_child_xml_node( - trap_node, - "version", - trap.get(key), - ) - if key == "targets": - targets = trap.get("targets") - for target in targets: - tar_node = build_child_xml_node( - trap_node, - "targets", + else: + build_child_xml_node( + cat_node, + key.replace("_", "-"), ) - build_child_xml_node(tar_node, "name", target) - - # trap_options - if "trap_options" in want.keys(): - options = want.get("trap_options") - - if options.keys() == {"set"}: - build_child_xml_node(snmp_node, "trap-options") - else: - trap_node = build_child_xml_node(snmp_node, "trap-options") - if "agent_address" in options.keys(): - agent = options.get("agent_address") - if agent.get("outgoing_interface"): - build_child_xml_node( - trap_node, - "agent-address", - "outgoing-interface", - ) - if options.get("context_oid"): - build_child_xml_node(trap_node, "context-id") - # TODO logical_system - if "routing_instance" in options.keys(): - inst = options.get("routing_instances") - inst_node = build_child_xml_node( + if key == "routing_instance": + build_child_xml_node( trap_node, "routing-instance", + trap.get(key), ) - build_child_xml_node(inst_node, "name", inst) - if "source_address" in options.keys(): - address = options.get("source_address") - source_node = build_child_xml_node( + if key == "version": + build_child_xml_node( trap_node, - "source-address", + "version", + trap.get(key), ) - if "address" in address.keys(): - build_child_xml_node( - source_node, - "address", - address.get("address"), + if key == "targets": + targets = trap.get("targets") + for target in targets: + tar_node = build_child_xml_node( + trap_node, + "targets", ) - if "lowest_loopback" in address.keys(): + build_child_xml_node(tar_node, "name", target) + # trap_options + if "trap_options" in want.keys(): + options = want.get("trap_options") + if options.keys() == {"set"}: + build_child_xml_node(snmp_node, "trap-options") + else: + trap_node = build_child_xml_node(snmp_node, "trap-options") + if "agent_address" in options.keys(): + agent = options.get("agent_address") + if agent.get("outgoing_interface"): + agent_node = build_child_xml_node( + trap_node, + "agent-address", + "outgoing-interface", + ) + + if options.get("context_oid"): + build_child_xml_node(trap_node, "context-oid") + if "routing_instance" in options.keys(): + inst = options.get("routing_instances") + build_child_xml_node( + trap_node, + "routing-instance", + inst, + ) + if "source_address" in options.keys(): + address = options.get("source_address") + source_node = build_child_xml_node( + trap_node, + "source-address", + ) + if "address" in address.keys(): + build_child_xml_node( + source_node, + "address", + address.get("address"), + ) + if "lowest_loopback" in address.keys(): + build_child_xml_node( + source_node, + "lowest-loopback", + ) + if "views" in want.keys(): + views = want.get("views") + for view in views: + view_node = build_child_xml_node(snmp_node, "view") + + if "name" in view.keys(): + build_child_xml_node( + view_node, + "name", + view.get("name"), + ) + if "oids" in view.keys(): + oids = view.get("oids") + for oid in oids: + oids_node = build_child_xml_node(view_node, "oid") + if "oid" in oid.keys(): build_child_xml_node( - source_node, - "lowest-loopback", + oids_node, + "name", + oid["oid"], ) + if "exclude" in oid.keys(): + build_child_xml_node(oids_node, "exclude") + if "include" in oid.keys(): + build_child_xml_node(oids_node, "include") # snmp_v3 if "snmp_v3" in want.keys(): snmpv3 = want.get("snmp_v3") @@ -859,31 +882,6 @@ class Snmp_server(ConfigBase): "privacy-password", sub_dict["password"], ) - if "views" in want.keys(): - views = want.get("views") - for view in views: - view_node = build_child_xml_node(snmp_node, "view") - - if "name" in view.keys(): - build_child_xml_node( - view_node, - "name", - view.get("name"), - ) - if "oids" in view.keys(): - oids = view.get("oids") - for oid in oids: - oids_node = build_child_xml_node(view_node, "oid") - if "oid" in oid.keys(): - build_child_xml_node( - oids_node, - "name", - oid["oid"], - ) - if "exclude" in oid.keys(): - build_child_xml_node(oids_node, "exclude") - if "include" in oid.keys(): - build_child_xml_node(oids_node, "include") def _state_deleted(self, want, have): """The command generator when state is deleted diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/acl_interfaces/acl_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/acl_interfaces/acl_interfaces.py index ac91f53ba..3642a373a 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/acl_interfaces/acl_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/acl_interfaces/acl_interfaces.py @@ -93,12 +93,16 @@ class Acl_interfacesFacts(object): facts = {} if objs: + facts["acl_interfaces"] = [] + # Included for compatibility, remove after 2025-07-01 facts["junos_acl_interfaces"] = [] params = utils.validate_config( self.argument_spec, {"config": objs}, ) for cfg in params["config"]: + facts["acl_interfaces"].append(utils.remove_empties(cfg)) + # Included for compatibility, remove after 2025-07-01 facts["junos_acl_interfaces"].append(utils.remove_empties(cfg)) ansible_facts["ansible_network_resources"].update(facts) diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/acls/acls.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/acls/acls.py index a48217d64..7ff8fb2c3 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/acls/acls.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/acls/acls.py @@ -98,13 +98,13 @@ class AclsFacts(object): facts = {} if objs: - facts["junos_acls"] = [] + facts["acls"] = [] params = utils.validate_config( self.argument_spec, {"config": objs}, ) for cfg in params["config"]: - facts["junos_acls"].append(utils.remove_empties(cfg)) + facts["acls"].append(utils.remove_empties(cfg)) ansible_facts["ansible_network_resources"].update(facts) return ansible_facts diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/bgp_global/bgp_global.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/bgp_global/bgp_global.py index a8cfa99c7..0436284c8 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/bgp_global/bgp_global.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/bgp_global/bgp_global.py @@ -616,7 +616,6 @@ class Bgp_globalFacts(object): # Read import value if "import" in conf.keys(): - imports = conf.get("import") import_lst = [] if isinstance(imports, dict): diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/facts.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/facts.py index bf596dcc4..90db102d0 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/facts.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/facts.py @@ -127,7 +127,7 @@ FACT_RESOURCE_SUBSETS = dict( l3_interfaces=L3_interfacesFacts, lldp_global=Lldp_globalFacts, lldp_interfaces=Lldp_interfacesFacts, - ospf=Ospfv2Facts, + ospfv2=Ospfv2Facts, ospfv3=Ospfv3Facts, ospf_interfaces=Ospf_interfacesFacts, vlans=VlansFacts, diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/l2_interfaces/l2_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/l2_interfaces/l2_interfaces.py index 19d85e0d0..c68f77f41 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/l2_interfaces/l2_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/l2_interfaces/l2_interfaces.py @@ -23,9 +23,6 @@ from ansible_collections.ansible.netcommon.plugins.module_utils.network.common i from ansible_collections.junipernetworks.junos.plugins.module_utils.network.junos.argspec.l2_interfaces.l2_interfaces import ( L2_interfacesArgs, ) -from ansible_collections.junipernetworks.junos.plugins.module_utils.network.junos.utils.utils import ( - get_resource_config, -) try: @@ -53,14 +50,14 @@ class L2_interfacesFacts(object): self.generated_spec = utils.generate_dict(facts_argument_spec) - def get_config(self, connection, config_filter): + def get_device_data(self, connection, config_filter): """ :param connection: :param config_filter: :return: """ - return get_resource_config(connection, config_filter=config_filter) + return connection.get_configuration(filter=config_filter) def populate_facts(self, connection, ansible_facts, data=None): """Populate the facts for interfaces @@ -79,7 +76,7 @@ class L2_interfacesFacts(object): <interfaces/> </configuration> """ - data = self.get_config(connection, config_filter=config_filter) + data = self.get_device_data(connection, config_filter) if isinstance(data, string_types): data = etree.fromstring( @@ -130,33 +127,31 @@ class L2_interfacesFacts(object): enhanced_layer = False # Layer 2 is configured on interface - if mode: - config["name"] = utils.get_xml_conf_arg(conf, "name") - unit = utils.get_xml_conf_arg(conf, "unit/name") - config["unit"] = unit if unit else 0 - config["enhanced_layer"] = enhanced_layer - - if mode == "access": - config["access"] = {} - config["access"]["vlan"] = utils.get_xml_conf_arg( - conf, - "unit/family/ethernet-switching/vlan/members", - ) - elif mode == "trunk": - config["trunk"] = {} - vlan_members = conf.xpath( - "unit/family/ethernet-switching/vlan/members", - ) - if vlan_members: - config["trunk"]["allowed_vlans"] = [] - for vlan_member in vlan_members: - config["trunk"]["allowed_vlans"].append( - vlan_member.text, - ) - - config["trunk"]["native_vlan"] = utils.get_xml_conf_arg( - conf, - "native-vlan-id", - ) - + config["name"] = utils.get_xml_conf_arg(conf, "name") + unit = utils.get_xml_conf_arg(conf, "unit/name") + config["unit"] = unit if unit else 0 + config["enhanced_layer"] = enhanced_layer + + if mode == "access" or not mode: + config["access"] = {} + config["access"]["vlan"] = utils.get_xml_conf_arg( + conf, + "unit/family/ethernet-switching/vlan/members", + ) + elif mode == "trunk": + config["trunk"] = {} + vlan_members = conf.xpath( + "unit/family/ethernet-switching/vlan/members", + ) + if vlan_members: + config["trunk"]["allowed_vlans"] = [] + for vlan_member in vlan_members: + config["trunk"]["allowed_vlans"].append( + vlan_member.text, + ) + + config["trunk"]["native_vlan"] = utils.get_xml_conf_arg( + conf, + "native-vlan-id", + ) return utils.remove_empties(config) diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/lacp/lacp.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/lacp/lacp.py index 6c3ecd904..d3ca2142a 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/lacp/lacp.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/lacp/lacp.py @@ -90,7 +90,6 @@ class LacpFacts(object): "configuration/chassis/aggregated-devices/ethernet/lacp", ) if resources: - lacp_root = resources[0] config["system_priority"] = utils.get_xml_conf_arg( lacp_root, diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/legacy/base.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/legacy/base.py index 11f6544aa..10ad6080c 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/legacy/base.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/legacy/base.py @@ -129,7 +129,6 @@ class Hardware(FactsBase): return xml_dict def populate(self): - reply = self.rpc("get-system-memory-information") data = reply.find( ".//system-memory-information/system-memory-summary-information", @@ -215,7 +214,6 @@ class Interfaces(FactsBase): class OFacts(FactsBase): def populate(self): - device = get_device(self.module) facts = dict(device.facts) diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/lldp_global/lldp_global.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/lldp_global/lldp_global.py index df82a2695..3b48e9720 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/lldp_global/lldp_global.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/lldp_global/lldp_global.py @@ -102,7 +102,7 @@ class Lldp_globalFacts(object): "hold-multiplier", ) if utils.get_xml_conf_arg(lldp_root, "disable", data="tag"): - config["enable"] = False + config["enabled"] = False params = utils.validate_config( self.argument_spec, diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospf_interfaces/ospf_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospf_interfaces/ospf_interfaces.py index 15319fa32..55c162d25 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospf_interfaces/ospf_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospf_interfaces/ospf_interfaces.py @@ -112,7 +112,7 @@ class Ospf_interfacesFacts(object): objs = [] for resource in resources: - if resource: + if resource is not None: xml = self._get_xml_dict(resource) objs = self.render_config(self.generated_spec, xml) @@ -230,20 +230,23 @@ class Ospf_interfacesFacts(object): auth_dict["simple_password"] = auth.get( "simple-password", ) - elif auth.get("md5"): - auth_dict["type"] = {"md5": []} - md5_list = auth.get("md5") - - if not isinstance(md5_list, list): - md5_list = [md5_list] - - for md5_auth in md5_list: - auth_dict["type"]["md5"].append( - { - "key_id": md5_auth.get("name"), - "key": md5_auth.get("key"), - }, - ) + if "md5" in auth.keys(): + md5_cfg = auth.get("md5") + md5_lst = [] + if isinstance(md5_cfg, dict): + md5_dict = {} + md5_dict["key_id"] = md5_cfg.get("name") + md5_dict["key_value"] = md5_cfg.get("key") + md5_dict["start_time"] = md5_cfg.get("start-time") + md5_lst.append(md5_dict) + else: + for md5 in md5_cfg: + md5_dict = {} + md5_dict["key_id"] = md5.get("name") + md5_dict["key_value"] = md5.get("key") + md5_dict["start_time"] = md5.get("start-time") + md5_lst.append(md5_dict) + auth_dict["md5"] = md5_lst interface_dict["authentication"] = auth_dict rendered_area["interfaces"].append(interface_dict) diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospfv2/ospfv2.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospfv2/ospfv2.py index 24c8fa86d..44bbb9732 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospfv2/ospfv2.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospfv2/ospfv2.py @@ -116,14 +116,14 @@ class Ospfv2Facts(object): self.router_id = "" objs = [] for resource in resources: - if resource: + if resource is not None: xml = self._get_xml_dict(resource) obj = self.render_config(self.generated_spec, xml) if obj: objs.append(obj) facts = {} - if objs: + if objs is not None: facts["ospfv2"] = [] params = utils.validate_config( self.argument_spec, @@ -156,9 +156,9 @@ class Ospfv2Facts(object): :rtype: dictionary :returns: The generated config """ + config = deepcopy(spec) ospf = conf.get("ospf") - if ospf.get("area"): rendered_areas = [] areas = ospf.get("area") @@ -213,27 +213,39 @@ class Ospfv2Facts(object): "bandwidth": metric.get("name"), }, ) - if "authentication" in interface.keys(): auth = interface["authentication"] auth_dict = {} if auth.get("simple-password"): - auth_dict["type"] = "simple_password" + auth_dict["type"] = {"simple_password": auth.get("simple-password")} auth_dict["password"] = auth.get("simple-password") elif auth.get("md5"): auth_dict["type"] = {"md5": []} md5_list = auth.get("md5") - + key_lst = [] if not isinstance(md5_list, list): + key_dict = {} + key_dict["key_id"] = md5_list.get("name") + key_dict["key"] = md5_list.get("key") + key_dict["start_time"] = md5_list.get("start_time") + key_lst.append(key_dict) md5_list = [md5_list] - - for md5_auth in md5_list: - auth_dict["type"]["md5"].append( - { - "key_id": md5_auth.get("name"), - "key": md5_auth.get("key"), - }, - ) + else: + for md5_auth in md5_list: + key_dict = {} + key_dict["key_id"] = md5_auth.get("name") + key_dict["key"] = md5_auth.get("key") + key_dict["start_time"] = md5_auth.get("start_time") + + auth_dict["type"]["md5"].append( + { + "key_id": md5_auth.get("name"), + "key": md5_auth.get("key"), + }, + ) + key_lst.append(key_dict) + if key_lst: + auth_dict["md5"] = key_lst interface_dict["authentication"] = auth_dict rendered_area["interfaces"].append(interface_dict) @@ -242,10 +254,22 @@ class Ospfv2Facts(object): area_range = area["area-range"] if not isinstance(area_range, list): area_range = [area_range] + # Included for compatibility, remove after 2025-07-01 rendered_area["area_range"] = [] for a_range in area_range: rendered_area["area_range"].append(a_range["name"]) + rendered_area["area_ranges"] = [] + for a_range in area_range: + range = {} + range["address"] = a_range["name"] + if a_range.get("override-metric"): + range["override_metric"] = a_range.get("override-metric") + if "exact" in a_range: + range["exact"] = True + if "restrict" in a_range: + range["restrict"] = True + rendered_area["area_ranges"].append(range) if area.get("stub"): rendered_area["stub"] = {"set": True} if "no-summaries" in area.get("stub").keys(): @@ -261,26 +285,39 @@ class Ospfv2Facts(object): if "default-lsa" in area.get("nssa").keys(): rendered_area["nssa"]["default-lsa"] = True rendered_areas.append(rendered_area) - - if "no-rfc-1583" in ospf.keys(): - config["rfc1583compatibility"] = False - if ospf.get("spf-options"): - config["spf_options"] = {} - config["spf_options"]["delay"] = ospf["spf-options"].get( - "delay", - ) - config["spf_options"]["holddown"] = ospf["spf-options"].get( - "holddown", - ) - config["spf_options"]["rapid_runs"] = ospf["spf-options"].get( - "rapid-runs", - ) - config["overload"] = ospf.get("overload") - config["preference"] = ospf.get("preference") - config["external_preference"] = ospf.get("external-preference") - config["prefix_export_limit"] = ospf.get("prefix-export-limit") - config["reference_bandwidth"] = ospf.get("reference-bandwidth") config["areas"] = rendered_areas - if self.router_id != "": - config["router_id"] = self.router_id["router-id"] + if "no-rfc-1583" in ospf.keys(): + config["rfc1583compatibility"] = False + if ospf.get("spf-options"): + config["spf_options"] = {} + config["spf_options"]["delay"] = ospf["spf-options"].get( + "delay", + ) + config["spf_options"]["holddown"] = ospf["spf-options"].get( + "holddown", + ) + config["spf_options"]["rapid_runs"] = ospf["spf-options"].get( + "rapid-runs", + ) + if "no-ignore-our-externals" in ospf["spf-options"]: + config["spf_options"]["no_ignore_our_externals"] = True + if "overload" in ospf.keys(): + overload = ospf.get("overload") + cfg = {} + if "allow-route-leaking" in overload: + cfg["allow_route_leaking"] = True + if "as-external" in overload: + cfg["as_external"] = True + if "stub-network" in overload: + cfg["stub_network"] = True + if overload.get("timeout"): + cfg["timeout"] = overload.get("timeout") + + config["overload"] = cfg + config["preference"] = ospf.get("preference") + config["external_preference"] = ospf.get("external-preference") + config["prefix_export_limit"] = ospf.get("prefix-export-limit") + config["reference_bandwidth"] = ospf.get("reference-bandwidth") + if self.router_id != "": + config["router_id"] = self.router_id["router-id"] return utils.remove_empties(config) diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospfv3/ospfv3.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospfv3/ospfv3.py index 2f95e0e8d..8bbd04fcd 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospfv3/ospfv3.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/ospfv3/ospfv3.py @@ -117,7 +117,7 @@ class Ospfv3Facts(object): objs = [] for resource in resources: - if resource: + if resource is not None: xml = self._get_xml_dict(resource) obj = self.render_config(self.generated_spec, xml) if obj: @@ -125,14 +125,14 @@ class Ospfv3Facts(object): facts = {} if objs: - facts["junos_ospfv3"] = [] + facts["ospfv3"] = [] params = utils.validate_config( self.argument_spec, {"config": objs}, ) for cfg in params["config"]: - facts["junos_ospfv3"].append(utils.remove_empties(cfg)) + facts["ospfv3"].append(utils.remove_empties(cfg)) ansible_facts["ansible_network_resources"].update(facts) return ansible_facts diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/security_policies/security_policies.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/security_policies/security_policies.py index dc6a20878..0c4d25e5e 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/security_policies/security_policies.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/security_policies/security_policies.py @@ -146,7 +146,6 @@ class Security_policiesFacts(object): zone_pairs = [] zone_pairs.append(temp) for zone_pair_policies in zone_pairs: - if zone_pair_policies["from-zone-name"] not in from_zone_dict: from_zone_dict[zone_pair_policies["from-zone-name"]] = {} from_zone_dict[zone_pair_policies["from-zone-name"]][ diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/security_zones/security_zones.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/security_zones/security_zones.py index 5368bf77f..1e77168ac 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/security_zones/security_zones.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/facts/security_zones/security_zones.py @@ -226,7 +226,6 @@ class Security_zonesFacts(object): temp_sec_zone["address_book"]["address_sets"] = [] for address_set in security_zone["address-book"]["address-set"]: - temp_address_set = {} temp_address_set["name"] = address_set["name"] @@ -283,13 +282,14 @@ class Security_zonesFacts(object): security_zone["host-inbound-traffic"], ) if "interfaces" in security_zone: - if isinstance(security_zone["interfaces"], string_types): + if isinstance(security_zone["interfaces"], dict): security_zone["interfaces"] = [ security_zone["interfaces"], ] - temp_sec_zone["interfaces"] = [ - interface["name"] for interface in security_zone["interfaces"] - ] + else: + temp_sec_zone["interfaces"] = [ + interface["name"] for interface in security_zone["interfaces"] + ] if "screen" in security_zone: temp_sec_zone["screen"] = security_zone["screen"] if "source-identity-log" in security_zone: diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/junos.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/junos.py index 36452b123..fc7e6342f 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/junos.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/junos.py @@ -27,6 +27,7 @@ from contextlib import contextmanager from copy import deepcopy from ansible.module_utils._text import to_text +from ansible.module_utils.basic import env_fallback from ansible.module_utils.connection import Connection, ConnectionError from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.netconf import ( NetconfConnection, @@ -57,6 +58,30 @@ JSON_ACTIONS = frozenset(["merge", "override", "update"]) FORMATS = frozenset(["xml", "text", "json"]) CONFIG_FORMATS = frozenset(["xml", "text", "json", "set"]) +junos_provider_spec = { + "host": dict(), + "port": dict(type="int"), + "username": dict(fallback=(env_fallback, ["ANSIBLE_NET_USERNAME"])), + "password": dict( + fallback=(env_fallback, ["ANSIBLE_NET_PASSWORD"]), + no_log=True, + ), + "ssh_keyfile": dict( + fallback=(env_fallback, ["ANSIBLE_NET_SSH_KEYFILE"]), + type="path", + ), + "timeout": dict(type="int"), + "transport": dict(default="netconf", choices=["cli", "netconf"]), +} +junos_argument_spec = { + "provider": dict( + type="dict", + options=junos_provider_spec, + removed_at_date="2022-06-01", + removed_from_collection="junipernetworks.junos", + ), +} + def tostring(element, encoding="UTF-8", pretty_print=False): if HAS_LXML: @@ -72,10 +97,13 @@ def tostring(element, encoding="UTF-8", pretty_print=False): ) +def get_provider_argspec(): + return junos_provider_spec + + def get_connection(module): if hasattr(module, "_junos_connection"): return module._junos_connection - capabilities = get_capabilities(module) network_api = capabilities.get("network_api") if network_api == "cliconf": @@ -153,7 +181,6 @@ def load_configuration( rollback=None, format="xml", ): - if all((candidate is None, rollback is None)): module.fail_json(msg="one of candidate or rollback must be specified") diff --git a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/utils/utils.py b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/utils/utils.py index 1f1250a34..4f9158cfe 100644 --- a/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/utils/utils.py +++ b/ansible_collections/junipernetworks/junos/plugins/module_utils/network/junos/utils/utils.py @@ -34,7 +34,6 @@ except ImportError: def get_resource_config(connection, config_filter=None, attrib=None): - if attrib is None: attrib = {"inherit": "inherit"} diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_acl_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_acl_interfaces.py index ccc604a11..9465cac7b 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_acl_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_acl_interfaces.py @@ -131,15 +131,15 @@ EXAMPLES = """ - name: Delete JUNOS L3 interface filter junipernetworks.junos.junos_acl_interfaces: config: - - name: ge-1/0/0 - access_groups: - - afi: ipv4 - acls: - - name: inbound_acl - direction: in - - name: outbound_acl - direction: out - state: deleted + - name: ge-1/0/0 + access_groups: + - afi: ipv4 + acls: + - name: inbound_acl + direction: in + - name: outbound_acl + direction: out + state: deleted # After state: # ------------- @@ -175,15 +175,15 @@ EXAMPLES = """ - name: Merge JUNOS L3 interface filter junipernetworks.junos.junos_acl_interfaces: config: - - name: ge-1/0/0 - access_groups: - - afi: ipv4 - acls: - - name: inbound_acl - direction: in - - name: outbound_acl - direction: out - state: merged + - name: ge-1/0/0 + access_groups: + - afi: ipv4 + acls: + - name: inbound_acl + direction: in + - name: outbound_acl + direction: out + state: merged # After state: # ------------- @@ -226,15 +226,15 @@ EXAMPLES = """ - name: Override JUNOS L3 interface filter junipernetworks.junos.junos_acl_interfaces: config: - - name: ge-1/0/0 - access_groups: - - afi: ipv4 - acls: - - name: inbound_acl - direction: in - - name: outbound_acl - direction: out - state: overridden + - name: ge-1/0/0 + access_groups: + - afi: ipv4 + acls: + - name: inbound_acl + direction: in + - name: outbound_acl + direction: out + state: overridden # After state: # ------------- @@ -278,13 +278,13 @@ EXAMPLES = """ - name: Replace JUNOS L3 interface filter junipernetworks.junos.junos_acl_interfaces: config: - - name: ge-1/0/0 - access_groups: - - afi: ipv4 - acls: - - name: inbound_acl - direction: in - state: replaced + - name: ge-1/0/0 + access_groups: + - afi: ipv4 + acls: + - name: inbound_acl + direction: in + state: replaced # After state: # ------------- @@ -303,8 +303,6 @@ EXAMPLES = """ # } # family inet6; # } - - """ RETURN = """ before: diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_acls.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_acls.py index 2b1bafc7a..0b38587b0 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_acls.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_acls.py @@ -278,16 +278,16 @@ EXAMPLES = """ - name: Merge JUNOS acl junipernetworks.junos.junos_acls: config: - - afi: ipv4 - acls: - - name: allow_ssh_acl - aces: - - name: ssh_rule - source: - port_protocol: - eq: ssh - protocol: tcp - state: merged + - afi: ipv4 + acls: + - name: allow_ssh_acl + aces: + - name: ssh_rule + source: + port_protocol: + eq: ssh + protocol: tcp + state: merged # After state: # ------------- @@ -302,7 +302,6 @@ EXAMPLES = """ # } # } # } - """ RETURN = """ before: diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_banner.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_banner.py index d57f8f6aa..ce81a141a 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_banner.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_banner.py @@ -49,7 +49,7 @@ options: description: - Specifies whether or not the configuration is active or deactivated type: bool - default: yes + default: true requirements: - ncclient (>=v0.5.2) notes: diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_bgp_address_family.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_bgp_address_family.py index b40e5e816..66928d3c5 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_bgp_address_family.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_bgp_address_family.py @@ -489,6 +489,90 @@ EXAMPLES = """ graceful_restart_forwarding_state_bit: 'from-fib' state: merged +# Task Output: +# ------------ +# +# before: {} +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:family><nc:evpn><nc:signaling> +# <nc:accepted-prefix-limit><nc:maximum>20</nc:maximum><nc:teardown><nc:limit-threshold>98</nc:limit-threshold> +# <nc:idle-timeout><nc:timeout>2001</nc:timeout></nc:idle-timeout></nc:teardown></nc:accepted-prefix-limit> +# <nc:damping/><nc:defer-initial-multipath-build><nc:maximum-delay>2</nc:maximum-delay> +# </nc:defer-initial-multipath-build></nc:signaling></nc:evpn><nc:inet><nc:flow><nc:legacy-redirect-ip-action> +# <nc:send/><nc:receive/></nc:legacy-redirect-ip-action><nc:loops>4</nc:loops><nc:no-install/> +# <nc:output-queue-priority><nc:expedited/></nc:output-queue-priority><nc:secondary-independent-resolution/> +# </nc:flow><nc:unicast><nc:extended-nexthop/><nc:extended-nexthop-color/><nc:local-ipv4-address>9.9.9.9</nc:local-ipv4-address> +# </nc:unicast><nc:labeled-unicast><nc:entropy-label><nc:no-next-hop-validation/></nc:entropy-label> +# <nc:explicit-null><nc:connected-only/></nc:explicit-null><nc:per-prefix-label/><nc:per-group-label/> +# <nc:prefix-limit><nc:maximum>20</nc:maximum><nc:teardown>99<nc:idle-timeout><nc:forever/></nc:idle-timeout> +# </nc:teardown></nc:prefix-limit><nc:resolve-vpn/><nc:rib><nc:inet.3/></nc:rib><nc:route-refresh-priority> +# <nc:expedited/><nc:priority>3</nc:priority></nc:route-refresh-priority></nc:labeled-unicast><nc:any> +# <nc:accepted-prefix-limit><nc:maximum>20</nc:maximum><nc:teardown><nc:limit-threshold>99</nc:limit-threshold> +# <nc:idle-timeout><nc:timeout>2000</nc:timeout></nc:idle-timeout></nc:teardown></nc:accepted-prefix-limit> +# <nc:damping/><nc:defer-initial-multipath-build><nc:maximum-delay>2</nc:maximum-delay></nc:defer-initial-multipath-build> +# <nc:delay-route-advertisements><nc:maximum-delay><nc:route-age>20</nc:route-age><nc:routing-uptime>32000</nc:routing-uptime> +# </nc:maximum-delay><nc:minimum-delay><nc:inbound-convergence>32000</nc:inbound-convergence> +# <nc:routing-uptime>23000</nc:routing-uptime></nc:minimum-delay></nc:delay-route-advertisements><nc:graceful-restart> +# <nc:forwarding-state-bit>from-fib</nc:forwarding-state-bit></nc:graceful-restart></nc:any></nc:inet></nc:family> +# </nc:bgp></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> +# +# after: +# address_family: +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2001 +# limit_threshold: 98 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# type: signaling +# afi: evpn +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2000 +# limit_threshold: 99 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# delay_route_advertisements: +# max_delay_route_age: 20 +# max_delay_routing_uptime: 32000 +# min_delay_inbound_convergence: 32000 +# min_delay_routing_uptime: 23000 +# graceful_restart_forwarding_state_bit: from-fib +# type: any +# - legacy_redirect_ip_action: +# receive: true +# send: true +# loops: 4 +# no_install: true +# output_queue_priority_expedited: true +# secondary_independent_resolution: true +# type: flow +# - entropy_label: +# no_next_hop_validation: true +# explicit_null: +# connected_only: true +# per_group_label: true +# per_prefix_label: true +# prefix_limit: +# forever: true +# limit_threshold: 99 +# maximum: 20 +# resolve_vpn: true +# rib: inet.3 +# route_refresh_priority_priority: 3 +# type: labeled-unicast +# - extended_nexthop: true +# extended_nexthop_color: true +# local_ipv4_address: 9.9.9.9 +# type: unicast +# afi: inet + # After state # ----------- # @@ -562,6 +646,8 @@ EXAMPLES = """ # } # } # } + +# # Using replaced # # Before state @@ -651,38 +737,154 @@ EXAMPLES = """ - name: Replace existing Junos BGP address family config with provided config junipernetworks.junos.junos_bgp_address_family: - config: - address_family: - - afi: 'evpn' - af_type: - - type: 'signaling' - accepted_prefix_limit: - maximum: 21 - limit_threshold: 99 - idle_timeout_value: 2002 - delay_route_advertisements: - max_delay_route_age: 20 - max_delay_routing_uptime: 32000 - min_delay_inbound_convergence: 32000 - min_delay_routing_uptime: 23000 - damping: true - state: replaced + config: + address_family: + - afi: 'evpn' + af_type: + - type: 'signaling' + accepted_prefix_limit: + maximum: 21 + limit_threshold: 99 + idle_timeout_value: 2002 + delay_route_advertisements: + max_delay_route_age: 20 + max_delay_routing_uptime: 32000 + min_delay_inbound_convergence: 32000 + min_delay_routing_uptime: 23000 + damping: true + state: replaced +# Task Output: +# ------------ +# +# before: +# address_family: +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2001 +# limit_threshold: 98 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# type: signaling +# afi: evpn +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2000 +# limit_threshold: 99 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# delay_route_advertisements: +# max_delay_route_age: 20 +# max_delay_routing_uptime: 32000 +# min_delay_inbound_convergence: 32000 +# min_delay_routing_uptime: 23000 +# graceful_restart_forwarding_state_bit: from-fib +# type: any +# - legacy_redirect_ip_action: +# receive: true +# send: true +# loops: 4 +# no_install: true +# output_queue_priority_expedited: true +# secondary_independent_resolution: true +# type: flow +# - entropy_label: +# no_next_hop_validation: true +# explicit_null: +# connected_only: true +# per_group_label: true +# per_prefix_label: true +# prefix_limit: +# forever: true +# limit_threshold: 99 +# maximum: 20 +# resolve_vpn: true +# rib: inet.3 +# route_refresh_priority_priority: 3 +# type: labeled-unicast +# - extended_nexthop: true +# extended_nexthop_color: true +# local_ipv4_address: 9.9.9.9 +# type: unicast +# afi: inet +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:family> +# <nc:evpn delete="delete"/></nc:family><nc:family><nc:evpn><nc:signaling><nc:accepted-prefix-limit> +# <nc:maximum>21</nc:maximum><nc:teardown><nc:limit-threshold>99</nc:limit-threshold><nc:idle-timeout> +# <nc:timeout>2002</nc:timeout></nc:idle-timeout></nc:teardown></nc:accepted-prefix-limit><nc:damping/> +# <nc:delay-route-advertisements><nc:maximum-delay><nc:route-age>20</nc:route-age> +# <nc:routing-uptime>32000</nc:routing-uptime></nc:maximum-delay><nc:minimum-delay> +# <nc:inbound-convergence>32000</nc:inbound-convergence><nc:routing-uptime>23000</nc:routing-uptime> +# </nc:minimum-delay></nc:delay-route-advertisements></nc:signaling></nc:evpn></nc:family></nc:bgp></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> +# +# after: +# address_family: +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2002 +# limit_threshold: 99 +# maximum: 21 +# damping: true +# delay_route_advertisements: +# max_delay_route_age: 20 +# max_delay_routing_uptime: 32000 +# min_delay_inbound_convergence: 32000 +# min_delay_routing_uptime: 23000 +# type: signaling +# afi: evpn +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2000 +# limit_threshold: 99 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# delay_route_advertisements: +# max_delay_route_age: 20 +# max_delay_routing_uptime: 32000 +# min_delay_inbound_convergence: 32000 +# min_delay_routing_uptime: 23000 +# graceful_restart_forwarding_state_bit: from-fib +# type: any +# - legacy_redirect_ip_action: +# receive: true +# send: true +# loops: 4 +# no_install: true +# output_queue_priority_expedited: true +# secondary_independent_resolution: true +# type: flow +# - entropy_label: +# no_next_hop_validation: true +# explicit_null: +# connected_only: true +# per_group_label: true +# per_prefix_label: true +# prefix_limit: +# forever: true +# limit_threshold: 99 +# maximum: 20 +# resolve_vpn: true +# rib: inet.3 +# route_refresh_priority_priority: 3 +# type: labeled-unicast +# - extended_nexthop: true +# extended_nexthop_color: true +# local_ipv4_address: 9.9.9.9 +# type: unicast +# afi: inet +# # After state # ----------- # # admin# show protocols bgp -# preference 2; -# hold-time 5; -# advertise-inactive; -# out-delay 10; -# bgp-error-tolerance { -# malformed-route-limit 40000000; -# } -# authentication-algorithm md5; -# advertise-bgp-static { -# policy static-to-bgp; -# } # family inet { # unicast { # local-ipv4-address 9.9.9.9; @@ -759,6 +961,7 @@ EXAMPLES = """ # } # } # } + # Using overridden # # Before state @@ -837,23 +1040,96 @@ EXAMPLES = """ - name: Override Junos BGP address family config junipernetworks.junos.junos_bgp_address_family: - config: - address_family: - - afi: 'evpn' - af_type: - - type: 'signaling' - accepted_prefix_limit: - maximum: 21 - limit_threshold: 99 - idle_timeout_value: 2002 - delay_route_advertisements: - max_delay_route_age: 20 - max_delay_routing_uptime: 32000 - min_delay_inbound_convergence: 32000 - min_delay_routing_uptime: 23000 - damping: true - state: overridden + config: + address_family: + - afi: 'evpn' + af_type: + - type: 'signaling' + accepted_prefix_limit: + maximum: 21 + limit_threshold: 99 + idle_timeout_value: 2002 + delay_route_advertisements: + max_delay_route_age: 20 + max_delay_routing_uptime: 32000 + min_delay_inbound_convergence: 32000 + min_delay_routing_uptime: 23000 + damping: true + state: overridden +# Task Output: +# ------------ +# +# before: +# address_family: +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2002 +# limit_threshold: 99 +# maximum: 21 +# damping: true +# delay_route_advertisements: +# max_delay_route_age: 20 +# max_delay_routing_uptime: 32000 +# min_delay_inbound_convergence: 32000 +# min_delay_routing_uptime: 23000 +# type: signaling +# afi: evpn +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2000 +# limit_threshold: 99 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# delay_route_advertisements: +# max_delay_route_age: 20 +# max_delay_routing_uptime: 32000 +# min_delay_inbound_convergence: 32000 +# min_delay_routing_uptime: 23000 +# graceful_restart_forwarding_state_bit: from-fib +# type: any +# - legacy_redirect_ip_action: +# receive: true +# send: true +# loops: 4 +# no_install: true +# output_queue_priority_expedited: true +# secondary_independent_resolution: true +# type: flow +# - entropy_label: +# no_next_hop_validation: true +# explicit_null: +# connected_only: true +# per_group_label: true +# per_prefix_label: true +# prefix_limit: +# forever: true +# limit_threshold: 99 +# maximum: 20 +# resolve_vpn: true +# rib: inet.3 +# route_refresh_priority_priority: 3 +# type: labeled-unicast +# - extended_nexthop: true +# extended_nexthop_color: true +# local_ipv4_address: 9.9.9.9 +# type: unicast +# afi: inet +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:family> +# <nc:evpn delete="delete"/><nc:inet delete="delete"/></nc:family><nc:family><nc:evpn delete="delete"/> +# </nc:family><nc:family><nc:evpn><nc:signaling><nc:accepted-prefix-limit><nc:maximum>21</nc:maximum> +# <nc:teardown><nc:limit-threshold>99</nc:limit-threshold><nc:idle-timeout><nc:timeout>2002</nc:timeout> +# </nc:idle-timeout></nc:teardown></nc:accepted-prefix-limit><nc:damping/><nc:delay-route-advertisements> +# <nc:maximum-delay><nc:route-age>20</nc:route-age><nc:routing-uptime>32000</nc:routing-uptime> +# </nc:maximum-delay><nc:minimum-delay><nc:inbound-convergence>32000</nc:inbound-convergence> +# <nc:routing-uptime>23000</nc:routing-uptime></nc:minimum-delay></nc:delay-route-advertisements> +# </nc:signaling></nc:evpn></nc:family></nc:bgp></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> +# # After state # ----------- # @@ -960,19 +1236,91 @@ EXAMPLES = """ - name: Delete Junos BGP address family config based on the afi junipernetworks.junos.junos_bgp_address_family: - config: - address_family: - - afi: 'inet' - state: deleted + config: + address_family: + - afi: 'inet' + state: deleted +# Task Output: +# ------------ +# +# before: +# address_family: +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2001 +# limit_threshold: 98 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# type: signaling +# afi: evpn +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2000 +# limit_threshold: 99 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# delay_route_advertisements: +# max_delay_route_age: 20 +# max_delay_routing_uptime: 32000 +# min_delay_inbound_convergence: 32000 +# min_delay_routing_uptime: 23000 +# graceful_restart_forwarding_state_bit: from-fib +# type: any +# - legacy_redirect_ip_action: +# receive: true +# send: true +# loops: 4 +# no_install: true +# output_queue_priority_expedited: true +# secondary_independent_resolution: true +# type: flow +# - entropy_label: +# no_next_hop_validation: true +# explicit_null: +# connected_only: true +# per_group_label: true +# per_prefix_label: true +# prefix_limit: +# forever: true +# limit_threshold: 99 +# maximum: 20 +# resolve_vpn: true +# rib: inet.3 +# route_refresh_priority_priority: 3 +# type: labeled-unicast +# - extended_nexthop: true +# extended_nexthop_color: true +# local_ipv4_address: 9.9.9.9 +# type: unicast +# afi: inet +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp> +# <nc:family><nc:inet delete="delete"/></nc:family></nc:bgp></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> +# +# after: +# address_family: +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2001 +# limit_threshold: 98 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# type: signaling +# afi: evpn +# # After state # ----------- # # admin# show protocols bgp -# preference 2; -# hold-time 5; -# advertise-inactive; -# out-delay 10; # family evpn { # signaling { # accepted-prefix-limit { @@ -992,10 +1340,6 @@ EXAMPLES = """ # ------------ # # admin# show protocols bgp -# preference 2; -# hold-time 5; -# advertise-inactive; -# out-delay 10; # family inet { # unicast { # local-ipv4-address 9.9.9.9; @@ -1068,18 +1412,79 @@ EXAMPLES = """ - name: Delete complete Junos BGP address family config junipernetworks.junos.junos_bgp_address_family: - config: - state: deleted + config: + state: deleted + +# Task Output: +# ------------ +# +# before: +# address_family: +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2001 +# limit_threshold: 98 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# type: signaling +# afi: evpn +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2000 +# limit_threshold: 99 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# delay_route_advertisements: +# max_delay_route_age: 20 +# max_delay_routing_uptime: 32000 +# min_delay_inbound_convergence: 32000 +# min_delay_routing_uptime: 23000 +# graceful_restart_forwarding_state_bit: from-fib +# type: any +# - legacy_redirect_ip_action: +# receive: true +# send: true +# loops: 4 +# no_install: true +# output_queue_priority_expedited: true +# secondary_independent_resolution: true +# type: flow +# - entropy_label: +# no_next_hop_validation: true +# explicit_null: +# connected_only: true +# per_group_label: true +# per_prefix_label: true +# prefix_limit: +# forever: true +# limit_threshold: 99 +# maximum: 20 +# resolve_vpn: true +# rib: inet.3 +# route_refresh_priority_priority: 3 +# type: labeled-unicast +# - extended_nexthop: true +# extended_nexthop_color: true +# local_ipv4_address: 9.9.9.9 +# type: unicast +# afi: inet +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:bgp><nc:family><nc:evpn delete="delete"/><nc:inet delete="delete"/> +# </nc:family></nc:bgp></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> +# +# after: {} # After state # ----------- # # admin# show protocols bgp -# preference 2; -# hold-time 5; -# advertise-inactive; -# out-delay 10; - +# # Using gathered # @@ -1087,10 +1492,6 @@ EXAMPLES = """ # ------------ # # admin# show protocols bgp -# preference 2; -# hold-time 5; -# advertise-inactive; -# out-delay 10; # family inet { # unicast { # local-ipv4-address 9.9.9.9; @@ -1167,92 +1568,64 @@ EXAMPLES = """ state: gathered # # -# ------------------------- -# Module Execution Result -# ------------------------- -# -# "gathered": { -# "address_family": [ -# { -# "af_type": [ -# { -# "accepted_prefix_limit": { -# "idle_timeout_value": 2001, -# "limit_threshold": 98, -# "maximum": 20 -# }, -# "damping": true, -# "defer_initial_multipath_build": { -# "maximum_delay": 2 -# }, -# "type": "signaling" -# } -# ], -# "afi": "evpn" -# }, -# { -# "af_type": [ -# { -# "accepted_prefix_limit": { -# "idle_timeout_value": 2000, -# "limit_threshold": 99, -# "maximum": 20 -# }, -# "damping": true, -# "defer_initial_multipath_build": { -# "maximum_delay": 2 -# }, -# "delay_route_advertisements": { -# "max_delay_route_age": 20, -# "max_delay_routing_uptime": 32000, -# "min_delay_inbound_convergence": 32000, -# "min_delay_routing_uptime": 23000 -# }, -# "graceful_restart_forwarding_state_bit": "from-fib", -# "type": "any" -# }, -# { -# "legacy_redirect_ip_action": { -# "receive": true, -# "send": true -# }, -# "loops": 4, -# "no_install": true, -# "output_queue_priority_expedited": true, -# "secondary_independent_resolution": true, -# "type": "flow" -# }, -# { -# "entropy_label": { -# "no_next_hop_validation": true -# }, -# "explicit_null": { -# "connected_only": true -# }, -# "per_group_label": true, -# "per_prefix_label": true, -# "prefix_limit": { -# "forever": true, -# "limit_threshold": 99, -# "maximum": 20 -# }, -# "resolve_vpn": true, -# "rib": "inet.3", -# "route_refresh_priority_priority": 3, -# "type": "labeled-unicast" -# }, -# { -# "extended_nexthop": true, -# "extended_nexthop_color": true, -# "local_ipv4_address": "9.9.9.9", -# "type": "unicast" -# } -# ], -# "afi": "inet" -# } -# ] -# } +# Task Output: +# ------------ # +# gathered: +# address_family: +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2001 +# limit_threshold: 98 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# type: signaling +# afi: evpn +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2000 +# limit_threshold: 99 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# delay_route_advertisements: +# max_delay_route_age: 20 +# max_delay_routing_uptime: 32000 +# min_delay_inbound_convergence: 32000 +# min_delay_routing_uptime: 23000 +# graceful_restart_forwarding_state_bit: from-fib +# type: any +# - legacy_redirect_ip_action: +# receive: true +# send: true +# loops: 4 +# no_install: true +# output_queue_priority_expedited: true +# secondary_independent_resolution: true +# type: flow +# - entropy_label: +# no_next_hop_validation: true +# explicit_null: +# connected_only: true +# per_group_label: true +# per_prefix_label: true +# prefix_limit: +# forever: true +# limit_threshold: 99 +# maximum: 20 +# resolve_vpn: true +# rib: inet.3 +# route_refresh_priority_priority: 3 +# type: labeled-unicast +# - extended_nexthop: true +# extended_nexthop_color: true +# local_ipv4_address: 9.9.9.9 +# type: unicast +# afi: inet + # Using parsed # parsed.cfg # ------------ @@ -1396,96 +1769,66 @@ EXAMPLES = """ running_config: "{{ lookup('file', './parsed.cfg') }}" state: parsed # +# Task Output: +# ------------ # -# ------------------------- -# Module Execution Result -# ------------------------- -# -# -# "parsed": { -# "address_family": [ -# { -# "af_type": [ -# { -# "accepted_prefix_limit": { -# "idle_timeout_value": 2001, -# "limit_threshold": 98, -# "maximum": 20 -# }, -# "damping": true, -# "defer_initial_multipath_build": { -# "maximum_delay": 2 -# }, -# "type": "signaling" -# } -# ], -# "afi": "evpn" -# }, -# { -# "af_type": [ -# { -# "accepted_prefix_limit": { -# "idle_timeout_value": 2000, -# "limit_threshold": 99, -# "maximum": 20 -# }, -# "damping": true, -# "defer_initial_multipath_build": { -# "maximum_delay": 2 -# }, -# "delay_route_advertisements": { -# "max_delay_route_age": 20, -# "max_delay_routing_uptime": 32000, -# "min_delay_inbound_convergence": 32000, -# "min_delay_routing_uptime": 23000 -# }, -# "graceful_restart_forwarding_state_bit": "from-fib", -# "type": "any" -# }, -# { -# "legacy_redirect_ip_action": { -# "receive": true, -# "send": true -# }, -# "loops": 4, -# "no_install": true, -# "output_queue_priority_expedited": true, -# "secondary_independent_resolution": true, -# "type": "flow" -# }, -# { -# "entropy_label": { -# "no_next_hop_validation": true -# }, -# "explicit_null": { -# "connected_only": true -# }, -# "per_group_label": true, -# "per_prefix_label": true, -# "prefix_limit": { -# "forever": true, -# "limit_threshold": 99, -# "maximum": 20 -# }, -# "resolve_vpn": true, -# "rib": "inet.3", -# "route_refresh_priority_priority": 3, -# "type": "labeled-unicast" -# }, -# { -# "extended_nexthop": true, -# "extended_nexthop_color": true, -# "local_ipv4_address": "9.9.9.9", -# "type": "unicast" -# } -# ], -# "afi": "inet" -# } -# ] -# } +# parsed: +# address_family: +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2001 +# limit_threshold: 98 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# type: signaling +# afi: evpn +# - af_type: +# - accepted_prefix_limit: +# idle_timeout_value: 2000 +# limit_threshold: 99 +# maximum: 20 +# damping: true +# defer_initial_multipath_build: +# maximum_delay: 2 +# delay_route_advertisements: +# max_delay_route_age: 20 +# max_delay_routing_uptime: 32000 +# min_delay_inbound_convergence: 32000 +# min_delay_routing_uptime: 23000 +# graceful_restart_forwarding_state_bit: from-fib +# type: any +# - legacy_redirect_ip_action: +# receive: true +# send: true +# loops: 4 +# no_install: true +# output_queue_priority_expedited: true +# secondary_independent_resolution: true +# type: flow +# - entropy_label: +# no_next_hop_validation: true +# explicit_null: +# connected_only: true +# per_group_label: true +# per_prefix_label: true +# prefix_limit: +# forever: true +# limit_threshold: 99 +# maximum: 20 +# resolve_vpn: true +# rib: inet.3 +# route_refresh_priority_priority: 3 +# type: labeled-unicast +# - extended_nexthop: true +# extended_nexthop_color: true +# local_ipv4_address: 9.9.9.9 +# type: unicast +# afi: inet + # Using rendered # -# - name: Render the commands for provided configuration junipernetworks.junos.junos_bgp_address_family: config: @@ -1548,14 +1891,10 @@ EXAMPLES = """ graceful_restart_forwarding_state_bit: 'from-fib' state: rendered +# Task Output: +# ------------ # -# -# ------------------------- -# Module Execution Result -# ------------------------- -# -# -# "rendered": "<nc:protocols xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> +# rendered: "<nc:protocols xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> # <nc:bgp><nc:family><nc:evpn><nc:signaling><nc:accepted-prefix-limit><nc:maximum>20</nc:maximum> # <nc:teardown><nc:limit-threshold>98</nc:limit-threshold><nc:idle-timeout><nc:timeout>2001</nc:timeout> # </nc:idle-timeout></nc:teardown></nc:accepted-prefix-limit><nc:damping/><nc:defer-initial-multipath-build> @@ -1581,7 +1920,6 @@ EXAMPLES = """ # <nc:routing-uptime>23000</nc:routing-uptime></nc:minimum-delay></nc:delay-route-advertisements> # <nc:graceful-restart><nc:forwarding-state-bit>from-fib</nc:forwarding-state-bit> # </nc:graceful-restart></nc:any></nc:inet></nc:family></nc:bgp></nc:protocols>" - """ RETURN = """ before: @@ -1612,6 +1950,26 @@ commands: </nc:maximum-delay><nc:minimum-delay><nc:inbound-convergence>32000</nc:inbound-convergence> <nc:routing-uptime>23000</nc:routing-uptime></nc:minimum-delay></nc:delay-route-advertisements> </nc:signaling></nc:evpn></nc:family></nc:bgp></nc:protocols>', 'xml 2', 'xml 3'] +rendered: + description: The provided configuration in the task rendered in device-native format (offline). + returned: when I(state) is C(rendered) + type: list + sample: + - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +gathered: + description: Facts about the network resource gathered from the remote device as structured data. + returned: when I(state) is C(gathered) + type: list + sample: > + This output will always be in the same format as the + module argspec. +parsed: + description: The device native config provided in I(running_config) option parsed into structured data as per module argspec. + returned: when I(state) is C(parsed) + type: list + sample: > + This output will always be in the same format as the + module argspec. """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_bgp_global.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_bgp_global.py index de4715ff0..70c779e32 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_bgp_global.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_bgp_global.py @@ -947,6 +947,7 @@ options: - purged - merged - replaced + - overridden - deleted - gathered - parsed @@ -956,16 +957,15 @@ options: EXAMPLES = """ # Using merged # -# Before state -# ------------ +# Before state: +# ------------- # -# admin# show protocols bgp -# [edit] +# vsrx# show bgp summary +# BGP is not running -# admin# show routing-options autonomous-system -# [edit] +# vsrx# show routing-options autonomous-system -- name: Merge Junos BGP config +- name: Merge provided bgp config with device configuration junipernetworks.junos.junos_bgp_global: config: as_number: "65534" @@ -973,8 +973,6 @@ EXAMPLES = """ asdot_notation: true accept_remote_nexthop: true add_path_display_ipv4_address: true - advertise_bgp_static: - policy: "static-to-bgp" advertise_from_main_vpn_tables: true advertise_inactive: true authentication_algorithm: "md5" @@ -997,13 +995,50 @@ EXAMPLES = """ preference: 2 state: merged -# After state -# ----------- +# Task Output: +# ------------ +# before: {} +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:accept-remote-nexthop/> +# <nc:add-path-display-ipv4-address/><nc:advertise-from-main-vpn-tables/><nc:advertise-> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:autonomous-system>65534<nc:loops>3</nc:loops><nc:asdot-notation/></nc:autonomous-system></nc:routing-options> # -# admin# show routing-options autonomous-system +# after: +# accept_remote_nexthop: true +# add_path_display_ipv4_address: true +# advertise_from_main_vpn_tables: true +# advertise_inactive: true +# as_number: '65534' +# asdot_notation: true +# authentication_algorithm: md5 +# bgp_error_tolerance: +# malformed_route_limit: 20000000 +# bmp: +# monitor: true +# damping: true +# description: This is configured with Junos_bgp resource module +# egress_te_sid_stats: true +# hold_time: 5 +# holddown_all_stale_labels: true +# include_mp_next_hop: true +# log_updown: true +# loops: 3 +# no_advertise_peer_as: true +# no_aggregator_id: true +# no_client_reflect: true +# out_delay: 10 +# precision_timers: true +# preference: '2' + +# After state: +# ------------ +# +# vsrx# show routing-options autonomous-system # 65534 loops 3 asdot-notation; -# admin# show protocols bgp +# vsrx# show protocols bgp # precision-timers; # advertise-from-main-vpn-tables; # holddown-all-stale-labels; @@ -1026,22 +1061,17 @@ EXAMPLES = """ # bmp { # monitor enable; # } -# advertise-bgp-static { -# policy static-to-bgp; -# } # add-path-display-ipv4-address; # egress-te-sid-stats; - -# Using merged +# Using replaced # -# Before state -# ------------ +# Before state: +# ------------- # -# admin# show routing-options autonomous-system -# 65534 loops 3 asdot-notation; - -# admin# show protocols bgp +# vsrx# show routing-options autonomous-system +# [edit] +# vsrx# show protocols bgp # precision-timers; # advertise-from-main-vpn-tables; # holddown-all-stale-labels; @@ -1064,146 +1094,123 @@ EXAMPLES = """ # bmp { # monitor enable; # } -# advertise-bgp-static { -# policy static-to-bgp; -# } # add-path-display-ipv4-address; # egress-te-sid-stats; -- name: Update running Junos BGP config +- name: Replace running config with provided config junipernetworks.junos.junos_bgp_global: config: - egress_te_backup_paths: - templates: - - path_name: customer1 - peers: - - '11.11.11.11' - - '11.11.11.12' - - '11.11.11.13' - remote_nexthop: '2.2.2.2' - groups: - - name: 'internal' - type: 'internal' - vpn_apply_export: true - out_delay: 30 - accept_remote_nexthop: true - add_path_display_ipv4_address: true - peer_as: '65534' - allow: - - 'all' - - '1.1.1.0/24' - neighbors: - - neighbor_address: '11.11.11.11' - peer_as: '65534' - out_delay: 11 - - neighbor_address: '11.11.11.12' - peer_as: '65534' - out_delay: 12 - - - name: 'external' - out_delay: 20 - peer_as: '65534' - accept_remote_nexthop: true - add_path_display_ipv4_address: true - neighbors: - - neighbor_address: '12.12.12.12' - peer_as: '65534' - out_delay: 21 - accept_remote_nexthop: true - add_path_display_ipv4_address: true - - neighbor_address: '11.11.11.13' - peer_as: '65534' - out_delay: 31 - accept_remote_nexthop: true - add_path_display_ipv4_address: true - state: merged + advertise_inactive: true + authentication_algorithm: "md5" + bfd_liveness_detection: + minimum_receive_interval: 8 + multiplier: 30 + no_adaptation: true + transmit_interval: + minimum_interval: 4 + version: "automatic" + bgp_error_tolerance: + malformed_route_limit: 40000000 + description: "Replace running bgp config" + egress_te_sid_stats: true + hold_time: 5 + out_delay: 10 + preference: "2" + state: replaced -# After state -# ----------- +# Task Output: +# ------------ # -# admin# show routing-options autonomous-system -# 65534 loops 3 asdot-notation; +# before: +# accept_remote_nexthop: true +# add_path_display_ipv4_address: true +# advertise_from_main_vpn_tables: true +# advertise_inactive: true +# as_number: '65534' +# asdot_notation: true +# authentication_algorithm: md5 +# bgp_error_tolerance: +# malformed_route_limit: 20000000 +# bmp: +# monitor: true +# damping: true +# description: This is configured with Junos_bgp resource module +# egress_te_sid_stats: true +# hold_time: 5 +# holddown_all_stale_labels: true +# include_mp_next_hop: true +# log_updown: true +# loops: 3 +# no_advertise_peer_as: true +# no_aggregator_id: true +# no_client_reflect: true +# out_delay: 10 +# precision_timers: true +# preference: '2' -# admin# show protocols bgp -# precision-timers; -# advertise-from-main-vpn-tables; -# holddown-all-stale-labels; -# egress-te-backup-paths { -# template customer1 { -# peer 11.11.11.11; -# peer 11.11.11.12; -# peer 11.11.11.13; -# remote-nexthop { -# 2.2.2.2; -# } -# } -# } -# description "This is configured with Junos_bgp resource module"; -# accept-remote-nexthop; +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp> +# <nc:accept-remote-nexthop delete="delete"/><nc:add-path-display-ipv4-address delete="delete"/><nc:advertise-bgp-t +# delete="delete"/><nc:include-mp-next-hop delete="delete"/><nc:ipsec-sa delete="delete"/><nc:keep delete="delete"/> +# <nc:local-address delete="delete"/><nc:local-interface delete="delete"/t +# delete="delete"/></nc:bgp><nc:bgp><nc:advertise-inactive/><nc:egress-te-sid-stats/> +# <nc:authentication-algorithm>md5</nc:authentication-algorithm><nc:description>Replace running bgp conf> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:autonomous-system delete="delete"/></nc:routing-options> + +# +# after: +# advertise_inactive: true +# authentication_algorithm: md5 +# bfd_liveness_detection: +# minimum_receive_interval: 8 +# multiplier: 30 +# no_adaptation: true +# transmit_interval: +# minimum_interval: 4 +# version: automatic +# bgp_error_tolerance: +# malformed_route_limit: 40000000 +# description: Replace running bgp config +# egress_te_sid_stats: true +# hold_time: 5 +# out_delay: 10 +# preference: '2' + +# After state: +# ------------ +# +# varx# show protocols bgp +# description "Replace running bgp config"; # preference 2; # hold-time 5; # advertise-inactive; -# no-advertise-peer-as; -# no-aggregator-id; # out-delay 10; -# log-updown; -# damping; # bgp-error-tolerance { -# malformed-route-limit 20000000; +# malformed-route-limit 40000000; # } # authentication-algorithm md5; -# no-client-reflect; -# include-mp-next-hop; -# bmp { -# monitor enable; -# } -# add-path-display-ipv4-address; -# egress-te-sid-stats; -# group internal { -# type internal; -# accept-remote-nexthop; -# out-delay 30; -# vpn-apply-export; -# peer-as 65534; -# add-path-display-ipv4-address; -# allow [ 0.0.0.0/0 1.1.1.0/24 ]; -# neighbor 11.11.11.11 { -# out-delay 11; -# peer-as 65534; -# } -# neighbor 11.11.11.12 { -# out-delay 12; -# peer-as 65534; -# } -# } -# group external { -# accept-remote-nexthop; -# out-delay 20; -# peer-as 65534; -# add-path-display-ipv4-address; -# neighbor 12.12.12.12 { -# accept-remote-nexthop; -# out-delay 21; -# peer-as 65534; -# add-path-display-ipv4-address; -# } -# neighbor 11.11.11.13 { -# accept-remote-nexthop; -# out-delay 31; -# peer-as 65534; -# add-path-display-ipv4-address; +# bfd-liveness-detection { +# version automatic; +# minimum-receive-interval 8; +# multiplier 30; +# no-adaptation; +# transmit-interval { +# minimum-interval 4; # } # } +# egress-te-sid-stats; +# vsrx# show routing-options autonomous-system -# Using replaced +# Using overridden +# "(NOTE: This will work same as replaced operation)" # -# Before state -# ------------ +# Before state: +# ------------- # -# admin# show routing-options autonomous-system +# vsrx# show routing-options autonomous-system # [edit] -# admin# show protocols bgp +# vsrx# show protocols bgp # precision-timers; # advertise-from-main-vpn-tables; # holddown-all-stale-labels; @@ -1226,40 +1233,93 @@ EXAMPLES = """ # bmp { # monitor enable; # } -# advertise-bgp-static { -# policy static-to-bgp; -# } # add-path-display-ipv4-address; # egress-te-sid-stats; -- name: Replace Junos BGP global config +- name: Override running config with provided config junipernetworks.junos.junos_bgp_global: - config: - advertise_bgp_static: - policy: "static-to-bgp" - advertise_inactive: true - authentication_algorithm: "md5" - bfd_liveness_detection: - minimum_receive_interval: 8 - multiplier: 30 - no_adaptation: true - transmit_interval: - minimum_interval: 4 - version: "automatic" - bgp_error_tolerance: - malformed_route_limit: 40000000 - description: "This is configured with Junos_bgp resource module replace" - egress_te_sid_stats: true - hold_time: 5 - out_delay: 10 - preference: "2" - state: replaced - -# After state -# ----------- + config: + advertise_inactive: true + authentication_algorithm: "md5" + bfd_liveness_detection: + minimum_receive_interval: 8 + multiplier: 30 + no_adaptation: true + transmit_interval: + minimum_interval: 4 + version: "automatic" + bgp_error_tolerance: + malformed_route_limit: 40000000 + description: "Replace running bgp config" + egress_te_sid_stats: true + hold_time: 5 + out_delay: 10 + preference: "2" + state: overridden + +# Task Output: +# ------------ +# +# before: +# accept_remote_nexthop: true +# add_path_display_ipv4_address: true +# advertise_from_main_vpn_tables: true +# advertise_inactive: true +# as_number: '65534' +# asdot_notation: true +# authentication_algorithm: md5 +# bgp_error_tolerance: +# malformed_route_limit: 20000000 +# bmp: +# monitor: true +# damping: true +# description: This is configured with Junos_bgp resource module +# egress_te_sid_stats: true +# hold_time: 5 +# holddown_all_stale_labels: true +# include_mp_next_hop: true +# log_updown: true +# loops: 3 +# no_advertise_peer_as: true +# no_aggregator_id: true +# no_client_reflect: true +# out_delay: 10 +# precision_timers: true +# preference: '2' + +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp> +# <nc:accept-remote-nexthop delete="delete"/><nc:add-path-display-ipv4-address delete="delete"/><nc:advertise-bgp-t +# delete="delete"/><nc:include-mp-next-hop delete="delete"/><nc:ipsec-sa delete="delete"/><nc:keep delete="delete"/> +# <nc:local-address delete="delete"/><nc:local-interface delete="delete"/t +# delete="delete"/></nc:bgp><nc:bgp><nc:advertise-inactive/><nc:egress-te-sid-stats/> +# <nc:authentication-algorithm>md5</nc:authentication-algorithm><nc:description>Replace running bgp conf> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:autonomous-system delete="delete"/></nc:routing-options> + # -# admin# show protocols bgp -# description "This is configured with Junos_bgp resource module replace"; +# after: +# advertise_inactive: true +# authentication_algorithm: md5 +# bfd_liveness_detection: +# minimum_receive_interval: 8 +# multiplier: 30 +# no_adaptation: true +# transmit_interval: +# minimum_interval: 4 +# version: automatic +# bgp_error_tolerance: +# malformed_route_limit: 40000000 +# description: Replace running bgp config +# egress_te_sid_stats: true +# hold_time: 5 +# out_delay: 10 +# preference: '2' + +# After state: +# ------------ +# +# varx# show protocols bgp +# description "Replace running bgp config"; # preference 2; # hold-time 5; # advertise-inactive; @@ -1268,9 +1328,6 @@ EXAMPLES = """ # malformed-route-limit 40000000; # } # authentication-algorithm md5; -# advertise-bgp-static { -# policy static-to-bgp; -# } # bfd-liveness-detection { # version automatic; # minimum-receive-interval 8; @@ -1282,136 +1339,149 @@ EXAMPLES = """ # } # egress-te-sid-stats; -# admin# show routing-options autonomous-system -# [edit] +# vsrx# show routing-options autonomous-system -# # Using deleted -# +# "(NOTE: This WILL delete the bgp global attributes)" # Before state # ------------ # -# admin# show protocols bgp -# precision-timers; -# advertise-from-main-vpn-tables; -# holddown-all-stale-labels; -# description "This is configured with Junos_bgp resource module"; -# accept-remote-nexthop; +# vsrx# show protocols bgp +# description "Replace running bgp config"; # preference 2; # hold-time 5; # advertise-inactive; -# no-advertise-peer-as; -# no-aggregator-id; # out-delay 10; -# log-updown; -# damping; # bgp-error-tolerance { -# malformed-route-limit 20000000; +# malformed-route-limit 40000000; # } # authentication-algorithm md5; -# no-client-reflect; -# include-mp-next-hop; -# bmp { -# monitor enable; +# bfd-liveness-detection { +# version automatic; +# minimum-receive-interval 8; +# multiplier 30; +# no-adaptation; +# transmit-interval { +# minimum-interval 4; +# } # } -# add-path-display-ipv4-address; # egress-te-sid-stats; -# group internal { -# out-delay 12; -# } -# admin# show routing-options autonomous-system -# 65534 loops 3 asdot-notation; -- name: Delete Junos BGP global config +- name: Delete bgp section of running config junipernetworks.junos.junos_bgp_global: config: state: deleted -# After state -# ----------- -# admin# show protocols bgp -# group internal { -# out-delay 12; -# } +# Task Output: +# ------------ +# before: +# advertise_inactive: true +# authentication_algorithm: md5 +# bfd_liveness_detection: +# minimum_receive_interval: 8 +# multiplier: 30 +# no_adaptation: true +# transmit_interval: +# minimum_interval: 4 +# version: automatic +# bgp_error_tolerance: +# malformed_route_limit: 40000000 +# description: Replace running bgp config +# egress_te_sid_stats: true +# hold_time: 5 +# out_delay: 10 +# preference: '2' +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:accept-remote-nexthop delete="delete"/> +# <nc:add-path-display-ipv4-address delete="delete"/><nc:advertise-bgp-t +# delete="delete"/><nc:include-mp-next-hop delete="delete"/><nc:ipsec-sa delete="delete"/><nc:keep delete="delete"/> +# <nc:local-address delete="delete"/><nc:local-interface delete="delete"/t +# delete="delete"/></nc:bgp></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/> -# admin# show protocols bgp -# [edit] +# after: {} + +# After state: +# ------------ +# vsrx# show protocols bgp + +# vsrx# show routing-options autonomous-system -# admin# show routing-options autonomous-system -# [edit] # Using gathered # -# Before state -# ------------ +# Before state: +# ------------- # -# admin# show protocols bgp -# description "This is configured with Junos_bgp resource module replace"; +# vsrx# show protocols bgp +# precision-timers; +# advertise-from-main-vpn-tables; +# holddown-all-stale-labels; +# description "This is configured with Junos_bgp resource module"; +# accept-remote-nexthop; # preference 2; # hold-time 5; # advertise-inactive; +# no-advertise-peer-as; +# no-aggregator-id; # out-delay 10; +# log-updown; +# damping; # bgp-error-tolerance { -# malformed-route-limit 40000000; +# malformed-route-limit 20000000; # } # authentication-algorithm md5; -# advertise-bgp-static { -# policy static-to-bgp; -# } -# bfd-liveness-detection { -# version automatic; -# minimum-receive-interval 8; -# multiplier 30; -# no-adaptation; -# transmit-interval { -# minimum-interval 4; -# } +# no-client-reflect; +# include-mp-next-hop; +# bmp { +# monitor enable; # } +# add-path-display-ipv4-address; # egress-te-sid-stats; -- name: Gather Junos BGP global config +- name: Gather BGP facts from running config junipernetworks.junos.junos_bgp_global: config: state: gathered -# -# -# ------------------------- -# Module Execution Result -# ------------------------- -# -# "gathered": { -# "advertise_bgp_static": { -# "policy": "static-to-bgp" -# }, -# "advertise_inactive": true, -# "authentication_algorithm": "md5", -# "bfd_liveness_detection": { -# "minimum_receive_interval": 8, -# "multiplier": 30, -# "no_adaptation": true, -# "transmit_interval": { -# "minimum_interval": 4 -# }, -# "version": "automatic" -# }, -# "bgp_error_tolerance": { -# "malformed_route_limit": 40000000 -# }, -# "description": "This is configured with Junos_bgp resource module replace", -# "egress_te_sid_stats": true, -# "hold_time": 5, -# "out_delay": 10, -# "preference": "2" -# } -# -# -# Using purged -# -# Before state + +# Task Output: # ------------ + +# gathered: +# accept_remote_nexthop: true +# add_path_display_ipv4_address: true +# advertise_from_main_vpn_tables: true +# advertise_inactive: true +# as_number: '65534' +# asdot_notation: true +# authentication_algorithm: md5 +# bgp_error_tolerance: +# malformed_route_limit: 20000000 +# bmp: +# monitor: true +# damping: true +# description: This is configured with Junos_bgp resource module +# egress_te_sid_stats: true +# hold_time: 5 +# holddown_all_stale_labels: true +# include_mp_next_hop: true +# log_updown: true +# loops: 3 +# no_advertise_peer_as: true +# no_aggregator_id: true +# no_client_reflect: true +# out_delay: 10 +# precision_timers: true +# preference: '2' + +# Using purged +# "(NOTE: This WILL delete the configured global BGP, and BGP address family config)" + +# Before state: +# ------------- # -# admin# show protocols bgp +# vsrx# show protocols bgp # precision-timers; # advertise-from-main-vpn-tables; # holddown-all-stale-labels; @@ -1436,41 +1506,68 @@ EXAMPLES = """ # } # add-path-display-ipv4-address; # egress-te-sid-stats; -# group internal { -# out-delay 12; -# } -# admin# show routing-options autonomous-system -# 65534 loops 3 asdot-notation; -- name: Purge Junos BGP global config +- name: Purge BGP config from running config junipernetworks.junos.junos_bgp_global: config: state: purged -# After state -# ---------- -# admin# show protocols bgp -# -# [edit] -# admin# show routing-options autonomous-system -# -#[edit] +# Task Output: +# ------------ + +# before: +# accept_remote_nexthop: true +# add_path_display_ipv4_address: true +# advertise_from_main_vpn_tables: true +# advertise_inactive: true +# as_number: '65534' +# asdot_notation: true +# authentication_algorithm: md5 +# bgp_error_tolerance: +# malformed_route_limit: 20000000 +# bmp: +# monitor: true +# damping: true +# description: This is configured with Junos_bgp resource module +# egress_te_sid_stats: true +# hold_time: 5 +# holddown_all_stale_labels: true +# include_mp_next_hop: true +# log_updown: true +# loops: 3 +# no_advertise_peer_as: true +# no_aggregator_id: true +# no_client_reflect: true +# out_delay: 10 +# precision_timers: true +# preference: '2' +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp delete="delete"/></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:autonomous-system delete="delete"/></nc:routing-options> + +# after: {} + +# After state: +# ------------ +# vsrx# show protocols bgp + +# vsrx# show routing-options autonomous-system # Using rendered -# -# -- name: Render the commands for provided configuration + +- name: Render the commands for provided configuration junipernetworks.junos.junos_bgp_global: config: + as_number: "65534" + loops: 3 + asdot_notation: true + accept_remote_nexthop: true + add_path_display_ipv4_address: true + advertise_from_main_vpn_tables: true + advertise_inactive: true authentication_algorithm: "md5" - bfd_liveness_detection: - minimum_receive_interval: 4 - multiplier: 10 - no_adaptation: true - transmit_interval: - minimum_interval: 2 - version: "automatic" bgp_error_tolerance: malformed_route_limit: 20000000 bmp: @@ -1479,41 +1576,25 @@ EXAMPLES = """ description: "This is configured with Junos_bgp resource module" egress_te_sid_stats: true hold_time: 5 + holddown_all_stale_labels: true + include_mp_next_hop: true + log_updown: true + no_advertise_peer_as: true + no_aggregator_id: true + no_client_reflect: true + out_delay: 10 + precision_timers: true + preference: 2 state: rendered -# -# -# ------------------------- -# Module Execution Result -# ------------------------- -# -# -# "rendered": " -# <nc:protocols -# xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> -# <nc:bgp> -# <nc:damping/> -# <nc:egress-te-sid-stats/> -# <nc:authentication-algorithm>md5</nc:authentication-algorithm> -# <nc:description>This is configured with Junos_bgp resource module</nc:description> -# <nc:hold-time>5</nc:hold-time> -# <nc:bfd-liveness-detection> -# <nc:transmit-interval> -# <nc:minimum-interval>2</nc:minimum-interval> -# </nc:transmit-interval> -# <nc:minimum-receive-interval>4</nc:minimum-receive-interval> -# <nc:multiplier>10</nc:multiplier> -# <nc:no-adaptation/> -# <nc:version>automatic</nc:version> -# </nc:bfd-liveness-detection> -# <nc:bgp-error-tolerance> -# <nc:malformed-route-limit>20000000</nc:malformed-route-limit> -# </nc:bgp-error-tolerance> -# <nc:bmp> -# <nc:monitor>enable</nc:monitor> -# </nc:bmp> -# </nc:bgp> -# </nc:protocols>" +# Task Output: +# ------------ + +# rendered: +# <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:bgp><nc:accept-remote-nexthop/><nc:add-path-display-ipv4-address/> +# <nc:advertise-from-main-vpn-tables/><nc:ad> + # # Using parsed # parsed.cfg @@ -1619,64 +1700,66 @@ EXAMPLES = """ # </rpc-reply> -- name: Parsed the device configuration to get output commands +- name: Parsed the device configuration to get ansible facts junipernetworks.junos.junos_bgp_global: running_config: "{{ lookup('file', './parsed.cfg') }}" state: parsed -# -# -# ------------------------- -# Module Execution Result -# ------------------------- -# -# -# "parsed": { -# "accept_remote_nexthop": true, -# "add_path_display_ipv4_address": true, -# "advertise_bgp_static": { -# "policy": "static-to-bgp" -# }, -# "advertise_from_main_vpn_tables": true, -# "advertise_inactive": true, -# "as_number": "65432", -# "authentication_algorithm": "md5", -# "bfd_liveness_detection": { -# "detection_time": { -# "threshold": 300000 -# }, -# "minimum_receive_interval": 4, -# "multiplier": 10, -# "no_adaptation": true, -# "transmit_interval": { -# "minimum_interval": 2 -# }, -# "version": "automatic" -# }, -# "bgp_error_tolerance": { -# "malformed_route_limit": 20000000 -# }, -# "bmp": { -# "monitor": false, -# "route_monitoring": { -# "none": true -# } -# }, -# "damping": true, -# "description": "This is configured with Junos_bgp resource module", -# "egress_te_sid_stats": true, -# "hold_time": 5, -# "holddown_all_stale_labels": true, -# "include_mp_next_hop": true, -# "log_updown": true, -# "no_advertise_peer_as": true, -# "no_aggregator_id": true, -# "no_client_reflect": true, -# "out_delay": 10, -# "precision_timers": true, -# "preference": "2" -# } -# +# Task Output: +# ------------ + +# parsed: +# accept_remote_nexthop: true +# add_path_display_ipv4_address: true +# advertise_bgp_static: +# policy: static-to-bgp +# advertise_from_main_vpn_tables: true +# advertise_inactive: true +# as_number: '65432' +# authentication_algorithm: md5 +# bfd_liveness_detection: +# detection_time: +# threshold: 300000 +# minimum_receive_interval: 4 +# multiplier: 10 +# no_adaptation: true +# transmit_interval: +# minimum_interval: 2 +# version: automatic +# bgp_error_tolerance: +# malformed_route_limit: 20000000 +# bmp: +# monitor: false +# route_monitoring: +# none: true +# damping: true +# description: This is configured with Junos_bgp resource module +# egress_te_sid_stats: true +# groups: +# - name: internal +# out_delay: 8 +# - name: external +# out_delay: 9 +# - name: inboun +# type: internal +# - export: static-to-bgp +# local_address: 10.2.2.2 +# name: ibgp +# neighbors: +# - neighbor_address: 10.1.1.1 +# type: internal +# hold_time: 5 +# holddown_all_stale_labels: true +# include_mp_next_hop: true +# log_updown: true +# no_advertise_peer_as: true +# no_aggregator_id: true +# no_client_reflect: true +# out_delay: 10 +# precision_timers: true +# preference: '2' +# remove_private: +# set: true """ RETURN = """ before: @@ -1723,6 +1806,26 @@ commands: </nc:bmp> </nc:bgp> </nc:protocols>', 'xml 2', 'xml 3'] +rendered: + description: The provided configuration in the task rendered in device-native format (offline). + returned: when I(state) is C(rendered) + type: list + sample: + - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +gathered: + description: Facts about the network resource gathered from the remote device as structured data. + returned: when I(state) is C(gathered) + type: list + sample: > + This output will always be in the same format as the + module argspec. +parsed: + description: The device native config provided in I(running_config) option parsed into structured data as per module argspec. + returned: when I(state) is C(parsed) + type: list + sample: > + This output will always be in the same format as the + module argspec. """ @@ -1745,6 +1848,7 @@ def main(): required_if = [ ("state", "merged", ("config",)), ("state", "replaced", ("config",)), + ("state", "overridden", ("config",)), ("state", "rendered", ("config",)), ("state", "parsed", ("running_config",)), ] diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_command.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_command.py index ec713f230..602a24138 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_command.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_command.py @@ -114,17 +114,17 @@ EXAMPLES = """ - name: run multiple commands on remote nodes junipernetworks.junos.junos_command: commands: - - show version - - show interfaces + - show version + - show interfaces - name: run multiple commands and evaluate the output junipernetworks.junos.junos_command: commands: - - show version - - show interfaces + - show version + - show interfaces wait_for: - - result[0] contains Juniper - - result[1] contains Loopback0 + - result[0] contains Juniper + - result[1] contains Loopback0 - name: run commands and specify the output format junipernetworks.junos.junos_command: @@ -204,7 +204,6 @@ USE_PERSISTENT_CONNECTION = True def rpc(module, items): - responses = list() for item in items: name = item["name"] diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_config.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_config.py index c8bfde10c..5b5151d39 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_config.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_config.py @@ -62,7 +62,7 @@ options: back to initial defaults. This argument will effectively remove all current configuration statements on the remote device. type: bool - default: no + default: false confirm: description: - The C(confirm) argument will configure a time out value in minutes for the commit @@ -95,7 +95,7 @@ options: playbook root directory or role root directory, if playbook is part of an ansible role. If the directory does not exist, it is created. type: bool - default: no + default: false update: description: - This argument will decide how to load the configuration data particularly when @@ -124,19 +124,19 @@ options: - This argument will execute commit operation on remote device. It can be used to confirm a previous commit. type: bool - default: no + default: false check_commit: description: - This argument will check correctness of syntax; do not apply changes. - Note that this argument can be used to confirm verified configuration done via commit confirmed operation type: bool - default: no + default: false backup_options: description: - This is a dict object containing configurable options related to backup file - path. The value of this option is read only when C(backup) is set to I(yes), - if C(backup) is set to I(no) this option will be silently ignored. + path. The value of this option is read only when C(backup) is set to I(true), + if C(backup) is set to I(false) this option will be silently ignored. suboptions: filename: description: @@ -172,8 +172,7 @@ requirements: notes: - This module requires the netconf system service be enabled on the remote device being managed. -- Abbreviated commands are NOT idempotent, see L(Network FAQ,../network/user_guide/faq.html - #why-do-the-config-modules-always-return-changed-true-with-abbreviated-commands). +- Abbreviated commands are NOT idempotent, see L(Network FAQ,../network/user_guide/faq.html) - Loading JSON-formatted configuration I(json) is supported starting in Junos OS Release 16.1 onwards. - Update C(override) not currently compatible with C(set) notation. @@ -191,20 +190,20 @@ EXAMPLES = """ - name: load configure lines into device junipernetworks.junos.junos_config: lines: - - set interfaces ge-0/0/1 unit 0 description "Test interface" - - set vlans vlan01 description "Test vlan" + - set interfaces ge-0/0/1 unit 0 description "Test interface" + - set vlans vlan01 description "Test vlan" comment: update config - name: Set routed VLAN interface (RVI) IPv4 address junipernetworks.junos.junos_config: lines: - - set vlans vlan01 vlan-id 1 - - set interfaces irb unit 10 family inet address 10.0.0.1/24 - - set vlans vlan01 l3-interface irb.10 + - set vlans vlan01 vlan-id 1 + - set interfaces irb unit 10 family inet address 10.0.0.1/24 + - set vlans vlan01 l3-interface irb.10 - name: Check correctness of commit configuration junipernetworks.junos.junos_config: - check_commit: yes + check_commit: true - name: rollback the configuration to id 10 junipernetworks.junos.junos_config: @@ -212,31 +211,30 @@ EXAMPLES = """ - name: zero out the current configuration junipernetworks.junos.junos_config: - zeroize: yes + zeroize: true - name: Set VLAN access and trunking junipernetworks.junos.junos_config: lines: - - set vlans vlan02 vlan-id 6 - - set interfaces ge-0/0/6.0 family ethernet-switching interface-mode access vlan - members vlan02 - - set interfaces ge-0/0/6.0 family ethernet-switching interface-mode trunk vlan - members vlan02 + - set vlans vlan02 vlan-id 6 + - set interfaces ge-0/0/6.0 family ethernet-switching interface-mode access vlan + members vlan02 + - set interfaces ge-0/0/6.0 family ethernet-switching interface-mode trunk vlan + members vlan02 - name: confirm a previous commit junipernetworks.junos.junos_config: - confirm_commit: yes + confirm_commit: true - name: for idempotency, use full-form commands junipernetworks.junos.junos_config: lines: - # - set int ge-0/0/1 unit 0 desc "Test interface" - - set interfaces ge-0/0/1 unit 0 description "Test interface" + - set interfaces ge-0/0/1 unit 0 description "Test interface" - name: configurable backup path junipernetworks.junos.junos_config: src: srx.cfg - backup: yes + backup: true backup_options: filename: backup.cfg dir_path: /home/user @@ -245,27 +243,27 @@ EXAMPLES = """ RETURN = """ backup_path: description: The full path to the backup file - returned: when backup is yes + returned: when backup is true type: str sample: /playbooks/ansible/backup/config.2016-07-16@22:28:34 filename: description: The name of the backup file - returned: when backup is yes and filename is not specified in backup options + returned: when backup is true and filename is not specified in backup options type: str sample: junos01_config.2016-07-16@22:28:34 shortname: description: The full path to the backup file excluding the timestamp - returned: when backup is yes and filename is not specified in backup options + returned: when backup is true and filename is not specified in backup options type: str sample: /playbooks/ansible/backup/junos01_config date: description: The date extracted from the backup file name - returned: when backup is yes + returned: when backup is true type: str sample: "2016-07-16" time: description: The time extracted from the backup file name - returned: when backup is yes + returned: when backup is true type: str sample: "22:28:34" """ @@ -366,7 +364,6 @@ def filter_delete_statements(module, candidate): def configure_device(module, warnings, candidate): - kwargs = {} config_format = None @@ -468,7 +465,7 @@ def main(): result["__backup__"] = reply rollback_id = module.params["rollback"] - if rollback_id: + if isinstance(rollback_id, int) and rollback_id >= 0: diff = rollback(module, rollback_id) if commit: kwargs = {"comment": module.params["comment"]} diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_hostname.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_hostname.py index 093645a6f..86eb0f7df 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_hostname.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_hostname.py @@ -300,7 +300,6 @@ EXAMPLES = """ # "hostname": "vsrx-18.4R1" # } # - """ RETURN = """ before: diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_interfaces.py index f3b749d63..04f65df96 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_interfaces.py @@ -134,57 +134,163 @@ notes: being managed. - Tested against vSRX JUNOS version 18.4R1. - This module works with connection C(netconf). -- See L(the Junos OS Platform Options,https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html). + See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html) +- The module examples uses callback plugin (stdout_callback = yaml) to generate task + output in yaml format. """ EXAMPLES = """ -# Using deleted +# Using merged # Before state: # ------------- +# # user@junos01# show interfaces # ge-0/0/1 { -# description "Configured by Ansible-1"; -# speed 1g; -# mtu 1800 -# unit 0 { -# description "This is logical intf unit0"; +# description "test interface"; +# speed 1g; # } -# ge-0/0/2 { -# description "Configured by Ansible-2"; -# ether-options { -# auto-negotiation; -# } +# fe-0/0/2 { +# vlan-tagging; +# unit 10 { +# vlan-id 10; +# } +# unit 11 { +# vlan-id 11; +# } +# } +# ge-0/0/3 { +# description "Configured by Ansible-3"; +# } +# fxp0 { +# unit 0 { +# family inet { +# dhcp; +# } +# } +# } +# lo0 { +# unit 0 { +# family inet { +# address 192.0.2.1/32; +# } +# } # } -- name: "Delete given options for the interface (Note: This won't delete the interface itself if any other values are configured for interface)" +- name: Merge provided configuration with device configuration (default operation + is merge) junipernetworks.junos.junos_interfaces: config: - - name: ge-0/0/1 - description: Configured by Ansible-1 - speed: 1g - mtu: 1800 - - name: ge-0/0/2 - description: Configured by Ansible -2 - state: deleted + - name: ge-0/0/1 + description: Configured by Ansible-1 + enabled: true + units: + - name: 0 + description: "This is logical intf unit0" + mtu: 1800 + - name: ge-0/0/2 + description: Configured by Ansible-2 + enabled: false + state: merged + +# Task Output +# ----------- +# +# before: +# - description: test interface +# enabled: true +# name: ge-0/0/1 +# speed: 1g +# - enabled: true +# name: fe-0/0/2 +# - description: Configured by Ansible-3 +# enabled: true +# name: ge-0/0/3 +# - enabled: true +# name: fxp0 +# - enabled: true +# name: lo0 +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface><nc:name>ge-0/0/1</nc:name> +# <nc:description>Configured by Ansible-1</nc:description><nc:mtu>1800</nc:mtu><nc:unit><nc:name>0</nc:name> +# <nc:description>This is logical intf unit0</nc:description></nc:unit></nc:interface><nc:interface><nc:name>ge-0/0/2</nc:name> +# <nc:description>Configured by Ansible-2</nc:description><nc:disable/></nc:interface></nc:interfaces> +# after: +# - description: Configured by Ansible-1 +# enabled: true +# mtu: 1800 +# name: ge-0/0/1 +# speed: 1g +# units: +# - description: This is logical intf unit0 +# name: 0 +# - enabled: true +# name: fe-0/0/2 +# - description: Configured by Ansible-2 +# enabled: false +# name: ge-0/0/2 +# - description: Configured by Ansible-3 +# enabled: true +# name: ge-0/0/3 +# - enabled: true +# name: fxp0 +# - enabled: true +# name: lo0 # After state: # ------------ +# # user@junos01# show interfaces +# ge-0/0/1 { +# description "Configured by Ansible-1"; +# speed 1g; +# mtu 1800; +# unit 0 { +# description "This is logical intf unit0"; +# } +# } +# fe-0/0/2 { +# vlan-tagging; +# unit 10 { +# vlan-id 10; +# } +# unit 11 { +# vlan-id 11; +# } +# } # ge-0/0/2 { -# ether-options { -# auto-negotiation; -# } +# description "Configured by Ansible-2"; +# disable; +# } +# ge-0/0/3 { +# description "Configured by Ansible-3"; +# } +# fxp0 { +# unit 0 { +# family inet { +# dhcp; +# } +# } +# } +# lo0 { +# unit 0 { +# family inet { +# address 192.0.2.1/32; +# } +# } # } - -# Using merged +# Using deleted # Before state: # ------------- -# user@junos01# show interfaces +# # ge-0/0/1 { -# description "test interface"; -# speed 1g; +# description "Configured by Ansible-1"; +# speed 1g; +# mtu 1800; +# unit 0 { +# description "This is logical intf unit0"; +# } # } # fe-0/0/2 { # vlan-tagging; @@ -195,82 +301,262 @@ EXAMPLES = """ # vlan-id 11; # } # } +# ge-0/0/2 { +# description "Configured by Ansible-2"; +# disable; +# } +# ge-0/0/3 { +# description "Configured by Ansible-3"; +# } +# fxp0 { +# unit 0 { +# family inet { +# dhcp; +# } +# } +# } +# lo0 { +# unit 0 { +# family inet { +# address 192.0.2.1/32; +# } +# } +# } -- name: Merge provided configuration with device configuration (default operation - is merge) +- name: "Delete given options for the interface (Note: This won't delete the interface itself if any other values are configured for interface)" junipernetworks.junos.junos_interfaces: config: - - name: ge-0/0/1 - description: Configured by Ansible-1 - enabled: true - units: - - name: 0 - description: "This is logical intf unit0" - mtu: 1800 - - name: ge-0/0/2 - description: Configured by Ansible-2 - enabled: false - state: merged + - name: ge-0/0/1 + description: Configured by Ansible-1 + speed: 1g + mtu: 1800 + - name: ge-0/0/2 + description: Configured by Ansible -2 + state: deleted + +# Task Output +# ----------- +# +# before: +# - description: Configured by Ansible-1 +# enabled: true +# mtu: 1800 +# name: ge-0/0/1 +# speed: 1g +# units: +# - description: This is logical intf unit0 +# name: 0 +# - enabled: true +# name: fe-0/0/2 +# - description: Configured by Ansible-2 +# enabled: false +# name: ge-0/0/2 +# - description: Configured by Ansible-3 +# enabled: true +# name: ge-0/0/3 +# - enabled: true +# name: fxp0 +# - enabled: true +# name: lo0 +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface> +# <nc:name>ge-0/0/1</nc:name><nc:description delete="delete"/> +# <nc:speed delete="delete"/><nc:mtu delete="delete"/><nc:link-mode delete="delete"/> +# <nc:disable delete="delete"/><nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time><nc:unit> +# <nc:name>0</nc:name><nc:description delete="delete"/></nc:unit></nc:interface><nc:interface><nc:name>ge-0/0/2</nc:name> +# <nc:description delete="delete"/><nc:speed delete="delete"/><nc:mtu delete="delete"/><nc:link-mode delete="delete"/> +# <nc:disable delete="delete"/><nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time></nc:interface> +# </nc:interfaces> +# after: +# - enabled: true +# name: ge-0/0/1 +# - enabled: true +# name: fe-0/0/2 +# - description: Configured by Ansible-3 +# enabled: true +# name: ge-0/0/3 +# - enabled: true +# name: fxp0 +# - enabled: true +# name: lo0 # After state: # ------------ +# # user@junos01# show interfaces # ge-0/0/1 { -# description "Configured by Ansible-1"; -# speed 1g; -# mtu 1800 -# unit 0 { -# description "This is logical intf unit0"; -# } +# unit 0; # } -# ge-0/0/2 { -# disable; -# description "Configured by Ansible-2"; +# fe-0/0/2 { +# vlan-tagging; +# unit 10 { +# vlan-id 10; +# } +# unit 11 { +# vlan-id 11; +# } +# } +# ge-0/0/3 { +# description "Configured by Ansible-3"; +# } +# fxp0 { +# unit 0 { +# family inet { +# dhcp; +# } +# } +# } +# lo0 { +# unit 0 { +# family inet { +# address 192.0.2.1/32; +# } +# } # } - # Using overridden # Before state: # ------------- +# # user@junos01# show interfaces # ge-0/0/1 { -# description "Configured by Ansible-1"; -# speed 1g; -# mtu 1800 +# unit 0; # } -# ge-0/0/2 { -# disable; -# description "Configured by Ansible-2"; -# ether-options { -# auto-negotiation; -# } +# fe-0/0/2 { +# vlan-tagging; +# unit 10 { +# vlan-id 10; +# } +# unit 11 { +# vlan-id 11; +# } +# } +# ge-0/0/3 { +# description "Configured by Ansible-3"; +# } +# fxp0 { +# unit 0 { +# family inet { +# dhcp; +# } +# } # } -# ge-0/0/11 { -# description "Configured by Ansible-11"; +# lo0 { +# unit 0 { +# family inet { +# address 192.0.2.1/32; +# } +# } # } - name: Override device configuration of all interfaces with provided configuration junipernetworks.junos.junos_interfaces: config: - - name: ge-0/0/2 - description: Configured by Ansible-2 - enabled: false - mtu: 2800 - - name: ge-0/0/3 - description: Configured by Ansible-3 + - enabled: true + name: ge-0/0/1 + - name: fe-0/0/2 + description: Configured by Ansible-2 + enabled: false + mtu: 2800 + - description: Updated by Ansible-3 + enabled: true + name: ge-0/0/3 + - enabled: true + name: fxp0 + - enabled: true + name: lo0 state: overridden +# Task Output +# ----------- +# +# before: +# - enabled: true +# name: ge-0/0/1 +# - enabled: true +# name: fe-0/0/2 +# - description: Configured by Ansible-3 +# enabled: true +# name: ge-0/0/3 +# - enabled: true +# name: fxp0 +# - enabled: true +# name: lo0 +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:interface><nc:name>ge-0/0/1</nc:name><nc:description delete="delete"/> +# <nc:speed delete="delete"/><nc:mtu delete="delete"/><nc:link-mode delete="delete"/> +# <nc:disable delete="delete"/><nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/> +# </nc:hold-time></nc:interface><nc:interface><nc:name>fe-0/0/2</nc:name><nc:description delete="delete"/> +# <nc:speed delete="delete"/><nc:mtu delete="delete"/><nc:link-mode delete="delete"/><nc:disable delete="delete"/> +# <nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time></nc:interface><nc:interface> +# <nc:name>ge-0/0/3</nc:name><nc:description delete="delete"/><nc:speed delete="delete"/><nc:mtu delete="delete"/> +# <nc:link-mode delete="delete"/><nc:disable delete="delete"/><nc:hold-time> +# <nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time></nc:interface> +# <nc:interface><nc:name>fxp0</nc:name><nc:description delete="delete"/><nc:speed delete="delete"/> +# <nc:link-mode delete="delete"/><nc:disable delete="delete"/> +# <nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/> +# </nc:hold-time></nc:interface><nc:interface><nc:name>lo0</nc:name> +# <nc:description delete="delete"/><nc:disable delete="delete"/> +# <nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/> +# </nc:hold-time></nc:interface><nc:interface><nc:name>ge-0/0/1</nc:name> +# </nc:interface><nc:interface><nc:name>fe-0/0/2</nc:name> +# <nc:description>Configured by Ansible-2</nc:description> +# <nc:mtu>2800</nc:mtu><nc:disable/></nc:interface><nc:interface> +# <nc:name>ge-0/0/3</nc:name><nc:description>Updated by Ansible-3</nc:description> +# </nc:interface><nc:interface><nc:name>fxp0</nc:name></nc:interface><nc:interface> +# <nc:name>lo0</nc:name></nc:interface></nc:interfaces> +# after: +# - enabled: true +# name: ge-0/0/1 +# - description: Configured by Ansible-2 +# enabled: false +# mtu: 2800 +# name: fe-0/0/2 +# - description: Updated by Ansible-3 +# enabled: true +# name: ge-0/0/3 +# - enabled: true +# name: fxp0 +# - enabled: true +# name: lo0 + # After state: # ------------ +# # user@junos01# show interfaces -# ge-0/0/2 { -# disable; -# description "Configured by Ansible-2"; -# mtu 2800 +# ge-0/0/1 { +# unit 0; +# } +# fe-0/0/2 { +# description "Configured by Ansible-2"; +# disable; +# vlan-tagging; +# mtu 2800; +# unit 10 { +# vlan-id 10; +# } +# unit 11 { +# vlan-id 11; +# } # } # ge-0/0/3 { -# description "Configured by Ansible-3"; +# description "Updated by Ansible-3"; +# } +# fxp0 { +# unit 0 { +# family inet { +# dhcp; +# } +# } +# } +# lo0 { +# unit 0 { +# family inet { +# address 192.0.2.1/32; +# } +# } # } @@ -278,143 +564,212 @@ EXAMPLES = """ # Before state: # ------------- +# # user@junos01# show interfaces # ge-0/0/1 { -# description "Configured by Ansible-1"; -# speed 1g; -# mtu 1800 +# unit 0; # } -# ge-0/0/2 { -# disable; -# mtu 1800; -# speed 1g; -# description "Configured by Ansible-2"; -# ether-options { -# auto-negotiation; -# } +# fe-0/0/2 { +# description "Configured by Ansible-2"; +# disable; +# vlan-tagging; +# mtu 2800; +# unit 10 { +# vlan-id 10; +# } +# unit 11 { +# vlan-id 11; +# } +# } +# ge-0/0/3 { +# description "Updated by Ansible-3"; # } -# ge-0/0/11 { -# description "Configured by Ansible-11"; +# fxp0 { +# unit 0 { +# family inet { +# dhcp; +# } +# } +# } +# lo0 { +# unit 0 { +# family inet { +# address 192.0.2.1/32; +# } +# } # } -- name: Replaces device configuration of listed interfaces with provided configuration +- name: Replace device configuration of listed interfaces with provided configuration junipernetworks.junos.junos_interfaces: config: - - name: ge-0/0/2 - description: Configured by Ansible-2 - enabled: false - mtu: 2800 - - name: ge-0/0/3 - description: Configured by Ansible-3 + - name: ge-0/0/2 + description: Configured by Ansible-2 + enabled: false + mtu: 2800 + - name: ge-0/0/3 + description: Configured by Ansible-3 state: replaced +# Task Output +# ----------- +# +# before: +# - enabled: true +# name: ge-0/0/1 +# - description: Configured by Ansible-2 +# enabled: false +# mtu: 2800 +# name: fe-0/0/2 +# - description: Updated by Ansible-3 +# enabled: true +# name: ge-0/0/3 +# - enabled: true +# name: fxp0 +# - enabled: true +# name: lo0 +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface> +# <nc:name>ge-0/0/2</nc:name><nc:description delete="delete"/><nc:speed delete="delete"/> +# <nc:mtu delete="delete"/><nc:link-mode delete="delete"/><nc:disable delete="delete"/> +# <nc:hold-time><nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time></nc:interface> +# <nc:interface><nc:name>ge-0/0/3</nc:name><nc:description delete="delete"/><nc:speed delete="delete"/> +# <nc:mtu delete="delete"/><nc:link-mode delete="delete"/><nc:disable delete="delete"/><nc:hold-time> +# <nc:up delete="delete"/><nc:down delete="delete"/></nc:hold-time></nc:interface><nc:interface><nc:name>ge-0/0/2</nc:name> +# <nc:description>Configured by Ansible-2</nc:description><nc:mtu>2800</nc:mtu><nc:disable/></nc:interface><nc:interface> +# <nc:name>ge-0/0/3</nc:name><nc:description>Configured by Ansible-3</nc:description></nc:interface></nc:interfaces> +# after: +# - enabled: true +# name: ge-0/0/1 +# - description: Configured by Ansible-2 +# enabled: false +# mtu: 2800 +# name: fe-0/0/2 +# - description: Configured by Ansible-2 +# enabled: false +# mtu: 2800 +# name: ge-0/0/2 +# - description: Configured by Ansible-3 +# enabled: true +# name: ge-0/0/3 +# - enabled: true +# name: fxp0 +# - enabled: true +# name: lo0 + # After state: # ------------ +# # user@junos01# show interfaces # ge-0/0/1 { -# description "Configured by Ansible-1"; -# speed 1g; -# mtu 1800 -# } -# ge-0/0/2 { -# disable; -# description "Configured by Ansible-2"; -# mtu 2800 -# } -# ge-0/0/3 { -# description "Configured by Ansible-3"; -# } -# ge-0/0/11 { -# description "Configured by Ansible-11"; +# unit 0; # } -# Using gathered -# Before state: -# ------------ -# -# vagrant@vsrx# show interfaces # fe-0/0/2 { -# description "This is interface DESCRIPTION"; +# description "Configured by Ansible-2"; +# disable; # vlan-tagging; +# mtu 2800; # unit 10 { -# description "UNIT 10 DESCRIPTION"; # vlan-id 10; # } # unit 11 { -# description "UNIT 11 DESCRIPTION"; # vlan-id 11; # } # } +# ge-0/0/2 { +# description "Configured by Ansible-2"; +# disable; +# mtu 2800; +# } +# ge-0/0/3 { +# description "Configured by Ansible-3"; +# } # fxp0 { -# description OUTER; # unit 0 { -# description "Sample config"; # family inet { # dhcp; # } # } # } -# -- name: Gather junos interfaces as in given arguments - junipernetworks.junos.junos_interfaces: - state: gathered -# Task Output (redacted) -# ----------------------- -# -# "gathered": [ -# { -# "description": "This is interface DESCRIPTION", -# "enabled": true, -# "name": "fe-0/0/2", -# "units": [ -# { -# "description": "UNIT 10 DESCRIPTION", -# "name": 10 -# }, -# { -# "description": "UNIT 11 DESCRIPTION", -# "name": 11 -# } -# ] -# }, -# { -# "description": "OUTER", -# "enabled": true, -# "name": "fxp0", -# "units": [ -# { -# "description": "Sample config", -# "name": 0 -# } -# ] +# lo0 { +# unit 0 { +# family inet { +# address 192.0.2.1/32; # } -# ] -# After state: +# } +# } + +# Using gathered + +# Before state: # ------------ # # vagrant@vsrx# show interfaces +# ge-0/0/1 { +# unit 0; +# } # fe-0/0/2 { -# description "This is interface DESCRIPTION"; +# description "Configured by Ansible-2"; +# disable; # vlan-tagging; +# mtu 2800; # unit 10 { -# description "UNIT 10 DESCRIPTION"; # vlan-id 10; # } # unit 11 { -# description "UNIT 11 DESCRIPTION"; # vlan-id 11; # } # } +# ge-0/0/2 { +# description "Configured by Ansible-2"; +# disable; +# mtu 2800; +# } +# ge-0/0/3 { +# description "Configured by Ansible-3"; +# } # fxp0 { -# description OUTER; # unit 0 { -# description "Sample config"; # family inet { # dhcp; # } # } # } +# lo0 { +# unit 0 { +# family inet { +# address 192.0.2.1/32; +# } +# } +# } + +- name: Gather junos interfaces as in given arguments + junipernetworks.junos.junos_interfaces: + state: gathered + +# Task Output +# ----------- # +# gathered: +# - enabled: true +# name: ge-0/0/1 +# - description: Configured by Ansible-2 +# enabled: false +# mtu: 2800 +# name: fe-0/0/2 +# - description: Configured by Ansible-2 +# enabled: false +# mtu: 2800 +# name: ge-0/0/2 +# - description: Configured by Ansible-3 +# enabled: true +# name: ge-0/0/3 +# - enabled: true +# name: fxp0 +# - enabled: true +# name: lo0 + # Using parsed + # parsed.cfg # ------------ # @@ -448,46 +803,48 @@ EXAMPLES = """ # </interfaces> # </configuration> # </rpc-reply> -# - name: Convert interfaces config to argspec without connecting to the appliance + +# - name: Convert interfaces config to structured data without connecting to the appliance # junipernetworks.junos.junos_interfaces: # running_config: "{{ lookup('file', './parsed.cfg') }}" # state: parsed -# Task Output (redacted) -# ----------------------- -# "parsed": [ -# { -# "description": "Configured by Ansible", -# "duplex": "full-duplex", -# "enabled": false, -# "hold_time": { -# "down": 2200, -# "up": 2000 -# }, -# "mtu": 1024, -# "name": "ge-0/0/1", -# "speed": "100m" -# } -# ] + +# Task Output +# ----------- # +# parsed: +# - description: Configured by Ansible +# duplex: full-duplex +# enabled: false +# hold_time: +# down: 2200 +# up: 2000 +# mtu: 1024 +# name: ge-0/0/1 +# speed: 100m + # Using rendered + - name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_interfaces: config: - - name: ge-0/0/2 - description: Configured by Ansibull - mtu: 2048 - speed: 20m - hold_time: - up: 3200 - down: 3200 + - name: ge-0/0/2 + description: Configured by Ansible + mtu: 2048 + speed: 20m + hold_time: + up: 3200 + down: 3200 state: rendered -# Task Output (redacted) -# ----------------------- -# "rendered": <nc:interfaces + +# Task Output +# ----------- +# +# rendered: <nc:interfaces # xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> # <nc:interface> # <nc:name>ge-0/0/2</nc:name> -# <nc:description>Configured by Ansibull</nc:description> +# <nc:description>Configured by Ansible</nc:description> # <nc:speed>20m</nc:speed> # <nc:mtu>2048</nc:mtu> # <nc:hold-time> @@ -496,7 +853,6 @@ EXAMPLES = """ # </nc:hold-time> # </nc:interface> # </nc:interfaces>" - """ RETURN = """ before: @@ -547,6 +903,29 @@ xml: </interfaces> </configuration> </rpc-reply>', 'xml 2', 'xml 3'] +rendered: + description: The provided configuration in the + task rendered in device-native format (offline). + returned: when I(state) is C(rendered) + type: list + sample: + - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +gathered: + description: Facts about the network resource gathered + from the remote device as structured data. + returned: when I(state) is C(gathered) + type: list + sample: > + This output will always be in the same format as the + module argspec. +parsed: + description: The device native config provided in I(running_config) option parsed + into structured data as per module argspec. + returned: when I(state) is C(parsed) + type: list + sample: > + This output will always be in the same format as the + module argspec. """ from ansible.module_utils.basic import AnsibleModule diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_l2_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_l2_interfaces.py index d5def410b..bbd5f25b5 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_l2_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_l2_interfaces.py @@ -113,122 +113,169 @@ notes: - This module requires the netconf system service be enabled on the remote device being managed. - Tested against vSRX JUNOS version 18.4R1. -- This module works with connection C(netconf). See L(the Junos OS Platform Options,../network/user_guide/platform_junos.html). +- This module works with connection C(netconf). + See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html) +- The module examples uses callback plugin (stdout_callback = yaml) to generate task + output in yaml format. """ + EXAMPLES = """ -# Using deleted +# Using merged # Before state: # ------------- # # ansible@junos01# show interfaces # ge-0/0/1 { -# description "L2 interface"; -# speed 1g; -# unit 0 { -# family ethernet-switching { -# interface-mode access; -# vlan { -# members vlan30; -# } -# } -# } -#} -#ge-0/0/2 { -# description "non L2 interface"; -# unit 0 { -# family inet { -# address 192.168.56.14/24; -# } -# } - -- name: "Delete L2 attributes of given interfaces (Note: This won't delete the - interface itself)." - junipernetworks.junos.junos_l2_interfaces: - config: - - name: ge-0/0/1 - - name: ge-0/0/2 - state: deleted - -# After state: -# ------------ -# -# ansible@junos01# show interfaces -# ge-0/0/1 { -# description "L2 interface"; -# speed 1g; +# unit 0 { +# family inet; +# family inet6; +# } +# } +# ge-0/0/2 { +# unit 0 { +# family inet; +# family inet6; +# } # } -#ge-0/0/2 { -# description "non L2 interface"; -# unit 0 { -# family inet { -# address 192.168.56.14/24; -# } -# } - - -# Using merged - -# Before state: -# ------------- -# ansible@junos01# show interfaces # ge-0/0/3 { -# description "test interface"; -# speed 1g; -#} +# unit 0 { +# family ethernet-switching { +# interface-mode access; +# } +# } +# } # ge-0/0/4 { -# description interface-trunk; -# native-vlan-id 100; -# unit 0 { -# family ethernet-switching { -# interface-mode trunk; -# vlan { -# members [ vlan40 ]; -# } -# } -# } -# } - -- name: Merge provided configuration with device configuration (default operation - is merge) +# unit 0 { +# family ethernet-switching { +# interface-mode access; +# } +# } +# } +# fxp0 { +# enable; +# unit 0 { +# family inet { +# dhcp; +# } +# family inet6; +# } +# } + +- name: Merge provided configuration with device configuration junipernetworks.junos.junos_l2_interfaces: config: - - name: ge-0/0/3 - access: - vlan: v101 - - name: ge-0/0/4 - trunk: - allowed_vlans: - - vlan30 - native_vlan: 50 + - name: ge-0/0/3 + access: + vlan: v101 + - name: ge-0/0/4 + trunk: + allowed_vlans: + - vlan30 + native_vlan: 50 state: merged +# Task Output +# ----------- +# +# before: +# - enhanced_layer: true +# name: ge-0/0/3 +# unit: 0 +# - enhanced_layer: true +# name: ge-0/0/4 +# unit: 0 +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:interface> +# <nc:name>ge-0/0/3</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:ethernet-switching> +# <nc:interface-mode>access</nc:interface-mode> +# <nc:vlan> +# <nc:members>v101</nc:members> +# </nc:vlan> +# </nc:ethernet-switching> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/4</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:ethernet-switching> +# <nc:interface-mode>trunk</nc:interface-mode> +# <nc:vlan> +# <nc:members>vlan30</nc:members> +# </nc:vlan> +# </nc:ethernet-switching> +# </nc:family> +# </nc:unit> +# <nc:native-vlan-id>50</nc:native-vlan-id> +# </nc:interface> +# </nc:interfaces> +# after: +# - access: +# vlan: v101 +# enhanced_layer: true +# name: ge-0/0/3 +# unit: 0 +# - enhanced_layer: true +# name: ge-0/0/4 +# trunk: +# allowed_vlans: +# - vlan30 +# native_vlan: '50' +# unit: 0 + # After state: # ------------ +# # user@junos01# show interfaces +# ge-0/0/1 { +# unit 0 { +# family inet; +# family inet6; +# } +# } +# ge-0/0/2 { +# unit 0 { +# family inet; +# family inet6; +# } +# } # ge-0/0/3 { -# description "test interface"; -# speed 1g; -# unit 0 { -# family ethernet-switching { -# interface-mode access; -# vlan { -# members v101; -# } -# } -# } +# unit 0 { +# family ethernet-switching { +# interface-mode access; +# vlan { +# members v101; +# } +# } +# } # } # ge-0/0/4 { -# description interface-trunk; -# native-vlan-id 50; -# unit 0 { -# family ethernet-switching { -# interface-mode trunk; -# vlan { -# members [ vlan40 vlan30 ]; -# } -# } -# } +# native-vlan-id 50; +# unit 0 { +# family ethernet-switching { +# interface-mode trunk; +# vlan { +# members vlan30; +# } +# } +# } +# } +# fxp0 { +# enable; +# unit 0 { +# family inet { +# dhcp; +# } +# family inet6; +# } # } @@ -237,94 +284,211 @@ EXAMPLES = """ # Before state: # ------------- # ansible@junos01# show interfaces +# ge-0/0/1 { +# unit 0 { +# family inet; +# family inet6; +# } +# } +# ge-0/0/2 { +# unit 0 { +# family inet; +# family inet6; +# } +# } # ge-0/0/3 { -# description "test interface"; -# speed 1g; -#} +# unit 0 { +# family ethernet-switching { +# interface-mode access; +# vlan { +# members v101; +# } +# } +# } +# } # ge-0/0/4 { -# description interface-trunk; -# native-vlan-id 100; -# unit 0 { -# family ethernet-switching { -# interface-mode trunk; -# vlan { -# members [ vlan40 ]; -# } -# } -# } -# } -# ge-0/0/5 { -# description "Configured by Ansible-11"; -# unit 0 { -# family ethernet-switching { -# interface-mode access; -# vlan { -# members v101; -# } -# } -# } +# native-vlan-id 50; +# unit 0 { +# family ethernet-switching { +# interface-mode trunk; +# vlan { +# members vlan30; +# } +# } +# } +# } +# fxp0 { +# enable; +# unit 0 { +# family inet { +# dhcp; +# } +# family inet6; +# } # } - name: Override provided configuration with device configuration junipernetworks.junos.junos_l2_interfaces: config: - - name: ge-0/0/3 - access: - vlan: v101 - name: ge-0/0/4 trunk: allowed_vlans: - - vlan30 - native_vlan: 50 + - v101 + native_vlan: 30 state: overridden +# Task Output +# ----------- +# +# before: +# - access: +# vlan: v101 +# enhanced_layer: true +# name: ge-0/0/3 +# unit: 0 +# - enhanced_layer: true +# name: ge-0/0/4 +# trunk: +# allowed_vlans: +# - vlan30 +# native_vlan: '50' +# unit: 0 +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:interface> +# <nc:name>ge-0/0/4</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:ethernet-switching> +# <nc:interface-mode delete="delete"/> +# <nc:vlan delete="delete"/> +# </nc:ethernet-switching> +# </nc:family> +# </nc:unit> +# <nc:native-vlan-id delete="delete"/> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/4</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:ethernet-switching> +# <nc:interface-mode>trunk</nc:interface-mode> +# <nc:vlan> +# <nc:members>v101</nc:members> +# </nc:vlan> +# </nc:ethernet-switching> +# </nc:family> +# </nc:unit> +# <nc:native-vlan-id>30</nc:native-vlan-id> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/3</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:ethernet-switching> +# <nc:interface-mode delete="delete"/> +# <nc:vlan delete="delete"/> +# </nc:ethernet-switching> +# </nc:family> +# </nc:unit> +# <nc:native-vlan-id delete="delete"/> +# </nc:interface> +# </nc:interfaces> +# after: +# - enhanced_layer: true +# name: ge-0/0/4 +# trunk: +# allowed_vlans: +# - v101 +# native_vlan: '30' +# unit: 0 + # After state: # ------------ # user@junos01# show interfaces +# ge-0/0/1 { +# unit 0 { +# family inet; +# family inet6; +# } +# } +# ge-0/0/2 { +# unit 0 { +# family inet; +# family inet6; +# } +# } # ge-0/0/3 { -# unit 0 { -# family ethernet-switching { -# interface-mode access; -# vlan { -# members v101; -# } -# } -# } +# unit 0 { +# family ethernet-switching; +# } # } # ge-0/0/4 { -# description interface-trunk; -# native-vlan-id 50; -# unit 0 { -# family ethernet-switching { -# interface-mode trunk; -# vlan { -# members [ vlan30 ]; -# } -# } -# } +# native-vlan-id 30; +# unit 0 { +# family ethernet-switching { +# interface-mode trunk; +# vlan { +# members v101; +# } +# } +# } +# } +# fxp0 { +# enable; +# unit 0 { +# family inet { +# dhcp; +# } +# family inet6; +# } # } - # Using replaced # Before state: # ------------- +# # ansible@junos01# show interfaces +# ge-0/0/1 { +# unit 0 { +# family inet; +# family inet6; +# } +# } +# ge-0/0/2 { +# unit 0 { +# family inet; +# family inet6; +# } +# } # ge-0/0/3 { -# description "test interface"; -# speed 1g; -#} +# unit 0 { +# family ethernet-switching; +# } +# } # ge-0/0/4 { -# description interface-trunk; -# native-vlan-id 100; -# unit 0 { -# family ethernet-switching { -# interface-mode trunk; -# vlan { -# members [ vlan40 ]; -# } -# } -# } +# native-vlan-id 30; +# unit 0 { +# family ethernet-switching { +# interface-mode trunk; +# vlan { +# members v101; +# } +# } +# } +# } +# fxp0 { +# enable; +# unit 0 { +# family inet { +# dhcp; +# } +# family inet6; +# } # } - name: Replace provided configuration with device configuration @@ -340,111 +504,268 @@ EXAMPLES = """ native_vlan: 50 state: replaced +# Task Output +# ----------- +# +# before: +# - enhanced_layer: true +# name: ge-0/0/4 +# trunk: +# allowed_vlans: +# - v101 +# native_vlan: '30' +# unit: 0 +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:interface> +# <nc:name>ge-0/0/4</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:ethernet-switching> +# <nc:interface-mode delete="delete"/> +# <nc:vlan delete="delete"/> +# </nc:ethernet-switching> +# </nc:family> +# </nc:unit> +# <nc:native-vlan-id delete="delete"/> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/3</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:ethernet-switching> +# <nc:interface-mode>access</nc:interface-mode> +# <nc:vlan> +# <nc:members>v101</nc:members> +# </nc:vlan> +# </nc:ethernet-switching> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/4</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:ethernet-switching> +# <nc:interface-mode>trunk</nc:interface-mode> +# <nc:vlan> +# <nc:members>vlan30</nc:members> +# </nc:vlan> +# </nc:ethernet-switching> +# </nc:family> +# </nc:unit> +# <nc:native-vlan-id>50</nc:native-vlan-id> +# </nc:interface> +# </nc:interfaces> +# after: +# - access: +# vlan: v101 +# enhanced_layer: true +# name: ge-0/0/3 +# unit: 0 +# - enhanced_layer: true +# name: ge-0/0/4 +# trunk: +# allowed_vlans: +# - vlan30 +# native_vlan: '50' +# unit: 0 + # After state: # ------------ +# # user@junos01# show interfaces +# ge-0/0/1 { +# unit 0 { +# family inet; +# family inet6; +# } +# } +# ge-0/0/2 { +# unit 0 { +# family inet; +# family inet6; +# } +# } # ge-0/0/3 { -# unit 0 { -# family ethernet-switching { -# interface-mode access; -# vlan { -# members v101; -# } -# } -# } +# unit 0 { +# family ethernet-switching { +# interface-mode access; +# vlan { +# members v101; +# } +# } +# } # } # ge-0/0/4 { -# description interface-trunk; -# native-vlan-id 50; -# unit 0 { -# family ethernet-switching { -# interface-mode trunk; -# vlan { -# members [ vlan30 ]; -# } -# } -# } +# native-vlan-id 50; +# unit 0 { +# family ethernet-switching { +# interface-mode trunk; +# vlan { +# members vlan30; +# } +# } +# } # } -# Using gathered +# fxp0 { +# enable; +# unit 0 { +# family inet { +# dhcp; +# } +# family inet6; +# } +# } + +# Using deleted + # Before state: -# ------------ +# ------------- # -# user@junos01# show interfaces +# ansible@junos01# show interfaces # ge-0/0/1 { -# description "Configured by Ansible"; -# disable; -# speed 100m; -# mtu 1024; -# hold-time up 2000 down 2200; -# link-mode full-duplex; +# unit 0 { +# family inet; +# family inet6; +# } +# } +# ge-0/0/2 { +# unit 0 { +# family inet; +# family inet6; +# } +# } +# ge-0/0/3 { # unit 0 { # family ethernet-switching { # interface-mode access; # vlan { -# members vlan100; +# members v101; # } # } # } # } -# ge-0/0/2 { -# description "Configured by Ansible"; -# native-vlan-id 400; -# speed 10m; -# mtu 2048; -# hold-time up 3000 down 3200; +# ge-0/0/4 { +# native-vlan-id 50; # unit 0 { # family ethernet-switching { # interface-mode trunk; # vlan { -# members [ vlan200 vlan300 ]; +# members vlan30; # } # } # } # } -# em1 { -# description TEST; -# } # fxp0 { -# description ANSIBLE; -# speed 1g; -# link-mode automatic; +# enable; # unit 0 { # family inet { -# address 10.8.38.38/24; +# dhcp; # } +# family inet6; # } # } -- name: Gather junos layer 2 interfaces as in given arguments + +- name: "Delete L2 attributes of given interfaces (Note: This won't delete the + interface itself)." junipernetworks.junos.junos_l2_interfaces: - state: gathered -# Task Output (redacted) -# ----------------------- + config: + - name: ge-0/0/1 + - name: ge-0/0/2 + state: deleted + +# Task Output +# ----------- # -# "gathered": [ -# { -# "access": { -# "vlan": "vlan100" -# }, -# "enhanced_layer": true, -# "name": "ge-0/0/1", -# "unit": 0 -# }, -# { -# "enhanced_layer": true, -# "name": "ge-0/0/2", -# "trunk": { -# "allowed_vlans": [ -# "vlan200", -# "vlan300" -# ], -# "native_vlan": "400" -# }, -# "unit": 0 -# } -# ] +# before: +# - access: +# vlan: v101 +# enhanced_layer: true +# name: ge-0/0/3 +# unit: 0 +# - enhanced_layer: true +# name: ge-0/0/4 +# trunk: +# allowed_vlans: +# - vlan30 +# native_vlan: '50' +# unit: 0 +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:interface> +# <nc:name>ge-0/0/3</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:ethernet-switching> +# <nc:interface-mode delete="delete"/> +# <nc:vlan delete="delete"/> +# </nc:ethernet-switching> +# </nc:family> +# </nc:unit> +# <nc:native-vlan-id delete="delete"/> +# </nc:interface> +# </nc:interfaces> +# after: +# - enhanced_layer: true +# name: ge-0/0/4 +# trunk: +# allowed_vlans: +# - vlan30 +# native_vlan: '50' +# unit: 0 + # After state: # ------------ # +# ansible@junos01# show interfaces +# ge-0/0/1 { +# unit 0 { +# family inet; +# family inet6; +# } +# } +# ge-0/0/2 { +# unit 0 { +# family inet; +# family inet6; +# } +# } +# ge-0/0/3 { +# unit 0 { +# family ethernet-switching; +# } +# } +# ge-0/0/4 { +# native-vlan-id 50; +# unit 0 { +# family ethernet-switching { +# interface-mode trunk; +# vlan { +# members vlan30; +# } +# } +# } +# } +# fxp0 { +# enable; +# unit 0 { +# family inet { +# dhcp; +# } +# family inet6; +# } +# } + +# Using gathered + +# Before state: +# ------------- +# # user@junos01# show interfaces # ge-0/0/1 { # description "Configured by Ansible"; @@ -490,7 +811,31 @@ EXAMPLES = """ # } # } # } + +- name: Gather junos layer 2 interfaces facts + junipernetworks.junos.junos_l2_interfaces: + state: gathered + +# Task Output +# ----------- +# +# gathered: +# - access: +# vlan: vlan100 +# enhanced_layer: true +# name: ge-0/0/1 +# unit: 0 +# - enhanced_layer: true +# name: ge-0/0/2 +# trunk: +# allowed_vlans: +# - vlan200 +# - vlan300 +# native_vlan: '400' +# unit: 0 + # Using parsed + # parsed.cfg # ------------ # @@ -524,36 +869,32 @@ EXAMPLES = """ # </interfaces> # </configuration> # </rpc-reply> -# - name: Convert interfaces config to argspec without connecting to the appliance -# junipernetworks.junos.junos_l2_interfaces: -# running_config: "{{ lookup('file', './parsed.cfg') }}" -# state: parsed -# Task Output (redacted) -# ----------------------- -# "parsed": [ -# { -# "access": { -# "vlan": "vlan100" -# }, -# "enhanced_layer": true, -# "name": "ge-0/0/1", -# "unit": 0 -# }, -# { -# "enhanced_layer": true, -# "name": "ge-0/0/2", -# "trunk": { -# "allowed_vlans": [ -# "vlan200", -# "vlan300" -# ], -# "native_vlan": "400" -# }, -# "unit": 0 -# } -# ] + +- name: Convert interfaces config to argspec without connecting to the appliance + junipernetworks.junos.junos_l2_interfaces: + running_config: "{{ lookup('file', './parsed.cfg') }}" + state: parsed + +# Task Output +# ----------- # +# parsed: +# - access: +# vlan: vlan100 +# enhanced_layer: true +# name: ge-0/0/1 +# unit: 0 +# - enhanced_layer: true +# name: ge-0/0/2 +# trunk: +# allowed_vlans: +# - vlan200 +# - vlan300 +# native_vlan: '400' +# unit: 0 + # Using rendered + - name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_l2_interfaces: config: @@ -567,10 +908,11 @@ EXAMPLES = """ - vlan300 native_vlan: '400' state: rendered -# Task Output (redacted) -# ----------------------- -# "rendered": "<nc:interfaces -# xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> + +# Task Output +# ----------- +# +# "rendered": "<nc:interfaces xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> # <nc:interface> # <nc:name>ge-0/0/1</nc:name> # <nc:unit> @@ -602,8 +944,8 @@ EXAMPLES = """ # <nc:native-vlan-id>400</nc:native-vlan-id> # </nc:interface> # </nc:interfaces>" - """ + RETURN = """ before: description: The configuration as structured data prior to module invocation. @@ -624,38 +966,61 @@ commands: returned: always type: list sample: ['<nc:interfaces - xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> - <nc:interface> - <nc:name>ge-0/0/1</nc:name> - <nc:unit> - <nc:name>0</nc:name> - <nc:family> - <nc:ethernet-switching> - <nc:interface-mode>access</nc:interface-mode> - <nc:vlan> - <nc:members>vlan100</nc:members> - </nc:vlan> - </nc:ethernet-switching> - </nc:family> - </nc:unit> - </nc:interface> - <nc:interface> - <nc:name>ge-0/0/2</nc:name> - <nc:unit> - <nc:name>0</nc:name> - <nc:family> - <nc:ethernet-switching> - <nc:interface-mode>trunk</nc:interface-mode> - <nc:vlan> - <nc:members>vlan200</nc:members> - <nc:members>vlan300</nc:members> - </nc:vlan> - </nc:ethernet-switching> - </nc:family> - </nc:unit> - <nc:native-vlan-id>400</nc:native-vlan-id> - </nc:interface> - </nc:interfaces>', 'xml 2', 'xml 3'] + xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> + <nc:interface> + <nc:name>ge-0/0/1</nc:name> + <nc:unit> + <nc:name>0</nc:name> + <nc:family> + <nc:ethernet-switching> + <nc:interface-mode>access</nc:interface-mode> + <nc:vlan> + <nc:members>vlan100</nc:members> + </nc:vlan> + </nc:ethernet-switching> + </nc:family> + </nc:unit> + </nc:interface> + <nc:interface> + <nc:name>ge-0/0/2</nc:name> + <nc:unit> + <nc:name>0</nc:name> + <nc:family> + <nc:ethernet-switching> + <nc:interface-mode>trunk</nc:interface-mode> + <nc:vlan> + <nc:members>vlan200</nc:members> + <nc:members>vlan300</nc:members> + </nc:vlan> + </nc:ethernet-switching> + </nc:family> + </nc:unit> + <nc:native-vlan-id>400</nc:native-vlan-id> + </nc:interface> +</nc:interfaces>', 'xml 2', 'xml 3'] +rendered: + description: The provided configuration in the + task rendered in device-native format (offline). + returned: when I(state) is C(rendered) + type: list + sample: + - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +gathered: + description: Facts about the network resource gathered + from the remote device as structured data. + returned: when I(state) is C(gathered) + type: list + sample: > + This output will always be in the same format as the + module argspec. +parsed: + description: The device native config provided in I(running_config) option parsed + into structured data as per module argspec. + returned: when I(state) is C(parsed) + type: list + sample: > + This output will always be in the same format as the + module argspec. """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_l3_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_l3_interfaces.py index 3e59e0844..3e9fd57b7 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_l3_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_l3_interfaces.py @@ -43,8 +43,11 @@ requirements: - ncclient (>=v0.6.4) notes: - This module requires the netconf system service be enabled on the device being managed. -- This module works with connection C(netconf). See L(the Junos OS Platform Options,../network/user_guide/platform_junos.html). - Tested against JunOS v18.4R1 +- This module works with connection C(netconf). + See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html) +- The module examples uses callback plugin (stdout_callback = yaml) to generate task + output in yaml format. options: config: description: A dictionary of Layer 3 interface options @@ -111,75 +114,22 @@ options: default: merged """ EXAMPLES = """ -# Using deleted - -# Before state: -# ------------- -# -# admin# show interfaces -# ge-0/0/1 { -# description "L3 interface"; -# unit 0 { -# family inet { -# address 10.200.16.10/24; -# } -# } -# } -# ge-0/0/2 { -# description "non L3 interface"; -# unit 0 { -# family ethernet-switching { -# interface-mode access; -# vlan { -# members 2; -# } -# } -# } -# } - -- name: Delete JUNOS L3 logical interface - junipernetworks.junos.junos_l3_interfaces: - config: - - name: ge-0/0/1 - - name: ge-0/0/2 - state: deleted - -# After state: -# ------------ -# -# admin# show interfaces -# ge-0/0/1 { -# description "deleted L3 interface"; -# } -# ge-0/0/2 { -# description "non L3 interface"; -# unit 0 { -# family ethernet-switching { -# interface-mode access; -# vlan { -# members 2; -# } -# } -# } -# } # Using merged + # Before state # ------------ # # admin# show interfaces -# ge-0/0/1 { -# description "L3 interface"; +# fxp0 { +# enable; # unit 0 { # family inet { -# address 10.200.16.10/24; +# dhcp; # } # } # } -# ge-0/0/2 { -# description "non configured interface"; -# unit 0; -# } -- name: Merge provided configuration with device configuration (default operation is merge) + +- name: Merge provided configuration with device configuration junipernetworks.junos.junos_l3_interfaces: config: - name: ge-0/0/1 @@ -192,15 +142,71 @@ EXAMPLES = """ - address: dhcp state: merged +# Task Output +# ----------- +# +# before: +# - ipv4: +# - address: dhcp +# name: fxp0 +# unit: '0' +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:interface> +# <nc:name>ge-0/0/1</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:address> +# <nc:name>192.168.1.10/24</nc:name> +# </nc:address> +# </nc:inet> +# </nc:family> +# <nc:family> +# <nc:inet6> +# <nc:address> +# <nc:name>8d8d:8d01::1/64</nc:name> +# </nc:address> +# </nc:inet6> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/2</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:dhcp/> +# </nc:inet> +# </nc:family> +# </nc:unit> +# </nc:interface> +# </nc:interfaces> +# after: +# - ipv4: +# - address: 192.168.1.10/24 +# ipv6: +# - address: 8d8d:8d01::1/64 +# name: ge-0/0/1 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: ge-0/0/2 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: fxp0 +# unit: '0' + # After state: # ------------ # # admin# show interfaces # ge-0/0/1 { -# description "L3 interface"; # unit 0 { # family inet { -# address 10.200.16.10/24; # address 192.168.1.10/24; # } # family inet6 { @@ -209,14 +215,20 @@ EXAMPLES = """ # } # } # ge-0/0/2 { -# description "L3 interface with dhcp"; # unit 0 { # family inet { # dhcp; # } # } # } - +# fxp0 { +# enable; +# unit 0 { +# family inet { +# dhcp; +# } +# } +# } # Using overridden @@ -225,26 +237,27 @@ EXAMPLES = """ # # admin# show interfaces # ge-0/0/1 { -# description "L3 interface"; # unit 0 { # family inet { -# address 10.200.16.10/24; +# address 192.168.1.10/24; +# } +# family inet6 { +# address 8d8d:8d01::1/64; # } # } # } # ge-0/0/2 { -# description "L3 interface with dhcp"; # unit 0 { # family inet { # dhcp; # } # } # } -# ge-0/0/3 { -# description "another L3 interface"; +# fxp0 { +# enable; # unit 0 { # family inet { -# address 192.168.1.10/24; +# dhcp; # } # } # } @@ -255,42 +268,139 @@ EXAMPLES = """ - name: ge-0/0/1 ipv4: - address: 192.168.1.10/24 - ipv6: - - address: 8d8d:8d01::1/64 - - name: ge-0/0/2 - ipv6: - - address: 2001:db8:3000::/64 + - ipv4: + - address: dhcp + name: fxp0 + unit: '0' state: overridden +# Task Output +# ----------- +# +# before: +# - ipv4: +# - address: 192.168.1.10/24 +# ipv6: +# - address: 8d8d:8d01::1/64 +# name: ge-0/0/1 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: ge-0/0/2 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: fxp0 +# unit: '0' +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:interface> +# <nc:name>ge-0/0/1</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:address delete="delete"/> +# </nc:inet> +# <nc:inet6> +# <nc:address delete="delete"/> +# </nc:inet6> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/2</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:dhcp delete="delete"/> +# </nc:inet> +# <nc:inet6> +# <nc:address delete="delete"/> +# </nc:inet6> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>fxp0</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:dhcp delete="delete"/> +# </nc:inet> +# <nc:inet6> +# <nc:address delete="delete"/> +# </nc:inet6> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/1</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:address> +# <nc:name>192.168.1.10/24</nc:name> +# </nc:address> +# </nc:inet> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>fxp0</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:dhcp/> +# </nc:inet> +# </nc:family> +# </nc:unit> +# </nc:interface> +# </nc:interfaces> +# after: +# - ipv4: +# - address: 192.168.1.10/24 +# name: ge-0/0/1 +# unit: '0' +# - name: ge-0/0/2 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: fxp0 +# unit: '0' + # After state: # ------------ # # admin# show interfaces # ge-0/0/1 { -# description "L3 interface"; # unit 0 { # family inet { # address 192.168.1.10/24; # } -# family inet6 { -# address 8d8d:8d01::1/64; -# } +# family inet6; # } # } # ge-0/0/2 { -# description "L3 interface with ipv6"; # unit 0 { -# family inet6 { -# address 2001:db8:3000::/64; -# } +# family inet; +# family inet6; # } # } -# ge-0/0/3 { -# description "overridden L3 interface"; -# unit 0; +# fxp0 { +# enable; +# unit 0 { +# family inet { +# dhcp; +# } +# family inet6; +# } # } - # Using replaced # Before state @@ -298,23 +408,26 @@ EXAMPLES = """ # # admin# show interfaces # ge-0/0/1 { -# description "L3 interface"; # unit 0 { # family inet { -# address 10.200.16.10/24; +# address 192.168.1.10/24; # } +# family inet6; # } # } # ge-0/0/2 { -# description "non configured interface"; -# unit 0; +# unit 0 { +# family inet; +# family inet6; +# } # } -# ge-0/0/3 { -# description "another L3 interface"; +# fxp0 { +# enable; # unit 0 { # family inet { -# address 192.168.1.10/24; +# dhcp; # } +# family inet6; # } # } @@ -331,12 +444,101 @@ EXAMPLES = """ - address: dhcp state: replaced +# Task Output +# ----------- +# +# before: +# - ipv4: +# - address: 192.168.1.10/24 +# name: ge-0/0/1 +# unit: '0' +# - name: ge-0/0/2 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: fxp0 +# unit: '0' +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:interface> +# <nc:name>ge-0/0/1</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:address delete="delete"/> +# </nc:inet> +# <nc:inet6> +# <nc:address delete="delete"/> +# </nc:inet6> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/2</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet/> +# <nc:inet6> +# <nc:address delete="delete"/> +# </nc:inet6> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/1</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:address> +# <nc:name>192.168.1.10/24</nc:name> +# </nc:address> +# </nc:inet> +# </nc:family> +# <nc:family> +# <nc:inet6> +# <nc:address> +# <nc:name>8d8d:8d01::1/64</nc:name> +# </nc:address> +# </nc:inet6> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/2</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:dhcp/> +# </nc:inet> +# </nc:family> +# </nc:unit> +# </nc:interface> +# </nc:interfaces> +# after: +# - ipv4: +# - address: 192.168.1.10/24 +# ipv6: +# - address: 8d8d:8d01::1/64 +# name: ge-0/0/1 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: ge-0/0/2 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: fxp0 +# unit: '0' + # After state: # ------------ # # admin# show interfaces # ge-0/0/1 { -# description "L3 interface"; # unit 0 { # family inet { # address 192.168.1.10/24; @@ -347,151 +549,152 @@ EXAMPLES = """ # } # } # ge-0/0/2 { -# description "L3 interface with dhcp"; # unit 0 { # family inet { # dhcp; # } +# family inet6; # } # } -# ge-0/0/3 { -# description "another L3 interface"; +# fxp0 { +# enable; # unit 0 { # family inet { -# address 192.168.1.10/24; +# dhcp; # } +# family inet6; # } # } -# Using gathered + +# Using deleted + # Before state: -# ------------ +# ------------- # -# user@junos01# show interfaces +# admin# show interfaces # ge-0/0/1 { -# description "Configured by Ansible"; -# disable; -# speed 100m; -# mtu 1024; -# hold-time up 2000 down 2200; -# link-mode full-duplex; # unit 0 { -# family ethernet-switching { -# interface-mode access; -# vlan { -# members vlan100; -# } +# family inet { +# address 192.168.1.10/24; +# } +# family inet6 { +# address 8d8d:8d01::1/64; # } # } # } # ge-0/0/2 { -# description "Configured by Ansible"; -# native-vlan-id 400; -# speed 10m; -# mtu 2048; -# hold-time up 3000 down 3200; # unit 0 { -# family ethernet-switching { -# interface-mode trunk; -# vlan { -# members [ vlan200 vlan300 ]; -# } +# family inet { +# dhcp; # } +# family inet6; # } # } -# ge-1/0/0 { +# fxp0 { +# enable; # unit 0 { # family inet { -# address 192.168.100.1/24; -# address 10.200.16.20/24; +# dhcp; # } # family inet6; # } # } -# ge-2/0/0 { + +- name: Delete L3 logical interface + junipernetworks.junos.junos_l3_interfaces: + config: + - name: ge-0/0/1 + - name: ge-0/0/2 + state: deleted + +# Task Output +# ----------- +# +# before: +# - ipv4: +# - address: 192.168.1.10/24 +# ipv6: +# - address: 8d8d:8d01::1/64 +# name: ge-0/0/1 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: ge-0/0/2 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: fxp0 +# unit: '0' +# commands: +# - <nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:interface> +# <nc:name>ge-0/0/1</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:address delete="delete"/> +# </nc:inet> +# <nc:inet6> +# <nc:address delete="delete"/> +# </nc:inet6> +# </nc:family> +# </nc:unit> +# </nc:interface> +# <nc:interface> +# <nc:name>ge-0/0/2</nc:name> +# <nc:unit> +# <nc:name>0</nc:name> +# <nc:family> +# <nc:inet> +# <nc:dhcp delete="delete"/> +# </nc:inet> +# <nc:inet6> +# <nc:address delete="delete"/> +# </nc:inet6> +# </nc:family> +# </nc:unit> +# </nc:interface> +# </nc:interfaces> +# after: +# - name: ge-0/0/1 +# unit: '0' +# - name: ge-0/0/2 +# unit: '0' +# - ipv4: +# - address: dhcp +# name: fxp0 +# unit: '0' + +# After state: +# ------------ +# +# admin# show interfaces +# ge-0/0/1 { # unit 0 { -# family inet { -# address 192.168.100.2/24; -# address 10.200.16.21/24; -# } +# family inet; # family inet6; # } # } -# ge-3/0/0 { +# ge-0/0/2 { # unit 0 { -# family inet { -# address 192.168.100.3/24; -# address 10.200.16.22/24; -# } +# family inet; # family inet6; # } # } -# em1 { -# description TEST; -# } # fxp0 { -# description ANSIBLE; -# speed 1g; -# link-mode automatic; +# enable; # unit 0 { # family inet { -# address 10.8.38.38/24; +# dhcp; # } +# family inet6; # } # } -- name: Gather junos layer3 interfaces as in given arguments - junipernetworks.junos.junos_l3_interfaces: - state: gathered -# Task Output (redacted) -# ----------------------- -# -# "gathered": [ -# { -# "ipv4": [ -# { -# "address": "192.168.100.1/24" -# }, -# { -# "address": "10.200.16.20/24" -# } -# ], -# "name": "ge-1/0/0", -# "unit": "0" -# }, -# { -# "ipv4": [ -# { -# "address": "192.168.100.2/24" -# }, -# { -# "address": "10.200.16.21/24" -# } -# ], -# "name": "ge-2/0/0", -# "unit": "0" -# }, -# { -# "ipv4": [ -# { -# "address": "192.168.100.3/24" -# }, -# { -# "address": "10.200.16.22/24" -# } -# ], -# "name": "ge-3/0/0", -# "unit": "0" -# }, -# { -# "ipv4": [ -# { -# "address": "10.8.38.38/24" -# } -# ], -# "name": "fxp0", -# "unit": "0" -# } -# ] -# After state: + +# Using gathered + +# Before state: # ------------ # # user@junos01# show interfaces @@ -566,7 +769,37 @@ EXAMPLES = """ # } # } # } + +- name: Gather layer3 interfaces facts + junipernetworks.junos.junos_l3_interfaces: + state: gathered + +# Task Output +# ----------- +# +# gathered: +# - ipv4: +# - address: 192.168.100.1/24 +# - address: 10.200.16.20/24 +# name: ge-1/0/0 +# unit: '0' +# - ipv4: +# - address: 192.168.100.2/24 +# - address: 10.200.16.21/24 +# name: ge-2/0/0 +# unit: '0' +# - ipv4: +# - address: 192.168.100.3/24 +# - address: 10.200.16.22/24 +# name: ge-3/0/0 +# unit: '0' +# - ipv4: +# - address: 10.8.38.38/24 +# name: fxp0 +# unit: '0' + # Using parsed + # parsed.cfg # ------------ # @@ -611,40 +844,29 @@ EXAMPLES = """ # </interfaces> # </configuration> # </rpc-reply> + # - name: Convert interfaces config to argspec without connecting to the appliance # junipernetworks.junos.junos_l3_interfaces: # running_config: "{{ lookup('file', './parsed.cfg') }}" # state: parsed -# Task Output (redacted) -# ----------------------- -# "parsed": [ -# { -# "ipv4": [ -# { -# "address": "192.168.100.1/24" -# }, -# { -# "address": "10.200.16.20/24" -# } -# ], -# "name": "ge-1/0/0", -# "unit": "0" -# }, -# { -# "ipv4": [ -# { -# "address": "192.168.100.2/24" -# }, -# { -# "address": "10.200.16.21/24" -# } -# ], -# "name": "ge-2/0/0", -# "unit": "0" -# } -# ] + +# Task Output +# ----------- # +# parsed: +# - ipv4: +# - address: 192.168.100.1/24 +# - address: 10.200.16.20/24 +# name: ge-1/0/0 +# unit: '0' +# - ipv4: +# - address: 192.168.100.2/24 +# - address: 10.200.16.21/24 +# name: ge-2/0/0 +# unit: '0' + # Using rendered + - name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_l3_interfaces: config: @@ -653,17 +875,17 @@ EXAMPLES = """ - address: 192.168.100.1/24 - address: 10.200.16.20/24 unit: 0 - - name: ge-2/0/0 ipv4: - address: 192.168.100.2/24 - address: 10.200.16.21/24 unit: 0 state: rendered -# Task Output (redacted) -# ----------------------- -# "rendered": "<nc:interfaces -# xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> + +# Task Output +# ----------- +# +# "rendered": "<nc:interfaces xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> # <nc:interface> # <nc:name>ge-1/0/0</nc:name> # <nc:unit> @@ -697,8 +919,8 @@ EXAMPLES = """ # </nc:unit> # </nc:interface> # </nc:interfaces>" - """ + RETURN = """ before: description: The configuration as structured data prior to module invocation. @@ -736,6 +958,29 @@ commands: </nc:family> </nc:unit> </nc:interfaces>', 'xml 2', 'xml 3'] +rendered: + description: The provided configuration in the + task rendered in device-native format (offline). + returned: when I(state) is C(rendered) + type: list + sample: + - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +gathered: + description: Facts about the network resource gathered + from the remote device as structured data. + returned: when I(state) is C(gathered) + type: list + sample: > + This output will always be in the same format as the + module argspec. +parsed: + description: The device native config provided in I(running_config) option parsed + into structured data as per module argspec. + returned: when I(state) is C(parsed) + type: list + sample: > + This output will always be in the same format as the + module argspec. """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_lacp.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_lacp.py index b2636f285..686404018 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_lacp.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_lacp.py @@ -231,7 +231,6 @@ EXAMPLES = """ # "link_protection": "revertive", # "system_priority": 63 # } - """ RETURN = """ before: diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_lacp_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_lacp_interfaces.py index 0c05a0c54..5a2301367 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_lacp_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_lacp_interfaces.py @@ -163,16 +163,16 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration junipernetworks.junos.junos_lacp_interfaces: config: - - name: ae0 - period: fast - sync_reset: enable - system: - priority: 100 - mac: - address: 00:00:00:00:00:02 - - name: ge-0/0/3 - port_priority: 100 - force_up: true + - name: ae0 + period: fast + sync_reset: enable + system: + priority: 100 + mac: + address: 00:00:00:00:00:02 + - name: ge-0/0/3 + port_priority: 100 + force_up: true state: merged # After state: @@ -261,8 +261,8 @@ EXAMPLES = """ - name: Replace device LACP interfaces configuration with provided configuration junipernetworks.junos.junos_lacp_interfaces: config: - - name: ae0 - period: slow + - name: ae0 + period: slow state: replaced # After state: @@ -345,14 +345,14 @@ EXAMPLES = """ - name: Overrides all device LACP interfaces configuration with provided configuration junipernetworks.junos.junos_lacp_interfaces: config: - - name: ae0 - system: - priority: 300 - mac: - address: 00:00:00:00:00:03 - - name: ge-0/0/2 - port_priority: 200 - force_up: false + - name: ae0 + system: + priority: 300 + mac: + address: 00:00:00:00:00:03 + - name: ge-0/0/2 + port_priority: 200 + force_up: false state: overridden # After state: @@ -447,9 +447,9 @@ EXAMPLES = """ - name: "Delete LACP interfaces attributes of given interfaces (Note: This won't delete the interface itself)" junipernetworks.junos.junos_lacp_interfaces: config: - - name: ae0 - - name: ge-0/0/3 - - name: ge-0/0/2 + - name: ae0 + - name: ge-0/0/3 + - name: ge-0/0/2 state: deleted # After state: @@ -841,17 +841,17 @@ EXAMPLES = """ - name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_lacp_interfaces: config: - - name: ae1 - period: fast - sync_reset: enable - system: - priority: 100 - mac: - address: 00:00:00:00:00:02 + - name: ae1 + period: fast + sync_reset: enable + system: + priority: 100 + mac: + address: 00:00:00:00:00:02 - - name: ge-0/0/1 - port_priority: 100 - force_up: true + - name: ge-0/0/1 + port_priority: 100 + force_up: true state: rendered # Task Output (redacted) # ----------------------- @@ -880,7 +880,6 @@ EXAMPLES = """ # </nc:ether-options> # </nc:interface> # </nc:interfaces>" - """ RETURN = """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_lag_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_lag_interfaces.py index 81efca836..67c4ffb7e 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_lag_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_lag_interfaces.py @@ -143,8 +143,8 @@ EXAMPLES = """ - name: "Delete LAG attributes of given interfaces (Note: This won't delete the interface itself)" junipernetworks.junos.junos_lag_interfaces: config: - - name: ae0 - - name: ae1 + - name: ae0 + - name: ae1 state: deleted # After state: @@ -173,12 +173,12 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration junipernetworks.junos.junos_lag_interfaces: config: - - name: ae0 - members: - - member: ge-0/0/1 - link_type: primary - - member: ge-0/0/2 - link_type: backup + - name: ae0 + members: + - member: ge-0/0/1 + link_type: primary + - member: ge-0/0/2 + link_type: backup state: merged # After state: @@ -231,13 +231,13 @@ EXAMPLES = """ - name: Overrides all device LAG configuration with provided configuration junipernetworks.junos.junos_lag_interfaces: config: - - name: ae0 - members: - - member: ge-0/0/2 - - name: ae1 - members: - - member: ge-0/0/1 - mode: passive + - name: ae0 + members: + - member: ge-0/0/2 + - name: ae1 + members: + - member: ge-0/0/1 + mode: passive state: overridden # After state: @@ -285,10 +285,10 @@ EXAMPLES = """ - name: Replace device LAG configuration with provided configuration junipernetworks.junos.junos_lag_interfaces: config: - - name: ae0 - members: - - member: ge-0/0/1 - mode: active + - name: ae0 + members: + - member: ge-0/0/1 + mode: active state: replaced # After state: @@ -701,20 +701,20 @@ EXAMPLES = """ - name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_lag_interfaces: config: - - name: ae1 - members: - - member: ge-0/0/1 - - member: ge-0/0/2 - mode: active - - - name: ae2 - link_protection: true - members: - - member: ge-0/0/3 - link_type: primary - - member: ge-0/0/4 - link_type: backup - mode: passive + - name: ae1 + members: + - member: ge-0/0/1 + - member: ge-0/0/2 + mode: active + + - name: ae2 + link_protection: true + members: + - member: ge-0/0/3 + link_type: primary + - member: ge-0/0/4 + link_type: backup + mode: passive # Task Output (redacted) # ----------------------- # "rendered": "<nc:interfaces @@ -771,7 +771,6 @@ EXAMPLES = """ # </nc:ether-options> # </nc:interface> # </nc:interfaces>" - """ RETURN = """ before: diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_lldp_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_lldp_interfaces.py index b3d1b61ed..dd5c7fe4c 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_lldp_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_lldp_interfaces.py @@ -89,9 +89,9 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration junipernetworks.junos.junos_lldp_interfaces: config: - - name: ge-0/0/1 - - name: ge-0/0/2 - enabled: false + - name: ge-0/0/1 + - name: ge-0/0/2 + enabled: false state: merged # After state: @@ -118,10 +118,10 @@ EXAMPLES = """ - name: Replace provided configuration with device configuration junipernetworks.junos.junos_lldp_interfaces: config: - - name: ge-0/0/2 - disable: false - - name: ge-0/0/3 - enabled: false + - name: ge-0/0/2 + disable: false + - name: ge-0/0/3 + enabled: false state: replaced # After state: @@ -149,8 +149,8 @@ EXAMPLES = """ - name: Override provided configuration with device configuration junipernetworks.junos.junos_lldp_interfaces: config: - - name: ge-0/0/2 - enabled: false + - name: ge-0/0/2 + enabled: false state: overridden # After state: @@ -176,8 +176,8 @@ EXAMPLES = """ - name: Delete lldp interface configuration (this will not delete other lldp configuration) junipernetworks.junos.junos_lldp_interfaces: config: - - name: ge-0/0/1 - - name: ge-0/0/3 + - name: ge-0/0/1 + - name: ge-0/0/3 state: deleted # After state: @@ -191,7 +191,7 @@ EXAMPLES = """ # Before state: # ------------ # -#ansible@cm123456tr21# show protocols lldp +# ansible@cm123456tr21# show protocols lldp # interface ge-0/0/1; # interface ge-0/0/2 { # disable; @@ -214,7 +214,7 @@ EXAMPLES = """ # After state: # ------------ # -#ansible@cm123456tr21# show protocols lldp +# ansible@cm123456tr21# show protocols lldp # interface ge-0/0/1; # interface ge-0/0/2 { # disable; diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_logging.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_logging.py index c2713a855..8f736d054 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_logging.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_logging.py @@ -175,19 +175,19 @@ EXAMPLES = """ junipernetworks.junos.junos_logging: dest: file aggregate: - - name: test-1 - facility: pfe - level: critical - - name: test-2 - facility: kernel - level: emergency + - name: test-1 + facility: pfe + level: critical + - name: test-2 + facility: kernel + level: emergency active: true - name: Delete file logging using aggregate junipernetworks.junos.junos_logging: aggregate: - - {dest: file, name: test-1, facility: pfe, level: critical} - - {dest: file, name: test-2, facility: kernel, level: emergency} + - {dest: file, name: test-1, facility: pfe, level: critical} + - {dest: file, name: test-2, facility: kernel, level: emergency} state: absent """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospf_interfaces.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospf_interfaces.py index fdfaf2640..c2cef436f 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospf_interfaces.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospf_interfaces.py @@ -102,11 +102,12 @@ options: md5: description: - Specify md5 based authentication. - type: dict + type: list + elements: dict suboptions: key_id: description: Specify md5 key-id - type: str + type: int key_value: description: Specify key value type: str @@ -189,7 +190,7 @@ options: node_link_protection: description: - Protect interface from both link and node faults. - type: str + type: bool dead_interval: description: - Dead interval (seconds). @@ -244,14 +245,14 @@ EXAMPLES = """ - name: Merge Junos OSPF interfaces config junipernetworks.junos.junos_ospf_interfaces: config: - - name: 'ge-0/0/2.0' - address_family: - - afi: 'ipv4' - processes: - area: - area_id: '0.0.0.2' - priority: 3 - metric: 5 + - name: 'ge-0/0/2.0' + address_family: + - afi: 'ipv4' + processes: + area: + area_id: '0.0.0.2' + priority: 3 + metric: 5 state: merged # After state @@ -279,16 +280,16 @@ EXAMPLES = """ # } - name: Replace Junos OSPF interfaces config junipernetworks.junos.junos_ospf_interfaces: - config: - - name: 'ge-0/0/2.0' - address_family: - - afi: 'ipv4' - processes: - area: - area_id: '0.0.0.1' - priority: 6 - metric: 6 - state: replaced + config: + - name: 'ge-0/0/2.0' + address_family: + - afi: 'ipv4' + processes: + area: + area_id: '0.0.0.1' + priority: 6 + metric: 6 + state: replaced # After state # ----------- @@ -436,14 +437,14 @@ EXAMPLES = """ - name: Render the commands for provided configuration junipernetworks.junos.junos_ospf_interfaces: config: - - name: 'ge-0/0/2.0' - address_family: - - afi: 'ipv4' - processes: - area: - area_id: '0.0.0.2' - priority: 3 - metric: 5 + - name: 'ge-0/0/2.0' + address_family: + - afi: 'ipv4' + processes: + area: + area_id: '0.0.0.2' + priority: 3 + metric: 5 state: rendered # diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospfv2.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospfv2.py index 9d951cf79..c8ac99c97 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospfv2.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospfv2.py @@ -36,10 +36,11 @@ DOCUMENTATION = """ module: junos_ospfv2 short_description: OSPFv2 resource module description: -- This module manages global OSPFv2 configuration on devices running Juniper JUNOS. +- This module manages OSPFv2 configuration on devices running Juniper JUNOS. version_added: 1.0.0 author: - Daniel Mellado (@dmellado) +- Rohit Thakur (@rohitthakur2590) requirements: - ncclient (>=v0.6.4) - xmltodict (>=0.12.0) @@ -72,7 +73,31 @@ options: area_range: description: - Configure an address range for the area. + - Included for compatibility, remove/deprecate after 2025-07-01. + - Alternate for this would be area_ranges which is a list. type: str + area_ranges: + description: + - Configure IP address ranges for the area. + type: list + elements: dict + suboptions: + address: + description: + - Specify ip address. + type: str + exact: + description: + - Enforce exact match for advertisement of this area range. + type: bool + restrict: + description: + - Restrict advertisement of this area range. + type: bool + override_metric: + description: + - Override the dynamic metric for this area-range. + type: int stub: description: - Settings for configuring the area as a stub. @@ -99,7 +124,26 @@ options: type: description: - Type of authentication to use. + - Included for compatibility, remove/deprecate after 2025-07-01. type: dict + password: + description: Specify authentication key. + type: str + md5: + description: MD5 authentication keys + type: list + elements: dict + suboptions: + key_id: + description: Specify the key identity + type: int + key: + description: Specify key value + type: str + start_time: + description: Specify Start time for key transmission (YYYY-MM-DD.HH:MM) + type: str + bandwidth_based_metrics: description: Specify list of bandwidth based metrics type: list @@ -165,6 +209,15 @@ options: description: Specify time for overload mode reset type: dict suboptions: + allow_route_leaking: + description: Allow routes to be leaked when overload is configured. + type: bool + as_external: + description: Advertise As External with maximum usable metric. + type: bool + stub_network: + description: Advertise Stub Network with maximum metric. + type: bool timeout: description: - Time after which overload mode is reset (seconds). @@ -203,11 +256,14 @@ options: description: - Number of maximum rapid SPF runs before holddown (seconds). type: int + no_ignore_our_externals: + description: Do not ignore self-generated external and NSSA LSAs. + type: bool running_config: description: - This option is used only with state I(parsed). - The value of this option should be the output received from the Junos device - by executing the command B(show protocols ospf. + by executing the command B(show protocols ospf). - The state I(parsed) reads the configuration from C(running_config) option and transforms it into Ansible structured data as per the resource module's argspec and the value is then returned in the I(parsed) key within the result @@ -234,44 +290,588 @@ EXAMPLES = """ # # admin# show protocols ospf -- name: Merge Junos OSPFv2 config +- name: Merge provided OSPFv2 configuration into running config. junipernetworks.junos.junos_ospfv2: config: - - reference_bandwidth: 10g - areas: - - area_id: 0.0.0.100 - area_range: 10.200.16.0/24 - stub: - default_metric: 100 - set: true - interfaces: - - name: so-0/0/0.0 - priority: 3 - metric: 5 - flood_reduction: false - passive: true - bandwidth_based_metrics: - - bandwidth: 1g - metric: 5 - - bandwidth: 10g - metric: 40 - timers: - dead_interval: 4 - hello_interval: 2 - poll_interval: 2 - retransmit_interval: 2 - rfc1583compatibility: false + - reference_bandwidth: 10g + areas: + - area_id: 0.0.0.100 + area_ranges: + - address: 10.200.17.0/24 + exact: true + restrict: true + override_metric: 2000 + - address: 10.200.15.0/24 + exact: true + restrict: true + override_metric: 2000 + stub: + default_metric: 100 + set: true + interfaces: + - name: so-0/0/0.0 + priority: 3 + metric: 5 + flood_reduction: false + passive: true + bandwidth_based_metrics: + - bandwidth: 1g + metric: 5 + - bandwidth: 10g + metric: 40 + timers: + dead_interval: 4 + hello_interval: 2 + poll_interval: 2 + retransmit_interval: 2 + rfc1583compatibility: false state: merged +# Task Output: +# ------------ +# +# before: [] +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:ospf><nc:reference-bandwidth>10g</nc:reference-bandwidth><nc:no-rfc-1583/> +# <nc:area><nc:name>0.0.0.100</nc:name><nc:area-range><nc:name>10.200.17.0/24</nc:name><nc:exact/> +# <nc:restrict/><nc:override-metric>2000</nc:override-metric></nc:area-range><nc:area-range> +# <nc:name>10.200.15.0/24</nc:name><nc:exact/><nc:restrict/><nc:override-metric>2000</nc:override-metric> +# </nc:area-range><nc:interface><nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority> +# <nc:metric>5</nc:metric><nc:passive/><nc:bandwidth-based-metrics><nc:bandwidth><nc:name>1g</nc:name> +# <nc:metric>5</nc:metric></nc:bandwidth><nc:bandwidth><nc:name>10g</nc:name><nc:metric>40</nc:metric> +# </nc:bandwidth></nc:bandwidth-based-metrics><nc:dead-interval>4</nc:dead-interval> +# <nc:hello-interval>2</nc:hello-interval><nc:poll-interval>2</nc:poll-interval> +# <nc:retransmit-interval>2</nc:retransmit-interval></nc:interface><nc:stub> +# <nc:default-metric>100</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols> +# +# after: +# - areas: +# - area_id: 0.0.0.100 +# area_range: '[''10.200.17.0/24'', ''10.200.15.0/24'']' +# area_ranges: +# - address: 10.200.17.0/24 +# exact: true +# override_metric: 2000 +# restrict: true +# - address: 10.200.15.0/24 +# exact: true +# override_metric: 2000 +# restrict: true +# interfaces: +# - bandwidth_based_metrics: +# - bandwidth: 1g +# metric: 5 +# - bandwidth: 10g +# metric: 40 +# metric: 5 +# name: so-0/0/0.0 +# passive: true +# priority: 3 +# timers: +# dead_interval: 4 +# hello_interval: 2 +# poll_interval: 2 +# retransmit_interval: 2 +# stub: +# default_metric: 100 +# set: true +# reference_bandwidth: 10g +# rfc1583compatibility: false + +# After state +# ----------- +# +# admin# show protocols ospf +# reference-bandwidth 10g; +# no-rfc-1583; +# area 0.0.0.100 { +# stub default-metric 100; +# area-range 10.200.17.0/24 { +# restrict; +# exact; +# override-metric 2000; +# } +# area-range 10.200.15.0/24 { +# restrict; +# exact; +# override-metric 2000; +# } +# interface so-0/0/0.0 { +# passive; +# bandwidth-based-metrics { +# bandwidth 1g metric 5; +# bandwidth 10g metric 40; +# } +# metric 5; +# priority 3; +# retransmit-interval 2; +# hello-interval 2; +# dead-interval 4; +# poll-interval 2; +# } +# } +# +# Using replaced +# +# Before state +# ------------ +# +# admin# show protocols ospf +# reference-bandwidth 10g; +# no-rfc-1583; +# area 0.0.0.100 { +# stub default-metric 100; +# area-range 10.200.17.0/24 { +# restrict; +# exact; +# override-metric 2000; +# } +# area-range 10.200.15.0/24 { +# restrict; +# exact; +# override-metric 2000; +# } +# interface so-0/0/0.0 { +# passive; +# bandwidth-based-metrics { +# bandwidth 1g metric 5; +# bandwidth 10g metric 40; +# } +# metric 5; +# priority 3; +# retransmit-interval 2; +# hello-interval 2; +# dead-interval 4; +# poll-interval 2; +# } +# } + +- name: Replace existing Junos OSPFv2 config with provided config + junipernetworks.junos.junos_ospfv2: + config: + - reference_bandwidth: 10g + areas: + - area_id: 0.0.0.100 + area_ranges: + - address: 10.200.17.0/24 + exact: true + restrict: true + - address: 10.200.16.0/24 + exact: true + restrict: true + override_metric: 1000 + stub: + default_metric: 100 + set: true + interfaces: + - name: so-0/0/0.0 + priority: 3 + metric: 5 + flood_reduction: false + passive: true + bandwidth_based_metrics: + - bandwidth: 1g + metric: 5 + - bandwidth: 10g + metric: 40 + timers: + dead_interval: 4 + hello_interval: 2 + poll_interval: 2 + retransmit_interval: 2 + rfc1583compatibility: false + state: replacedd + +# Task Output: +# ------------ +# +# before: +# - areas: +# - area_id: 0.0.0.100 +# area_range: '[''10.200.17.0/24'', ''10.200.15.0/24'']' +# area_ranges: +# - address: 10.200.17.0/24 +# exact: true +# override_metric: 2000 +# restrict: true +# - address: 10.200.15.0/24 +# exact: true +# override_metric: 2000 +# restrict: true +# interfaces: +# - bandwidth_based_metrics: +# - bandwidth: 1g +# metric: 5 +# - bandwidth: 10g +# metric: 40 +# metric: 5 +# name: so-0/0/0.0 +# passive: true +# priority: 3 +# timers: +# dead_interval: 4 +# hello_interval: 2 +# poll_interval: 2 +# retransmit_interval: 2 +# stub: +# default_metric: 100 +# set: true +# reference_bandwidth: 10g +# rfc1583compatibility: false +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:ospf><nc:area delete="delete">0.0.0.100</nc:area></nc:ospf><nc:ospf> +# <nc:reference-bandwidth>10g</nc:reference-bandwidth><nc:no-rfc-1583/><nc:area> +# <nc:name>0.0.0.100</nc:name><nc:area-range><nc:name>10.200.17.0/24</nc:name><nc:exact/> +# <nc:restrict/></nc:area-range><nc:area-range><nc:name>10.200.16.0/24</nc:name><nc:exact/> +# <nc:restrict/><nc:override-metric>1000</nc:override-metric></nc:area-range><nc:interface> +# <nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority><nc:metric>5</nc:metric><nc:passive/> +# <nc:bandwidth-based-metrics><nc:bandwidth><nc:name>1g</nc:name><nc:metric>5</nc:metric> +# </nc:bandwidth><nc:bandwidth><nc:name>10g</nc:name><nc:metric>40</nc:metric></nc:bandwidth> +# </nc:bandwidth-based-metrics><nc:dead-interval>4</nc:dead-interval><nc:hello-interval>2</nc:hello-interval> +# <nc:poll-interval>2</nc:poll-interval><nc:retransmit-interval>2</nc:retransmit-interval></nc:interface> +# <nc:stub><nc:default-metric>100</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols> +# +# after: +# - areas: +# - area_id: 0.0.0.100 +# area_range: '[''10.200.17.0/24'', ''10.200.16.0/24'']' +# area_ranges: +# - address: 10.200.17.0/24 +# exact: true +# restrict: true +# - address: 10.200.16.0/24 +# exact: true +# override_metric: 1000 +# restrict: true +# interfaces: +# - bandwidth_based_metrics: +# - bandwidth: 1g +# metric: 5 +# - bandwidth: 10g +# metric: 40 +# metric: 5 +# name: so-0/0/0.0 +# passive: true +# priority: 3 +# timers: +# dead_interval: 4 +# hello_interval: 2 +# poll_interval: 2 +# retransmit_interval: 2 +# stub: +# default_metric: 100 +# set: true +# reference_bandwidth: 10g +# rfc1583compatibility: false +# +# After state +# ----------- +# +# admin# show protocols ospf +# reference-bandwidth 10g; +# no-rfc-1583; +# area 0.0.0.100 { +# stub default-metric 100; +# area-range 10.200.17.0/24 { +# restrict; +# exact; +# } +# area-range 10.200.16.0/24 { +# restrict; +# exact; +# override-metric 1000; +# } +# interface so-0/0/0.0 { +# passive; +# bandwidth-based-metrics { +# bandwidth 1g metric 5; +# bandwidth 10g metric 40; +# } +# metric 5; +# priority 3; +# retransmit-interval 2; +# hello-interval 2; +# dead-interval 4; +# poll-interval 2; +# } +# } +# +# Using overridden +# +# Before state +# ------------ +# +# admin# show protocols ospf +# reference-bandwidth 10g; +# no-rfc-1583; +# area 0.0.0.100 { +# stub default-metric 100; +# area-range 10.200.17.0/24 { +# restrict; +# exact; +# } +# area-range 10.200.16.0/24 { +# restrict; +# exact; +# override-metric 1000; +# } +# interface so-0/0/0.0 { +# passive; +# bandwidth-based-metrics { +# bandwidth 1g metric 5; +# bandwidth 10g metric 40; +# } +# metric 5; +# priority 3; +# retransmit-interval 2; +# hello-interval 2; +# dead-interval 4; +# poll-interval 2; +# } +# } + +- name: Override runnig OSPFv2 config with provided config + junipernetworks.junos.junos_ospfv2: + config: + - reference_bandwidth: 10g + areas: + - area_id: 0.0.0.110 + area_ranges: + - address: 20.200.17.0/24 + exact: true + restrict: true + override_metric: 2000 + - address: 20.200.15.0/24 + exact: true + restrict: true + override_metric: 2000 + stub: + default_metric: 200 + set: true + interfaces: + - name: so-0/0/0.0 + priority: 3 + metric: 5 + flood_reduction: false + passive: true + bandwidth_based_metrics: + - bandwidth: 1g + metric: 5 + - bandwidth: 10g + metric: 40 + state: overridden + +# Task Output: +# ------------ +# +# before: +# - areas: +# - area_id: 0.0.0.100 +# area_range: '[''10.200.17.0/24'', ''10.200.16.0/24'']' +# area_ranges: +# - address: 10.200.17.0/24 +# exact: true +# restrict: true +# - address: 10.200.16.0/24 +# exact: true +# override_metric: 1000 +# restrict: true +# interfaces: +# - bandwidth_based_metrics: +# - bandwidth: 1g +# metric: 5 +# - bandwidth: 10g +# metric: 40 +# metric: 5 +# name: so-0/0/0.0 +# passive: true +# priority: 3 +# timers: +# dead_interval: 4 +# hello_interval: 2 +# poll_interval: 2 +# retransmit_interval: 2 +# stub: +# default_metric: 100 +# set: true +# reference_bandwidth: 10g +# rfc1583compatibility: false +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:ospf><nc:area delete="delete">0.0.0.100</nc:area></nc:ospf><nc:ospf> +# <nc:reference-bandwidth>10g</nc:reference-bandwidth><nc:area><nc:name>0.0.0.110</nc:name> +# <nc:area-range><nc:name>20.200.17.0/24</nc:name><nc:exact/><nc:restrict/> +# <nc:override-metric>2000</nc:override-metric></nc:area-range><nc:area-range> +# <nc:name>20.200.15.0/24</nc:name><nc:exact/><nc:restrict/><nc:override-metric>2000</nc:override-metric> +# </nc:area-range><nc:interface><nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority> +# <nc:metric>5</nc:metric><nc:passive/><nc:bandwidth-based-metrics><nc:bandwidth><nc:name>1g</nc:name> +# <nc:metric>5</nc:metric></nc:bandwidth><nc:bandwidth><nc:name>10g</nc:name><nc:metric>40</nc:metric> +# </nc:bandwidth></nc:bandwidth-based-metrics></nc:interface><nc:stub> +# <nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols> +# +# after: +# - areas: +# - area_id: 0.0.0.110 +# area_range: '[''20.200.17.0/24'', ''20.200.15.0/24'']' +# area_ranges: +# - address: 20.200.17.0/24 +# exact: true +# override_metric: 2000 +# restrict: true +# - address: 20.200.15.0/24 +# exact: true +# override_metric: 2000 +# restrict: true +# interfaces: +# - bandwidth_based_metrics: +# - bandwidth: 1g +# metric: 5 +# - bandwidth: 10g +# metric: 40 +# metric: 5 +# name: so-0/0/0.0 +# passive: true +# priority: 3 +# stub: +# default_metric: 200 +# set: true +# reference_bandwidth: 10g +# rfc1583compatibility: false + +# After state +# ----------- +# +# admin# show protocols ospf +# reference-bandwidth 10g; +# no-rfc-1583; +# area 0.0.0.110 { +# stub default-metric 200; +# area-range 20.200.17.0/24 { +# restrict; +# exact; +# override-metric 2000; +# } +# area-range 20.200.15.0/24 { +# restrict; +# exact; +# override-metric 2000; +# } +# interface so-0/0/0.0 { +# passive; +# bandwidth-based-metrics { +# bandwidth 1g metric 5; +# bandwidth 10g metric 40; +# } +# metric 5; +# priority 3; +# } +# } +# Using deleted +# +# Before state +# ------------ +# +# admin# show protocols ospf +# reference-bandwidth 10g; +# no-rfc-1583; +# area 0.0.0.110 { +# stub default-metric 200; +# area-range 20.200.17.0/24 { +# restrict; +# exact; +# override-metric 2000; +# } +# area-range 20.200.15.0/24 { +# restrict; +# exact; +# override-metric 2000; +# } +# interface so-0/0/0.0 { +# passive; +# bandwidth-based-metrics { +# bandwidth 1g metric 5; +# bandwidth 10g metric 40; +# } +# metric 5; +# priority 3; +# } +# } + +- name: Delete OSPFv2 running config. + junipernetworks.junos.junos_ospfv2: + config: + state: deleted + +# Task Output: +# ------------ +# +# before: +# - areas: +# - area_id: 0.0.0.110 +# area_range: '[''20.200.17.0/24'', ''20.200.15.0/24'']' +# area_ranges: +# - address: 20.200.17.0/24 +# exact: true +# override_metric: 2000 +# restrict: true +# - address: 20.200.15.0/24 +# exact: true +# override_metric: 2000 +# restrict: true +# interfaces: +# - bandwidth_based_metrics: +# - bandwidth: 1g +# metric: 5 +# - bandwidth: 10g +# metric: 40 +# metric: 5 +# name: so-0/0/0.0 +# passive: true +# priority: 3 +# stub: +# default_metric: 200 +# set: true +# reference_bandwidth: 10g +# rfc1583compatibility: false +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:ospf><nc:area delete="delete">0.0.0.100</nc:area><nc:reference-bandwidth delete="delete"/> +# <nc:no-rfc-1583 delete="delete"/></nc:ospf></nc:protocols> +# +# after: [] +# +# # After state # ----------- # # admin# show protocols ospf + +# Using gathered +# +# Before state +# ------------ +# +# admin# show protocols ospf # reference-bandwidth 10g; # no-rfc-1583; # area 0.0.0.100 { # stub default-metric 100; -# area-range 10.200.16.0/24; +# area-range 10.200.17.0/24 { +# restrict; +# exact; +# override-metric 2000; +# } +# area-range 10.200.15.0/24 { +# restrict; +# exact; +# override-metric 2000; +# } # interface so-0/0/0.0 { # passive; # bandwidth-based-metrics { @@ -287,17 +887,221 @@ EXAMPLES = """ # } # } +- name: Gather Junos OSPFv2 running-configuration + junipernetworks.junos.junos_ospfv2: + config: + state: gathered +# +# +# Task Output: +# ------------ +# +# gathered: +# +# - areas: +# - area_id: 0.0.0.100 +# area_range: '[''10.200.17.0/24'', ''10.200.15.0/24'']' +# area_ranges: +# - address: 10.200.17.0/24 +# exact: true +# override_metric: 2000 +# restrict: true +# - address: 10.200.15.0/24 +# exact: true +# override_metric: 2000 +# restrict: true +# interfaces: +# - bandwidth_based_metrics: +# - bandwidth: 1g +# metric: 5 +# - bandwidth: 10g +# metric: 40 +# metric: 5 +# name: so-0/0/0.0 +# passive: true +# priority: 3 +# timers: +# dead_interval: 4 +# hello_interval: 2 +# poll_interval: 2 +# retransmit_interval: 2 +# stub: +# default_metric: 100 +# set: true +# reference_bandwidth: 10g +# rfc1583compatibility: false + +# Using parsed +# parsed.cfg +# ------------ +# <?xml version="1.0" encoding="UTF-8"?> +# <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> +# <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> +# <version>18.4R1-S2.4</version> +# <protocols> +# <ospf> +# <reference-bandwidth>10g</reference-bandwidth> +# <no-rfc-1583/> +# <area> +# <name>0.0.0.100</name> +# <stub> +# <default-metric>100</default-metric> +# </stub> +# <area-range> +# <name>10.200.16.0/24</name> +# <exact/> +# <override-metric>10000</override-metric> +# </area-range> +# <area-range> +# <name>10.200.11.0/24</name> +# <restrict/> +# <exact/> +# </area-range> +# <interface> +# <name>so-0/0/0.0</name> +# <passive> +# </passive> +# <bandwidth-based-metrics> +# <bandwidth> +# <name>1g</name> +# <metric>5</metric> +# </bandwidth> +# <bandwidth> +# <name>10g</name> +# <metric>40</metric> +# </bandwidth> +# </bandwidth-based-metrics> +# <metric>5</metric> +# <priority>3</priority> +# <retransmit-interval>2</retransmit-interval> +# <hello-interval>2</hello-interval> +# <dead-interval>4</dead-interval> +# <poll-interval>2</poll-interval> +# </interface> +# </area> +# </ospf> +# </protocols> +# <routing-options> +# <static> +# <route> +# <name>172.16.17.0/24</name> +# <discard /> +# </route> +# </static> +# <router-id>10.200.16.75</router-id> +# <autonomous-system> +# <as-number>65432</as-number> +# </autonomous-system> +# </routing-options> +# </configuration> +# </rpc-reply> + + +- name: Parsed the ospfv2 config into structured ansible resource facts. + junipernetworks.junos.junos_ospfv2: + running_config: "{{ lookup('file', './parsed.cfg') }}" + state: parsed +# +# Task Output: +# ------------ +# +# parsed: +# - areas: +# - area_id: 0.0.0.100 +# area_range: '[''10.200.16.0/24'', ''10.200.11.0/24'']' +# area_ranges: +# - address: 10.200.16.0/24 +# exact: true +# override_metric: 10000 +# - address: 10.200.11.0/24 +# exact: true +# restrict: true +# interfaces: +# - bandwidth_based_metrics: +# - bandwidth: 1g +# metric: 5 +# - bandwidth: 10g +# metric: 40 +# metric: 5 +# name: so-0/0/0.0 +# passive: true +# priority: 3 +# timers: +# dead_interval: 4 +# hello_interval: 2 +# poll_interval: 2 +# retransmit_interval: 2 +# stub: +# default_metric: 100 +# set: true +# reference_bandwidth: 10g +# rfc1583compatibility: false +# router_id: 10.200.16.75 + +# Using rendered +# +- name: Render the commands for provided configuration + junipernetworks.junos.junos_ospfv2: + config: + - reference_bandwidth: 10g + areas: + - area_id: 0.0.0.100 + area_ranges: + - address: 10.200.17.0/24 + exact: true + restrict: true + override_metric: 2000 + - address: 10.200.15.0/24 + exact: true + restrict: true + override_metric: 2000 + stub: + default_metric: 100 + set: true + interfaces: + - name: so-0/0/0.0 + priority: 3 + metric: 5 + flood_reduction: false + passive: true + bandwidth_based_metrics: + - bandwidth: 1g + metric: 5 + - bandwidth: 10g + metric: 40 + timers: + dead_interval: 4 + hello_interval: 2 + poll_interval: 2 + retransmit_interval: 2 + rfc1583compatibility: false + state: rendered + +# Task Output: +# ------------ +# +# rendered: "<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:ospf><nc:reference-bandwidth>10g</nc:reference-bandwidth><nc:no-rfc-1583/><nc:area><nc:name>0.0.0.100</nc:name> +# <nc:area-range><nc:name>10.200.17.0/24</nc:name><nc:exact/><nc:restrict/><nc:override-metric>2000</nc:override-metric> +# </nc:area-range><nc:area-range><nc:name>10.200.15.0/24</nc:name><nc:exact/><nc:restrict/> +# <nc:override-metric>2000</nc:override-metric></nc:area-range><nc:interface><nc:name>so-0/0/0.0</nc:name> +# <nc:priority>3</nc:priority><nc:metric>5</nc:metric><nc:passive/><nc:bandwidth-based-metrics><nc:bandwidth> +# <nc:name>1g</nc:name><nc:metric>5</nc:metric></nc:bandwidth><nc:bandwidth><nc:name>10g</nc:name> +# <nc:metric>40</nc:metric></nc:bandwidth></nc:bandwidth-based-metrics><nc:dead-interval>4</nc:dead-interval> +# <nc:hello-interval>2</nc:hello-interval><nc:poll-interval>2</nc:poll-interval> +# <nc:retransmit-interval>2</nc:retransmit-interval></nc:interface><nc:stub> +# <nc:default-metric>100</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols>" """ RETURN = """ before: - description: The configuration prior to the model invocation. + description: The configuration prior to the module invocation. returned: always type: dict sample: > The configuration returned will always be in the same format of the parameters above. after: - description: The resulting configuration model invocation. + description: The resulting configuration module invocation. returned: when changed type: dict sample: > @@ -307,7 +1111,29 @@ commands: description: The set of commands pushed to the remote device. returned: always type: list - sample: ['command 1', 'command 2', 'command 3'] + sample: ['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">< + nc:ospf><nc:area delete="delete">0.0.0.100</nc:area><nc:reference-bandwidth delete="delete"/> + <nc:no-rfc-1583 delete="delete"/></nc:ospf></nc:protocols>', 'xml 2', 'xml 3'] +rendered: + description: The provided configuration in the task rendered in device-native format (offline). + returned: when I(state) is C(rendered) + type: list + sample: + - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +gathered: + description: Facts about the network resource gathered from the remote device as structured data. + returned: when I(state) is C(gathered) + type: list + sample: > + This output will always be in the same format as the + module argspec. +parsed: + description: The device native config provided in I(running_config) option parsed into structured data as per module argspec. + returned: when I(state) is C(parsed) + type: list + sample: > + This output will always be in the same format as the + module argspec. """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospfv3.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospfv3.py index 0d49c625b..9a6a275dc 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospfv3.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_ospfv3.py @@ -205,7 +205,7 @@ options: description: - This option is used only with state I(parsed). - The value of this option should be the output received from the Junos device - by executing the command B(show protocols ospf. + by executing the command B(show protocols ospf). - The state I(parsed) reads the configuration from C(running_config) option and transforms it into Ansible structured data as per the resource module's argspec and the value is then returned in the I(parsed) key within the result @@ -235,57 +235,148 @@ EXAMPLES = """ - name: Merge Junos OSPFv3 config junipernetworks.junos.junos_ospfv3: config: - - areas: - - area_id: 0.0.0.100 - stub: - default_metric: 200 - set: true - interfaces: - - name: so-0/0/0.0 - priority: 3 - metric: 5 + - router_id: 10.200.16.75 + areas: + - area_id: 0.0.0.100 + interfaces: + - metric: 5 + name: so-0/0/0.0 + priority: 3 + - metric: 6 + name: so-0/0/1.0 + priority: 2 + stub: + default_metric: 200 + set: true state: merged +# Task Output: +# ------------ +# +# before: [] +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface><nc:name>so-0/0/0.0</nc:name> +# <nc:priority>3</nc:priority><nc:metric>5</nc:metric></nc:interface><nc:interface> +# <nc:name>so-0/0/1.0</nc:name><nc:priority>2</nc:priority><nc:metric>6</nc:metric> +# </nc:interface><nc:stub><nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf3></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:router-id>10.200.16.75</nc:router-id></nc:routing-options> +# +# after: +# - areas: +# - area_id: 0.0.0.100 +# interfaces: +# - metric: 5 +# name: so-0/0/0.0 +# priority: 3 +# - metric: 6 +# name: so-0/0/1.0 +# priority: 2 +# stub: +# default_metric: 200 +# set: true +# router_id: 10.200.16.75 + # After state # ----------- # -# adimn# show protocols ospf3 +# admin# show protocols ospf3 # area 0.0.0.100 { # stub default-metric 200; # interface so-0/0/0.0 { # metric 5; # priority 3; # } +# interface so-0/0/1.0 { +# metric 6; +# priority 2; +# } # } +# # Using replaced # # Before state # ------------ # -# adimn# show protocols ospf3 +# admin# show protocols ospf3 +# admin# show protocols ospf3 # area 0.0.0.100 { # stub default-metric 200; # interface so-0/0/0.0 { # metric 5; # priority 3; # } +# interface so-0/0/1.0 { +# metric 6; +# priority 2; +# } # } -- name: Replace Junos OSPFv3 config + +- name: Replace existing Junos OSPFv3 config with provided config junipernetworks.junos.junos_ospfv3: - config: - - areas: - - area_id: 0.0.0.100 - interfaces: - - name: so-0/0/0.0 - state: replaced + config: + - router_id: 10.200.16.75 + areas: + - area_id: 0.0.0.100 + interfaces: + - name: so-0/0/0.0 + state: replaced +# Task Output: +# ------------ +# +# before: +# - areas: +# - area_id: 0.0.0.100 +# interfaces: +# - metric: 5 +# name: so-0/0/0.0 +# priority: 3 +# - metric: 6 +# name: so-0/0/1.0 +# priority: 2 +# stub: +# default_metric: 200 +# set: true +# router_id: 10.200.16.75 +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface delete="delete"> +# <nc:name>so-0/0/0.0</nc:name></nc:interface></nc:area></nc:ospf3><nc:ospf3> +# <nc:area><nc:name>0.0.0.100</nc:name><nc:interface><nc:name>so-0/0/0.0</nc:name> +# </nc:interface></nc:area></nc:ospf3></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:router-id>10.200.16.75</nc:router-id><nc:router-id>10.200.16.75</nc:router-id></nc:routing-options> +# +# after: +# - areas: +# - area_id: 0.0.0.100 +# interfaces: +# - metric: 6 +# name: so-0/0/1.0 +# priority: 2 +# - name: so-0/0/0.0 +# stub: +# default_metric: 200 +# set: true +# router_id: 10.200.16.75 +# # After state # ----------- # # admin# show protocols ospf3 # area 0.0.0.100 { +# stub default-metric 200; +# interface so-0/0/1.0 { +# metric 6; +# priority 2; +# } # interface so-0/0/0.0; # } +# # Using overridden # # Before state @@ -293,27 +384,80 @@ EXAMPLES = """ # # admin# show protocols ospf3 # area 0.0.0.100 { +# stub default-metric 200; +# interface so-0/0/1.0 { +# metric 6; +# priority 2; +# } # interface so-0/0/0.0; # } -- name: Override Junos OSPFv3 config + +- name: Override runnig OSPFv3 config with provided config junipernetworks.junos.junos_ospfv3: - config: - - areas: - - area_id: 0.0.0.100 - stub: - default_metric: 200 - set: true - interfaces: - - name: so-0/0/0.0 - priority: 3 - metric: 5 - flood_reduction: true - passive: true - - area_id: 0.0.0.200 - interfaces: - - name: ge-1/1/0.0 - - name: ge-2/2/0.0 - state: overridden + config: + - router_id: 10.200.16.75 + areas: + - area_id: 0.0.0.100 + stub: + default_metric: 200 + set: true + interfaces: + - name: so-0/0/0.0 + priority: 3 + metric: 5 + flood_reduction: true + passive: true + - area_id: 0.0.0.200 + interfaces: + - name: ge-1/1/0.0 + - name: ge-2/2/0.0 + state: overridden + +# Task Output: +# ------------ +# +# before: +# - areas: +# - area_id: 0.0.0.100 +# interfaces: +# - metric: 6 +# name: so-0/0/1.0 +# priority: 2 +# - name: so-0/0/0.0 +# stub: +# default_metric: 200 +# set: true +# router_id: 10.200.16.75 +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:ospf3 delete="delete"/><nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name> +# <nc:interface><nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority><nc:flood-reduction/> +# <nc:metric>5</nc:metric><nc:passive/></nc:interface> +# <nc:stub><nc:default-metric>200</nc:default-metric></nc:stub></nc:area> +# <nc:area><nc:name>0.0.0.200</nc:name><nc:interface><nc:name>ge-1/1/0.0</nc:name> +# </nc:interface><nc:interface><nc:name>ge-2/2/0.0</nc:name></nc:interface></nc:area> +# </nc:ospf3></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:router-id delete="delete"/><nc:router-id>10.200.16.75</nc:router-id></nc:routing-options> +# +# after: +# - areas: +# - area_id: 0.0.0.100 +# interfaces: +# - flood_reduction: true +# metric: 5 +# name: so-0/0/0.0 +# passive: true +# priority: 3 +# stub: +# default_metric: 200 +# set: true +# - area_id: 0.0.0.200 +# interfaces: +# - name: ge-1/1/0.0 +# - name: ge-2/2/0.0 +# router_id: 10.200.16.75 # After state # ----------- @@ -332,285 +476,213 @@ EXAMPLES = """ # interface ge-1/1/0.0; # interface ge-2/2/0.0; # } -# # Using deleted # # Before state # ------------ # -# adimn# show protocols ospf3 +# admin# show protocols ospf3 # area 0.0.0.100 { # stub default-metric 200; # interface so-0/0/0.0 { +# passive; # metric 5; # priority 3; +# flood-reduction; # } # } +# area 0.0.0.200 { +# interface ge-1/1/0.0; +# interface ge-2/2/0.0; +# } -- name: Delete Junos OSPFv3 config +- name: Delete OSPFv3 running config. junipernetworks.junos.junos_ospfv3: config: - - areas: - - area_id: 0.0.0.100 - interfaces: - - name: so-0/0/0.0 state: deleted +# Task Output: +# ------------ +# +# before: +# - areas: +# - area_id: 0.0.0.100 +# interfaces: +# - flood_reduction: true +# metric: 5 +# name: so-0/0/0.0 +# passive: true +# priority: 3 +# stub: +# default_metric: 200 +# set: true +# - area_id: 0.0.0.200 +# interfaces: +# - name: ge-1/1/0.0 +# - name: ge-2/2/0.0 +# router_id: 10.200.16.75 +# +# commands: +# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:ospf3 delete="delete"/></nc:protocols> +# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:router-id delete="delete"/></nc:routing-options> +# +# after: [] +# +# # After state # ----------- # # admin# show protocols ospf3 + # Using gathered # # Before state # ------------ # -# adimn# show protocols ospf3 +# admin# show protocols ospf3 # area 0.0.0.100 { # stub default-metric 200; # interface so-0/0/0.0 { -# passive; # metric 5; # priority 3; -# flood-reduction; # } -# } -# area 0.0.0.200 { -# interface ge-1/1/0.0; -# interface ge-2/2/0.0; -# } +# interface so-0/0/1.0 { +# metric 6; +# priority 2; +# } -- name: Gather Junos OSPFv3 config +- name: Gather Junos OSPFv3 running-configuration junipernetworks.junos.junos_ospfv3: config: state: gathered # # -# ------------------------- -# Module Execution Result -# ------------------------- -# -# "gathered": { -# "areas": [ -# { -# "area_id": "0.0.0.100", -# "interfaces": [ -# { -# "flood_reduction": true, -# "metric": 5, -# "name": "so-0/0/0.0", -# "passive": true, -# "priority": 3 -# } -# ], -# "stub": { -# "default_metric": 200, -# "set": true -# } -# }, -# { -# "area_id": "0.0.0.200", -# "interfaces": [ -# { -# "name": "ge-1/1/0.0" -# }, -# { -# "name": "ge-2/2/0.0" -# } -# ] -# } -# ], -# } -# -# Using rendered -# +# Task Output: +# ------------ # -- name: Render the commands for provided configuration - junipernetworks.junos.junos_ospfv3: - config: - - areas: - - area_id: 0.0.0.100 - stub: - default_metric: 200 - set: true - interfaces: - - name: so-0/0/0.0 - priority: 3 - metric: 5 - flood_reduction: true - passive: true - - area_id: 0.0.0.200 - interfaces: - - name: ge-1/1/0.0 - - name: ge-2/2/0.0 - state: rendered +# gathered: +# +# - areas: +# - area_id: 0.0.0.100 +# interfaces: +# - metric: 5 +# name: so-0/0/0.0 +# priority: 3 +# - metric: 6 +# name: so-0/0/1.0 +# priority: 2 +# stub: +# default_metric: 200 +# set: true +# router_id: 10.200.16.75 -# -# -# ------------------------- -# Module Execution Result -# ------------------------- -# -# -# "rendered": " -# <nc:protocols -# xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> -# <nc:ospf3> -# <nc:area> -# <nc:name>0.0.0.100</nc:name> -# <nc:interface> -# <nc:name>so-0/0/0.0</nc:name> -# <nc:priority>3</nc:priority> -# <nc:flood-reduction/> -# <nc:metric>5</nc:metric> -# <nc:passive/> -# </nc:interface> -# <nc:stub> -# <nc:default-metric>200</nc:default-metric> -# </nc:stub> -# </nc:area> -# <nc:area> -# <nc:name>0.0.0.200</nc:name> -# <nc:interface> -# <nc:name>ge-1/1/0.0</nc:name> -# </nc:interface> -# <nc:interface> -# <nc:name>ge-2/2/0.0</nc:name> -# </nc:interface> -# </nc:area> -# </nc:ospf3> -# </nc:protocols>" -# # Using parsed # parsed.cfg # ------------ -# <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.4R1/junos"> -# <data> -# <configuration xmlns="http://xml.juniper.net/xnm/1.1/xnm" -# junos:commit-seconds="1601355317" junos:commit-localtime="2020-09-29 04:55:17 UTC" junos:commit-user="rohit"> -# <version>18.4R1-S2.4</version> -# <interfaces> -# <interface> -# <name>ge-0/0/0</name> -# <description>Configured by Ansi-Team</description> -# </interface> -# <interface> -# <name>gr-0/0/0</name> -# <description>Configured Manually</description> -# </interface> -# <interface> -# <name>fxp0</name> -# <unit> -# <name>0</name> -# <family> -# <inet> -# <dhcp> -# </dhcp> -# </inet> -# </family> -# </unit> -# </interface> -# </interfaces> -# <protocols> -# <ospf3> -# <area> -# <name>0.0.0.100</name> -# <stub> -# <default-metric>200</default-metric> -# </stub> -# <interface> -# <name>so-0/0/0.0</name> -# <passive> -# </passive> -# <metric>5</metric> -# <priority>3</priority> -# <flood-reduction/> -# </interface> -# </area> -# <area> -# <name>0.0.0.200</name> -# <interface> -# <name>ge-1/1/0.0</name> -# </interface> -# <interface> -# <name>ge-2/2/0.0</name> -# </interface> -# </area> -# </ospf3> -# </protocols> -# <routing-options> -# <router-id>10.200.16.75</router-id> -# </routing-options> -# </configuration> -# <database-status-information> -# <database-status> -# <user>rohit</user> -# <terminal>pts/0</terminal> -# <pid>38210</pid> -# <start-time junos:seconds="1601354977">2020-09-29 04:49:37 UTC</start-time> -# <idle-time junos:seconds="546">00:09:06</idle-time> -# <edit-path>[edit]</edit-path> -# </database-status> -# </database-status-information> -# </data> +# <?xml version="1.0" encoding="UTF-8"?> +# <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> +# <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> +# <protocols> +# <ospf3> +# <area> +# <name>0.0.0.100</name> +# <stub> +# <default-metric>200</default-metric> +# </stub> +# <interface> +# <name>so-0/0/0.0</name> +# <passive></passive> +# <metric>5</metric> +# <priority>3</priority> +# <flood-reduction/> +# </interface> +# </area> +# <area> +# <name>0.0.0.200</name> +# <interface> +# <name>ge-1/1/0.0</name> +# </interface> +# <interface> +# <name>ge-2/2/0.0</name> +# </interface> +# </area> +# </ospf3> +# </protocols> +# <routing-options> +# <router-id>10.200.16.75</router-id> +# </routing-options> +# </configuration> # </rpc-reply> -- name: Parsed the device configuration to get output commands + +- name: Parsed the ospfv3 config into structured ansible resource facts. junipernetworks.junos.junos_ospfv3: running_config: "{{ lookup('file', './parsed.cfg') }}" state: parsed # +# Task Output: +# ------------ +# +# parsed: +# - router_id: 10.200.16.75 +# areas: +# - area_id: 0.0.0.100 +# stub: +# default_metric: 200 +# set: true +# interfaces: +# - name: so-0/0/0.0 +# priority: 3 +# metric: 5 +# flood_reduction: true +# passive: true +# - area_id: 0.0.0.200 +# interfaces: +# - name: ge-1/1/0.0 +# - name: ge-2/2/0.0 + +# Using rendered # -# ------------------------- -# Module Execution Result -# ------------------------- -# -# -# "parsed": [ -# { -# "areas": [ -# { -# "area_id": "0.0.0.100", -# "interfaces": [ -# { -# "flood_reduction": true, -# "metric": 5, -# "name": "so-0/0/0.0", -# "passive": true, -# "priority": 3 -# } -# ], -# "stub": { -# "default_metric": 200, -# "set": true -# } -# }, -# { -# "area_id": "0.0.0.200", -# "interfaces": [ -# { -# "name": "ge-1/1/0.0" -# }, -# { -# "name": "ge-2/2/0.0" -# } -# ] -# } -# ], -# } -# ] +- name: Render the commands for provided configuration + junipernetworks.junos.junos_ospfv3: + config: + - router_id: 10.200.16.75 + areas: + - area_id: 0.0.0.100 + interfaces: + - metric: 5 + name: so-0/0/0.0 + priority: 3 + - metric: 6 + name: so-0/0/1.0 + priority: 2 + stub: + default_metric: 200 + set: true + state: rendered + +# Task Output: +# ------------ # +# rendered: "<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# <nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface> +# <nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority> +# <nc:metric>5</nc:metric></nc:interface><nc:interface><nc:name>so-0/0/1.0</nc:name> +# <nc:priority>2</nc:priority><nc:metric>6</nc:metric></nc:interface><nc:stub> +# <nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf3></nc:protocols>" """ RETURN = """ before: - description: The configuration prior to the model invocation. + description: The configuration prior to the module invocation. returned: always type: dict sample: > The configuration returned will always be in the same format of the parameters above. after: - description: The resulting configuration model invocation. + description: The resulting configuration module invocation. returned: when changed type: dict sample: > @@ -620,40 +692,28 @@ commands: description: The set of commands pushed to the remote device. returned: always type: list - sample: ['<nc:protocols - xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> - <nc:ospf3 delete=\"delete\"/> - <nc:ospf3> - <nc:area> - <nc:name>0.0.0.100</nc:name> - <nc:interface> - <nc:name>so-0/0/0.0</nc:name> - <nc:priority>3</nc:priority> - <nc:flood-reduction/> - <nc:metric>5</nc:metric> - <nc:passive/> - </nc:interface> - <nc:stub> - <nc:default-metric>200</nc:default-metric> - </nc:stub> - </nc:area> - <nc:area> - <nc:name>0.0.0.200</nc:name> - <nc:interface> - <nc:name>ge-1/1/0.0</nc:name> - </nc:interface> - <nc:interface> - <nc:name>ge-2/2/0.0</nc:name> - </nc:interface> - </nc:area> - </nc:ospf3> -</nc:protocols>", - " -<nc:routing-options - xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> - <nc:router-id delete=\"delete\"/> - <nc:router-id>10.200.16.75</nc:router-id> -</nc:routing-options>', 'xml 2', 'xml 3'] + sample: ['<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">< + nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface>', 'xml 2', 'xml 3'] +rendered: + description: The provided configuration in the task rendered in device-native format (offline). + returned: when I(state) is C(rendered) + type: list + sample: + - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +gathered: + description: Facts about the network resource gathered from the remote device as structured data. + returned: when I(state) is C(gathered) + type: list + sample: > + This output will always be in the same format as the + module argspec. +parsed: + description: The device native config provided in I(running_config) option parsed into structured data as per module argspec. + returned: when I(state) is C(parsed) + type: list + sample: > + This output will always be in the same format as the + module argspec. """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_package.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_package.py index 0cffb4ddb..cfd9db297 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_package.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_package.py @@ -44,27 +44,33 @@ options: updated package has been installed. If disabled or the remote package does not need to be changed, the device will not be started. type: bool - default: yes + default: true no_copy: description: - The I(no_copy) argument is responsible for instructing the remote device on where to install the package from. When enabled, the package is transferred to the remote device prior to installing. type: bool - default: no + default: false + unlink: + description: + - The I(unlink) argument is responsible for instructing the remote device to + remove the installation packages after installation. + type: bool + default: false validate: description: - The I(validate) argument is responsible for instructing the remote device to skip checking the current device configuration compatibility with the package being installed. When set to false validation is not performed. type: bool - default: yes + default: true force: description: - The I(force) argument instructs the module to bypass the package version check and install the packaged identified in I(src) on the remote device. type: bool - default: no + default: false force_host: description: - The I(force_host) argument controls the way software package or bundle is added @@ -93,6 +99,64 @@ options: used to load SSH information from a configuration file. If this option is not given by default ~/.ssh/config is queried. type: path + provider: + description: + - B(Deprecated) + - 'Starting with Ansible 2.5 we recommend using C(connection: network_cli) or + C(connection: netconf).' + - For more information please see the L(Junos OS Platform Options guide, ../network/user_guide/platform_junos.html). + - HORIZONTALLINE + - A dict object containing connection details. + type: dict + suboptions: + host: + description: + - Specifies the DNS host name or address for connecting to the remote device + over the specified transport. The value of host is used as the destination + address for the transport. + type: str + port: + description: + - Specifies the port to use when building the connection to the remote device. The + port value will default to the well known SSH port of 22 (for C(transport=cli)) + or port 830 (for C(transport=netconf)) device. + type: int + username: + description: + - Configures the username to use to authenticate the connection to the remote + device. This value is used to authenticate the SSH session. If the value + is not specified in the task, the value of environment variable C(ANSIBLE_NET_USERNAME) + will be used instead. + type: str + password: + description: + - Specifies the password to use to authenticate the connection to the remote + device. This value is used to authenticate the SSH session. If the value + is not specified in the task, the value of environment variable C(ANSIBLE_NET_PASSWORD) + will be used instead. + type: str + timeout: + description: + - Specifies the timeout in seconds for communicating with the network device + for either connecting or sending commands. If the timeout is exceeded before + the operation is completed, the module will error. + type: int + ssh_keyfile: + description: + - Specifies the SSH key to use to authenticate the connection to the remote + device. This value is the path to the key used to authenticate the SSH + session. If the value is not specified in the task, the value of environment + variable C(ANSIBLE_NET_SSH_KEYFILE) will be used instead. + type: path + transport: + description: + - Configures the transport connection to use when connecting to the remote + device. + type: str + default: netconf + choices: + - cli + - netconf requirements: - junos-eznc - ncclient (>=v0.5.2) @@ -117,7 +181,7 @@ EXAMPLES = """ - name: install local package on remote device without rebooting junipernetworks.junos.junos_package: src: junos-vsrx-12.1X46-D10.2-domestic.tgz - reboot: no + reboot: false - name: install local package on remote device with jumpost junipernetworks.junos.junos_package: @@ -128,6 +192,7 @@ from ansible.module_utils.basic import AnsibleModule from ansible_collections.junipernetworks.junos.plugins.module_utils.network.junos.junos import ( get_device, + junos_argument_spec, ) @@ -143,6 +208,7 @@ def install_package(module, device): junos = SW(device) package = module.params["src"] no_copy = module.params["no_copy"] + unlink = module.params["unlink"] validate = module.params["validate"] force_host = module.params["force_host"] issu = module.params["issu"] @@ -155,6 +221,7 @@ def install_package(module, device): package, progress=progress_log, no_copy=no_copy, + unlink=unlink, validate=validate, force_host=force_host, issu=issu, @@ -175,6 +242,7 @@ def main(): version=dict(), reboot=dict(type="bool", default=True), no_copy=dict(default=False, type="bool"), + unlink=dict(default=False, type="bool"), validate=dict(default=True, type="bool"), force=dict(type="bool", default=False), force_host=dict(type="bool", default=False), @@ -183,11 +251,16 @@ def main(): ssh_config=dict(type="path"), ) + argument_spec.update(junos_argument_spec) + module = AnsibleModule( argument_spec=argument_spec, supports_check_mode=True, ) + if module.params["provider"] is None: + module.params["provider"] = {} + if not HAS_PYEZ: module.fail_json( msg="junos-eznc is required but does not appear to be installed. " diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_ping.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_ping.py index 4c373474c..67fc9a1f1 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_ping.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_ping.py @@ -107,8 +107,8 @@ EXAMPLES = """ - name: Test reachability to 10.50.50.50 using do-not-fragment and rapid junipernetworks.junos.junos_ping: dest: 10.50.50.50 - df_bit: True - rapid: True + df_bit: true + rapid: true """ RETURN = """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_prefix_lists.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_prefix_lists.py index 40b101f44..a6e0a32f3 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_prefix_lists.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_prefix_lists.py @@ -117,45 +117,35 @@ EXAMPLES = """ - 172.16.7.32 - 172.16.9.32 state: merged -# -# ------------------------- -# Module Execution Result -# ------------------------- -# -# "before": [] -# "commands": [ -# "<nc:policy-options xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> -# "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>" -# "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name>" -# "</nc:prefix-list-item></nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name>" -# "<nc:dynamic-db/></nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name>" -# "<nc:prefix-list-item><nc:name>172.16.2.32</nc:name></nc:prefix-list-item>" -# "<nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>" -# "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>" -# "</nc:prefix-list></nc:policy-options>" -# ] -# -# "after": [ -# { -# "address_prefixes": [ -# "172.16.1.32/32", -# "172.16.3.32/32" -# ], -# "name": "Internal" -# }, -# { -# "dynamic_db": true, -# "name": "Test1" -# }, -# { -# "address_prefixes": [ -# "172.16.2.32/32", -# "172.16.7.32/32", -# "172.16.9.32/32" -# ], -# "name": "Test2" -# } -# ] + +# Task Output +# ------------- +# +# before: [] +# commands: +# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# - "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>" +# - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name>" +# - "</nc:prefix-list-item></nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name>" +# - "<nc:dynamic-db/></nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name>" +# - "<nc:prefix-list-item><nc:name>172.16.2.32</nc:name></nc:prefix-list-item>" +# - "<nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>" +# - "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>" +# - "</nc:prefix-list></nc:policy-options>" +# after: +# - address_prefixes: +# - 172.16.1.32/32 +# - 172.16.3.32/32 +# name: Internal +# - dynamic_db: true +# name: Test1 +# - address_prefixes: +# - 172.16.2.32/32 +# - 172.16.7.32/32 +# - 172.16.9.32/32 +# name: Test2 + + # After state # ----------- # @@ -172,7 +162,8 @@ EXAMPLES = """ # 172.16.7.32/32; # 172.16.9.32/32; # } -# + + # Using gathered # # Before state @@ -195,36 +186,28 @@ EXAMPLES = """ - name: Gather Junos prefix-lists junipernetworks.junos.junos_prefix_lists: state: gathered -# -# -# ------------------------- -# Module Execution Result -# ------------------------- -# -# "gathered": [ -# { -# "address_prefixes": [ -# "172.16.1.32/32", -# "172.16.3.32/32" -# ], -# "name": "Internal" -# }, -# { -# "dynamic_db": true, -# "name": "Test1" -# }, -# { -# "address_prefixes": [ -# "172.16.2.32/32", -# "172.16.7.32/32", -# "172.16.9.32/32" -# ], -# "name": "Test2" -# } -# ] -# + + +# Task Output +# ------------- +# +# gathered: +# - address_prefixes: +# - 172.16.1.32/32 +# - 172.16.3.32/32 +# name: Internal +# - dynamic_db: true +# name: Test1 +# - address_prefixes: +# - 172.16.2.32/32 +# - 172.16.7.32/32 +# - 172.16.9.32/32 +# name: Test2 + + # Using replaced -# + + # Before state # ------------ # @@ -241,70 +224,54 @@ EXAMPLES = """ # 172.16.7.32/32; # 172.16.9.32/32; # } + + - name: Replace existing Junos prefix-lists configuration with provided config junipernetworks.junos.junos_prefix_lists: - config: - - name: Test2 - address_prefixes: - - 172.16.4.32 - - 172.16.8.32 - - 172.16.9.32" - state: replaced -# ------------------------- -# Module Execution Result -# ------------------------- -# -# "before": [ -# { -# "address_prefixes": [ -# "172.16.1.32/32", -# "172.16.3.32/32" -# ], -# "name": "Internal" -# }, -# { -# "dynamic_db": true, -# "name": "Test1" -# }, -# { -# "address_prefixes": [ -# "172.16.2.32/32", -# "172.16.7.32/32", -# "172.16.9.32/32" -# ], -# "name": "Test2" -# } -# ] -# "commands": [ -# "<nc:policy-options xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> -# "<nc:prefix-list delete=\"delete\"><nc:name>Test2</nc:name></nc:prefix-list>" -# "<nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item><nc:name>172.16.4.32</nc:name>" -# "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.8.32</nc:name>" -# "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.9.32</nc:name>" -# "</nc:prefix-list-item></nc:prefix-list></nc:policy-options>" -# ] -# -# "after": [ -# { -# "address_prefixes": [ -# "172.16.1.32/32", -# "172.16.3.32/32" -# ], -# "name": "Internal" -# }, -# { -# "dynamic_db": true, -# "name": "Test1" -# }, -# { -# "address_prefixes": [ -# "172.16.4.32/32", -# "172.16.8.32/32", -# "172.16.9.32/32" -# ], -# "name": "Test2" -# } -# ] + config: + - name: Test2 + address_prefixes: + - 172.16.4.32 + - 172.16.8.32 + - 172.16.9.32" + state: replaced + + +# Task Output +# ------------- +# +# before: +# - address_prefixes: +# - 172.16.1.32/32 +# - 172.16.3.32/32 +# name: Internal +# - dynamic_db: true +# name: Test1 +# - address_prefixes: +# - 172.16.2.32/32 +# - 172.16.7.32/32 +# - 172.16.9.32/32 +# name: Test2 +# commands: +# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# - <nc:prefix-list delete="delete"><nc:name>Test2</nc:name></nc:prefix-list> +# - "<nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item><nc:name>172.16.4.32</nc:name>" +# - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.8.32</nc:name>" +# - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.9.32</nc:name>" +# - "</nc:prefix-list-item></nc:prefix-list></nc:policy-options>" +# after: +# - address_prefixes: +# - 172.16.1.32/32 +# - 172.16.3.32/32 +# name: Internal +# - dynamic_db: true +# name: Test1 +# - address_prefixes: +# - 172.16.4.32/32 +# - 172.16.8.32/32 +# - 172.16.9.32/32 +# name: Test2 + # After state # ----------- # @@ -321,8 +288,10 @@ EXAMPLES = """ # 172.16.8.32/32; # 172.16.9.32/32; # } + + # Using overridden -# + # Before state # ------------ # @@ -339,62 +308,50 @@ EXAMPLES = """ # 172.16.8.32/32; # 172.16.9.32/32; # } + + - name: Override Junos prefix-lists configuration with provided configuration junipernetworks.junos.junos_prefix_lists: - config: - - name: Test2 - address_prefixes: - - 172.16.4.32/28 - - 172.16.8.32/28 - - 172.16.9.32/28 - state: overridden - -# ------------------------- -# Module Execution Result -# ------------------------- -# -# "before": [ -# { -# "address_prefixes": [ -# "172.16.1.32/32", -# "172.16.3.32/32" -# ], -# "name": "Internal" -# }, -# { -# "dynamic_db": true, -# "name": "Test1" -# }, -# { -# "address_prefixes": [ -# "172.16.4.32/32", -# "172.16.8.32/32", -# "172.16.9.32/32" -# ], -# "name": "Test2" -# } -# ] -# "commands": [ -# "<nc:policy-options xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> -# "<nc:prefix-list delete=\"delete\"><nc:name>Internal</nc:name>" -# "</nc:prefix-list><nc:prefix-list delete=\"delete\"><nc:name>Test1</nc:name>" -# "</nc:prefix-list><nc:prefix-list delete=\"delete\"><nc:name>Test2</nc:name>" -# "</nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item>" -# "<nc:name>172.16.4.32/28</nc:name></nc:prefix-list-item><nc:prefix-list-item>" -# "<nc:name>172.16.8.32/28</nc:name></nc:prefix-list-item><nc:prefix-list-item>" -# "<nc:name>172.16.9.32/28</nc:name></nc:prefix-list-item></nc:prefix-list></nc:policy-options>" -# ] -# -# "after": [ -# { -# "address_prefixes": [ -# "172.16.4.32/28", -# "172.16.8.32/28", -# "172.16.9.32/28" -# ], -# "name": "Test2" -# } -# ] + config: + - name: Test2 + address_prefixes: + - 172.16.4.32/28 + - 172.16.8.32/28 + - 172.16.9.32/28 + state: overridden + + +# Task Output +# ------------- +# +# before: +# - address_prefixes: +# - 172.16.1.32/32 +# - 172.16.3.32/32 +# name: Internal +# - dynamic_db: true +# name: Test1 +# - address_prefixes: +# - 172.16.4.32/32 +# - 172.16.8.32/32 +# - 172.16.9.32/32 +# name: Test2 +# commands: +# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# - <nc:prefix-list delete="delete"><nc:name>Internal</nc:name> +# - </nc:prefix-list><nc:prefix-list delete="delete"><nc:name>Test1</nc:name> +# - </nc:prefix-list><nc:prefix-list delete="delete"><nc:name>Test2</nc:name> +# - "</nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item>" +# - "<nc:name>172.16.4.32/28</nc:name></nc:prefix-list-item><nc:prefix-list-item>" +# - "<nc:name>172.16.8.32/28</nc:name></nc:prefix-list-item><nc:prefix-list-item>" +# - "<nc:name>172.16.9.32/28</nc:name></nc:prefix-list-item></nc:prefix-list></nc:policy-options>" +# after: +# - address_prefixes: +# - 172.16.4.32/28 +# - 172.16.8.32/28 +# - 172.16.9.32/28 +# name: Test2 + # After state # ----------- # @@ -404,8 +361,11 @@ EXAMPLES = """ # 172.16.8.32/28; # 172.16.9.32/28; # } + + # Using deleted -# + + # Before state # ------------ # @@ -423,52 +383,41 @@ EXAMPLES = """ # 172.16.9.32/32; # } + - name: Delete provided prefix-lists junipernetworks.junos.junos_prefix_lists: - config: - - name: "Test1" - - name: "Test2" - state: deleted -# ------------------------ -# Module Execution Results -# ------------------------ -# -# "before": [ -# { -# "address_prefixes": [ -# "172.16.1.32/32", -# "172.16.3.32/32" -# ], -# "name": "Internal" -# }, -# { -# "dynamic_db": true, -# "name": "Test1" -# }, -# { -# "address_prefixes": [ -# "172.16.2.32/32", -# "172.16.7.32/32", -# "172.16.9.32/32" -# ], -# "name": "Test2" -# } -# ] -# "commands": [ -# "<nc:policy-options xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> -# "<nc:prefix-list delete=\"delete\"><nc:name>Test1</nc:name></nc:prefix-list>" -# "<nc:prefix-list delete=\"delete\"><nc:name>Test2</nc:name></nc:prefix-list></nc:policy-options>" -# ] -# -# "after": [ -# { -# "address_prefixes": [ -# "172.16.1.32/32", -# "172.16.3.32/32" -# ], -# "name": "Internal" -# } -# ] + config: + - name: "Test1" + - name: "Test2" + state: deleted + + +# Task Output +# ------------- +# +# before: +# - address_prefixes: +# - 172.16.1.32/32 +# - 172.16.3.32/32 +# name: Internal +# - dynamic_db: true +# name: Test1 +# - address_prefixes: +# - 172.16.2.32/32 +# - 172.16.7.32/32 +# - 172.16.9.32/32 +# name: Test2 +# commands: +# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# - <nc:prefix-list delete="delete"><nc:name>Test1</nc:name></nc:prefix-list> +# - <nc:prefix-list delete="delete"><nc:name>Test2</nc:name></nc:prefix-list></nc:policy-options> +# after: +# - address_prefixes: +# - 172.16.1.32/32 +# - 172.16.3.32/32 +# name: Internal + + # After state # ----------- # @@ -478,8 +427,11 @@ EXAMPLES = """ # 172.16.3.32/32; # } # + + # Using deleted without specifying config -# + + # Before state # ------------ # @@ -497,40 +449,33 @@ EXAMPLES = """ # 172.16.9.32/32; # } + - name: Delete complete Junos prefix-lists configuration junipernetworks.junos.junos_prefix_lists: - state: deleted + state: deleted + + +# Task Output +# ------------- +# +# before: +# - address_prefixes: +# - 172.16.1.32/32 +# - 172.16.3.32/32 +# name: Internal +# - dynamic_db: true +# name: Test1 +# - address_prefixes: +# - 172.16.2.32/32 +# - 172.16.7.32/32 +# - 172.16.9.32/32 +# name: Test2 +# commands: +# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# - <nc:prefix-list delete="delete"/></nc:policy-options> +# after: [] + -# ------------------------ -# Module Execution Results -# ------------------------ -# -# "before": [ -# { -# "address_prefixes": [ -# "172.16.1.32/32", -# "172.16.3.32/32" -# ], -# "name": "Internal" -# }, -# { -# "dynamic_db": true, -# "name": "Test1" -# }, -# { -# "address_prefixes": [ -# "172.16.2.32/32", -# "172.16.7.32/32", -# "172.16.9.32/32" -# ], -# "name": "Test2" -# } -# ] -# "commands": ["<nc:policy-options xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> -# "<nc:prefix-list delete=\"delete\"/></nc:policy-options>" -# ] -# -# "after": [] # After state # ----------- # @@ -538,8 +483,10 @@ EXAMPLES = """ # # [edit] -# + # Using parsed + + # parsed.cfg # ------------ # <?xml version="1.0" encoding="UTF-8"?> @@ -563,34 +510,28 @@ EXAMPLES = """ # </policy-options> # </configuration> # </rpc-reply> + + - name: Parse running prefix-lists configuration junipernetworks.junos.junos_prefix_lists: running_config: "{{ lookup('file', './parsed.cfg') }}" state: parsed -# -# -# ------------------------- -# Module Execution Result -# ------------------------- -# -# -# "parsed": [ -# { -# "name": "64510" -# }, -# { -# "address_prefixes": [ -# "172.16.1.16/28", -# "172.16.1.32/28" -# ], -# "dynamic_db": true, -# "name": "64500" -# } -# ] -# -# + + +# Task Output +# ------------- +# parsed: +# - name: '64510' +# - address_prefixes: +# - 172.16.1.16/28 +# - 172.16.1.32/28 +# dynamic_db: true +# name: '64500' + + # Using rendered -# + + - name: Render the xml for provided configuration junipernetworks.junos.junos_prefix_lists: config: @@ -606,43 +547,78 @@ EXAMPLES = """ - 172.16.7.32 - 172.16.9.32 state: rendered -# -# -# ------------------------- -# Module Execution Result -# ------------------------- -# -# -# "rendered": "<nc:policy-options xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> -# "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>" -# "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name></nc:prefix-list-item>" -# "</nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name><nc:dynamic-db/></nc:prefix-list>" -# "<nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item><nc:name>172.16.2.32</nc:name>" -# "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>" -# "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>" -# "</nc:prefix-list></nc:policy-options>" + + +# Task Output +# ------------- +# rendered: +# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +# - "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>" +# - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name>" +# - "</nc:prefix-list-item></nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name>" +# - "<nc:dynamic-db/></nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name>" +# - "<nc:prefix-list-item><nc:name>172.16.2.32</nc:name></nc:prefix-list-item>" +# - "<nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>" +# - "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>" +# - "</nc:prefix-list></nc:policy-options>" """ -RETURN = """ +RRETURN = """ before: description: The configuration prior to the model invocation. returned: always + type: str sample: > The configuration returned will always be in the same format of the parameters above. - type: list after: description: The resulting configuration model invocation. returned: when changed + type: str sample: > The configuration returned will always be in the same format of the parameters above. - type: list commands: description: The set of commands pushed to the remote device. returned: always type: list - sample: ['<nc:policy-options xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> - "<nc:prefix-list delete=\"delete\"/></nc:policy-options>"', 'xml 2', 'command 3'] + sample: + - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + - "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>" + - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name>" + - "</nc:prefix-list-item></nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name>" + - "<nc:dynamic-db/></nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name>" + - "<nc:prefix-list-item><nc:name>172.16.2.32</nc:name></nc:prefix-list-item>" + - "<nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>" + - "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>" + - "</nc:prefix-list></nc:policy-options>" +rendered: + description: The provided configuration in the task rendered in device-native format (offline). + returned: when I(state) is C(rendered) + type: list + sample: + - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> + - "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>" + - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name>" + - "</nc:prefix-list-item></nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name>" + - "<nc:dynamic-db/></nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name>" + - "<nc:prefix-list-item><nc:name>172.16.2.32</nc:name></nc:prefix-list-item>" + - "<nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>" + - "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>" + - "</nc:prefix-list></nc:policy-options>" +gathered: + description: Facts about the network resource gathered from the remote device as structured data. + returned: when I(state) is C(gathered) + type: list + sample: > + This output will always be in the same format as the + module argspec. +parsed: + description: The device native config provided in I(running_config) option parsed into structured data as per module argspec. + returned: when I(state) is C(parsed) + type: list + sample: > + This output will always be in the same format as the + module argspec. """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_routing_instances.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_routing_instances.py index 1b7c1c995..eec4720b8 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_routing_instances.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_routing_instances.py @@ -312,21 +312,21 @@ EXAMPLES = """ - name: Replace existing Junos routing instance config with provided config junipernetworks.junos.junos_routing_instances: - config: - address_family: - - name: "test" - type: "vrf" - route_distinguisher: "10.57.255.1:37" - vrf_imports: - - "test-policy" - vrf_exports: - - "test-policy" - interfaces: - - name: "sp-0/0/0.0" - - name: "gr-0/0/0.0" - connector_id_advertise: false - description: "Configured by Ansible Content Team" - state: replaced + config: + address_family: + - name: "test" + type: "vrf" + route_distinguisher: "10.57.255.1:37" + vrf_imports: + - "test-policy" + vrf_exports: + - "test-policy" + interfaces: + - name: "sp-0/0/0.0" + - name: "gr-0/0/0.0" + connector_id_advertise: false + description: "Configured by Ansible Content Team" + state: replaced # After state # ----------- @@ -368,25 +368,25 @@ EXAMPLES = """ - name: Override Junos routing-instances configuration junipernetworks.junos.junos_routing_instances: - config: - - name: "test" - type: "vrf" - route_distinguisher: "10.58.255.1:37" - vrf_imports: - - "test-policy" - vrf_exports: - - "test-policy" - - "test-policy-1" - interfaces: - - name: "sp-0/0/0.0" - - name: "gr-0/0/0.0" - connector_id_advertise: true - - name: "forwardinst" - type: "forwarding" - description: "Configured by Ansible Content Team" - - name: "vtest1" - type: "virtual-router" - state: overridden + config: + - name: "test" + type: "vrf" + route_distinguisher: "10.58.255.1:37" + vrf_imports: + - "test-policy" + vrf_exports: + - "test-policy" + - "test-policy-1" + interfaces: + - name: "sp-0/0/0.0" + - name: "gr-0/0/0.0" + connector_id_advertise: true + - name: "forwardinst" + type: "forwarding" + description: "Configured by Ansible Content Team" + - name: "vtest1" + type: "virtual-router" + state: overridden # After state # ----------- @@ -432,9 +432,9 @@ EXAMPLES = """ - name: Delete provided junos routing-instamce junipernetworks.junos.junos_routing_instances: - config: - - name: "test" - state: deleted + config: + - name: "test" + state: deleted # After state # ----------- @@ -470,8 +470,8 @@ EXAMPLES = """ - name: Delete complete Junos routing-instances config junipernetworks.junos.junos_routing_instances: - config: - state: deleted + config: + state: deleted # After state # ----------- diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_scp.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_scp.py index 34657ae8d..605450053 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_scp.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_scp.py @@ -19,6 +19,10 @@ description: version_added: 1.0.0 extends_documentation_fragment: - junipernetworks.junos.junos +deprecated: + why: Updated modules released with more functionality + alternative: Use M(ansible.netcommon.net_get), M(ansible.netcommon.net_put) instead. + removed_at_date: '2025-01-01' options: src: description: @@ -56,6 +60,64 @@ options: used to load SSH information from a configuration file. If this option is not given by default ~/.ssh/config is queried. type: path + provider: + description: + - B(Deprecated) + - 'Starting with Ansible 2.5 we recommend using C(connection: network_cli) or + C(connection: netconf).' + - For more information please see the L(Junos OS Platform Options guide, ../network/user_guide/platform_junos.html). + - HORIZONTALLINE + - A dict object containing connection details. + type: dict + suboptions: + host: + description: + - Specifies the DNS host name or address for connecting to the remote device + over the specified transport. The value of host is used as the destination + address for the transport. + type: str + port: + description: + - Specifies the port to use when building the connection to the remote device. The + port value will default to the well known SSH port of 22 (for C(transport=cli)) + or port 830 (for C(transport=netconf)) device. + type: int + username: + description: + - Configures the username to use to authenticate the connection to the remote + device. This value is used to authenticate the SSH session. If the value + is not specified in the task, the value of environment variable C(ANSIBLE_NET_USERNAME) + will be used instead. + type: str + password: + description: + - Specifies the password to use to authenticate the connection to the remote + device. This value is used to authenticate the SSH session. If the value + is not specified in the task, the value of environment variable C(ANSIBLE_NET_PASSWORD) + will be used instead. + type: str + timeout: + description: + - Specifies the timeout in seconds for communicating with the network device + for either connecting or sending commands. If the timeout is exceeded before + the operation is completed, the module will error. + type: int + ssh_keyfile: + description: + - Specifies the SSH key to use to authenticate the connection to the remote + device. This value is the path to the key used to authenticate the SSH + session. If the value is not specified in the task, the value of environment + variable C(ANSIBLE_NET_SSH_KEYFILE) will be used instead. + type: path + transport: + description: + - Configures the transport connection to use when connecting to the remote + device. + type: str + default: netconf + choices: + - cli + - netconf requirements: - junos-eznc - ncclient (>=v0.5.2) @@ -104,6 +166,7 @@ from ansible.module_utils.basic import AnsibleModule from ansible_collections.junipernetworks.junos.plugins.module_utils.network.junos.junos import ( get_device, + junos_argument_spec, ) @@ -138,11 +201,15 @@ def main(): ssh_config=dict(type="path"), ) + argument_spec.update(junos_argument_spec) module = AnsibleModule( argument_spec=argument_spec, supports_check_mode=True, ) + if module.params["provider"] is None: + module.params["provider"] = {} + if not HAS_PYEZ: module.fail_json( msg="junos-eznc is required but does not appear to be installed. " diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_security_policies.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_security_policies.py index bf8c4f6ee..8d8f50f02 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_security_policies.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_security_policies.py @@ -2545,18 +2545,18 @@ EXAMPLES = """ - junipernetworks.junos.junos_security_policies: config: global: - policies: - - description: test update - match: - application: - any: true - destination_address: - any_ipv6: true - source_address: - any: true - name: test_glob_3 - then: - deny: true + policies: + - description: test update + match: + application: + any: true + destination_address: + any_ipv6: true + source_address: + any: true + name: test_glob_3 + then: + deny: true state: rendered # # ------------------------- @@ -2581,8 +2581,6 @@ EXAMPLES = """ # </nc:global> # </nc:policies> # </nc:security>" - - """ RETURN = """ before: diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_security_zones.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_security_zones.py index 36032cbca..384e92a21 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_security_zones.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_security_zones.py @@ -291,7 +291,8 @@ options: connection to remote host is not required. type: str """ -EXAMPLES = """# Using merged +EXAMPLES = """ +# Using merged # # Before state # ------------ @@ -308,72 +309,72 @@ EXAMPLES = """# Using merged description: test description host_inbound_traffic: protocols: - - name: all - - name: bgp - except: true + - name: all + - name: bgp + except: true system_services: - - name: all - - except: true - name: dhcp + - name: all + - except: true + name: dhcp interfaces: - ge-0/0/1.0 - ge-0/0/2.0 screen: test_screen security_zones: - - address_book: - address_sets: - - addresses: - - test_adr1 - - test_adr2 - name: test_adrset1 - - addresses: - - test_adr3 - - test_adr4 - name: test_adrset2 - - address_sets: - - test_adrset1 - - test_adrset2 + - address_book: + address_sets: + - addresses: + - test_adr1 + - test_adr2 + name: test_adrset1 + - addresses: + - test_adr3 + - test_adr4 + name: test_adrset2 + - address_sets: + - test_adrset1 + - test_adrset2 + addresses: + - test_adr5 + description: test description + name: test_adrset3 addresses: - - test_adr5 - description: test description - name: test_adrset3 - addresses: - - description: test desc - ip_prefix: 10.0.0.0/24 - name: test_adr1 - - dns_name: - ipv6_only: true - name: 1.1.1.1 - name: test_adr2 - - name: test_adr3 - range_address: - from: 10.2.0.1 - to: 10.2.0.2 - - name: test_adr4 - wildcard_address: 10.3.0.1/24 - - description: test desc - ip_prefix: 10.1.0.0/24 - name: test_adr5 - advance_policy_based_routing_profile: test_profile - application_tracking: true - description: test description - enable_reverse_reroute: true - host_inbound_traffic: - protocols: - - name: all - - except: true - name: bgp - system_services: - - name: all - - except: true - name: dhcp - interfaces: - - ge-0/0/3.0 - - ge-0/0/4.0 - name: test_sec_zone1 - screen: test_screen - source_identity_log: true - tcp_rst: true + - description: test desc + ip_prefix: 10.0.0.0/24 + name: test_adr1 + - dns_name: + ipv6_only: true + name: 1.1.1.1 + name: test_adr2 + - name: test_adr3 + range_address: + from: 10.2.0.1 + to: 10.2.0.2 + - name: test_adr4 + wildcard_address: 10.3.0.1/24 + - description: test desc + ip_prefix: 10.1.0.0/24 + name: test_adr5 + advance_policy_based_routing_profile: test_profile + application_tracking: true + description: test description + enable_reverse_reroute: true + host_inbound_traffic: + protocols: + - name: all + - except: true + name: bgp + system_services: + - name: all + - except: true + name: dhcp + interfaces: + - ge-0/0/3.0 + - ge-0/0/4.0 + name: test_sec_zone1 + screen: test_screen + source_identity_log: true + tcp_rst: true state: merged # # ------------------------- @@ -732,16 +733,16 @@ EXAMPLES = """# Using merged description: test description host_inbound_traffic: protocols: - - name: all - - name: bgp - except: true + - name: all + - name: bgp + except: true system_services: - - name: all - - except: true - name: dhcp - interfaces: - - ge-0/0/1.0 - - ge-0/0/2.0 + - name: all + - except: true + name: dhcp + interfaces: + - ge-0/0/1.0 + - ge-0/0/2.0 screen: test_screen state: replaced # @@ -1047,13 +1048,13 @@ EXAMPLES = """# Using merged description: test description host_inbound_traffic: protocols: - - name: all - - name: bgp - except: true + - name: all + - name: bgp + except: true system_services: - - name: all - - except: true - name: dhcp + - name: all + - except: true + name: dhcp interfaces: - ge-0/0/1.0 - ge-0/0/2.0 @@ -1580,72 +1581,72 @@ EXAMPLES = """# Using merged description: test description host_inbound_traffic: protocols: - - name: all - - name: bgp - except: true + - name: all + - name: bgp + except: true system_services: - - name: all - - except: true - name: dhcp + - name: all + - except: true + name: dhcp interfaces: - ge-0/0/1.0 - ge-0/0/2.0 screen: test_screen security_zones: - - address_book: - address_sets: - - addresses: - - test_adr1 - - test_adr2 - name: test_adrset1 - - addresses: - - test_adr3 - - test_adr4 - name: test_adrset2 - - address_sets: - - test_adrset1 - - test_adrset2 + - address_book: + address_sets: + - addresses: + - test_adr1 + - test_adr2 + name: test_adrset1 + - addresses: + - test_adr3 + - test_adr4 + name: test_adrset2 + - address_sets: + - test_adrset1 + - test_adrset2 + - addresses: + - test_adr5 + description: test description + name: test_adrset3 addresses: - - test_adr5 - description: test description - name: test_adrset3 - addresses: - - description: test desc - ip_prefix: 10.0.0.0/24 - name: test_adr1 - - dns_name: - ipv6_only: true - name: 1.1.1.1 - name: test_adr2 - - name: test_adr3 - range_address: - from: 10.2.0.1 - to: 10.2.0.2 - - name: test_adr4 - wildcard_address: 10.3.0.1/24 - - description: test desc - ip_prefix: 10.1.0.0/24 - name: test_adr5 - advance_policy_based_routing_profile: test_profile - application_tracking: true - description: test description - enable_reverse_reroute: true - host_inbound_traffic: - protocols: - - name: all - - except: true - name: bgp - system_services: - - name: all - - except: true - name: dhcp - interfaces: - - ge-0/0/3.0 - - ge-0/0/4.0 - name: test_sec_zone1 - screen: test_screen - source_identity_log: true - tcp_rst: true + - description: test desc + ip_prefix: 10.0.0.0/24 + name: test_adr1 + - dns_name: + ipv6_only: true + name: 1.1.1.1 + name: test_adr2 + - name: test_adr3 + range_address: + from: 10.2.0.1 + to: 10.2.0.2 + - name: test_adr4 + wildcard_address: 10.3.0.1/24 + - description: test desc + ip_prefix: 10.1.0.0/24 + name: test_adr5 + advance_policy_based_routing_profile: test_profile + application_tracking: true + description: test description + enable_reverse_reroute: true + host_inbound_traffic: + protocols: + - name: all + - except: true + name: bgp + system_services: + - name: all + - except: true + name: dhcp + interfaces: + - ge-0/0/3.0 + - ge-0/0/4.0 + name: test_sec_zone1 + screen: test_screen + source_identity_log: true + tcp_rst: true state: rendered # # ------------------------- diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_snmp_server.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_snmp_server.py index 491298327..0e2b286ec 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_snmp_server.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_snmp_server.py @@ -887,15 +887,15 @@ EXAMPLES = """ set: true host_name_resolution: true client_lists: # ATTR-----2 - - name: cl1 - addresses: - - address: "192.16.1.0/24" - - address: "192.16.2.0/24" - - address: "11.11.11.11" - restrict: true - - name: cl2 - addresses: - - address: "192.16.4.0/24" + - name: cl1 + addresses: + - address: "192.16.1.0/24" + - address: "192.16.2.0/24" + - address: "11.11.11.11" + restrict: true + - name: cl2 + addresses: + - address: "192.16.4.0/24" routing_instance_access: # ATTR-----3 set: true access_lists: @@ -1022,16 +1022,16 @@ EXAMPLES = """ config: contact: "ansiblesupport11@redhat.com" customization: - ether_stats_ifd_only: True + ether_stats_ifd_only: true description: "Local SNMP Server" engine_id: local: "local1" - use_default_ip_address: True - use_mac_address: True - filter_duplicates: True + use_default_ip_address: true + use_mac_address: true + filter_duplicates: true filter_interfaces: - set: True - all_internal_interfaces: True + set: true + all_internal_interfaces: true interfaces: - "eth1" - "eth2" @@ -1172,20 +1172,20 @@ EXAMPLES = """ config: contact: "ansiblesupport11@redhat.com" customization: - ether_stats_ifd_only: True + ether_stats_ifd_only: true description: "Local SNMP Server" engine_id: local: "local1" - use_default_ip_address: True - use_mac_address: True - filter_duplicates: True + use_default_ip_address: true + use_mac_address: true + filter_duplicates: true filter_interfaces: - set: True - all_internal_interfaces: True + set: true + all_internal_interfaces: true interfaces: - "eth1" - "eth2" - state: overridden + state: overridden # # ------------------------- # Module Execution Result diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_static_routes.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_static_routes.py index 7efe112a7..f89c66783 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_static_routes.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_static_routes.py @@ -127,27 +127,50 @@ EXAMPLES = """ # static { # route 192.168.47.0/24 next-hop 172.16.1.2; # route 192.168.16.0/24 next-hop 172.16.1.2; -# route 10.200.16.75/24 next-hop 10.200.16.2; # } - name: Delete provided configuration (default operation is merge) junipernetworks.junos.junos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 10.200.16.75/24 - next_hop: - - forward_router_address: 10.200.16.2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.168.16.0/24 + next_hop: + - forward_router_address: 172.16.1.2 state: deleted +# Task Output +# ----------- +# before: +# - address_families: +# - afi: ipv4 +# routes: +# - dest: 192.168.47.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 +# - dest: 192.168.16.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 +# commands: +# - '<nc:routing-options +# xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:static><nc:route +# delete="delete"><nc:name>192.168.16.0/24</nc:name></nc:route></nc:static></nc:routing-options>' +# - '<nc:routing-instances xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>' +# after: +# - address_families: +# - afi: ipv4 +# routes: +# - dest: 192.168.47.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 + # After state: # ------------ # # admin# show routing-options # static { # route 192.168.47.0/24 next-hop 172.16.1.2; -# route 192.168.16.0/24 next-hop 172.16.1.2; # } # Using merged @@ -158,21 +181,44 @@ EXAMPLES = """ # admin# show routing-options # static { # route 192.168.47.0/24 next-hop 172.16.1.2; -# route 192.168.16.0/24 next-hop 172.16.1.2; # } - name: Merge provided configuration with device configuration (default operation is merge) junipernetworks.junos.junos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 10.200.16.75/24 - next_hop: - - forward_router_address: 10.200.16.2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.168.16.0/24 + next_hop: + - forward_router_address: 172.16.1.2 state: merged +# Task Output +# ----------- +# before: +# - address_families: +# - afi: ipv4 +# routes: +# - dest: 192.168.47.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 +# commands: +# - '<nc:routing-options +# xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:static><nc:route><nc:name>192.168.16.0/24</nc:name> +# <nc:next-hop>172.16.1.2</nc:next-hop></nc:route></nc:static></nc:routing-options>' +# - '<nc:routing-instances xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>' +# after: +# - address_families: +# - afi: ipv4 +# routes: +# - dest: 192.168.47.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 +# - dest: 192.168.16.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 # After state: # ------------ # @@ -180,7 +226,6 @@ EXAMPLES = """ # static { # route 192.168.47.0/24 next-hop 172.16.1.2; # route 192.168.16.0/24 next-hop 172.16.1.2; -# route 10.200.16.75/24 next-hop 10.200.16.2; # } # Using overridden @@ -191,27 +236,53 @@ EXAMPLES = """ # admin# show routing-options # static { # route 192.168.47.0/24 next-hop 172.16.1.2; -# route 192.168.16.0/24 next-hop 172.16.0.1; +# route 192.168.16.0/24 next-hop 172.16.1.2; # } -- name: Override provided configuration with device configuration (default operation +- name: Override running configuration with provided configuration (default operation is merge) junipernetworks.junos.junos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 10.200.16.75/24 - next_hop: - - forward_router_address: 10.200.16.2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.168.16.0/24 + next_hop: + - forward_router_address: 172.16.0.1 state: overridden +# Task Output: +# ------------ +# before: +# - address_families: +# - afi: ipv4 +# routes: +# - dest: 192.168.47.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 +# - dest: 192.168.16.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 +# commands: +# - >- +# <nc:routing-options +# xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:static><nc:route +# delete="delete"><nc:name>192.168.47.0/24</nc:name></nc:route><nc:route +# delete="delete"><nc:name>192.168.16.0/24</nc:name></nc:route></nc:static><nc:static><nc:route><nc:name>192.168.16.0/24</nc:name><nc:next-hop>172.16.0.1</nc:next-hop></nc:route></nc:static></nc:routing-options> +# - '<nc:routing-instances xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>' +# after: +# - address_families: +# - afi: ipv4 +# routes: +# - dest: 192.168.16.0/24 +# next_hop: +# - forward_router_address: 172.16.0.1 # After state: # ------------ # # admin# show routing-options # static { -# route 10.200.16.75/24 next-hop 10.200.16.2; +# route 192.168.16.0/24 next-hop 172.16.0.1; # } # Using replaced @@ -229,14 +300,43 @@ EXAMPLES = """ is merge) junipernetworks.junos.junos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 192.168.47.0/24 - next_hop: - - forward_router_address: 10.200.16.2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.168.47.0/24 + next_hop: + - forward_router_address: 10.200.16.2 state: replaced +# Task Output: +# ------------ +# before: +# - address_families: +# - afi: ipv4 +# routes: +# - dest: 192.168.47.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 +# - dest: 192.168.16.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 +# commands: +# - >- +# <nc:routing-options +# xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:static><nc:route +# delete="delete"><nc:name>192.168.47.0/24</nc:name></nc:route></nc:static><nc:static><nc:route><nc:name>192.168.47.0/24</nc:name><nc:next-hop>10.200.16.2</nc:next-hop></nc:route></nc:static></nc:routing-options> +# - '<nc:routing-instances xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>' +# after: +# - address_families: +# - afi: ipv4 +# routes: +# - dest: 192.168.16.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 +# - dest: 192.168.47.0/24 +# next_hop: +# - forward_router_address: 10.200.16.2 + # After state: # ------------ # @@ -246,7 +346,92 @@ EXAMPLES = """ # route 192.168.16.0/24 next-hop 172.16.1.2; # } +# Using gathered to gather static route facts from the device +# Before state +# ------------ +# admin# show routing-options +# static { +# route 192.168.16.0/24 next-hop 172.16.1.2; +# route 192.168.47.0/24 next-hop 10.200.16.2; +# } +- name: Gather static routes facts from the device using junos_static_routes module + junipernetworks.junos.junos_static_routes: + state: gathered + +# Task output: +# ------------ +# gathered: +# - address_families: +# - afi: ipv4 +# routes: +# - dest: 192.168.16.0/24 +# next_hop: +# - forward_router_address: 172.16.1.2 +# - dest: 192.168.47.0/24 +# next_hop: +# - forward_router_address: 10.200.16.2 + +# Using rendered + +- name: Render platform specific commands (without connecting to the device) + junipernetworks.junos.junos_static_routes: + config: + - address_families: + - afi: ipv4 + routes: + - dest: 192.168.16.0/24 + next_hop: + - forward_router_address: 172.16.1.2 + state: rendered + +# Task output: +# ------------ +# rendered: +# - '<nc:routing-options +# xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:static><nc:route><nc:name>192.168.16.0/24</nc:name> +# <nc:next-hop>172.16.1.2</nc:next-hop></nc:route></nc:static></nc:routing-options>' + +# Using parsed + +# parsed.cfg +# ------------ +# <?xml version="1.0" encoding="UTF-8"?> +# <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> +# <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> +# <version>18.4R1-S2.4</version> +# <routing-options> +# <static> +# <route> +# <name>192.168.16.0/24</name> +# <next-hop>172.16.1.2</next-hop> +# <next-hop>172.16.1.3</next-hop> +# </route> +# <route> +# <name>192.168.47.0/24</name> +# <next-hop>10.200.16.2</next-hop> +# </route> +# </static> +# </routing-options> +# </configuration> +# </rpc-reply> + +- name: Parsed running config (without connecting to the device) + junipernetworks.junos.junos_static_routes: + running_config: "{{ lookup('file', 'parsed.cfg') }}" + state: parsed +# Task output: +# ------------ +# parsed: +# - address_families: +# - afi: ipv4 +# routes: +# - dest: 192.168.16.0/24 +# next_hop: +# - forward_router_address: '[''172.16.1.2'', ''172.16.1.3'']' +# - dest: 192.168.47.0/24 +# next_hop: +# - forward_router_address: 10.200.16.2 """ RETURN = """ before: @@ -268,6 +453,26 @@ commands: returned: always type: list sample: ['command 1', 'command 2', 'command 3'] +rendered: + description: The provided configuration in the task rendered in device-native format (offline). + returned: when I(state) is C(rendered) + type: list + sample: + - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> +gathered: + description: Facts about the network resource gathered from the remote device as structured data. + returned: when I(state) is C(gathered) + type: list + sample: > + This output will always be in the same format as the + module argspec. +parsed: + description: The device native config provided in I(running_config) option parsed into structured data as per module argspec. + returned: when I(state) is C(parsed) + type: list + sample: > + This output will always be in the same format as the + module argspec. """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_system.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_system.py index c70ded66f..011a842f5 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_system.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_system.py @@ -76,9 +76,9 @@ EXAMPLES = """ hostname: junos01 domain_name: test.example.com domain-search: - - ansible.com - - redhat.com - - juniper.net + - ansible.com + - redhat.com + - juniper.net - name: remove configuration junipernetworks.junos.junos_system: @@ -87,8 +87,8 @@ EXAMPLES = """ - name: configure name servers junipernetworks.junos.junos_system: name_servers: - - 8.8.8.8 - - 8.8.4.4 + - 8.8.8.8 + - 8.8.4.4 """ RETURN = """ diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_user.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_user.py index 0e9ee8ad9..018dd88f8 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_user.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_user.py @@ -124,7 +124,7 @@ options: absolute. It will remove any previously configured users on the device with the exception of the current defined set of aggregate. type: bool - default: no + default: false state: description: - The C(state) argument configures the state of the user definitions as it relates @@ -140,7 +140,7 @@ options: description: - Specifies whether or not the configuration is active or deactivated type: bool - default: yes + default: true requirements: - ncclient (>=v0.5.2) notes: @@ -167,8 +167,8 @@ EXAMPLES = """ - name: remove all user accounts except ansible junipernetworks.junos.junos_user: aggregate: - - name: ansible - purge: yes + - name: ansible + purge: true - name: set user password junipernetworks.junos.junos_user: @@ -180,16 +180,15 @@ EXAMPLES = """ - name: Create list of users junipernetworks.junos.junos_user: aggregate: - - {name: test_user1, full_name: test_user2, role: operator, state: present} - - {name: test_user2, full_name: test_user2, role: read-only, state: present} + - {name: test_user1, full_name: test_user2, role: operator, state: present} + - {name: test_user2, full_name: test_user2, role: read-only, state: present} - name: Delete list of users junipernetworks.junos.junos_user: aggregate: - - {name: test_user1, full_name: test_user2, role: operator, state: absent} - - {name: test_user2, full_name: test_user2, role: read-only, state: absent} + - {name: test_user1, full_name: test_user2, role: operator, state: absent} + - {name: test_user2, full_name: test_user2, role: read-only, state: absent} """ - RETURN = """ diff.prepared: description: Configuration difference before and after applying change. diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_vlans.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_vlans.py index 32f974df6..e1c834d89 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_vlans.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_vlans.py @@ -107,11 +107,11 @@ EXAMPLES = """ - name: Merge provided Junos vlans config with running-config junipernetworks.junos.junos_vlans: config: - - name: vlan1 - vlan_id: 1 - - name: vlan2 - vlan_id: 2 - l3_interface: irb.12 + - name: vlan1 + vlan_id: 1 + - name: vlan2 + vlan_id: 2 + l3_interface: irb.12 state: merged # # ------------------------- @@ -165,12 +165,12 @@ EXAMPLES = """ - name: Replace Junos vlans running-config with the provided config junipernetworks.junos.junos_vlans: config: - - name: vlan1 - vlan_id: 11 - l3_interface: irb.10 + - name: vlan1 + vlan_id: 11 + l3_interface: irb.10 - - name: vlan2 - vlan_id: 2 + - name: vlan2 + vlan_id: 2 state: replaced # ------------------------- # Module Execution Result @@ -234,9 +234,9 @@ EXAMPLES = """ - name: Override Junos running-config with provided config junipernetworks.junos.junos_vlans: config: - - name: vlan3 - vlan_id: 3 - l3_interface: irb.13 + - name: vlan3 + vlan_id: 3 + l3_interface: irb.13 state: overridden # ------------------------- # Module Execution Result @@ -288,7 +288,7 @@ EXAMPLES = """ - name: Delete specific vlan junipernetworks.junos.junos_vlans: config: - - name: vlan3 + - name: vlan3 state: deleted # ------------------------- # Module Execution Result @@ -340,12 +340,12 @@ EXAMPLES = """ - name: Render xml for provided facts. junipernetworks.junos.junos_vlans: config: - - name: vlan1 - vlan_id: 1 + - name: vlan1 + vlan_id: 1 - - name: vlan2 - vlan_id: 2 - l3_interface: irb.12 + - name: vlan2 + vlan_id: 2 + l3_interface: irb.12 state: rendered # # ------------------------- diff --git a/ansible_collections/junipernetworks/junos/plugins/modules/junos_vrf.py b/ansible_collections/junipernetworks/junos/plugins/modules/junos_vrf.py index e2332d1c5..3da30d81c 100644 --- a/ansible_collections/junipernetworks/junos/plugins/modules/junos_vrf.py +++ b/ansible_collections/junipernetworks/junos/plugins/modules/junos_vrf.py @@ -151,8 +151,8 @@ EXAMPLES = """ name: test-1 description: test-vrf-1 interfaces: - - ge-0/0/3 - - ge-0/0/2 + - ge-0/0/3 + - ge-0/0/2 rd: 192.0.2.1:10 target: target:65514:113 state: present @@ -162,8 +162,8 @@ EXAMPLES = """ name: test-1 description: test-vrf-1 interfaces: - - ge-0/0/3 - - ge-0/0/2 + - ge-0/0/3 + - ge-0/0/2 rd: 192.0.2.1:10 target: target:65514:113 state: absent @@ -173,8 +173,8 @@ EXAMPLES = """ name: test-1 description: test-vrf-1 interfaces: - - ge-0/0/3 - - ge-0/0/2 + - ge-0/0/3 + - ge-0/0/2 rd: 192.0.2.1:10 target: target:65514:113 active: false @@ -184,8 +184,8 @@ EXAMPLES = """ name: test-1 description: test-vrf-1 interfaces: - - ge-0/0/3 - - ge-0/0/2 + - ge-0/0/3 + - ge-0/0/2 rd: 192.0.2.1:10 target: target:65514:113 active: true @@ -193,19 +193,19 @@ EXAMPLES = """ - name: Create vrf using aggregate junipernetworks.junos.junos_vrf: aggregate: - - name: test-1 - description: test-vrf-1 - interfaces: - - ge-0/0/3 - ge-0/0/2 - rd: 192.0.2.1:10 - target: target:65514:113 - - name: test-2 - description: test-vrf-2 - interfaces: - - ge-0/0/4 - - ge-0/0/5 - rd: 192.0.2.2:10 - target: target:65515:114 + - name: test-1 + description: test-vrf-1 + interfaces: + - ge-0/0/3 - ge-0/0/2 + rd: 192.0.2.1:10 + target: target:65514:113 + - name: test-2 + description: test-vrf-2 + interfaces: + - ge-0/0/4 + - ge-0/0/5 + rd: 192.0.2.2:10 + target: target:65515:114 state: present """ diff --git a/ansible_collections/junipernetworks/junos/plugins/terminal/junos.py b/ansible_collections/junipernetworks/junos/plugins/terminal/junos.py index 574e80cc2..2a364f1b7 100644 --- a/ansible_collections/junipernetworks/junos/plugins/terminal/junos.py +++ b/ansible_collections/junipernetworks/junos/plugins/terminal/junos.py @@ -34,7 +34,6 @@ display = Display() class TerminalModule(TerminalBase): - terminal_stdout_re = [ re.compile( to_bytes(r"({primary:node\d+})?[\r\n]?[\w@+\-\.:\/\[\]]+[>#%] ?$"), diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_acl_interfaces/tests/netconf/gathered.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_acl_interfaces/tests/netconf/gathered.yaml new file mode 100644 index 000000000..79fbac2f4 --- /dev/null +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_acl_interfaces/tests/netconf/gathered.yaml @@ -0,0 +1,50 @@ +--- +- ansible.builtin.debug: + msg: START junos_acl_interfaces gathered integration tests on connection={{ ansible_connection }} + +- block: + - name: Reset configuration + ansible.builtin.include_tasks: _reset_config.yaml + + - name: Set facts + ansible.builtin.set_fact: + expected_gathered_config: + - name: ge-1/0/0 + access_groups: + - afi: ipv4 + acls: + - name: second_acl + direction: in + - name: initial_acl + direction: out + + - name: Merge the provided configuration with the exisiting running configuration + junipernetworks.junos.junos_acl_interfaces: + config: + - name: ge-1/0/0 + access_groups: + - afi: ipv4 + acls: + - name: second_acl + direction: in + - name: initial_acl + direction: out + state: merged + register: result + + - name: Gather security policies facts using gathered state + register: result + junipernetworks.junos.junos_acl_interfaces: + state: gathered + + - name: Assert that facts were correctly generated + ansible.builtin.assert: + that: "{{ result['gathered'] == expected_gathered_config }}" + + always: + - ansible.builtin.include_tasks: _reset_config.yaml + +- ansible.builtin.debug: + msg: + END junos_acl_interfaces gathered integration tests on connection={{ ansible_connection + }} diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_acls/tests/netconf/gathered.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_acls/tests/netconf/gathered.yaml new file mode 100644 index 000000000..207b79f75 --- /dev/null +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_acls/tests/netconf/gathered.yaml @@ -0,0 +1,100 @@ +--- +- ansible.builtin.debug: + msg: "START junos_acls gathered integration tests on connection={{ ansible_connection }}" + +- block: + - ansible.builtin.include_tasks: _reset_config.yaml + + - ansible.builtin.include_tasks: config_policy.yaml + + - ansible.builtin.set_fact: + expected_gathered_output: + - acls: + - aces: + - name: ten_dot + source: + address: 10.0.0.0/8 + port_protocol: + eq: bgp + protocol: tcp + - name: eleven_dot + source: + address: 11.0.0.0/8 + port_protocol: + eq: bgp + protocol: tcp + name: initial_acl + - aces: + - name: twelve_dot + source: + address: 12.0.0.0/8 + port_protocol: + eq: bgp + protocol: tcp + name: second_acl + - aces: + - name: thirteen_dot + source: + address: + - 13.0.0.0/16 + - 13.1.0.0/16 + port_protocol: + eq: bgp + protocol: tcp + name: third_acl + - aces: + - name: ssh_rule + source: + prefix_list: + - name: "ipv4-interfaces" + - name: "ospf-all-routers" + port_protocol: + eq: ssh + protocol: tcp + name: allow_ssh_acl + afi: ipv4 + - acls: + - aces: + - name: colon_eleven + source: + address: ::11/128 + port_protocol: + eq: "631" + name: initial_acl6 + afi: ipv6 + + - name: Merge the provided configuration with the existing running configuration + junipernetworks.junos.junos_acls: + config: + - afi: ipv4 + acls: + - name: allow_ssh_acl + aces: + - name: ssh_rule + source: + prefix_list: + - name: "ipv4-interfaces" + - name: "ospf-all-routers" + port_protocol: + eq: ssh + protocol: tcp + state: merged + + - name: Gather Junos Acls facts using gathered state + register: result + junipernetworks.junos.junos_acls: + state: gathered + + - name: Assert that facts were correctly generated + ansible.builtin.assert: + that: "{{ expected_gathered_output == result['gathered'] }}" + register: result + + tags: merged + always: + - ansible.builtin.include_tasks: _reset_config.yaml + + - ansible.builtin.include_tasks: reset_policy_config.yaml + +- ansible.builtin.debug: + msg: "END junos_acls gathered integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_address_family/tests/netconf/deleted.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_address_family/tests/netconf/deleted.yaml index 248421891..2bca3aea4 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_address_family/tests/netconf/deleted.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_address_family/tests/netconf/deleted.yaml @@ -111,7 +111,7 @@ expected_deleted_res_output: {} - name: Merge the existing config with provided configuration - junos_bgp_address_family: *merged + junipernetworks.junos.junos_bgp_address_family: *merged register: result - name: Delete complete existing bgp address family configuration diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/merged.yaml index a89774613..8037559b5 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/merged.yaml @@ -49,7 +49,7 @@ - "{{ merged['after'] == result['after'] }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_bgp_global: *merged + junipernetworks.junos.junos_bgp_global: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/overridden.yaml new file mode 100644 index 000000000..88cb9fcb4 --- /dev/null +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/overridden.yaml @@ -0,0 +1,51 @@ +--- +- name: Debug task + ansible.builtin.debug: + msg: "START junos_bgp_global overridden integration tests on connection={{ ansible_connection }}" + +- block: + - name: Reset configuration + ansible.builtin.include_tasks: _reset_config.yaml + + - name: Initial config + ansible.builtin.include_tasks: _initial_config.yaml + + - name: Replace configuration + junipernetworks.junos.junos_bgp_global: &overridden + config: + bgp_error_tolerance: + malformed_route_limit: 20000000 + bmp: + monitor: true + damping: true + description: "This is configured with Junos_bgp resource module" + state: overridden + register: result + + - name: Assert that before dicts were correctly generated + ansible.builtin.assert: + that: "{{ merged['after'] == result['before'] }}" + + - name: Assert configuration + ansible.builtin.assert: + that: + - result.changed == True + - "{{ overridden['after'] == result.after }}" + + - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) + junipernetworks.junos.junos_bgp_global: *overridden + register: result + + - name: Assert that the previous task was idempotent + ansible.builtin.assert: + that: + - result.changed == False + + tags: overridden + always: + - name: Reset configuration + ansible.builtin.include_tasks: _reset_config.yaml + +- name: Debug task + ansible.builtin.debug: + msg: "END junos_bgp_global overridden integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/replaced.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/replaced.yaml index a34d186fe..93c3a797f 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/replaced.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/tests/netconf/replaced.yaml @@ -33,7 +33,7 @@ - "{{ replaced['after'] == result.after }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_bgp_global: *replaced + junipernetworks.junos.junos_bgp_global: *replaced register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/vars/main.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/vars/main.yaml index 5927e7ff0..a9f9e9b3a 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/vars/main.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_bgp_global/vars/main.yaml @@ -108,3 +108,12 @@ replaced: monitor: true damping: true description: "This is configured with Junos_bgp resource module" + +overridden: + after: + bgp_error_tolerance: + malformed_route_limit: 20000000 + bmp: + monitor: true + damping: true + description: "This is configured with Junos_bgp resource module" diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_config/tasks/redirection.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_config/tasks/redirection.yaml index 7671a0477..0b26ef511 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_config/tasks/redirection.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_config/tasks/redirection.yaml @@ -7,7 +7,8 @@ register: test_cases - name: Set test_items - ansible.builtin.set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + ansible.builtin.set_fact: + test_items: "{{ test_cases.files | map(attribute='path') | list }}" - name: Run test case (connection=ansible.netcommon.netconf) ansible.builtin.include_tasks: "{{ test_case_to_run }}" diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_facts/tests/netconf/facts.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_facts/tests/netconf/facts.yaml index b795d98ed..6dfcaf57e 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_facts/tests/netconf/facts.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_facts/tests/netconf/facts.yaml @@ -31,6 +31,8 @@ register: result junipernetworks.junos.junos_facts: gather_subset: "!hardware" + vars: + ansible_command_timeout: 100 - name: Assertion ansible.builtin.assert: diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_hostname/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_hostname/tests/netconf/merged.yaml index a49fb9e45..8d8b2dfd4 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_hostname/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_hostname/tests/netconf/merged.yaml @@ -25,7 +25,7 @@ - "{{ merged['after'] == result['after'] }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_hostname: *merged + junipernetworks.junos.junos_hostname: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_interfaces/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_interfaces/tests/netconf/overridden.yaml index 2cb15c8f2..34b9be83f 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_interfaces/tests/netconf/overridden.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_interfaces/tests/netconf/overridden.yaml @@ -34,6 +34,7 @@ description: Configured by Ansible - Interface 2 mtu: 2048 speed: 10m + enabled: false hold_time: up: 3000 down: 3200 diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_interfaces/tests/netconf/rendered.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_interfaces/tests/netconf/rendered.yaml index e41c92b08..bee5568a5 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_interfaces/tests/netconf/rendered.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_interfaces/tests/netconf/rendered.yaml @@ -4,14 +4,14 @@ ansible_connection }} - ansible.builtin.set_fact: - expected_rendered_output: '<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface><nc:name>ge-0/0/2</nc:name><nc:description>Configured by Ansibull</nc:description><nc:speed>20m</nc:speed><nc:mtu>2048</nc:mtu><nc:hold-time><nc:up>3200</nc:up><nc:down>3200</nc:down></nc:hold-time></nc:interface></nc:interfaces>' + expected_rendered_output: '<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface><nc:name>ge-0/0/2</nc:name><nc:description>Configured by Ansible</nc:description><nc:speed>20m</nc:speed><nc:mtu>2048</nc:mtu><nc:enable/><nc:hold-time><nc:up>3200</nc:up><nc:down>3200</nc:down></nc:hold-time></nc:interface></nc:interfaces>' - name: Render platform specific commands from task input using rendered state register: result junipernetworks.junos.junos_interfaces: config: - name: ge-0/0/2 - description: Configured by Ansibull + description: Configured by Ansible mtu: 2048 speed: 20m hold_time: diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_l2_interfaces/tests/netconf/rtt.yml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_l2_interfaces/tests/netconf/rtt.yml index 4b5501a05..634727a67 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_l2_interfaces/tests/netconf/rtt.yml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_l2_interfaces/tests/netconf/rtt.yml @@ -7,16 +7,6 @@ - ansible.builtin.include_tasks: _base_config.yaml -- ansible.builtin.set_fact: - expected_revert_output: - - name: ge-0/0/2 - trunk: - allowed_vlans: - - vlan100 - native_vlan: "200" - enhanced_layer: true - unit: 0 - - block: - name: Apply the provided configuration (base config) register: base_config @@ -64,8 +54,7 @@ - name: Assert that config was reverted ansible.builtin.assert: - that: - "{{ expected_revert_output | symmetric_difference(revert['after'])\ + that: "{{ base_config['after'] | symmetric_difference(revert['after'])\ \ |length == 0 }}" always: - ansible.builtin.include_tasks: _remove_config.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_lldp_global/tests/netconf/gathered.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_lldp_global/tests/netconf/gathered.yaml index 1d18ea0f9..26f57fa4a 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_lldp_global/tests/netconf/gathered.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_lldp_global/tests/netconf/gathered.yaml @@ -21,10 +21,10 @@ - ansible.builtin.set_fact: expected_merged_output: - - interval: 10000 - address: 10.1.1.1 - transmit_delay: 400 - hold_multiplier: 1 + address: 10.1.1.1 + hold_multiplier: 10 + interval: 10000 + transmit_delay: 400 - block: - name: Merge the provided configuration with the exisiting running configuration diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/_initial_config.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/_initial_config.yaml index 289c92300..b5cae6f7f 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/_initial_config.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/_initial_config.yaml @@ -5,6 +5,7 @@ - name: Configure basic config relevant to logging global junipernetworks.junos.junos_config: lines: + - set routing-instances inst11 instance-type virtual-router - set routing-instances inst11 description "inst11" - ansible.builtin.debug: diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/merged.yaml index 9bcfcd7c8..bf0173191 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/merged.yaml @@ -96,7 +96,7 @@ - "{{ merged['after'] == result['after'] }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_logging_global: *merged + junipernetworks.junos.junos_logging_global: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/overridden.yaml index fbdc80f3b..a3107f67b 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/overridden.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/overridden.yaml @@ -159,7 +159,7 @@ - "{{ replaced['after'] == result.after }}" - name: Replaced the provided configuration with the existing running configuration (IDEMPOTENT) - junos_logging_global: *overridden + junipernetworks.junos.junos_logging_global: *overridden register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/replaced.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/replaced.yaml index fbfb074e3..f4214b470 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/replaced.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_logging_global/tests/netconf/replaced.yaml @@ -159,7 +159,7 @@ - "{{ replaced['after'] == result.after }}" - name: Replaced the provided configuration with the existing running configuration (IDEMPOTENT) - junos_logging_global: *replaced + junipernetworks.junos.junos_logging_global: *replaced register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/_initial_config.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/_initial_config.yaml index dc07e5102..7df565493 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/_initial_config.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/_initial_config.yaml @@ -5,7 +5,9 @@ - name: Configure basic config relevant to ntp global junipernetworks.junos.junos_config: lines: + - set routing-instances rt1 instance-type virtual-router - set routing-instances rt1 description "rt1" + - set routing-instances rt2 instance-type virtual-router - set routing-instances rt2 description "rt2" - ansible.builtin.debug: diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/merged.yaml index 78e943cd6..b7e24df9f 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/merged.yaml @@ -64,7 +64,7 @@ - "{{ merged['after'] == result['after'] }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_ntp_global: *merged + junipernetworks.junos.junos_ntp_global: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/overridden.yaml index 81db02e3d..8d7530e16 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/overridden.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/overridden.yaml @@ -31,7 +31,7 @@ - "{{ replaced['after'] == result.after }}" - name: Replaced the provided configuration with the existing running configuration (IDEMPOTENT) - junos_ntp_global: *overridden + junipernetworks.junos.junos_ntp_global: *overridden register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/replaced.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/replaced.yaml index fdca062c1..160a8ba3b 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/replaced.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ntp_global/tests/netconf/replaced.yaml @@ -31,7 +31,7 @@ - "{{ replaced['after'] == result.after }}" - name: Replaced the provided configuration with the existing running configuration (IDEMPOTENT) - junos_ntp_global: *replaced + junipernetworks.junos.junos_ntp_global: *replaced register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/deleted.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/deleted.yaml index 4ac54eb97..3e19d1de2 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/deleted.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/deleted.yaml @@ -38,12 +38,6 @@ state: deleted register: result - - ansible.builtin.debug: - var: result.after - - - ansible.builtin.debug: - var: config - - name: Assert changed ansible.builtin.assert: &changed that: diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged.yaml index 5d7d1980c..ca6099a57 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged.yaml @@ -11,24 +11,148 @@ - afi: "ipv4" processes: area: - area_id: "0.0.0.2" - priority: 3 + area_id: "0.0.0.100" + authentication: + md5: + - key_id: 56 + key_value: "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" + start_time: "2023-7-1.02:00:00 +0000" + - key_id: 50 + key_value: "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" + - key_id: 40 + key_value: "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" + bandwidth_based_metrics: + - bandwidth: "1g" + metric: 5 + - bandwidth: "10g" + metric: 40 + dead_interval: 4 + demand_circuit: true + hello_interval: 2 metric: 5 - name: "ge-0/0/2.0" + no_advertise_adjacency_segment: true + no_eligible_backup: true + no_eligible_remote_backup: true + no_interface_state_traps: true + no_neighbor_down_notification: true + node_link_protection: true + passive: true + poll_interval: 2 + priority: 3 + retransmit_interval: 2 + name: "so-0/0/0.0" + router_id: "10.200.16.75" + - address_family: + - afi: "ipv4" + processes: + area: + area_id: "0.0.0.200" + authentication: + simple_password: "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" + priority: 3 + name: "so-0/1/0.0" + router_id: "10.200.16.75" + - address_family: + - afi: "ipv4" + processes: + area: + area_id: "0.0.0.200" + authentication: + md5: + - key_id: 10 + key_value: "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" + start_time: "2023-7-12.03:00:00 +0000" + priority: 2 + name: "so-0/2/0.0" + router_id: "10.200.16.75" + - address_family: + - afi: "ipv4" + processes: + area: + area_id: "0.0.0.120" + authentication: + md5: + - key_id: 10 + key_value: "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" + start_time: "2023-7-12.03:00:00 +0000" + priority: 2 + name: so-0/2/0.1 router_id: "10.200.16.75" - name: Merge the provided configuration with the exisiting running configuration junipernetworks.junos.junos_ospf_interfaces: &merged config: - - router_id: "10.200.16.75" - name: "ge-0/0/2.0" - address_family: - - afi: "ipv4" + - address_family: + - afi: ipv4 processes: area: - area_id: "0.0.0.2" - priority: 3 + area_id: 0.0.0.100 + authentication: + md5: + - key_id: "56" + key_value: ansible56 + start_time: 2023-7-1.02:00:00 +0000 + - key_id: "50" + key_value: ansible50 + - key_id: "40" + key_value: ansible40 + bandwidth_based_metrics: + - bandwidth: 1g + metric: 5 + - bandwidth: 10g + metric: 40 + dead_interval: 4 + hello_interval: 2 metric: 5 + passive: true + poll_interval: 2 + priority: 3 + retransmit_interval: 2 + no_advertise_adjacency_segment: true + node_link_protection: true + no_neighbor_down_notification: true + no_interface_state_traps: true + no_eligible_remote_backup: true + no_eligible_backup: true + demand_circuit: true + name: so-0/0/0.0 + router_id: 10.200.16.75 + - address_family: + - afi: ipv4 + processes: + area: + area_id: 0.0.0.200 + authentication: + simple_password: simple + priority: 3 + name: so-0/1/0.0 + router_id: 10.200.16.75 + - address_family: + - afi: ipv4 + processes: + area: + area_id: 0.0.0.200 + authentication: + md5: + - key_id: "10" + key_value: ansible10 + start_time: 2023-7-12.03:00:00 +0000 + priority: 2 + name: so-0/2/0.0 + router_id: 10.200.16.75 + - address_family: + - afi: ipv4 + processes: + area: + area_id: 0.0.0.120 + authentication: + md5: + - key_id: "10" + key_value: ansible10 + start_time: 2023-7-12.03:00:00 +0000 + priority: 2 + name: so-0/2/0.1 + router_id: 10.200.16.75 state: merged register: result @@ -40,14 +164,9 @@ \ == 0 }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_ospf_interfaces: *merged + junipernetworks.junos.junos_ospf_interfaces: *merged register: result - - name: Assert that the previous task was idempotent - ansible.builtin.assert: - that: - - result.changed == False - tags: merged always: - ansible.builtin.include_tasks: _reset_config.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged_update.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged_update.yaml index 067698e19..fe3178e84 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged_update.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/merged_update.yaml @@ -50,7 +50,7 @@ \ == 0 }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_ospf_interfaces: *merged + junipernetworks.junos.junos_ospf_interfaces: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/overridden.yaml index ad7df535d..c0eae03f9 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/overridden.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf_interfaces/tests/netconf/overridden.yaml @@ -53,7 +53,7 @@ \ == 0 }}" - name: Override the provided configuration with the existing running configuration (IDEMPOTENT) - junos_ospf_interfaces: *overridden + junipernetworks.junos.junos_ospf_interfaces: *overridden register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/defaults/main.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/defaults/main.yaml index 164afead2..164afead2 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/defaults/main.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/defaults/main.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/meta/main.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/meta/main.yaml index d80f5fbf3..d80f5fbf3 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/meta/main.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/meta/main.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tasks/main.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tasks/main.yaml index e9b22ba68..e9b22ba68 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tasks/main.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tasks/main.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tasks/netconf.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tasks/netconf.yaml index 3db81d098..3db81d098 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tasks/netconf.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tasks/netconf.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/_initial_config.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/_initial_config.yaml index 41932e7dd..41932e7dd 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/_initial_config.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/_initial_config.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/_reset_config.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/_reset_config.yaml index 6c3974c8f..6c3974c8f 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/_reset_config.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/_reset_config.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/deleted.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/deleted.yaml index 3318258e6..3318258e6 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/deleted.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/deleted.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/empty_config.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/empty_config.yaml index 8d455dbaf..8d455dbaf 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/empty_config.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/empty_config.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/fixtures/parsed.cfg b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/fixtures/parsed.cfg index 01d8294e2..01d8294e2 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/fixtures/parsed.cfg +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/fixtures/parsed.cfg diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/gathered.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/gathered.yaml index 304246381..304246381 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/gathered.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/gathered.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/merged.yaml index 7207f62b6..4578127a8 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/merged.yaml @@ -19,7 +19,7 @@ router_id: 10.200.16.75 - name: Merge the provided configuration with the exisiting running configuration - junos_ospfv2: &merged + junipernetworks.junos.junos_ospfv2: &merged config: - router_id: 10.200.16.75 areas: @@ -41,7 +41,7 @@ - "{{ config|symmetric_difference(result.after) == [] }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_ospfv2: *merged + junipernetworks.junos.junos_ospfv2: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/overridden.yaml index 6cabbe25b..9716d3d48 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/overridden.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/overridden.yaml @@ -26,7 +26,7 @@ - name: ge-2/2/0.0 - name: Override Junos OSPF config - junos_ospfv2: + junipernetworks.junos.junos_ospfv2: config: - router_id: 10.200.16.75 areas: diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/parsed.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/parsed.yaml index 67e573c33..67e573c33 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/parsed.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/parsed.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/rendered.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/rendered.yaml index 8e123b746..8e123b746 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/rendered.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/rendered.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/replaced.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/replaced.yaml index 5c7f1967d..5c7f1967d 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/replaced.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/replaced.yaml diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/rtt.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/rtt.yaml index 7e8080a63..6aab4d341 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospf/tests/netconf/rtt.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv2/tests/netconf/rtt.yaml @@ -28,7 +28,7 @@ gather_subset: - default gather_network_resources: - - ospf + - ospfv2 - name: Apply the provided configuration (config to be reverted) register: result diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv3/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv3/tests/netconf/merged.yaml index c0ff17516..81f3e3cab 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv3/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_ospfv3/tests/netconf/merged.yaml @@ -41,7 +41,7 @@ - "{{ config|symmetric_difference(result.after) == [] }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_ospfv3: *merged + junipernetworks.junos.junos_ospfv3: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/deleted.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/deleted.yaml index ee5dc577e..b3010c2aa 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/deleted.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/deleted.yaml @@ -42,7 +42,7 @@ \ == 0 }}" - name: Delete the existing running configuration (IDEMPOTENT) - junos_prefix_lists: *deleted + junipernetworks.junos.junos_prefix_lists: *deleted register: result - name: Assert that the previous task was idempotent @@ -54,7 +54,7 @@ expected_deleted_output: [] - name: Merge the existing config with provided configuration - junos_prefix_lists: *merged + junipernetworks.junos.junos_prefix_lists: *merged register: result - name: Delete complete existing bgp address family configuration diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/merged.yaml index 140601233..a780e0978 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/merged.yaml @@ -44,7 +44,7 @@ \ == 0 }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_prefix_lists: *merged + junipernetworks.junos.junos_prefix_lists: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/overridden.yaml index 5f1b7970d..9994c90cb 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/overridden.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/overridden.yaml @@ -54,7 +54,7 @@ \ == 0 }}" - name: Override existing running prefix lists configuration with provided (IDEMPOTENT) - junos_prefix_lists: *overridden + junipernetworks.junos.junos_prefix_lists: *overridden register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/replaced.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/replaced.yaml index 375813c1d..f38cc9d4a 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/replaced.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_prefix_lists/tests/netconf/replaced.yaml @@ -56,7 +56,7 @@ \ == 0 }}" - name: Replace existing running prefix lists configuration with provided (IDEMPOTENT) - junos_prefix_lists: *replaced + junipernetworks.junos.junos_prefix_lists: *replaced register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/deleted.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/deleted.yaml index e759b7c97..4fb1f7491 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/deleted.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/deleted.yaml @@ -48,7 +48,7 @@ \ == 0 }}" - name: Delete the existing running configuration (IDEMPOTENT) - junos_routing_instances: *deleted + junipernetworks.junos.junos_routing_instances: *deleted register: result - name: Assert that the previous task was idempotent @@ -60,7 +60,7 @@ expected_deleted_rints_output: [] - name: Merge the existing config with provided configuration - junos_routing_instances: *merged + junipernetworks.junos.junos_routing_instances: *merged register: result - name: Delete complete existing bgp address family configuration diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/merged.yaml index 35d1168b4..b35b7767a 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/merged.yaml @@ -55,7 +55,7 @@ \ == 0 }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_routing_instances: *merged + junipernetworks.junos.junos_routing_instances: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/overridden.yaml index ea49cc6ea..8ccc0e222 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/overridden.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/overridden.yaml @@ -95,7 +95,7 @@ \ == 0 }}" - name: Override the existing running configuration with the provided configuration (IDEMPOTENT) - junos_routing_instances: *overridden + junipernetworks.junos.junos_routing_instances: *overridden register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/replaced.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/replaced.yaml index 33e88d048..82e178083 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/replaced.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_instances/tests/netconf/replaced.yaml @@ -71,7 +71,7 @@ \ == 0 }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_routing_instances: *replaced + junipernetworks.junos.junos_routing_instances: *replaced register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/merged.yaml index 48b4fad6f..a924e8d0a 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/merged.yaml @@ -24,7 +24,7 @@ - "{{ merged['after'] == result['after'] }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_routing_options: *merged + junipernetworks.junos.junos_routing_options: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/overridden.yaml index 63d5e08dd..789cf05f4 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/overridden.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/overridden.yaml @@ -28,7 +28,7 @@ - "{{ replaced['after'] == result.after }}" - name: Replaced the provided configuration with the existing running configuration (IDEMPOTENT) - junos_routing_options: *overridden + junipernetworks.junos.junos_routing_options: *overridden register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/replaced.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/replaced.yaml index 60c0c9aff..4a6a9a2f7 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/replaced.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_routing_options/tests/netconf/replaced.yaml @@ -28,7 +28,7 @@ - "{{ replaced['after'] == result.after }}" - name: Replaced the provided configuration with the existing running configuration (IDEMPOTENT) - junos_routing_options: *replaced + junipernetworks.junos.junos_routing_options: *replaced register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/gathered.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/gathered.yaml index 585837f36..8cde24c6e 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/gathered.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/gathered.yaml @@ -12,12 +12,6 @@ junipernetworks.junos.junos_security_policies: state: gathered - - ansible.builtin.debug: - msg: "{{ result['gathered'] }}" - - - ansible.builtin.debug: - msg: "{{ merged['after'] }}" - - name: Assert that facts were correctly generated ansible.builtin.assert: that: "{{ merged['after'] == result['gathered'] }}" diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/merged.yaml index 4b8a5915d..bbf1b26ab 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/merged.yaml @@ -126,7 +126,7 @@ - "{{ merged['after'] == result['after'] }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_security_policies: *merged + junipernetworks.junos.junos_security_policies: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/overridden.yaml index fcb34c0b0..904340918 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/overridden.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/overridden.yaml @@ -37,7 +37,7 @@ - "{{ replaced['after'] == result['after'] }}" - name: Replaced the provided configuration with the existing running configuration (IDEMPOTENT) - junos_security_policies: *overridden + junipernetworks.junos.junos_security_policies: *overridden register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/replaced.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/replaced.yaml index a9c835c0b..f4682e911 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/replaced.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_security_policies/tests/netconf/replaced.yaml @@ -37,7 +37,7 @@ - "{{ replaced['after'] == result.after }}" - name: Replaced the provided configuration with the existing running configuration (IDEMPOTENT) - junos_security_policies: *replaced + junipernetworks.junos.junos_security_policies: *replaced register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_smoke/tasks/cli.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_smoke/tasks/cli.yaml index 0092e0d5d..d3ff7ceca 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_smoke/tasks/cli.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_smoke/tasks/cli.yaml @@ -23,7 +23,6 @@ vars: ansible_connection: ansible.netcommon.network_cli ansible_network_single_user_mode: "True" - connection: "{{ cli }}" - + test_connection: "{{ cli }}" tags: - network_cli diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_smoke/tests/cli/reboot.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_smoke/tests/cli/reboot.yaml index 4ed3094ee..2aa32655d 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_smoke/tests/cli/reboot.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_smoke/tests/cli/reboot.yaml @@ -9,9 +9,11 @@ answer: - y + tags: + - reboot - wait_for_connection: - delay: 30 - sleep: 20 + delay: 60 + sleep: 40 - ansible.netcommon.cli_command: command: show version diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/_initial_config.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/_initial_config.yaml index 5cfd90cfe..ab69bef61 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/_initial_config.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/_initial_config.yaml @@ -5,7 +5,9 @@ - name: Configure basic config relevant to ntp global junipernetworks.junos.junos_config: lines: + - set routing-instances clv1 instance-type virtual-router - set routing-instances clv1 description "clv1" + - set routing-instances clv2 instance-type virtual-router - set routing-instances clv2 description "clv2" - ansible.builtin.debug: diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/_reset_config.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/_reset_config.yaml index 4bf7a9664..07575c600 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/_reset_config.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/_reset_config.yaml @@ -2,7 +2,7 @@ - ansible.builtin.debug: msg: "START junos_snmp_server reset config on connection={{ ansible_connection }}" -- name: Reset the config releavent to ntp global resource +- name: Reset the config releavent to snmp resource junipernetworks.junos.junos_config: lines: - delete snmp diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/merged.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/merged.yaml index f689a69e5..8c0d3ffe3 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/merged.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/merged.yaml @@ -40,7 +40,7 @@ - "{{ merged['after'] == result['after'] }}" - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) - junos_snmp_server: *merged + junipernetworks.junos.junos_snmp_server: *merged register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/overridden.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/overridden.yaml index 4f40e59e2..679d9dd8f 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/overridden.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/overridden.yaml @@ -23,6 +23,10 @@ - "eth1" - "eth2" set: true + views: + - name: "all" + oids: + - oid: ".1" state: overridden register: result @@ -37,7 +41,7 @@ - "{{ replaced['after'] == result['after'] }}" - name: Replaced the provided configuration with the existing running configuration (IDEMPOTENT) - junos_snmp_server: *overridden + junipernetworks.junos.junos_snmp_server: *overridden register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/replaced.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/replaced.yaml index d8b66546b..5bdbf72fc 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/replaced.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/tests/netconf/replaced.yaml @@ -23,6 +23,10 @@ - "eth1" - "eth2" set: true + views: + - name: "all" + oids: + - oid: ".1" state: replaced register: result @@ -37,7 +41,7 @@ - "{{ replaced['after'] == result['after'] }}" - name: Replaced the provided configuration with the existing running configuration (IDEMPOTENT) - junos_snmp_server: *replaced + junipernetworks.junos.junos_snmp_server: *replaced register: result - name: Assert that the previous task was idempotent diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/vars/main.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/vars/main.yaml index fdb1d777c..86a29df27 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/vars/main.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_snmp_server/vars/main.yaml @@ -95,3 +95,7 @@ replaced: interfaces: - "eth1" - "eth2" + views: + - name: "all" + oids: + - oid: ".1" diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_user/tasks/netconf.yaml b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_user/tasks/netconf.yaml index 2f24bb1a3..3fa0553b5 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_user/tasks/netconf.yaml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/junos_user/tasks/netconf.yaml @@ -1,5 +1,5 @@ --- -- name: collect netconf test cases +- name: Collect netconf test cases ansible.builtin.find: paths: "{{ role_path }}/tests/netconf" patterns: "{{ testcase }}.yaml" diff --git a/ansible_collections/junipernetworks/junos/tests/integration/targets/prepare_junos_tests/tasks/main.yml b/ansible_collections/junipernetworks/junos/tests/integration/targets/prepare_junos_tests/tasks/main.yml index 1b9977466..179fb0d95 100644 --- a/ansible_collections/junipernetworks/junos/tests/integration/targets/prepare_junos_tests/tasks/main.yml +++ b/ansible_collections/junipernetworks/junos/tests/integration/targets/prepare_junos_tests/tasks/main.yml @@ -1,6 +1,7 @@ --- - name: Debug task - ansible.builtin.debug: msg="START prepare_junos_tests/main.yaml" + ansible.builtin.debug: + msg: "START prepare_junos_tests/main.yaml" - name: Ensure netconf is enabled connection: ansible.netcommon.network_cli diff --git a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.12.txt b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.12.txt index 95ef681f4..ed6d78dfe 100644 --- a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.12.txt +++ b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.12.txt @@ -1,3 +1 @@ plugins/action/junos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/cliconf/junos.py pylint:arguments-renamed -tests/unit/mock/loader.py pylint:arguments-renamed diff --git a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.13.txt b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.13.txt index 95ef681f4..ed6d78dfe 100644 --- a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.13.txt +++ b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.13.txt @@ -1,3 +1 @@ plugins/action/junos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/cliconf/junos.py pylint:arguments-renamed -tests/unit/mock/loader.py pylint:arguments-renamed diff --git a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.14.txt b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.14.txt index 95ef681f4..ed6d78dfe 100644 --- a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.14.txt +++ b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.14.txt @@ -1,3 +1 @@ plugins/action/junos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/cliconf/junos.py pylint:arguments-renamed -tests/unit/mock/loader.py pylint:arguments-renamed diff --git a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.15.txt b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.15.txt index 95ef681f4..ed6d78dfe 100644 --- a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.15.txt +++ b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.15.txt @@ -1,3 +1 @@ plugins/action/junos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/cliconf/junos.py pylint:arguments-renamed -tests/unit/mock/loader.py pylint:arguments-renamed diff --git a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.16.txt b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.16.txt new file mode 100644 index 000000000..ed6d78dfe --- /dev/null +++ b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.16.txt @@ -0,0 +1 @@ +plugins/action/junos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` diff --git a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.17.txt b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.17.txt new file mode 100644 index 000000000..ed6d78dfe --- /dev/null +++ b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.17.txt @@ -0,0 +1 @@ +plugins/action/junos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` diff --git a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.9.txt b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.9.txt index 127be176d..e6e2e3680 100644 --- a/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.9.txt +++ b/ansible_collections/junipernetworks/junos/tests/sanity/ignore-2.9.txt @@ -1,3 +1,5 @@ plugins/action/junos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` plugins/modules/junos_logging.py validate-modules:deprecation-mismatch # 2.9 expects METADATA plugins/modules/junos_logging.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict +plugins/modules/junos_scp.py validate-modules:deprecation-mismatch # 2.9 expects METADATA +plugins/modules/junos_scp.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict diff --git a/ansible_collections/junipernetworks/junos/tests/unit/compat/builtins.py b/ansible_collections/junipernetworks/junos/tests/unit/compat/builtins.py deleted file mode 100644 index e898a081e..000000000 --- a/ansible_collections/junipernetworks/junos/tests/unit/compat/builtins.py +++ /dev/null @@ -1,35 +0,0 @@ -# (c) 2014, Toshio Kuratomi <tkuratomi@ansible.com> -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see <http://www.gnu.org/licenses/>. - -# Make coding more python3-ish -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -# -# Compat for python2.7 -# - -# One unittest needs to import builtins via __import__() so we need to have -# the string that represents it -try: - import __builtin__ -except ImportError: - BUILTINS = "builtins" -else: - BUILTINS = "__builtin__" diff --git a/ansible_collections/junipernetworks/junos/tests/unit/compat/mock.py b/ansible_collections/junipernetworks/junos/tests/unit/compat/mock.py index 1d51d36e8..860a9e84b 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/compat/mock.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/compat/mock.py @@ -105,7 +105,6 @@ if sys.version_info >= (3,) and sys.version_info < (3, 4, 4): global file_spec if file_spec is None: - file_spec = list( set(dir(_io.TextIOWrapper)).union(set(dir(_io.BytesIO))), ) diff --git a/ansible_collections/junipernetworks/junos/tests/unit/mock/loader.py b/ansible_collections/junipernetworks/junos/tests/unit/mock/loader.py index 2b5eb36a1..0fc53edcd 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/mock/loader.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/mock/loader.py @@ -31,7 +31,7 @@ from ansible.parsing.dataloader import DataLoader class DictDataLoader(DataLoader): def __init__(self, file_mapping=None): file_mapping = {} if file_mapping is None else file_mapping - assert type(file_mapping) == dict + assert isinstance(file_mapping, dict) super(DictDataLoader, self).__init__() @@ -47,12 +47,12 @@ class DictDataLoader(DataLoader): # TODO: the real _get_file_contents returns a bytestring, so we actually convert the # unicode/text it's created with to utf-8 - def _get_file_contents(self, path): - path = to_text(path) - if path in self._file_mapping: - return (to_bytes(self._file_mapping[path]), False) + def _get_file_contents(self, file_name): + file_name = to_text(file_name) + if file_name in self._file_mapping: + return (to_bytes(self._file_mapping[file_name]), False) else: - raise AnsibleParserError("file not found: %s" % path) + raise AnsibleParserError("file not found: %s" % file_name) def path_exists(self, path): path = to_text(path) diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/fixtures/junos_l2_interfaces_config.cfg b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/fixtures/junos_l2_interfaces_config.cfg new file mode 100644 index 000000000..26d323fcc --- /dev/null +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/fixtures/junos_l2_interfaces_config.cfg @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> + <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> + <interfaces> + <interface> + <name>ge-0/0/1</name> + <description>Configured by Ansible</description> + <disable/> + <speed>100m</speed> + <mtu>1024</mtu> + <hold-time> + <up>2000</up> + <down>2200</down> + </hold-time> + <link-mode>full-duplex</link-mode> + <unit> + <name>0</name> + <family> + <ethernet-switching> + <interface-mode>access</interface-mode> + <vlan> + <members>vlan100</members> + </vlan> + </ethernet-switching> + </family> + </unit> + </interface> + <interface> + <name>ge-0/0/2</name> + <description>Configured by Ansible</description> + <native-vlan-id>400</native-vlan-id> + <speed>10m</speed> + <mtu>2048</mtu> + <hold-time> + <up>3000</up> + <down>3200</down> + </hold-time> + <unit> + <name>0</name> + <family> + <ethernet-switching> + <interface-mode>trunk</interface-mode> + <vlan> + <members>vlan200</members> + <members>vlan300</members> + </vlan> + </ethernet-switching> + </family> + </unit> + </interface> + </interfaces> + </configuration> +</rpc-reply> diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/fixtures/junos_ospfv2_config.cfg b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/fixtures/junos_ospfv2_config.cfg index 67b18028c..94784b875 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/fixtures/junos_ospfv2_config.cfg +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/fixtures/junos_ospfv2_config.cfg @@ -1,34 +1,214 @@ <?xml version="1.0" encoding="UTF-8"?> <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> - <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> - <protocols> - <ospf> - <area> - <name>0.0.0.10</name> - <stub> - <default-metric>200</default-metric> - </stub> - <interface> - <name>so-0/0/0.0</name> - <passive></passive> - <metric>5</metric> - <priority>3</priority> - <flood-reduction/> - </interface> - </area> - <area> - <name>0.0.0.20</name> - <interface> - <name>ge-1/1/0.0</name> - </interface> - <interface> - <name>ge-2/2/0.0</name> - </interface> - </area> - </ospf> - </protocols> - <routing-options> - <router-id>10.200.16.77</router-id> - </routing-options> - </configuration> + <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> + <protocols> + <ospf> + <spf-options> + <delay>3000</delay> + <holddown>4000</holddown> + <rapid-runs>9</rapid-runs> + <no-ignore-our-externals/> + </spf-options> + <prefix-export-limit>20000</prefix-export-limit> + <overload> + <timeout>1200</timeout> + <allow-route-leaking/> + <stub-network/> + <as-external/> + </overload> + <reference-bandwidth>10g</reference-bandwidth> + <no-rfc-1583/> + <area> + <name>0.0.0.100</name> + <stub> + <default-metric>100</default-metric> + </stub> + <area-range> + <name>10.200.17.0/24</name> + <restrict/> + <exact/> + <override-metric>2000</override-metric> + </area-range> + <area-range> + <name>10.200.15.0/24</name> + <restrict/> + <exact/> + <override-metric>2000</override-metric> + </area-range> + <interface> + <name>so-0/0/0.0</name> + <passive> + </passive> + <bandwidth-based-metrics> + <bandwidth> + <name>1g</name> + <metric>5</metric> + </bandwidth> + <bandwidth> + <name>10g</name> + <metric>40</metric> + </bandwidth> + </bandwidth-based-metrics> + <metric>5</metric> + <priority>3</priority> + <retransmit-interval>2</retransmit-interval> + <hello-interval>2</hello-interval> + <dead-interval>4</dead-interval> + <poll-interval>2</poll-interval> + </interface> + </area> + <area> + <name>0.0.0.200</name> + <stub> + <default-metric>100</default-metric> + </stub> + <area-range> + <name>10.400.17.0/24</name> + <restrict/> + <exact/> + <override-metric>2000</override-metric> + </area-range> + <interface> + <name>so-0/0/1.0</name> + <passive> + </passive> + <bandwidth-based-metrics> + <bandwidth> + <name>1g</name> + <metric>5</metric> + </bandwidth> + </bandwidth-based-metrics> + <authentication> + <md5> + <name>20</name> + <key>$9$.fz6pu1crvEc-w2gDjz36</key> + <start-time>2023-7-12.03:00:00 +0000</start-time> + </md5> + <md5> + <name>10</name> + <key>$9$m5F/u0ISlMhSdsg4jiFn/</key> + <start-time>2023-7-12.03:00:00 +0000</start-time> + </md5> + </authentication> + </interface> + <interface> + <name>so-0/0/2.0</name> + <authentication> + <md5> + <name>20</name> + <key>$9$.fz6pu1crvEc-w2gDjz36</key> + <start-time>2023-7-12.03:00:00 +0000</start-time> + </md5> + </authentication> + </interface> + <interface> + <name>so-0/0/3.0</name> + <authentication> + <md5> + <name>20</name> + <key>$9$.fz6pu1crvEc-w2gDjz36</key> + <start-time>2023-7-12.03:00:00 +0000</start-time> + </md5> + </authentication> + </interface> + </area> + </ospf> + <bgp> + <family> + <inet> + <unicast> + <local-ipv4-address>9.9.9.9</local-ipv4-address> + <extended-nexthop/> + <extended-nexthop-color/> + </unicast> + <flow> + <loops> + <loops>4</loops> + </loops> + <no-install/> + <output-queue-priority> + <expedited/> + </output-queue-priority> + <legacy-redirect-ip-action> + <receive/> + <send/> + </legacy-redirect-ip-action> + <secondary-independent-resolution/> + </flow> + <any> + <accepted-prefix-limit> + <maximum>20</maximum> + <teardown> + <limit-threshold>99</limit-threshold> + <idle-timeout> + <timeout>2000</timeout> + </idle-timeout> + </teardown> + </accepted-prefix-limit> + <damping/> + <delay-route-advertisements> + <minimum-delay> + <routing-uptime>23000</routing-uptime> + <inbound-convergence>32000</inbound-convergence> + </minimum-delay> + <maximum-delay> + <route-age>20</route-age> + <routing-uptime>32000</routing-uptime> + </maximum-delay> + </delay-route-advertisements> + <defer-initial-multipath-build> + <maximum-delay>2</maximum-delay> + </defer-initial-multipath-build> + <graceful-restart> + <forwarding-state-bit>from-fib</forwarding-state-bit> + </graceful-restart> + </any> + <labeled-unicast> + <prefix-limit> + <maximum>20</maximum> + <teardown> + <limit-threshold>99</limit-threshold> + <idle-timeout> + <forever/> + </idle-timeout> + </teardown> + </prefix-limit> + <route-refresh-priority> + <priority>3</priority> + </route-refresh-priority> + <per-prefix-label/> + <per-group-label/> + <rib> + <inet.3/> + </rib> + <explicit-null> + <connected-only/> + </explicit-null> + <resolve-vpn/> + <entropy-label> + <no-next-hop-validation/> + </entropy-label> + </labeled-unicast> + </inet> + <evpn> + <signaling> + <accepted-prefix-limit> + <maximum>20</maximum> + <teardown> + <limit-threshold>98</limit-threshold> + <idle-timeout> + <timeout>2001</timeout> + </idle-timeout> + </teardown> + </accepted-prefix-limit> + <damping/> + <defer-initial-multipath-build> + <maximum-delay>2</maximum-delay> + </defer-initial-multipath-build> + </signaling> + </evpn> + </family> + </bgp> + </protocols> +</configuration> </rpc-reply> diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/junos_module.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/junos_module.py index fe4c37b33..b847e3eef 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/junos_module.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/junos_module.py @@ -73,7 +73,6 @@ class TestJunosModule(ModuleTestCase): defaults=False, format="text", ): - self.load_fixtures(commands, format, changed=changed) if failed: diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_command.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_command.py index 9494eb2b2..720b32981 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_command.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_command.py @@ -37,7 +37,6 @@ RPC_CLI_MAP = {"get-software-information": "show version"} class TestJunosCommandModule(TestJunosModule): - module = junos_command def setUp(self): diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_config.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_config.py index a8e134050..f3adb4767 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_config.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_config.py @@ -32,7 +32,6 @@ from .junos_module import TestJunosModule, load_fixture class TestJunosConfigModule(TestJunosModule): - module = junos_config def setUp(self): @@ -169,6 +168,16 @@ class TestJunosConfigModule(TestJunosModule): load_configuration_args = self.load_configuration.call_args self.assertEqual(rollback, load_configuration_args[1].get("rollback")) + def test_junos_config_rollback_0(self): + rollback = 0 + set_module_args(dict(rollback=rollback)) + self.execute_module(changed=True) + self.assertEqual(self.get_diff.call_count, 1) + self.assertEqual(self.load_configuration.call_count, 1) + self.assertEqual(self.commit_configuration.call_count, 1) + load_configuration_args = self.load_configuration.call_args + self.assertEqual(rollback, load_configuration_args[1].get("rollback")) + def test_junos_config_src_text(self): src = load_fixture("junos_config.text", content="str") set_module_args(dict(src=src)) diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_facts.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_facts.py index 0b5b7890c..1e6bc12d3 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_facts.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_facts.py @@ -44,7 +44,6 @@ RPC_CLI_MAP = { class TestJunosCommandModule(TestJunosModule): - module = junos_facts def setUp(self): diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_interfaces.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_interfaces.py index ad4efe9ef..55ee8c766 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_interfaces.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_interfaces.py @@ -103,12 +103,10 @@ class TestJunosInterfacesModule(TestJunosModule): ) commands = [ '<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">' - "<nc:interface><nc:name>ge-0/0/1</nc:name>" - "<nc:description>This is configured with ansible resource module</nc:description>" - "<nc:speed>100m</nc:speed>" - "<nc:mtu>1024</nc:mtu>" - "</nc:interface></nc:interfaces>", + "<nc:interface><nc:name>ge-0/0/1</nc:name><nc:description>This is configured with ansible resource module</nc:description>" + "<nc:speed>100m</nc:speed><nc:mtu>1024</nc:mtu><nc:enable/></nc:interface></nc:interfaces>", ] + result = self.execute_module(changed=True) self.assertEqual(sorted(result["commands"]), sorted(commands)) @@ -146,12 +144,11 @@ class TestJunosInterfacesModule(TestJunosModule): ), ) result = self.execute_module(changed=True) - commands = [ '<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">' "<nc:interface><nc:name>ge-0/0/2</nc:name>" "<nc:description>This is configured with ansible</nc:description>" - "<nc:speed>100m</nc:speed><nc:mtu>1024</nc:mtu></nc:interface></nc:interfaces>", + "<nc:speed>100m</nc:speed><nc:mtu>1024</nc:mtu><nc:enable/></nc:interface></nc:interfaces>", ] self.assertEqual(sorted(result["commands"]), commands) @@ -194,7 +191,7 @@ class TestJunosInterfacesModule(TestJunosModule): '<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">' "<nc:interface><nc:name>ge-0/0/2</nc:name>" "<nc:description>This is configured with ansible</nc:description>" - "<nc:speed>100m</nc:speed><nc:mtu>1024</nc:mtu></nc:interface></nc:interfaces>", + "<nc:speed>100m</nc:speed><nc:mtu>1024</nc:mtu><nc:enable/></nc:interface></nc:interfaces>", ] result = self.execute_module(changed=True) self.assertEqual(sorted(result["commands"]), commands) diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_l2_interfaces.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_l2_interfaces.py index d2dd5c687..1524047f5 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_l2_interfaces.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_l2_interfaces.py @@ -50,49 +50,45 @@ class TestJunosL2InterfacesModule(TestJunosModule): "ansible_collections.junipernetworks.junos.plugins.module_utils.network.junos.config.l2_interfaces.l2_interfaces.load_config", ) self.load_config = self.mock_load_config.start() - - self.mock_validate_config = patch( - "ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils.validate_config", - ) - self.validate_config = self.mock_validate_config.start() - self.mock_commit_configuration = patch( "ansible_collections.junipernetworks.junos.plugins.module_utils.network.junos.config.l2_interfaces.l2_interfaces.commit_configuration", ) self.mock_commit_configuration = self.mock_commit_configuration.start() - - self.mock_get_config = patch( + self.mock_execute_show_command = patch( "ansible_collections.junipernetworks.junos.plugins.module_utils.network.junos.facts.l2_interfaces.l2_interfaces." - "L2_interfacesFacts.get_config", + "L2_interfacesFacts.get_device_data", ) - self.get_config = self.mock_get_config.start() - self.mock_get_res_config = patch( "ansible_collections.junipernetworks.junos.plugins.module_utils.network.junos.config.l2_interfaces.l2_interfaces." "L2_interfaces.get_res_config", ) self.get_res_config = self.mock_get_res_config.start() + self.execute_show_command = self.mock_execute_show_command.start() def tearDown(self): super(TestJunosL2InterfacesModule, self).tearDown() - self.mock_get_config.stop() - self.mock_get_res_config.stop() self.mock_load_config.stop() - self.mock_validate_config.stop() + self.mock_get_res_config.stop() self.mock_lock_configuration.stop() self.mock_unlock_configuration.stop() self.mock_commit_configuration.stop() + self.mock_execute_show_command.stop() - def load_fixtures(self, commands=None, format="text", changed=False): - self.get_config.return_value = load_fixture( - "junos_interfaces_config.xml", - ) - if changed: - self.load_config.return_value = load_fixture( - "get_configuration_rpc_reply_diff.txt", - ) - else: - self.load_config.return_value = None + def load_fixtures( + self, + commands=None, + format="text", + changed=False, + filename=None, + ): + def load_from_file(*args, **kwargs): + if filename: + output = load_fixture(filename) + else: + output = load_fixture("junos_l2_interfaces_config.cfg") + return output + + self.execute_show_command.side_effect = load_from_file def test_junos_l2_interfaces_merged(self): set_module_args( @@ -112,91 +108,113 @@ class TestJunosL2InterfacesModule(TestJunosModule): result = self.execute_module(changed=True) self.assertEqual(sorted(result["commands"]), sorted(commands)) + def test_junos_l2_interfaces_gathered(self): + """ + :return: + """ + set_module_args(dict(state="gathered")) + result = self.execute_module(changed=False) + with open("gathered_outout.py", "w") as file: + file.write(str(result["gathered"])) + gather_list = [ + {"access": {"vlan": "vlan100"}, "name": "ge-0/0/1", "unit": 0, "enhanced_layer": True}, + { + "name": "ge-0/0/2", + "trunk": {"allowed_vlans": ["vlan200", "vlan300"], "native_vlan": "400"}, + "unit": 0, + "enhanced_layer": True, + }, + ] + self.assertEqual(gather_list, result["gathered"]) + def test_junos_l2_interfaces_merged_idempotent(self): - self.get_config.return_value = load_fixture( - "junos_interfaces_config.xml", - ) - src = load_fixture("junos_l2_interfaces.cfg", content="str") - set_module_args(dict(src=src)) set_module_args( dict( - config=[dict(name="ge-0/0/1", access=dict(vlan="vlan100"))], + config=[ + dict(name="ge-0/0/1", access=dict(vlan="vlan100"), unit=0, enhanced_layer=True), + dict( + name="ge-0/0/2", + trunk=dict(allowed_vlans=["vlan200", "vlan300"], native_vlan="400"), + unit=0, + enhanced_layer=True, + ), + ], state="merged", ), ) - self.execute_module(changed=False, commands=[]) + result = self.execute_module(changed=True) + self.assertEqual(result["before"], result["after"]) def test_junos_l2_interfaces_replaced(self): - self.get_res_config.return_value = load_fixture( - "junos_interfaces_config.xml", - ) set_module_args( dict( - config=[dict(name="ge-0/0/2", access=dict(vlan="vlan200"))], + config=[dict(name="ge-0/0/1", access=dict(vlan="vlan100"), enhanced_layer=False)], state="replaced", ), ) commands = [ '<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface>' - "<nc:name>ge-0/0/2</nc:name><nc:unit><nc:name>0</nc:name>" - "<nc:family><nc:ethernet-switching>" - '<nc:interface-mode delete="delete"/><nc:vlan delete="delete"/>' - '</nc:ethernet-switching></nc:family></nc:unit><nc:native-vlan-id delete="delete"/>' - "</nc:interface><nc:interface><nc:name>ge-0/0/2</nc:name>" - "<nc:unit><nc:name>0</nc:name><nc:family>" - "<nc:ethernet-switching><nc:interface-mode>access</nc:interface-mode>" - "<nc:vlan><nc:members>vlan200</nc:members></nc:vlan>" - "</nc:ethernet-switching></nc:family></nc:unit></nc:interface></nc:interfaces>", + "<nc:name>ge-0/0/1</nc:name><nc:unit><nc:name>0</nc:name>" + "<nc:family><nc:ethernet-switching><nc:port-mode>access</nc:port-mode>" + "<nc:vlan><nc:members>vlan100</nc:members></nc:vlan></nc:ethernet-switching></nc:family>" + "</nc:unit></nc:interface></nc:interfaces>", ] result = self.execute_module(changed=True) self.assertEqual(sorted(result["commands"]), sorted(commands)) def test_junos_l2_interfaces_replaced_idempotent(self): - self.get_res_config.return_value = load_fixture( - "junos_interfaces_config.xml", - ) - src = load_fixture("junos_l2_interfaces.cfg", content="str") - set_module_args(dict(src=src)) set_module_args( dict( - config=[dict(name="ge-0/0/1", access=dict(vlan="vlan100"))], + config=[ + dict(name="ge-0/0/1", access=dict(vlan="vlan100"), unit=0, enhanced_layer=True), + dict( + name="ge-0/0/2", + trunk=dict(allowed_vlans=["vlan200", "vlan300"], native_vlan="400"), + unit=0, + enhanced_layer=True, + ), + ], state="replaced", ), ) - self.execute_module(changed=False, commands=[]) + result = self.execute_module(changed=True) + self.assertEqual(result["before"], result["after"]) def test_junos_l2_interfaces_overridden(self): set_module_args( dict( - config=[dict(name="ge-0/0/3", access=dict(vlan="vlan300"))], + config=[dict(name="ge-0/0/1", access=dict(vlan="vlan100"), enhanced_layer=False)], state="overridden", ), ) commands = [ '<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface>' - "<nc:name>ge-0/0/3</nc:name><nc:unit><nc:name>0</nc:name>" - "<nc:family><nc:ethernet-switching>" - "<nc:interface-mode>access</nc:interface-mode><nc:vlan><nc:members>vlan300</nc:members></nc:vlan>" - "</nc:ethernet-switching></nc:family></nc:unit></nc:interface></nc:interfaces>", + "<nc:name>ge-0/0/1</nc:name><nc:unit><nc:name>0</nc:name>" + "<nc:family><nc:ethernet-switching><nc:port-mode>access</nc:port-mode>" + "<nc:vlan><nc:members>vlan100</nc:members></nc:vlan></nc:ethernet-switching></nc:family>" + "</nc:unit></nc:interface></nc:interfaces>", ] result = self.execute_module(changed=True) - self.assertEqual(sorted(result["commands"]), commands) def test_junos_l2_interfaces_overridden_idempotent(self): - self.get_res_config.return_value = load_fixture( - "junos_interfaces_config.xml", - ) - src = load_fixture("junos_l2_interfaces.cfg", content="str") - set_module_args(dict(src=src)) set_module_args( dict( - config=[dict(name="ge-0/0/1", access=dict(vlan="vlan100"))], + config=[ + dict(name="ge-0/0/1", access=dict(vlan="vlan100"), unit=0, enhanced_layer=True), + dict( + name="ge-0/0/2", + trunk=dict(allowed_vlans=["vlan200", "vlan300"], native_vlan="400"), + unit=0, + enhanced_layer=True, + ), + ], state="overridden", ), ) - self.execute_module(changed=False, commands=[]) + result = self.execute_module(changed=True) + self.assertEqual(result["before"], result["after"]) def test_junos_l2_interfaces_delete(self): self.get_res_config.return_value = load_fixture( @@ -216,22 +234,82 @@ class TestJunosL2InterfacesModule(TestJunosModule): self.assertEqual(sorted(result["commands"]), commands) def test_junos_l2_interfaces_delete_idempotent(self): - set_module_args(dict(config=[dict(name="ge-0/0/4")], state="deleted")) - self.execute_module(changed=False, commands=[]) + set_module_args(dict(config=[dict(name="ge-0/0/3")], state="deleted")) + result = self.execute_module(changed=True) + self.assertEqual(result["before"], result["after"]) + + def test_junos_l2_interfaces_parsed(self): + parsed_str = """ + <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> + <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> + <interfaces> + <interface> + <name>ge-0/0/6</name> + <unit> + <name>0</name> + <family> + <ethernet-switching> + <interface-mode>trunk</interface-mode> + <vlan> + <members>vlan02</members> + </vlan> + </ethernet-switching> + </family> + </unit> + </interface> + + <interface> + <name>ge-0/0/37</name> + <unit> + <name>0</name> + <family> + <ethernet-switching> + <vlan> + <members>vlan31</members> + </vlan> + </ethernet-switching> + </family> + </unit> + </interface> + </interfaces> + </configuration> + </rpc-reply> + """ + set_module_args(dict(running_config=parsed_str, state="parsed")) + result = self.execute_module(changed=False) + parsed_list = [ + { + "name": "ge-0/0/6", + "trunk": { + "allowed_vlans": ["vlan02"], + }, + "unit": 0, + "enhanced_layer": True, + }, + { + "access": { + "vlan": "vlan31", + }, + "name": "ge-0/0/37", + "unit": 0, + "enhanced_layer": False, + }, + ] + self.assertEqual(result["parsed"], parsed_list) def test_junos_l2_interfaces_rendered(self): set_module_args( dict( - config=[dict(name="ge-0/0/1", access=dict(vlan="vlan100"))], - state="merged", + config=[dict(name="ge-0/0/4", access=dict(vlan="vlan100"))], + state="rendered", ), ) - commands = [ + rendered = ( '<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:interface>' - "<nc:name>ge-0/0/1</nc:name><nc:unit><nc:name>0</nc:name>" - "<nc:family><nc:ethernet-switching><nc:interface-mode>access</nc:interface-mode>" - "<nc:vlan><nc:members>vlan100</nc:members>" - "</nc:vlan></nc:ethernet-switching></nc:family></nc:unit>" - "</nc:interface></nc:interfaces>", - ] - self.execute_module(changed=False, commands=commands) + "<nc:name>ge-0/0/4</nc:name><nc:unit><nc:name>0</nc:name><nc:family>" + "<nc:ethernet-switching><nc:interface-mode>access</nc:interface-mode><nc:vlan>" + "<nc:members>vlan100</nc:members></nc:vlan></nc:ethernet-switching></nc:family>" + "</nc:unit></nc:interface></nc:interfaces>" + ) + result = self.execute_module(changed=False) + self.assertEqual(sorted(result["rendered"]), sorted(rendered)) diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_netconf.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_netconf.py index 2a4806839..8f98536c7 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_netconf.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_netconf.py @@ -29,7 +29,6 @@ from .junos_module import TestJunosModule class TestJunosCommandModule(TestJunosModule): - module = junos_netconf def setUp(self): diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_ospfv2.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_ospfv2.py index 786057021..593acd831 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_ospfv2.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_ospfv2.py @@ -86,8 +86,24 @@ class TestJunosOspfv2Module(TestJunosModule): self.execute_show_command.side_effect = load_from_file - def sort_ospf(self, entry_list): - entry_list.sort(key=lambda i: i.get("name")) + def sorted_xml(self, xml_string): + temp = [] + index = 0 + while index < len(xml_string): + temp_line = "" + if xml_string[index] == "<": + while index < len(xml_string) and xml_string[index] != ">": + temp_line += xml_string[index] + index += 1 + temp_line += ">" + index += 1 + temp.append(temp_line) + else: + while index < len(xml_string) and xml_string[index] != "<": + temp_line += xml_string[index] + index += 1 + temp.append(temp_line) + return sorted(temp) def test_junos_ospfv2_merged(self): set_module_args( @@ -95,15 +111,52 @@ class TestJunosOspfv2Module(TestJunosModule): config=[ dict( router_id="10.200.16.75", + rfc1583compatibility="False", + external_preference=10, + overload=dict( + allow_route_leaking=True, + as_external=True, + stub_network=True, + timeout=1200, + ), + spf_options=dict( + delay=3000, + holddown=4000, + rapid_runs=9, + no_ignore_our_externals=True, + ), + prefix_export_limit=30000, areas=[ dict( area_id="0.0.0.100", stub=dict(default_metric=200, set=True), + area_ranges=[ + dict( + address="10.200.17.0/24", + exact=True, + restrict=True, + override_metric=2000, + ), + ], interfaces=[ dict( name="so-0/0/0.0", priority=3, metric=5, + flood_reduction=False, + passive=True, + bandwidth_based_metrics=[ + dict( + bandwidth="1g", + metric=5, + ), + ], + timers=dict( + dead_interval=4, + hello_interval=2, + poll_interval=2, + retransmit_interval=2, + ), ), ], ), @@ -115,84 +168,74 @@ class TestJunosOspfv2Module(TestJunosModule): ) commands = [ '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:ospf>' - "<nc:area><nc:name>0.0.0.100</nc:name><nc:interface><nc:name>so-0/0/0.0</nc:name>" - "<nc:priority>3</nc:priority><nc:metric>5</nc:metric></nc:interface><nc:stub>" - "<nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols>", + "<nc:spf-options><nc:delay>3000</nc:delay><nc:holddown>4000</nc:holddown>" + "<nc:rapid-runs>9</nc:rapid-runs><nc:no-ignore-our-externals/></nc:spf-options>" + "<nc:overload><nc:timeout>1200</nc:timeout><nc:allow-route-leaking/><nc:as-external/><nc:stub-network/></nc:overload>" + "<nc:external-preference>10</nc:external-preference>" + "<nc:prefix-export-limit>30000</nc:prefix-export-limit>" + "<nc:no-rfc-1583/>" + "<nc:area><nc:name>0.0.0.100</nc:name><nc:area-range><nc:name>10.200.17.0/24</nc:name>" + "<nc:exact/><nc:restrict/><nc:override-metric>2000</nc:override-metric></nc:area-range>" + "<nc:interface><nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority><nc:metric>5</nc:metric>" + "<nc:passive/><nc:bandwidth-based-metrics><nc:bandwidth><nc:name>1g</nc:name><nc:metric>5</nc:metric>" + "</nc:bandwidth></nc:bandwidth-based-metrics><nc:dead-interval>4</nc:dead-interval><nc:hello-interval>2</nc:hello-interval>" + "<nc:poll-interval>2</nc:poll-interval><nc:retransmit-interval>2</nc:retransmit-interval></nc:interface>" + "<nc:stub><nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols>", '<nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">' "<nc:router-id>10.200.16.75</nc:router-id></nc:routing-options>", ] result = self.execute_module(changed=True, commands=commands) self.assertEqual(sorted(result["commands"]), sorted(commands)) - def test_junos_ospfv2_merged_bandwith(self): + def test_junos_ospfv2_merged_areas(self): set_module_args( dict( config=[ dict( - router_id="10.200.16.77", areas=[ dict( - area_id="0.0.0.10", + area_id="0.0.0.100", + stub=dict(default_metric=200, set=True), + area_ranges=[ + dict( + address="10.200.17.0/24", + ), + dict( + address="10.200.18.0/24", + ), + ], interfaces=[ dict( - name="so-0/0/0.0", - metric=5, + name="so-0/1/0.0", bandwidth_based_metrics=[ - dict(bandwidth="10g", metric=5), + dict( + bandwidth="1g", + metric=5, + ), + dict( + bandwidth="10g", + metric=5, + ), ], ), + dict( + name="so-0/1/0.0", + priority=3, + ), ], ), - ], - ), - ], - state="merged", - ), - ) - result = self.execute_module(changed=True) - self.assertIn( - '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', - str(result["commands"]), - ) - self.assertIn( - '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', - str(result["commands"]), - ) - self.assertIn("<nc:name>0.0.0.10</nc:name>", str(result["commands"])) - self.assertIn( - "<nc:interface><nc:name>so-0/0/0.0</nc:name>", - str(result["commands"]), - ) - self.assertIn( - "<nc:bandwidth-based-metrics><nc:bandwidth><nc:name>10g</nc:name>", - str(result["commands"]), - ) - self.assertIn("<nc:metric>5</nc:metric>", str(result["commands"])) - - def test_junos_ospfv2_merged_02(self): - set_module_args( - dict( - config=[ - dict( - router_id="10.200.16.75", - areas=[ dict( - area_id="0.0.0.100", - area_range="3:3::/64", - stub=dict(set=True), + area_id="0.0.0.200", + area_range="10.200.20.0/24", interfaces=[ dict( - name="so-0/0/0.0", - priority=3, - metric=5, - flood_reduction=True, - passive=True, - timers=dict( - dead_interval=100, - hello_interval=80, - retransmit_interval=90, - transit_delay=True, - ), + name="so-0/1/0.0", + bandwidth_based_metrics=[ + dict( + bandwidth="1g", + metric=5, + ), + ], ), ], ), @@ -202,472 +245,564 @@ class TestJunosOspfv2Module(TestJunosModule): state="merged", ), ) - result = self.execute_module(changed=True) - self.assertIn( - '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', - str(result["commands"]), - ) - self.assertIn( - "<nc:ospf><nc:area><nc:name>0.0.0.100</nc:name>", - str(result["commands"]), - ) - self.assertIn( - "<nc:interface><nc:name>so-0/0/0.0</nc:name>", - str(result["commands"]), - ) - self.assertIn("<nc:priority>3</nc:priority>", str(result["commands"])) - self.assertIn("<nc:flood-reduction/>", str(result["commands"])) - self.assertIn("<nc:metric>5</nc:metric>", str(result["commands"])) - self.assertIn("<nc:passive/>", str(result["commands"])) - self.assertIn( - "<nc:dead-interval>100</nc:dead-interval>", - str(result["commands"]), - ) - self.assertIn( - "<nc:hello-interval>80</nc:hello-interval>", - str(result["commands"]), - ) - self.assertIn( - "<nc:retransmit-interval>90</nc:retransmit-interval>", - str(result["commands"]), - ) - self.assertIn("</nc:interface>", str(result["commands"])) - self.assertIn( - "<nc:stub/></nc:area></nc:ospf></nc:protocols>", - str(result["commands"]), - ) - self.assertIn("</nc:interface>", str(result["commands"])) - self.assertIn( - '<nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', - str(result["commands"]), - ) - self.assertIn( - "<nc:router-id>10.200.16.75</nc:router-id></nc:routing-options>", - str(result["commands"]), - ) + commands = [ + '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">' + "<nc:ospf><nc:area><nc:name>0.0.0.100</nc:name><nc:area-range>" + "<nc:name>10.200.17.0/24</nc:name></nc:area-range><nc:area-range>" + "<nc:name>10.200.18.0/24</nc:name></nc:area-range><nc:interface>" + "<nc:name>so-0/1/0.0</nc:name><nc:bandwidth-based-metrics><nc:bandwidth>" + "<nc:name>1g</nc:name><nc:metric>5</nc:metric></nc:bandwidth><nc:bandwidth>" + "<nc:name>10g</nc:name><nc:metric>5</nc:metric></nc:bandwidth></nc:bandwidth-based-metrics>" + "</nc:interface><nc:interface><nc:name>so-0/1/0.0</nc:name><nc:priority>3</nc:priority>" + "</nc:interface><nc:stub><nc:default-metric>200</nc:default-metric></nc:stub></nc:area>" + "<nc:area><nc:name>0.0.0.200</nc:name><nc:area-range><nc:name>10.200.20.0/24</nc:name>" + "</nc:area-range><nc:interface><nc:name>so-0/1/0.0</nc:name><nc:bandwidth-based-metrics>" + "<nc:bandwidth><nc:name>1g</nc:name><nc:metric>5</nc:metric></nc:bandwidth>" + "</nc:bandwidth-based-metrics></nc:interface></nc:area></nc:ospf></nc:protocols>", + ] + result = self.execute_module(changed=True, commands=commands) + self.assertEqual(sorted(result["commands"]), sorted(commands)) - def test_junos_ospfv2_merged_03(self): + def test_junos_ospfv2_gathered(self): + """ + :return: + """ + set_module_args(dict(state="gathered")) + result = self.execute_module(changed=False) + gather_list = [ + { + "areas": [ + { + "area_id": "0.0.0.100", + "area_range": "['10.200.17.0/24', '10.200.15.0/24']", + "area_ranges": [ + { + "address": "10.200.17.0/24", + "exact": True, + "override_metric": 2000, + "restrict": True, + }, + { + "address": "10.200.15.0/24", + "exact": True, + "override_metric": 2000, + "restrict": True, + }, + ], + "interfaces": [ + { + "bandwidth_based_metrics": [ + { + "bandwidth": "1g", + "metric": 5, + }, + { + "bandwidth": "10g", + "metric": 40, + }, + ], + "metric": 5, + "name": "so-0/0/0.0", + "passive": True, + "priority": 3, + "timers": { + "dead_interval": 4, + "hello_interval": 2, + "poll_interval": 2, + "retransmit_interval": 2, + }, + }, + ], + "stub": { + "default_metric": 100, + "set": True, + }, + }, + { + "area_id": "0.0.0.200", + "area_range": "['10.200.19.0/24']", + "area_ranges": [ + { + "address": "10.200.19.0/24", + "exact": True, + "override_metric": 2000, + "restrict": True, + }, + ], + "interfaces": [ + { + "authentication": { + "password": "$9$eX2vMLoaUH.5bsgJZjPf369", + "type": { + "simple_password": "$9$eX2vMLoaUH.5bsgJZjPf369", + }, + }, + "name": "so-0/1/0.0", + "priority": 3, + }, + { + "authentication": { + "md5": [ + { + "key": "$9$vBL87Vg4ZiqfDi/t0OSy7-V", + "key_id": 10, + }, + ], + }, + "name": "so-0/2/0.0", + "priority": 2, + }, + ], + }, + { + "area_id": "0.0.0.120", + "area_range": "['10.200.20.0/24']", + "area_ranges": [ + { + "address": "10.200.20.0/24", + "exact": True, + "override_metric": 2000, + "restrict": True, + }, + ], + "interfaces": [ + { + "authentication": { + "md5": [ + { + "key": "$9$IIShrvx7V2oGs2mTF3purev", + "key_id": 10, + }, + ], + }, + "name": "so-0/2/0.1", + "priority": 2, + }, + ], + }, + ], + "overload": { + "allow_route_leaking": True, + "as_external": True, + "stub_network": True, + "timeout": 1200, + }, + "reference_bandwidth": "10g", + "rfc1583compatibility": False, + "router_id": "10.200.16.75", + }, + ] + + def test_junos_ospfv2_replaced(self): set_module_args( dict( config=[ dict( router_id="10.200.16.75", - external_preference=2, - overload=dict(timeout=80), - preference=1, - prefix_export_limit=20000, - reference_bandwidth="10g", - rfc1583compatibility=False, + rfc1583compatibility="False", + external_preference=10, + overload=dict( + allow_route_leaking=True, + as_external=True, + stub_network=True, + timeout=1200, + ), spf_options=dict( - delay=1000, - holddown=15000, + delay=3000, + holddown=4000, rapid_runs=9, + no_ignore_our_externals=True, ), - ), - ], - state="merged", - ), - ) - result = self.execute_module(changed=True) - self.assertIn( - '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', - str(result["commands"]), - ) - self.assertIn( - "<nc:spf-options><nc:delay>1000</nc:delay>", - str(result["commands"]), - ) - self.assertIn( - "<nc:overload><nc:timeout>80</nc:timeout></nc:overload>", - str(result["commands"]), - ) - self.assertIn( - "<nc:external-preference>2</nc:external-preference>", - str(result["commands"]), - ) - self.assertIn( - "<nc:preference>1</nc:preference>", - str(result["commands"]), - ) - self.assertIn( - "<nc:prefix-export-limit>20000</nc:prefix-export-limit>", - str(result["commands"]), - ) - self.assertIn( - "<nc:reference-bandwidth>10g</nc:reference-bandwidth>", - str(result["commands"]), - ) - self.assertIn("<nc:no-rfc-1583/>", str(result["commands"])) - self.assertIn( - "<nc:router-id>10.200.16.75</nc:router-id></nc:routing-options>", - str(result["commands"]), - ) - - def test_junos_ospfv2_replaced_01(self): - set_module_args( - dict( - config=[ - dict( - router_id="10.200.16.77", + prefix_export_limit=30000, areas=[ dict( - area_id="0.0.0.10", + area_id="0.0.0.100", stub=dict(default_metric=200, set=True), - interfaces=[ - dict( - name="so-0/0/0.0", - priority=3, - metric=2, - passive=True, - ), + area_ranges=[ dict( - name="so-0/0/0.1", - priority=4, - metric=4, + address="10.200.17.0/24", + exact=True, + restrict=True, + override_metric=2000, ), ], - ), - dict( - area_id="0.0.0.1=30", - interfaces=[ - dict(name="ge-1/1/1.0"), - dict(name="ge-2/2/2.0"), - ], - ), - ], - ), - ], - state="replaced", - ), - ) - result = self.execute_module(changed=True) - self.assertIn( - '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', - str(result["commands"]), - ) - self.assertIn( - '<nc:ospf><nc:area delete="delete">0.0.0.20</nc:area></nc:ospf>', - str(result["commands"]), - ) - self.assertIn( - '<nc:ospf><nc:area delete="delete">0.0.0.10</nc:area></nc:ospf>', - str(result["commands"]), - ) - self.assertIn( - '<nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', - str(result["commands"]), - ) - self.assertIn("<nc:metric>2</nc:metric>", str(result["commands"])) - self.assertIn("<nc:priority>3</nc:priority>", str(result["commands"])) - self.assertIn( - "<nc:interface><nc:name>so-0/0/0.1</nc:name>", - str(result["commands"]), - ) - self.assertIn( - "<nc:stub><nc:default-metric>200</nc:default-metric></nc:stub>", - str(result["commands"]), - ) - self.assertIn( - "<nc:router-id>10.200.16.77</nc:router-id></nc:routing-options>", - str(result["commands"]), - ) - - def test_junos_ospfv2_merged_01(self): - set_module_args( - dict( - config=[ - dict( - router_id="10.200.16.77", - areas=[ - dict( - area_id="0.0.0.10", - stub=dict(default_metric=200, set=True), interfaces=[ dict( name="so-0/0/0.0", priority=3, - metric=2, + metric=5, + flood_reduction=False, passive=True, - ), - dict( - name="so-0/0/0.1", - priority=4, - metric=4, + bandwidth_based_metrics=[ + dict( + bandwidth="1g", + metric=5, + ), + ], + timers=dict( + dead_interval=4, + hello_interval=2, + poll_interval=2, + retransmit_interval=2, + ), ), ], ), - dict( - area_id="0.0.0.1=30", - interfaces=[ - dict(name="ge-1/1/1.0"), - dict(name="ge-2/2/2.0"), - ], - ), ], ), ], - state="overridden", + state="replaced", ), ) - result = self.execute_module(changed=True) - self.assertIn( - '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', - str(result["commands"]), - ) - self.assertIn( - '<nc:ospf><nc:area delete="delete">0.0.0.20</nc:area></nc:ospf>', - str(result["commands"]), - ) - self.assertIn( - '<nc:ospf><nc:area delete="delete">0.0.0.10</nc:area></nc:ospf>', - str(result["commands"]), - ) - self.assertIn( - '<nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', - str(result["commands"]), - ) - self.assertIn("<nc:metric>2</nc:metric>", str(result["commands"])) - self.assertIn("<nc:priority>3</nc:priority>", str(result["commands"])) - self.assertIn( - "<nc:interface><nc:name>so-0/0/0.1</nc:name>", - str(result["commands"]), - ) - self.assertIn( - "<nc:stub><nc:default-metric>200</nc:default-metric></nc:stub>", - str(result["commands"]), - ) - self.assertIn( - "<nc:router-id>10.200.16.77</nc:router-id></nc:routing-options>", - str(result["commands"]), - ) - - def test_junos_ospfv2_deleted(self): - """ - :return: - """ - set_module_args(dict(config=[], state="deleted")) - commands = [ '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">' - '<nc:ospf><nc:area delete="delete">0.0.0.10</nc:area></nc:ospf>' - '<nc:ospf><nc:area delete="delete">0.0.0.20</nc:area></nc:ospf>' - "</nc:protocols>", + '<nc:ospf><nc:area delete="delete">0.0.0.100</nc:area><nc:area delete="delete">0.0.0.200</nc:area>' + '<nc:spf-options delete="delete"/><nc:reference-bandwidth delete="delete"/>' + '<nc:no-rfc-1583 delete="delete"/><nc:overload delete="delete"/>' + '<nc:prefix-export-limit delete="delete"/></nc:ospf><nc:ospf>' + "<nc:spf-options><nc:delay>3000</nc:delay><nc:holddown>4000</nc:holddown><nc:rapid-runs>9</nc:rapid-runs>" + "<nc:no-ignore-our-externals/></nc:spf-options><nc:overload><nc:timeout>1200</nc:timeout>" + "<nc:allow-route-leaking/><nc:as-external/><nc:stub-network/></nc:overload>" + "<nc:external-preference>10</nc:external-preference><nc:prefix-export-limit>30000</nc:prefix-export-limit>" + "<nc:no-rfc-1583/><nc:area><nc:name>0.0.0.100</nc:name><nc:area-range><nc:name>10.200.17.0/24</nc:name>" + "<nc:exact/><nc:restrict/><nc:override-metric>2000</nc:override-metric></nc:area-range><nc:interface>" + "<nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority><nc:metric>5</nc:metric><nc:passive/>" + "<nc:bandwidth-based-metrics><nc:bandwidth><nc:name>1g</nc:name><nc:metric>5</nc:metric></nc:bandwidth>" + "</nc:bandwidth-based-metrics><nc:dead-interval>4</nc:dead-interval><nc:hello-interval>2</nc:hello-interval>" + "<nc:poll-interval>2</nc:poll-interval><nc:retransmit-interval>2</nc:retransmit-interval></nc:interface>" + "<nc:stub><nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols>", + '<nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">' + "<nc:router-id>10.200.16.75</nc:router-id></nc:routing-options>", ] - result = self.execute_module(changed=True) + result = self.execute_module(changed=True, commands=commands) self.assertEqual(sorted(result["commands"]), sorted(commands)) - def test_junos_ospfv2_rendered(self): + def test_junos_ospfv2_overridden(self): set_module_args( dict( config=[ dict( router_id="10.200.16.75", + rfc1583compatibility="False", + external_preference=10, + overload=dict( + allow_route_leaking=True, + as_external=True, + stub_network=True, + timeout=1200, + ), + spf_options=dict( + delay=3000, + holddown=4000, + rapid_runs=9, + no_ignore_our_externals=True, + ), + prefix_export_limit=30000, areas=[ dict( area_id="0.0.0.100", stub=dict(default_metric=200, set=True), + area_ranges=[ + dict( + address="10.200.17.0/24", + exact=True, + restrict=True, + override_metric=2000, + ), + ], interfaces=[ dict( name="so-0/0/0.0", priority=3, metric=5, + flood_reduction=False, + passive=True, + bandwidth_based_metrics=[ + dict( + bandwidth="1g", + metric=5, + ), + ], + timers=dict( + dead_interval=4, + hello_interval=2, + poll_interval=2, + retransmit_interval=2, + ), ), ], ), ], ), ], - state="rendered", + state="overridden", ), ) - rendered = ( + commands = [ '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">' - "<nc:ospf><nc:area><nc:name>0.0.0.100</nc:name><nc:interface>" - "<nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority>" - "<nc:metric>5</nc:metric></nc:interface>" - "<nc:stub><nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf></nc:protocols>" - ) - result = self.execute_module(changed=False) - self.assertEqual(sorted(result["rendered"]), sorted(rendered)) + '<nc:ospf><nc:area delete="delete">0.0.0.100</nc:area>' + '<nc:area delete="delete">0.0.0.200</nc:area><nc:spf-options delete="delete"/>' + '<nc:reference-bandwidth delete="delete"/><nc:no-rfc-1583 delete="delete"/>' + '<nc:overload delete="delete"/>' + '<nc:prefix-export-limit delete="delete"/></nc:ospf><nc:ospf><nc:spf-options>' + "<nc:delay>3000</nc:delay><nc:holddown>4000</nc:holddown>" + "<nc:rapid-runs>9</nc:rapid-runs><nc:no-ignore-our-externals/>" + "</nc:spf-options><nc:overload><nc:timeout>1200</nc:timeout>" + "<nc:allow-route-leaking/><nc:as-external/><nc:stub-network/>" + "</nc:overload><nc:external-preference>10</nc:external-preference>" + "<nc:prefix-export-limit>30000</nc:prefix-export-limit><nc:no-rfc-1583/>" + "<nc:area><nc:name>0.0.0.100</nc:name><nc:area-range>" + "<nc:name>10.200.17.0/24</nc:name><nc:exact/><nc:restrict/>" + "<nc:override-metric>2000</nc:override-metric></nc:area-range><nc:interface>" + "<nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority><nc:metric>5</nc:metric>" + "<nc:passive/><nc:bandwidth-based-metrics><nc:bandwidth>" + "<nc:name>1g</nc:name><nc:metric>5</nc:metric></nc:bandwidth></nc:bandwidth-based-metrics>" + "<nc:dead-interval>4</nc:dead-interval><nc:hello-interval>2</nc:hello-interval>" + "<nc:poll-interval>2</nc:poll-interval><nc:retransmit-interval>2</nc:retransmit-interval>" + "</nc:interface><nc:stub><nc:default-metric>200</nc:default-metric>" + "</nc:stub></nc:area></nc:ospf></nc:protocols>", + '<nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">' + "<nc:router-id>10.200.16.75</nc:router-id></nc:routing-options>", + ] + result = self.execute_module(changed=True, commands=commands) + self.assertEqual(sorted(result["commands"]), sorted(commands)) - def test_junos_vlans_gathered(self): - """ - :return: - """ - set_module_args(dict(state="gathered")) - result = self.execute_module(changed=False) - gather_list = [ + def test_junos_ospfv2_rendered(self): + set_module_args( dict( - router_id="10.200.16.77", - areas=[ - dict( - area_id="0.0.0.10", - stub=dict(default_metric=200, set=True), - interfaces=[ - dict( - name="so-0/0/0.0", - priority=3, - metric=5, - passive=True, - flood_reduction=True, - ), - ], - ), - dict( - area_id="0.0.0.20", - interfaces=[ - dict(name="ge-1/1/0.0"), - dict(name="ge-2/2/0.0"), - ], - ), - ], + config=[], + state="deleted", ), + ) + commands = [ + '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:ospf>' + '<nc:area delete="delete">0.0.0.100</nc:area><nc:spf-options delete="delete"/>' + '<nc:reference-bandwidth delete="delete"/><nc:no-rfc-1583 delete="delete"/>' + '<nc:overload delete="delete"/></nc:ospf></nc:protocols>', ] - self.assertEqual(sorted(gather_list), sorted(result["gathered"])) + result = self.execute_module(changed=True, commands=commands) + self.assertEqual(sorted(result["commands"]), sorted(commands)) - def test_junos_vlans_parsed(self): + def test_junos_ospfv2_parsed(self): parsed_str = """ - <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> - <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> - <version>18.4R1-S2.4</version> - <protocols> - <ospf> - <area> - <name>0.0.0.200</name> - <interface> - <name>so-0/0/0.1</name> - <metric>3</metric> - <priority>5</priority> - </interface> - </area> - <area> - <name>0.0.0.100</name> - <stub> - <default-metric>200</default-metric> - </stub> - <interface> - <name>so-0/0/0.0</name> - <metric>5</metric> - <priority>3</priority> - <bandwidth-based-metrics> - <bandwidth> - <name>10g</name> - <metric>5</metric> - </bandwidth> - </bandwidth-based-metrics> - </interface> - </area> - </ospf> - </protocols> - <routing-options> - <router-id>10.200.16.7</router-id> - </routing-options> - </configuration> - </rpc-reply> + <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> + <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> + <protocols> + <ospf> + <spf-options> + <delay>3000</delay> + <holddown>4000</holddown> + <rapid-runs>9</rapid-runs> + <no-ignore-our-externals/> + </spf-options> + <prefix-export-limit>20000</prefix-export-limit> + <overload> + <timeout>1200</timeout> + <allow-route-leaking/> + <stub-network/> + <as-external/> + </overload> + <reference-bandwidth>10g</reference-bandwidth> + <no-rfc-1583/> + <area> + <name>0.0.0.100</name> + <stub> + <default-metric>100</default-metric> + </stub> + <area-range> + <name>10.200.17.0/24</name> + <restrict/> + <exact/> + <override-metric>2000</override-metric> + </area-range> + <area-range> + <name>10.200.15.0/24</name> + <restrict/> + <exact/> + <override-metric>2000</override-metric> + </area-range> + <interface> + <name>so-0/0/0.0</name> + <passive> + </passive> + <bandwidth-based-metrics> + <bandwidth> + <name>1g</name> + <metric>5</metric> + </bandwidth> + <bandwidth> + <name>10g</name> + <metric>40</metric> + </bandwidth> + </bandwidth-based-metrics> + <metric>5</metric> + <priority>3</priority> + <retransmit-interval>2</retransmit-interval> + <hello-interval>2</hello-interval> + <dead-interval>4</dead-interval> + <poll-interval>2</poll-interval> + </interface> + </area> + </ospf> + + </protocols> + </configuration> + </rpc-reply> """ set_module_args(dict(running_config=parsed_str, state="parsed")) result = self.execute_module(changed=False) - parsed_list = [ + parsed_dict = [ { "areas": [ { - "area_id": "0.0.0.200", - "interfaces": [ - {"metric": 3, "name": "so-0/0/0.1", "priority": 5}, - ], - }, - { "area_id": "0.0.0.100", "interfaces": [ { - "bandwidth_based_metrics": [ - {"metric": 5, "bandwidth": "10g"}, - ], - "metric": 5, "name": "so-0/0/0.0", "priority": 3, + "metric": 5, + "timers": { + "hello_interval": 2, + "dead_interval": 4, + "retransmit_interval": 2, + "poll_interval": 2, + }, + "passive": True, + "bandwidth_based_metrics": [ + { + "metric": 5, + "bandwidth": "1g", + }, + { + "metric": 40, + "bandwidth": "10g", + }, + ], + }, + ], + "area_range": "['10.200.17.0/24', '10.200.15.0/24']", + "area_ranges": [ + { + "address": "10.200.17.0/24", + "override_metric": 2000, + "exact": True, + "restrict": True, + }, + { + "address": "10.200.15.0/24", + "override_metric": 2000, + "exact": True, + "restrict": True, }, ], - "stub": {"default_metric": 200, "set": True}, + "stub": { + "set": True, + "default_metric": 100, + }, }, ], - "router_id": "10.200.16.7", + "overload": { + "allow_route_leaking": True, + "as_external": True, + "stub_network": True, + "timeout": 1200, + }, + "prefix_export_limit": 20000, + "reference_bandwidth": "10g", + "rfc1583compatibility": False, + "spf_options": { + "delay": 3000, + "holddown": 4000, + "rapid_runs": 9, + "no_ignore_our_externals": True, + }, }, ] - self.assertEqual(result["parsed"], parsed_list) - def test_junos_vlans_parsed_02(self): - parsed_str = """ - <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> - <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> - <version>18.4R1-S2.4</version> - <protocols> - <ospf> - <area> - <name>0.0.0.200</name> - <interface> - <name>so-0/0/0.1</name> - <metric>3</metric> - <priority>5</priority> - </interface> - </area> - <area> - <name>0.0.0.100</name> - <stub> - <default-metric>200</default-metric> - </stub> - <interface> - <name>so-0/0/0.0</name> - <metric>5</metric> - <priority>3</priority> - <bandwidth-based-metrics> - <bandwidth> - <name>10g</name> - <metric>5</metric> - </bandwidth> - <bandwidth> - <name>1g</name> - <metric>5</metric> - </bandwidth> - </bandwidth-based-metrics> - </interface> - </area> - </ospf> - </protocols> - <routing-options> - <router-id>10.200.16.7</router-id> - </routing-options> - </configuration> - </rpc-reply> - """ - set_module_args(dict(running_config=parsed_str, state="parsed")) - result = self.execute_module(changed=False) - parsed_list = [ - { - "areas": [ - { - "area_id": "0.0.0.200", - "interfaces": [ - {"metric": 3, "name": "so-0/0/0.1", "priority": 5}, - ], - }, - { - "area_id": "0.0.0.100", - "interfaces": [ - { - "bandwidth_based_metrics": [ - {"metric": 5, "bandwidth": "10g"}, - {"metric": 5, "bandwidth": "1g"}, + def test_junos_ospfv2_rendered(self): + set_module_args( + dict( + config=[ + dict( + router_id="10.200.16.75", + rfc1583compatibility="False", + external_preference=10, + overload=dict( + allow_route_leaking=True, + as_external=True, + stub_network=True, + timeout=1200, + ), + spf_options=dict( + delay=3000, + holddown=4000, + rapid_runs=9, + no_ignore_our_externals=True, + ), + prefix_export_limit=30000, + areas=[ + dict( + area_id="0.0.0.100", + stub=dict(default_metric=200, set=True), + area_ranges=[ + dict( + address="10.200.17.0/24", + exact=True, + restrict=True, + override_metric=2000, + ), ], - "metric": 5, - "name": "so-0/0/0.0", - "priority": 3, - }, + interfaces=[ + dict( + name="so-0/0/0.0", + priority=3, + metric=5, + flood_reduction=False, + passive=True, + bandwidth_based_metrics=[ + dict( + bandwidth="1g", + metric=5, + ), + ], + timers=dict( + dead_interval=4, + hello_interval=2, + poll_interval=2, + retransmit_interval=2, + ), + ), + ], + ), ], - "stub": {"default_metric": 200, "set": True}, - }, + ), ], - "router_id": "10.200.16.7", - }, - ] - self.assertEqual(result["parsed"], parsed_list) + state="rendered", + ), + ) + rendered = ( + '<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:ospf>' + "<nc:spf-options><nc:delay>3000</nc:delay><nc:holddown>4000</nc:holddown>" + "<nc:rapid-runs>9</nc:rapid-runs><nc:no-ignore-our-externals/></nc:spf-options>" + "<nc:overload><nc:timeout>1200</nc:timeout><nc:allow-route-leaking/><nc:as-external/>" + "<nc:stub-network/></nc:overload>" + "<nc:external-preference>10</nc:external-preference>" + "<nc:prefix-export-limit>30000</nc:prefix-export-limit>" + "<nc:no-rfc-1583/><nc:area><nc:name>0.0.0.100</nc:name><nc:area-range>" + "<nc:name>10.200.17.0/24</nc:name><nc:exact/><nc:restrict/>" + "<nc:override-metric>2000</nc:override-metric></nc:area-range><nc:interface>" + "<nc:name>so-0/0/0.0</nc:name>" + "<nc:priority>3</nc:priority><nc:metric>5</nc:metric><nc:passive/>" + "<nc:bandwidth-based-metrics><nc:bandwidth><nc:name>1g</nc:name>" + "<nc:metric>5</nc:metric></nc:bandwidth></nc:bandwidth-based-metrics>" + "<nc:dead-interval>4</nc:dead-interval><nc:hello-interval>2</nc:hello-interval>" + "<nc:poll-interval>2</nc:poll-interval>" + "<nc:retransmit-interval>2</nc:retransmit-interval></nc:interface><nc:stub>" + "<nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf>" + "</nc:protocols>" + ) + result = self.execute_module(changed=False) + self.assertEqual( + self.sorted_xml(result["rendered"]), + self.sorted_xml(rendered), + ) diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_ospfv3.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_ospfv3.py index 054947448..a96d95bac 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_ospfv3.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_ospfv3.py @@ -352,7 +352,6 @@ class TestJunosOspfv3Module(TestJunosModule): self.execute_module(changed=False, commands=[]) def test_junos_ospfv3_parsed(self): - set_module_args( dict( running_config='<?xml version="1.0" encoding="UTF-8"?>\n' diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_package.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_package.py index 38e3599d0..f679fa5a3 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_package.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_package.py @@ -41,7 +41,6 @@ from ansible_collections.junipernetworks.junos.plugins.modules import junos_pack class TestJunosPackageModule(TestJunosModule): - module = junos_package def setUp(self): @@ -79,3 +78,14 @@ class TestJunosPackageModule(TestJunosModule): args, kwargs = jnpr_mock.junos.utils.sw.SW().install.call_args self.assertEqual(args, ("junos-vsrx-12.1X46-D10.2-domestic.tgz",)) self.assertEqual(kwargs["no_copy"], True) + + def test_junos_package_src_unlink(self): + jnpr_mock.junos.utils.sw.SW().install.return_value = 1 + set_module_args( + dict(src="junos-vsrx-12.1X46-D10.2-domestic.tgz", unlink=True), + ) + self.execute_module(changed=True) + + args, kwargs = jnpr_mock.junos.utils.sw.SW().install.call_args + self.assertEqual(args, ("junos-vsrx-12.1X46-D10.2-domestic.tgz",)) + self.assertEqual(kwargs["unlink"], True) diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_rpc.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_rpc.py index de66f103d..4c914aa3d 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_rpc.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_rpc.py @@ -44,7 +44,6 @@ RPC_CLI_MAP = { class TestJunosCommandModule(TestJunosModule): - module = junos_rpc def setUp(self): diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_scp.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_scp.py index 6286d57de..0788d6523 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_scp.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_scp.py @@ -43,7 +43,6 @@ from ansible_collections.junipernetworks.junos.plugins.modules import junos_scp class TestJunosScpModule(TestJunosModule): - module = junos_scp def setUp(self): diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_security_policies.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_security_policies.py index bdb94ed6c..b41161672 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_security_policies.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_security_policies.py @@ -346,7 +346,6 @@ class TestJunosSecurity_policiesModule(TestJunosModule): ) def test_junos_security_policies_merged_02(self): - set_module_args( dict( config={ diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_security_zones.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_security_zones.py index e593037dc..764d1a7e8 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_security_zones.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_security_zones.py @@ -246,6 +246,256 @@ class TestJunosSecurity_zonesModule(TestJunosModule): self.sorted_xml(str(result["commands"])), ) + def test_junos_security_zones_parsed(self): + parsed_str = """ + <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> + <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC"> + <version>18.4R1-S2.4</version> + <security> + <zones> + <functional-zone> + <management> + <description>test description</description> + <host-inbound-traffic> + <protocols> + <name>all</name> + </protocols> + <protocols> + <name>bgp</name> + <except /> + </protocols> + <system-services> + <name>all</name> + </system-services> + <system-services> + <name>dhcp</name> + <except /> + </system-services> + </host-inbound-traffic> + <interfaces> + <name>ge-0/0/1.0</name> + </interfaces> + <interfaces> + <name>ge-0/0/2.0</name> + </interfaces> + <screen>test_screen</screen> + </management> + </functional-zone> + <security-zone> + <name>test_sec_zone1</name> + <address-book> + <address> + <name>test_adr1</name> + <ip-prefix>10.0.0.0/24</ip-prefix> + <description>test desc</description> + </address> + <address> + <name>test_adr2</name> + <dns-name> + <name>1.1.1.1</name> + <ipv6-only /> + </dns-name> + </address> + <address> + <name>test_adr3</name> + <range-address> + <name>10.2.0.1</name> + <to> + <range-high>10.2.0.2</range-high> + </to> + </range-address> + </address> + <address> + <name>test_adr4</name> + <wildcard-address> + <name>10.3.0.1/24</name> + </wildcard-address> + </address> + <address> + <name>test_adr5</name> + <ip-prefix>10.1.0.0/24</ip-prefix> + <description>test desc</description> + </address> + <address-set> + <name>test_adrset1</name> + <address> + <name>test_adr1</name> + </address> + <address> + <name>test_adr2</name> + </address> + </address-set> + <address-set> + <name>test_adrset2</name> + <address> + <name>test_adr3</name> + </address> + <address> + <name>test_adr4</name> + </address> + </address-set> + <address-set> + <name>test_adrset3</name> + <address> + <name>test_adr5</name> + </address> + <address-set> + <name>test_adrset1</name> + </address-set> + <address-set> + <name>test_adrset2</name> + </address-set> + <description>test description</description> + </address-set> + </address-book> + <advance-policy-based-routing-profile> + <profile>test_profile</profile> + </advance-policy-based-routing-profile> + <advanced-connection-tracking> + <mode>allow-any-host</mode> + <timeout>20</timeout> + <track-all-policies-to-this-zone/> + </advanced-connection-tracking> + <application-tracking /> + <description>test description</description> + <enable-reverse-reroute /> + <host-inbound-traffic> + <protocols> + <name>all</name> + </protocols> + <protocols> + <name>bgp</name> + <except /> + </protocols> + <system-services> + <name>all</name> + </system-services> + <system-services> + <name>dhcp</name> + <except /> + </system-services> + </host-inbound-traffic> + <interfaces> + <name>ge-0/0/3.0</name> + </interfaces> + <screen>test_screen</screen> + <source-identity-log /> + <tcp-rst /> + <unidirectional-session-refreshing /> + </security-zone> + </zones> + </security> + </configuration> + </rpc-reply> + """ + set_module_args(dict(running_config=parsed_str, state="parsed")) + result = self.execute_module(changed=False) + parsed_dict = { + "functional_zone_management": { + "description": "test description 2", + "host_inbound_traffic": { + "protocols": [ + {"name": "all"}, + {"except": True, "name": "bgp"}, + {"except": True, "name": "bfd"}, + ], + "system_services": [ + {"name": "all"}, + {"except": True, "name": "dhcp"}, + {"except": True, "name": "dhcpv6"}, + ], + }, + "interfaces": ["ge-0/0/1.0", "ge-0/0/2.0"], + "screen": "test_screen", + }, + "zones": [ + { + "address_book": { + "address_sets": [ + { + "addresses": ["test_adr1", "test_adr2"], + "name": "test_adrset1", + }, + { + "addresses": ["test_adr3", "test_adr4"], + "name": "test_adrset2", + }, + { + "address_sets": [ + "test_adrset1", + "test_adrset2", + ], + "addresses": ["test_adr5"], + "description": "test description", + "name": "test_adrset3", + }, + ], + "addresses": [ + { + "description": "test desc", + "ip_prefix": "10.0.0.0/24", + "name": "test_adr1", + }, + { + "dns_name": { + "ipv6_only": True, + "name": "1.1.1.1", + }, + "name": "test_adr2", + }, + { + "name": "test_adr3", + "range_address": { + "from": "10.2.0.1", + "to": "10.2.0.2", + }, + }, + { + "name": "test_adr4", + "wildcard_address": "10.3.0.1/24", + }, + { + "description": "test desc", + "ip_prefix": "10.1.0.0/24", + "name": "test_adr5", + }, + ], + }, + "advance_policy_based_routing_profile": "test_profile", + "advanced_connection_tracking": { + "mode": "allow-any-host", + "timeout": "20", + "track_all_policies_to_this_zone": True, + }, + "application_tracking": True, + "description": "test description", + "enable_reverse_reroute": True, + "host_inbound_traffic": { + "protocols": [ + {"name": "all"}, + {"except": True, "name": "bgp"}, + ], + "system_services": [ + {"name": "all"}, + {"except": True, "name": "dhcp"}, + ], + }, + "interfaces": {"ge-0/0/3.0"}, + "name": "test_sec_zone1", + "screen": "test_screen", + "source_identity_log": True, + "tcp_rst": True, + "unidirectional_session_refreshing": True, + }, + { + "name": "test_sec_zone2", + "source_identity_log": True, + "tcp_rst": True, + }, + ], + } + self.assertEqual(sorted(parsed_dict), sorted(result["parsed"])) + def test_junos_security_zones_parsed_01(self): parsed_str = """ <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f"> diff --git a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_snmp_server.py b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_snmp_server.py index db31904e8..ed73b8c5a 100644 --- a/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_snmp_server.py +++ b/ansible_collections/junipernetworks/junos/tests/unit/modules/network/junos/test_junos_snmp_server.py @@ -103,6 +103,199 @@ class TestJunosSnmp_serverModule(TestJunosModule): str(result["commands"]), ) + def test_junos_snmp_server_merged_views(self): + set_module_args( + dict( + config=dict( + views=[ + dict( + name="all", + oids=[dict(oid=".1")], + ), + ], + ), + state="merged", + ), + ) + result = self.execute_module(changed=True) + self.assertIn( + '<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', + str(result["commands"]), + ) + self.assertIn( + "<nc:view><nc:name>all</nc:name><nc:oid><nc:name>.1</nc:name>", + str(result["commands"]), + ) + self.assertIn( + "</nc:oid></nc:view></nc:snmp>", + str(result["commands"]), + ) + + def test_junos_snmp_server_merged_trap_options(self): + set_module_args( + dict( + config=dict( + trap_options=dict( + agent_address=dict( + outgoing_interface=True, + ), + context_oid=True, + ), + ), + state="merged", + ), + ) + result = self.execute_module(changed=True) + self.assertIn( + '<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', + str(result["commands"]), + ) + self.assertIn( + "<nc:trap-options><nc:agent-address>outgoing-interface</nc:agent-address><nc:context-oid/>", + str(result["commands"]), + ) + self.assertIn( + "</nc:trap-options></nc:snmp>", + str(result["commands"]), + ) + + def test_junos_snmp_server_merged_trap_groups(self): + set_module_args( + dict( + config=dict( + trap_groups=[ + dict( + categories=dict( + authentication=True, + ), + name="egress", + ), + ], + ), + state="merged", + ), + ) + result = self.execute_module(changed=True) + self.assertIn( + '<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', + str(result["commands"]), + ) + self.assertIn( + "<nc:trap-group><nc:categories><nc:authentication/></nc:categories><nc:name>egress</nc:name>", + str(result["commands"]), + ) + self.assertIn( + "</nc:trap-group></nc:snmp>", + str(result["commands"]), + ) + + def test_junos_snmp_server_merged_trap_groups_02(self): + set_module_args( + dict( + config=dict( + trap_groups=[ + dict( + categories=dict( + chassis=True, + chassis_cluster=True, + configuration=True, + dot3oam_events=True, + link=True, + ), + name="monitor", + ), + ], + ), + state="merged", + ), + ) + result = self.execute_module(changed=True) + self.assertIn( + '<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', + str(result["commands"]), + ) + self.assertIn( + "<nc:trap-group><nc:categories><nc:chassis/><nc:chassis-cluster/><nc:configuration/>", + str(result["commands"]), + ) + + def test_junos_snmp_server_merged_trap_groups_otn_alrams(self): + set_module_args( + dict( + config=dict( + trap_groups=[ + dict( + categories=dict( + otn_alarms=dict( + oc_lof=True, + oc_lom=True, + oc_los=True, + ), + ), + name="monitor", + ), + ], + ), + state="merged", + ), + ) + result = self.execute_module(changed=True) + self.assertIn( + '<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', + str(result["commands"]), + ) + self.assertIn( + "<nc:trap-group><nc:categories><nc:otn-alarms><nc:oc-lof/><nc:oc-lom/><nc:oc-los/></nc:otn-alarms></nc:categories>", + str(result["commands"]), + ) + self.assertIn( + "<nc:name>monitor</nc:name></nc:trap-group></nc:snmp>", + str(result["commands"]), + ) + + def test_junos_snmp_server_merged_trap_options_set(self): + set_module_args( + dict( + config=dict( + trap_options=dict( + set=True, + ), + ), + state="merged", + ), + ) + result = self.execute_module(changed=True) + expected_commands = '<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:trap-options/></nc:snmp>' + self.assertEqual(expected_commands, "/n".join(result["commands"])) + + def test_junos_snmp_server_merged_trap_options_02(self): + set_module_args( + dict( + config=dict( + trap_options=dict( + enterprise_oid=True, + source_address=dict( + address="192.168.2.0", + ), + ), + ), + state="merged", + ), + ) + result = self.execute_module(changed=True) + self.assertIn( + '<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">', + str(result["commands"]), + ) + self.assertIn( + "<nc:trap-options><nc:source-address><nc:address>192.168.2.0</nc:address></nc:source-address>", + str(result["commands"]), + ) + self.assertIn( + "</nc:trap-options></nc:snmp>", + str(result["commands"]), + ) + def test_junos_snmp_server_merged_client_02(self): set_module_args( dict( |