From b643c52cf29ce5bbab738b43290af3556efa1ca9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 5 Jun 2024 18:18:41 +0200 Subject: Merging upstream version 10.0.0+dfsg. Signed-off-by: Daniel Baumann --- ansible_collections/cisco/asa/.ansible-lint | 5 + .../cisco/asa/.github/workflows/lint.yml | 1 + .../cisco/asa/.github/workflows/tests.yml | 7 +- .../cisco/asa/.pre-commit-config.yaml | 6 +- ansible_collections/cisco/asa/CHANGELOG.rst | 21 + ansible_collections/cisco/asa/FILES.json | 1363 +-- ansible_collections/cisco/asa/MANIFEST.json | 6 +- ansible_collections/cisco/asa/README.md | 5 +- .../cisco/asa/changelogs/changelog.yaml | 19 + .../cisco/asa/docs/cisco.asa.asa_config_module.rst | 9 +- ansible_collections/cisco/asa/meta/runtime.yml | 23 +- .../cisco/asa/plugins/action/acls.py | 55 + .../cisco/asa/plugins/action/command.py | 55 + .../cisco/asa/plugins/action/config.py | 55 + .../cisco/asa/plugins/action/facts.py | 55 + .../cisco/asa/plugins/action/ogs.py | 55 + .../cisco/asa/plugins/modules/asa_config.py | 11 +- .../cisco/asa/test-requirements.txt | 6 +- ansible_collections/cisco/asa/tests/config.yml | 3 + ansible_collections/cisco/intersight/CHANGELOG.md | 3 + ansible_collections/cisco/intersight/FILES.json | 11 +- ansible_collections/cisco/intersight/MANIFEST.json | 4 +- .../cisco/intersight/playbooks/count_vms.yml | 26 + .../intersight/plugins/module_utils/intersight.py | 1 + ansible_collections/cisco/ios/.ansible-lint | 6 +- ansible_collections/cisco/ios/.flake8 | 17 +- .../cisco/ios/.github/workflows/ack.yml | 15 - .../cisco/ios/.github/workflows/check_label.yml | 11 + .../cisco/ios/.github/workflows/codecoverage.yml | 3 +- .../cisco/ios/.github/workflows/draft_release.yml | 18 + .../cisco/ios/.github/workflows/lint.yml | 13 - .../cisco/ios/.github/workflows/push.yml | 38 - .../cisco/ios/.github/workflows/release.yml | 4 +- .../cisco/ios/.github/workflows/tests.yml | 22 +- .../cisco/ios/.pre-commit-config.yaml | 11 +- ansible_collections/cisco/ios/CHANGELOG.rst | 191 +- ansible_collections/cisco/ios/FILES.json | 6696 ++++++------ ansible_collections/cisco/ios/MANIFEST.json | 6 +- ansible_collections/cisco/ios/README.md | 6 +- .../cisco/ios/changelogs/changelog.yaml | 229 +- .../cisco/ios/changelogs/config.yaml | 1 + .../cisco/ios/docs/cisco.ios.ios_acls_module.rst | 343 + .../cisco.ios.ios_bgp_address_family_module.rst | 2 +- .../ios/docs/cisco.ios.ios_bgp_global_module.rst | 119 +- .../cisco/ios/docs/cisco.ios.ios_bgp_module.rst | 1142 -- .../ios/docs/cisco.ios.ios_evpn_evi_module.rst | 2 +- .../ios/docs/cisco.ios.ios_evpn_global_module.rst | 2 +- .../docs/cisco.ios.ios_l3_interfaces_module.rst | 160 + .../cisco/ios/docs/cisco.ios.ios_ntp_module.rst | 291 - .../cisco/ios/docs/cisco.ios.ios_user_module.rst | 282 +- .../cisco/ios/docs/cisco.ios.ios_vlans_module.rst | 243 +- .../cisco/ios/docs/cisco.ios.ios_vrf_module.rst | 332 +- .../ios/docs/cisco.ios.ios_vxlan_vtep_module.rst | 2 +- ansible_collections/cisco/ios/meta/runtime.yml | 143 +- ansible_collections/cisco/ios/platform_guide.rst | 94 + .../cisco/ios/plugins/action/ntp.py | 56 - .../cisco/ios/plugins/cliconf/ios.py | 7 + .../network/ios/argspec/bgp_global/bgp_global.py | 14 + .../ios/argspec/l3_interfaces/l3_interfaces.py | 11 + .../network/ios/argspec/vlans/vlans.py | 7 +- .../module_utils/network/ios/config/acls/acls.py | 157 +- .../network/ios/config/bgp_global/bgp_global.py | 59 +- .../ios/config/l3_interfaces/l3_interfaces.py | 28 +- .../network/ios/config/route_maps/route_maps.py | 10 +- .../network/ios/config/snmp_server/snmp_server.py | 45 +- .../module_utils/network/ios/config/vlans/vlans.py | 548 +- .../module_utils/network/ios/facts/acls/acls.py | 55 +- .../network/ios/facts/bgp_global/bgp_global.py | 14 + .../module_utils/network/ios/facts/facts.py | 13 +- .../ios/facts/l3_interfaces/l3_interfaces.py | 12 + .../module_utils/network/ios/facts/vlans/vlans.py | 268 +- .../network/ios/providers/cli/__init__.py | 0 .../network/ios/providers/cli/config/__init__.py | 0 .../network/ios/providers/cli/config/base.py | 82 - .../ios/providers/cli/config/bgp/__init__.py | 0 .../ios/providers/cli/config/bgp/address_family.py | 147 - .../ios/providers/cli/config/bgp/neighbors.py | 203 - .../ios/providers/cli/config/bgp/process.py | 163 - .../module_utils/network/ios/providers/module.py | 66 - .../module_utils/network/ios/rm_templates/acls.py | 32 +- .../network/ios/rm_templates/bgp_address_family.py | 210 +- .../network/ios/rm_templates/bgp_global.py | 57 +- .../network/ios/rm_templates/interfaces.py | 2 +- .../network/ios/rm_templates/l3_interfaces.py | 56 + .../network/ios/rm_templates/ospfv2.py | 6 +- .../network/ios/rm_templates/prefix_lists.py | 2 +- .../network/ios/rm_templates/route_maps.py | 43 +- .../network/ios/rm_templates/snmp_server.py | 11 +- .../module_utils/network/ios/rm_templates/vlans.py | 131 + .../module_utils/network/ios/utils/utils.py | 24 +- .../cisco/ios/plugins/modules/ios_acls.py | 346 + .../cisco/ios/plugins/modules/ios_bgp.py | 504 - .../ios/plugins/modules/ios_bgp_address_family.py | 2 +- .../cisco/ios/plugins/modules/ios_bgp_global.py | 54 +- .../cisco/ios/plugins/modules/ios_evpn_evi.py | 2 +- .../cisco/ios/plugins/modules/ios_evpn_global.py | 2 +- .../cisco/ios/plugins/modules/ios_l3_interfaces.py | 47 + .../cisco/ios/plugins/modules/ios_linkagg.py | 12 +- .../cisco/ios/plugins/modules/ios_ntp.py | 357 - .../cisco/ios/plugins/modules/ios_user.py | 342 +- .../cisco/ios/plugins/modules/ios_vlans.py | 230 +- .../cisco/ios/plugins/modules/ios_vrf.py | 109 +- .../cisco/ios/plugins/modules/ios_vxlan_vtep.py | 2 +- .../cisco/ios/plugins/terminal/ios.py | 1 + .../cisco/ios/test-requirements.txt | 6 +- ansible_collections/cisco/ios/tests/config.yml | 2 +- .../ios_acls/tests/cli/_populate_config.yaml | 15 +- .../targets/ios_acls/tests/cli/remarks_states.yaml | 134 + .../targets/ios_acls/tests/cli/replaced.yaml | 35 + .../integration/targets/ios_acls/vars/main.yaml | 291 + .../integration/targets/ios_bgp/defaults/main.yaml | 2 - .../integration/targets/ios_bgp/meta/main.yaml | 3 - .../integration/targets/ios_bgp/tasks/cli.yaml | 17 - .../integration/targets/ios_bgp/tasks/main.yaml | 5 - .../targets/ios_bgp/tests/cli/basic.yaml | 490 - .../targets/ios_bgp_global/tests/cli/deleted.yaml | 1 + .../targets/ios_bgp_global/tests/cli/merged.yaml | 24 +- .../targets/ios_bgp_global/vars/main.yaml | 50 +- .../targets/ios_facts/tests/cli/all_facts.yaml | 7 +- .../targets/ios_interfaces/tests/cli/merged.yaml | 2 +- .../targets/ios_interfaces/vars/main.yaml | 4 +- .../ios_l3_interfaces/tests/cli/merged.yaml | 15 + .../targets/ios_l3_interfaces/vars/main.yaml | 21 + .../integration/targets/ios_ntp/defaults/main.yaml | 2 - .../integration/targets/ios_ntp/meta/main.yml | 3 - .../integration/targets/ios_ntp/tasks/cli.yaml | 18 - .../integration/targets/ios_ntp/tasks/main.yaml | 3 - .../ios_ntp/tests/cli/ntp_configuration.yaml | 87 - .../targets/ios_user/tests/cli/basic.yaml | 73 +- .../tests/cli/_populate_config_vlan_config.yaml | 1 - .../tests/cli/_remove_config_vlan_config.yaml | 1 - .../ios_vlans/tests/cli/deleted_vlan_config.yaml | 1 - .../ios_vlans/tests/cli/gathered_vlan_config.yaml | 1 - .../ios_vlans/tests/cli/merged_vlan_config.yaml | 1 - .../tests/cli/overridden_vlan_config.yaml | 1 - .../ios_vlans/tests/cli/parsed_vlan_config.yaml | 1 - .../ios_vlans/tests/cli/rendered_vlan_config.yaml | 1 - .../cisco/ios/tests/sanity/ignore-2.10.txt | 24 - .../cisco/ios/tests/sanity/ignore-2.11.txt | 24 - .../cisco/ios/tests/sanity/ignore-2.12.txt | 1 - .../cisco/ios/tests/sanity/ignore-2.13.txt | 1 - .../cisco/ios/tests/sanity/ignore-2.18.txt | 1 + .../cisco/ios/tests/sanity/ignore-2.9.txt | 32 - .../cisco/ios/tests/unit/compat/__init__.py | 0 .../cisco/ios/tests/unit/compat/mock.py | 28 - .../cisco/ios/tests/unit/compat/unittest.py | 41 - .../cisco/ios/tests/unit/mock/path.py | 9 +- .../cisco/ios/tests/unit/mock/procenv.py | 10 +- .../network/ios/fixtures/ios_facts_show_interfaces | 31 +- .../modules/network/ios/test_ios_acl_interfaces.py | 3 +- .../unit/modules/network/ios/test_ios_acls.py | 610 +- .../unit/modules/network/ios/test_ios_banner.py | 8 +- .../tests/unit/modules/network/ios/test_ios_bgp.py | 344 - .../network/ios/test_ios_bgp_address_family.py | 65 +- .../modules/network/ios/test_ios_bgp_global.py | 284 +- .../unit/modules/network/ios/test_ios_command.py | 19 +- .../unit/modules/network/ios/test_ios_config.py | 43 +- .../unit/modules/network/ios/test_ios_evpn_evi.py | 3 +- .../modules/network/ios/test_ios_evpn_global.py | 3 +- .../unit/modules/network/ios/test_ios_facts.py | 20 +- .../unit/modules/network/ios/test_ios_hostname.py | 3 +- .../modules/network/ios/test_ios_interfaces.py | 30 +- .../modules/network/ios/test_ios_l2_interfaces.py | 53 +- .../modules/network/ios/test_ios_l3_interfaces.py | 108 +- .../unit/modules/network/ios/test_ios_lacp.py | 3 +- .../network/ios/test_ios_lacp_interfaces.py | 39 +- .../modules/network/ios/test_ios_lag_interfaces.py | 45 +- .../modules/network/ios/test_ios_lldp_global.py | 10 +- .../modules/network/ios/test_ios_lldp_inteface.py | 8 +- .../modules/network/ios/test_ios_logging_global.py | 60 +- .../tests/unit/modules/network/ios/test_ios_ntp.py | 110 - .../modules/network/ios/test_ios_ntp_global.py | 107 +- .../network/ios/test_ios_ospf_interfaces.py | 3 +- .../unit/modules/network/ios/test_ios_ospfv2.py | 83 +- .../unit/modules/network/ios/test_ios_ospfv3.py | 32 +- .../unit/modules/network/ios/test_ios_ping.py | 7 +- .../modules/network/ios/test_ios_prefix_lists.py | 149 +- .../modules/network/ios/test_ios_route_maps.py | 46 +- .../unit/modules/network/ios/test_ios_service.py | 3 +- .../modules/network/ios/test_ios_snmp_server.py | 290 +- .../modules/network/ios/test_ios_static_routes.py | 46 +- .../unit/modules/network/ios/test_ios_system.py | 14 +- .../unit/modules/network/ios/test_ios_user.py | 66 +- .../unit/modules/network/ios/test_ios_vlans.py | 828 +- .../tests/unit/modules/network/ios/test_ios_vrf.py | 52 +- .../modules/network/ios/test_ios_vxlan_vtep.py | 3 +- .../cisco/ios/tests/unit/modules/utils.py | 8 +- .../ios/tests/unit/plugins/cliconf/test_ios.py | 9 +- ansible_collections/cisco/ios/tox-ansible.ini | 10 + ansible_collections/cisco/ios/tox.ini | 31 - ansible_collections/cisco/iosxr/.ansible-lint | 6 + ansible_collections/cisco/iosxr/.flake8 | 67 + ansible_collections/cisco/iosxr/.github/CODEOWNERS | 0 .../cisco/iosxr/.github/workflows/ack.yml | 15 - .../cisco/iosxr/.github/workflows/check_label.yml | 11 + .../cisco/iosxr/.github/workflows/codecoverage.yml | 3 +- .../iosxr/.github/workflows/draft_release.yml | 18 + .../cisco/iosxr/.github/workflows/push.yml | 27 - .../cisco/iosxr/.github/workflows/release.yml | 4 +- .../cisco/iosxr/.github/workflows/tests.yml | 19 +- .../cisco/iosxr/.pre-commit-config.yaml | 12 +- ansible_collections/cisco/iosxr/.zuul.yaml | 8 - ansible_collections/cisco/iosxr/CHANGELOG.rst | 119 +- ansible_collections/cisco/iosxr/FILES.json | 5793 +++++----- ansible_collections/cisco/iosxr/MANIFEST.json | 6 +- ansible_collections/cisco/iosxr/README.md | 10 +- .../cisco/iosxr/changelogs/changelog.yaml | 124 +- .../cisco.iosxr.iosxr_bgp_templates_module.rst | 8 + .../iosxr/docs/cisco.iosxr.iosxr_facts_module.rst | 2 +- .../docs/cisco.iosxr.iosxr_logging_module.rst | 538 - ansible_collections/cisco/iosxr/meta/runtime.yml | 11 +- ansible_collections/cisco/iosxr/platform_guide.rst | 142 + .../cisco/iosxr/plugins/cliconf/iosxr.py | 29 +- .../iosxr/argspec/bgp_templates/bgp_templates.py | 13 +- .../network/iosxr/facts/legacy/base.py | 45 + .../iosxr/plugins/modules/iosxr_bgp_templates.py | 5 +- .../cisco/iosxr/plugins/modules/iosxr_facts.py | 3 +- .../cisco/iosxr/plugins/modules/iosxr_logging.py | 1270 --- ansible_collections/cisco/iosxr/requirements.txt | 1 - .../cisco/iosxr/test-requirements.txt | 7 +- ansible_collections/cisco/iosxr/tests/config.yml | 2 +- .../targets/iosxr_config/tests/cli/backup.yaml | 2 +- .../iosxr_config/tests/cli/comment-too-long.yaml | 1 - .../targets/iosxr_config/tests/cli/comment.yaml | 3 +- .../iosxr_config/tests/cli/replace_block.yaml | 6 + .../targets/iosxr_config/tests/cli/src_basic.yaml | 3 +- .../iosxr_config/tests/cli/src_match_none.yaml | 3 +- .../targets/iosxr_logging/defaults/main.yaml | 3 - .../targets/iosxr_logging/meta/main.yaml | 3 - .../targets/iosxr_logging/tasks/cli.yaml | 24 - .../targets/iosxr_logging/tasks/main.yaml | 6 - .../targets/iosxr_logging/tasks/netconf.yaml | 24 - .../targets/iosxr_logging/tests/cli/basic.yaml | 140 - .../targets/iosxr_logging/tests/netconf/basic.yaml | 208 - .../iosxr_smoke/tests/netconf/common_netconf.yaml | 20 - .../cisco/iosxr/tests/sanity/ignore-2.10.txt | 28 - .../cisco/iosxr/tests/sanity/ignore-2.11.txt | 31 - .../cisco/iosxr/tests/sanity/ignore-2.12.txt | 31 - .../cisco/iosxr/tests/sanity/ignore-2.13.txt | 4 - .../cisco/iosxr/tests/sanity/ignore-2.14.txt | 2 +- .../cisco/iosxr/tests/sanity/ignore-2.15.txt | 2 +- .../cisco/iosxr/tests/sanity/ignore-2.16.txt | 2 +- .../cisco/iosxr/tests/sanity/ignore-2.17.txt | 2 +- .../cisco/iosxr/tests/sanity/ignore-2.18.txt | 4 + .../cisco/iosxr/tests/sanity/ignore-2.9.txt | 30 - .../cisco/iosxr/tests/unit/compat/__init__.py | 0 .../cisco/iosxr/tests/unit/compat/mock.py | 129 - .../cisco/iosxr/tests/unit/compat/unittest.py | 41 - .../cisco/iosxr/tests/unit/mock/path.py | 4 +- .../unit/modules/network/iosxr/fixtures/show_cdp | 4 + .../iosxr/fixtures/show_cdp_neighbors_detail | 16 + .../unit/modules/network/iosxr/test_hostname.py | 2 +- .../tests/unit/modules/network/iosxr/test_iosxr.py | 4 +- .../network/iosxr/test_iosxr_acl_interfaces.py | 3 +- .../unit/modules/network/iosxr/test_iosxr_acls.py | 3 +- .../modules/network/iosxr/test_iosxr_banner.py | 2 +- .../network/iosxr/test_iosxr_bgp_address_family.py | 2 +- .../modules/network/iosxr/test_iosxr_bgp_global.py | 2 +- .../test_iosxr_bgp_neighbor_address_family.py | 2 +- .../network/iosxr/test_iosxr_bgp_templates.py | 34 +- .../modules/network/iosxr/test_iosxr_command.py | 3 +- .../modules/network/iosxr/test_iosxr_config.py | 2 +- .../unit/modules/network/iosxr/test_iosxr_facts.py | 19 +- .../modules/network/iosxr/test_iosxr_interfaces.py | 3 +- .../network/iosxr/test_iosxr_l2_interfaces.py | 3 +- .../network/iosxr/test_iosxr_l3_interfaces.py | 3 +- .../unit/modules/network/iosxr/test_iosxr_lacp.py | 3 +- .../network/iosxr/test_iosxr_lacp_interfaces.py | 3 +- .../network/iosxr/test_iosxr_lag_interfaces.py | 3 +- .../network/iosxr/test_iosxr_lldp_global.py | 3 +- .../network/iosxr/test_iosxr_lldp_interfaces.py | 3 +- .../network/iosxr/test_iosxr_logging_global.py | 2 +- .../unit/modules/network/iosxr/test_iosxr_n540.py | 4 +- .../modules/network/iosxr/test_iosxr_netconf.py | 3 +- .../modules/network/iosxr/test_iosxr_ntp_global.py | 2 +- .../network/iosxr/test_iosxr_ospf_interfaces.py | 3 +- .../modules/network/iosxr/test_iosxr_ospfv2.py | 3 +- .../modules/network/iosxr/test_iosxr_ospfv3.py | 3 +- .../unit/modules/network/iosxr/test_iosxr_ping.py | 4 +- .../network/iosxr/test_iosxr_prefix_lists.py | 2 +- .../network/iosxr/test_iosxr_snmp_server.py | 2 +- .../network/iosxr/test_iosxr_static_routes.py | 3 +- .../modules/network/iosxr/test_iosxr_system.py | 3 +- .../unit/modules/network/iosxr/test_iosxr_user.py | 3 +- .../unit/modules/network/iosxr/test_iosxr_utils.py | 6 +- .../cisco/iosxr/tests/unit/modules/utils.py | 8 +- ansible_collections/cisco/iosxr/tox-ansible.ini | 3 + ansible_collections/cisco/iosxr/tox.ini | 31 - ansible_collections/cisco/ise/.DS_Store | Bin 0 -> 10244 bytes .../cisco/ise/.github/workflows/sanity_tests.yml | 3 +- ansible_collections/cisco/ise/.vscode/launch.json | 16 + .../cisco/ise/.vscode/settings.json | 24 + ansible_collections/cisco/ise/FILES.json | 2538 +++-- ansible_collections/cisco/ise/MANIFEST.json | 4 +- ansible_collections/cisco/ise/Pipfile | 13 - ansible_collections/cisco/ise/README.md | 7 +- .../cisco/ise/changelogs/changelog.yaml | 28 +- .../cisco/ise/playbooks/credentials.template | 2 +- .../cisco/ise/playbooks/group_vars/ise_servers | 2 +- ansible_collections/cisco/ise/plugins/.DS_Store | Bin 0 -> 8196 bytes .../cisco/ise/plugins/action/aci_bindings_info.py | 2 +- .../cisco/ise/plugins/action/aci_settings.py | 2 +- .../cisco/ise/plugins/action/aci_settings_info.py | 2 +- .../ise/plugins/action/aci_test_connectivity.py | 2 +- .../ise/plugins/action/active_directories_info.py | 90 + .../cisco/ise/plugins/action/active_directory.py | 2 +- .../plugins/action/active_directory_add_groups.py | 2 +- .../active_directory_groups_by_domain_info.py | 2 +- .../ise/plugins/action/active_directory_info.py | 2 +- ...ctive_directory_is_user_member_of_group_info.py | 2 +- .../plugins/action/active_directory_join_domain.py | 2 +- .../active_directory_join_domain_with_all_nodes.py | 2 +- .../action/active_directory_leave_domain.py | 2 +- ...active_directory_leave_domain_with_all_nodes.py | 2 +- .../active_directory_trusted_domains_info.py | 2 +- .../action/active_directory_user_groups_info.py | 2 +- .../cisco/ise/plugins/action/ad_groups_info.py | 98 + .../cisco/ise/plugins/action/admin_user_info.py | 2 +- .../cisco/ise/plugins/action/allowed_protocols.py | 2 +- .../ise/plugins/action/allowed_protocols_info.py | 2 +- .../cisco/ise/plugins/action/anc_endpoint_apply.py | 2 +- .../anc_endpoint_bulk_monitor_status_info.py | 2 +- .../plugins/action/anc_endpoint_bulk_request.py | 2 +- .../cisco/ise/plugins/action/anc_endpoint_clear.py | 2 +- .../cisco/ise/plugins/action/anc_endpoint_info.py | 2 +- .../cisco/ise/plugins/action/anc_policy.py | 2 +- .../action/anc_policy_bulk_monitor_status_info.py | 2 +- .../ise/plugins/action/anc_policy_bulk_request.py | 2 +- .../cisco/ise/plugins/action/anc_policy_info.py | 2 +- .../ise/plugins/action/authorization_profile.py | 2 +- .../plugins/action/authorization_profile_info.py | 2 +- .../cisco/ise/plugins/action/backup_cancel.py | 2 +- .../cisco/ise/plugins/action/backup_config.py | 2 +- .../ise/plugins/action/backup_last_status_info.py | 2 +- .../cisco/ise/plugins/action/backup_restore.py | 2 +- .../ise/plugins/action/backup_schedule_config.py | 2 +- .../action/backup_schedule_config_update.py | 2 +- .../ise/plugins/action/bind_signed_certificate.py | 2 +- .../cisco/ise/plugins/action/byod_portal.py | 2 +- .../cisco/ise/plugins/action/byod_portal_info.py | 2 +- .../ise/plugins/action/certificate_profile.py | 2 +- .../ise/plugins/action/certificate_profile_info.py | 2 +- .../plugins/action/certificate_template_info.py | 2 +- .../cisco/ise/plugins/action/configuration.py | 2 +- .../cisco/ise/plugins/action/configuration_info.py | 2 +- .../cisco/ise/plugins/action/connector_config.py | 250 - .../ise/plugins/action/connector_config_info.py | 101 - .../cisco/ise/plugins/action/csr_delete.py | 2 +- .../cisco/ise/plugins/action/csr_export_info.py | 2 +- .../cisco/ise/plugins/action/csr_generate.py | 2 +- .../plugins/action/csr_generate_intermediate_ca.py | 2 +- .../cisco/ise/plugins/action/csr_info.py | 4 +- .../cisco/ise/plugins/action/custom_attributes.py | 207 + .../ise/plugins/action/custom_attributes_info.py | 101 + .../ise/plugins/action/custom_attributes_rename.py | 90 + .../cisco/ise/plugins/action/dataconnect_info.py | 2 +- .../plugins/action/dataconnect_settings_info.py | 2 +- .../action/dataconnect_settings_password.py | 2 +- .../action/dataconnect_settings_password_expiry.py | 2 +- .../plugins/action/dataconnect_settings_status.py | 2 +- .../cisco/ise/plugins/action/deployment_info.py | 2 +- ...administration_authentication_reset_hitcount.py | 2 +- .../device_administration_authentication_rules.py | 2 +- ...ice_administration_authentication_rules_info.py | 2 +- ..._administration_authorization_reset_hitcount.py | 2 +- .../device_administration_authorization_rules.py | 2 +- ...vice_administration_authorization_rules_info.py | 2 +- .../device_administration_command_set_info.py | 2 +- .../action/device_administration_conditions.py | 2 +- ...tion_conditions_for_authentication_rule_info.py | 2 +- ...ation_conditions_for_authorization_rule_info.py | 2 +- ...dministration_conditions_for_policy_set_info.py | 2 +- .../device_administration_conditions_info.py | 2 +- ...on_dictionary_attributes_authentication_info.py | 2 +- ...ion_dictionary_attributes_authorization_info.py | 2 +- ...ration_dictionary_attributes_policy_set_info.py | 2 +- ...device_administration_global_exception_rules.py | 2 +- ...e_administration_global_exception_rules_info.py | 2 +- ...ration_global_exception_rules_reset_hitcount.py | 2 +- .../device_administration_identity_stores_info.py | 2 +- .../device_administration_local_exception_rules.py | 2 +- ...ce_administration_local_exception_rules_info.py | 2 +- ...tration_local_exception_rules_reset_hitcount.py | 2 +- .../device_administration_network_conditions.py | 2 +- ...evice_administration_network_conditions_info.py | 2 +- .../action/device_administration_policy_set.py | 2 +- .../device_administration_policy_set_info.py | 2 +- ...ice_administration_policy_set_reset_hitcount.py | 2 +- .../action/device_administration_profiles_info.py | 2 +- .../device_administration_service_names_info.py | 2 +- .../device_administration_time_date_conditions.py | 2 +- ...ice_administration_time_date_conditions_info.py | 2 +- .../plugins/action/dictionary_references_info.py | 90 - .../cisco/ise/plugins/action/downloadable_acl.py | 2 +- .../ise/plugins/action/downloadable_acl_info.py | 2 +- .../cisco/ise/plugins/action/duo_identity_sync.py | 235 + .../action/duo_identity_sync_cancel_info.py | 98 + .../ise/plugins/action/duo_identity_sync_info.py | 101 + .../ise/plugins/action/duo_identity_sync_status.py | 92 + .../plugins/action/duo_identitysync_sync_info.py | 98 + .../cisco/ise/plugins/action/duo_mfa.py | 232 + .../cisco/ise/plugins/action/duo_mfa_info.py | 101 + .../ise/plugins/action/duo_mfa_testconnection.py | 94 + .../cisco/ise/plugins/action/egress_matrix_cell.py | 2 +- .../egress_matrix_cell_bulk_monitor_status_info.py | 2 +- .../action/egress_matrix_cell_bulk_request.py | 2 +- .../plugins/action/egress_matrix_cell_clear_all.py | 2 +- .../ise/plugins/action/egress_matrix_cell_clone.py | 2 +- .../ise/plugins/action/egress_matrix_cell_info.py | 2 +- .../action/egress_matrix_cell_set_all_status.py | 2 +- .../cisco/ise/plugins/action/endpoint.py | 2 +- .../action/endpoint_bulk_monitor_status_info.py | 2 +- .../ise/plugins/action/endpoint_bulk_request.py | 2 +- .../ise/plugins/action/endpoint_certificate.py | 2 +- .../ise/plugins/action/endpoint_deregister.py | 2 +- .../action/endpoint_get_rejected_endpoints_info.py | 2 +- .../cisco/ise/plugins/action/endpoint_group.py | 2 +- .../ise/plugins/action/endpoint_group_info.py | 2 +- .../cisco/ise/plugins/action/endpoint_info.py | 2 +- .../cisco/ise/plugins/action/endpoint_register.py | 2 +- .../action/endpoint_release_rejected_endpoint.py | 2 +- .../cisco/ise/plugins/action/endpoints.py | 310 + .../cisco/ise/plugins/action/endpoints_bulk.py | 313 + .../ise/plugins/action/endpoints_bulk_info.py | 141 + .../plugins/action/endpoints_device_type_info.py | 90 + .../cisco/ise/plugins/action/endpoints_info.py | 141 + .../cisco/ise/plugins/action/endpoints_task.py | 130 + .../ise/plugins/action/external_radius_server.py | 2 +- .../plugins/action/external_radius_server_info.py | 2 +- .../cisco/ise/plugins/action/filter_policy.py | 2 +- .../cisco/ise/plugins/action/filter_policy_info.py | 2 +- .../ise/plugins/action/guest_location_info.py | 2 +- .../action/guest_smtp_notification_settings.py | 2 +- .../guest_smtp_notification_settings_info.py | 2 +- .../cisco/ise/plugins/action/guest_ssid.py | 2 +- .../cisco/ise/plugins/action/guest_ssid_info.py | 2 +- .../cisco/ise/plugins/action/guest_type.py | 2 +- .../cisco/ise/plugins/action/guest_type_email.py | 2 +- .../cisco/ise/plugins/action/guest_type_info.py | 2 +- .../cisco/ise/plugins/action/guest_type_sms.py | 2 +- .../cisco/ise/plugins/action/guest_user.py | 2 +- .../cisco/ise/plugins/action/guest_user_approve.py | 2 +- .../action/guest_user_bulk_monitor_status_info.py | 2 +- .../ise/plugins/action/guest_user_bulk_request.py | 2 +- .../action/guest_user_change_sponsor_password.py | 2 +- .../cisco/ise/plugins/action/guest_user_deny.py | 2 +- .../cisco/ise/plugins/action/guest_user_email.py | 2 +- .../cisco/ise/plugins/action/guest_user_info.py | 2 +- .../ise/plugins/action/guest_user_reinstate.py | 2 +- .../plugins/action/guest_user_reset_password.py | 2 +- .../cisco/ise/plugins/action/guest_user_sms.py | 2 +- .../cisco/ise/plugins/action/guest_user_suspend.py | 2 +- .../cisco/ise/plugins/action/hotpatch_info.py | 2 +- .../cisco/ise/plugins/action/hotpatch_install.py | 4 +- .../cisco/ise/plugins/action/hotpatch_rollback.py | 4 +- .../cisco/ise/plugins/action/hotspot_portal.py | 2 +- .../ise/plugins/action/hotspot_portal_info.py | 2 +- .../cisco/ise/plugins/action/id_store_sequence.py | 2 +- .../ise/plugins/action/id_store_sequence_info.py | 2 +- .../cisco/ise/plugins/action/identity_group.py | 2 +- .../ise/plugins/action/identity_group_info.py | 2 +- .../cisco/ise/plugins/action/internal_user.py | 2 +- .../cisco/ise/plugins/action/internal_user_info.py | 2 +- .../cisco/ise/plugins/action/ipsec.py | 257 + .../cisco/ise/plugins/action/ipsec_bulk.py | 90 + .../ise/plugins/action/ipsec_certificates_info.py | 90 + .../cisco/ise/plugins/action/ipsec_delete.py | 188 + .../cisco/ise/plugins/action/ipsec_delete_info.py | 100 + .../cisco/ise/plugins/action/ipsec_disable.py | 193 + .../cisco/ise/plugins/action/ipsec_disable_info.py | 100 + .../cisco/ise/plugins/action/ipsec_enable.py | 193 + .../cisco/ise/plugins/action/ipsec_enable_info.py | 100 + .../cisco/ise/plugins/action/ipsec_info.py | 143 + .../ise/plugins/action/ise_root_ca_regenerate.py | 2 +- .../action/licensing_connection_type_info.py | 2 +- .../plugins/action/licensing_eval_license_info.py | 2 +- .../licensing_feature_to_tier_mapping_info.py | 2 +- .../action/licensing_registration_create.py | 10 +- .../plugins/action/licensing_registration_info.py | 2 +- .../plugins/action/licensing_smart_state_create.py | 2 +- .../plugins/action/licensing_smart_state_info.py | 2 +- .../plugins/action/licensing_tier_state_create.py | 2 +- .../plugins/action/licensing_tier_state_info.py | 2 +- .../ise/plugins/action/mnt_account_status_info.py | 2 +- .../action/mnt_athentication_status_info.py | 2 +- .../action/mnt_authentication_status_info.py | 2 +- .../ise/plugins/action/mnt_failure_reasons_info.py | 2 +- .../action/mnt_session_active_count_info.py | 2 +- .../plugins/action/mnt_session_active_list_info.py | 2 +- .../plugins/action/mnt_session_auth_list_info.py | 2 +- .../ise/plugins/action/mnt_session_by_ip_info.py | 2 +- .../ise/plugins/action/mnt_session_by_mac_info.py | 2 +- .../plugins/action/mnt_session_by_nas_ip_info.py | 2 +- .../plugins/action/mnt_session_by_username_info.py | 2 +- .../ise/plugins/action/mnt_session_delete_all.py | 2 +- .../plugins/action/mnt_session_disconnect_info.py | 2 +- .../action/mnt_session_posture_count_info.py | 2 +- .../action/mnt_session_profiler_count_info.py | 2 +- .../action/mnt_session_reauthentication_info.py | 2 +- .../action/mnt_sessions_by_session_id_info.py | 2 +- .../cisco/ise/plugins/action/mnt_version_info.py | 2 +- .../cisco/ise/plugins/action/my_device_portal.py | 2 +- .../ise/plugins/action/my_device_portal_info.py | 2 +- .../plugins/action/native_supplicant_profile.py | 2 +- .../action/native_supplicant_profile_info.py | 2 +- .../action/network_access_authentication_rules.py | 2 +- .../network_access_authentication_rules_info.py | 2 +- ...k_access_authentication_rules_reset_hitcount.py | 2 +- .../action/network_access_authorization_rules.py | 2 +- .../network_access_authorization_rules_info.py | 2 +- ...rk_access_authorization_rules_reset_hitcount.py | 2 +- .../plugins/action/network_access_conditions.py | 2 +- ...cess_conditions_for_authentication_rule_info.py | 2 +- ...ccess_conditions_for_authorization_rule_info.py | 2 +- ...etwork_access_conditions_for_policy_set_info.py | 2 +- .../action/network_access_conditions_info.py | 2 +- .../plugins/action/network_access_dictionary.py | 2 +- .../action/network_access_dictionary_attribute.py | 2 +- .../network_access_dictionary_attribute_info.py | 2 +- ...ss_dictionary_attributes_authentication_info.py | 2 +- ...ess_dictionary_attributes_authorization_info.py | 2 +- ...access_dictionary_attributes_policy_set_info.py | 2 +- .../action/network_access_dictionary_info.py | 2 +- .../network_access_global_exception_rules.py | 2 +- .../network_access_global_exception_rules_info.py | 2 +- ...access_global_exception_rules_reset_hitcount.py | 2 +- .../action/network_access_identity_stores_info.py | 2 +- .../action/network_access_local_exception_rules.py | 2 +- .../network_access_local_exception_rules_info.py | 2 +- ...access_local_exception_rules_reset_hitcounts.py | 2 +- .../action/network_access_network_condition.py | 2 +- .../network_access_network_condition_info.py | 2 +- .../plugins/action/network_access_policy_set.py | 2 +- .../action/network_access_policy_set_info.py | 2 +- .../network_access_policy_set_reset_hitcount.py | 2 +- .../plugins/action/network_access_profiles_info.py | 2 +- .../action/network_access_security_groups_info.py | 2 +- .../action/network_access_service_name_info.py | 2 +- .../action/network_access_time_date_conditions.py | 2 +- .../network_access_time_date_conditions_info.py | 2 +- .../cisco/ise/plugins/action/network_device.py | 2 +- .../network_device_bulk_monitor_status_info.py | 2 +- .../plugins/action/network_device_bulk_request.py | 2 +- .../ise/plugins/action/network_device_group.py | 8 +- .../plugins/action/network_device_group_info.py | 2 +- .../ise/plugins/action/network_device_info.py | 2 +- .../cisco/ise/plugins/action/node_deployment.py | 2 +- .../ise/plugins/action/node_deployment_info.py | 2 +- .../ise/plugins/action/node_deployment_sync.py | 2 +- .../cisco/ise/plugins/action/node_group.py | 2 +- .../cisco/ise/plugins/action/node_group_info.py | 2 +- .../ise/plugins/action/node_group_node_create.py | 2 +- .../ise/plugins/action/node_group_node_delete.py | 2 +- .../ise/plugins/action/node_group_node_info.py | 2 +- .../cisco/ise/plugins/action/node_info.py | 2 +- .../plugins/action/node_primary_to_standalone.py | 2 +- .../cisco/ise/plugins/action/node_promotion.py | 2 +- .../plugins/action/node_replication_status_info.py | 2 +- .../plugins/action/node_secondary_to_primary.py | 2 +- .../action/node_services_interfaces_info.py | 2 +- .../action/node_services_profiler_probe_config.py | 2 +- .../node_services_profiler_probe_config_info.py | 2 +- .../plugins/action/node_services_sxp_interfaces.py | 2 +- .../action/node_services_sxp_interfaces_info.py | 2 +- .../plugins/action/node_standalone_to_primary.py | 2 +- .../cisco/ise/plugins/action/node_sync.py | 2 +- .../cisco/ise/plugins/action/pan_ha.py | 2 +- .../cisco/ise/plugins/action/pan_ha_info.py | 2 +- .../cisco/ise/plugins/action/pan_ha_update.py | 10 +- .../cisco/ise/plugins/action/patch_info.py | 2 +- .../cisco/ise/plugins/action/patch_install.py | 4 +- .../cisco/ise/plugins/action/patch_rollback.py | 2 +- .../plugins/action/personas_check_standalone.py | 2 +- .../ise/plugins/action/personas_export_certs.py | 2 +- .../ise/plugins/action/personas_promote_primary.py | 6 +- .../ise/plugins/action/personas_register_node.py | 2 +- .../ise/plugins/action/portal_global_setting.py | 2 +- .../plugins/action/portal_global_setting_info.py | 2 +- .../cisco/ise/plugins/action/portal_info.py | 2 +- .../cisco/ise/plugins/action/portal_theme.py | 2 +- .../cisco/ise/plugins/action/portal_theme_info.py | 2 +- .../ise/plugins/action/profiler_profile_info.py | 2 +- .../plugins/action/proxy_connection_settings.py | 2 +- .../action/proxy_connection_settings_info.py | 2 +- .../cisco/ise/plugins/action/px_grid_direct.py | 250 + .../action/px_grid_direct_dictionary_info.py | 90 + .../ise/plugins/action/px_grid_direct_info.py | 101 + .../ise/plugins/action/px_grid_direct_sync.py | 184 + .../ise/plugins/action/px_grid_direct_sync_info.py | 98 + .../action/px_grid_direct_test_connector.py | 100 + .../ise/plugins/action/px_grid_node_approve.py | 2 +- .../ise/plugins/action/px_grid_node_delete.py | 2 +- .../cisco/ise/plugins/action/px_grid_node_info.py | 2 +- .../action/px_grid_settings_auto_approve.py | 2 +- .../ise/plugins/action/pxgrid_access_secret.py | 2 +- .../ise/plugins/action/pxgrid_account_activate.py | 2 +- .../ise/plugins/action/pxgrid_account_create.py | 2 +- .../ise/plugins/action/pxgrid_authorization.py | 2 +- .../ise/plugins/action/pxgrid_bindings_info.py | 2 +- .../plugins/action/pxgrid_egress_matrices_info.py | 2 +- .../plugins/action/pxgrid_egress_policies_info.py | 2 +- .../plugins/action/pxgrid_endpoint_by_mac_info.py | 2 +- .../action/pxgrid_endpoints_by_os_type_info.py | 2 +- .../action/pxgrid_endpoints_by_type_info.py | 2 +- .../ise/plugins/action/pxgrid_endpoints_info.py | 2 +- .../ise/plugins/action/pxgrid_failures_info.py | 2 +- .../ise/plugins/action/pxgrid_healths_info.py | 2 +- .../ise/plugins/action/pxgrid_node_approve.py | 2 +- .../cisco/ise/plugins/action/pxgrid_node_delete.py | 2 +- .../cisco/ise/plugins/action/pxgrid_node_info.py | 2 +- .../ise/plugins/action/pxgrid_performances_info.py | 2 +- .../ise/plugins/action/pxgrid_profiles_info.py | 2 +- .../action/pxgrid_security_group_acls_info.py | 2 +- .../plugins/action/pxgrid_security_groups_info.py | 2 +- .../ise/plugins/action/pxgrid_service_lookup.py | 2 +- .../ise/plugins/action/pxgrid_service_register.py | 2 +- .../plugins/action/pxgrid_service_reregister.py | 2 +- .../plugins/action/pxgrid_service_unregister.py | 2 +- .../plugins/action/pxgrid_session_by_ip_info.py | 2 +- .../plugins/action/pxgrid_session_by_mac_info.py | 2 +- .../action/pxgrid_session_for_recovery_info.py | 2 +- .../ise/plugins/action/pxgrid_sessions_info.py | 2 +- .../plugins/action/pxgrid_settings_auto_approve.py | 2 +- .../action/pxgrid_user_group_by_username_info.py | 2 +- .../ise/plugins/action/pxgrid_user_groups_info.py | 2 +- .../ise/plugins/action/radius_server_sequence.py | 2 +- .../plugins/action/radius_server_sequence_info.py | 2 +- .../cisco/ise/plugins/action/renew_certificate.py | 2 +- .../cisco/ise/plugins/action/repository.py | 2 +- .../ise/plugins/action/repository_files_info.py | 2 +- .../cisco/ise/plugins/action/repository_info.py | 2 +- .../cisco/ise/plugins/action/reservation.py | 255 + .../cisco/ise/plugins/action/reservation_info.py | 133 + .../ise/plugins/action/resource_version_info.py | 2 +- .../cisco/ise/plugins/action/rest_id_store.py | 2 +- .../cisco/ise/plugins/action/rest_id_store_info.py | 2 +- .../ise/plugins/action/self_registered_portal.py | 2 +- .../plugins/action/self_registered_portal_info.py | 2 +- .../action/selfsigned_certificate_generate.py | 2 +- .../plugins/action/session_service_node_info.py | 2 +- .../cisco/ise/plugins/action/sg_acl.py | 2 +- .../action/sg_acl_bulk_monitor_status_info.py | 2 +- .../ise/plugins/action/sg_acl_bulk_request.py | 2 +- .../cisco/ise/plugins/action/sg_acl_info.py | 2 +- .../cisco/ise/plugins/action/sg_mapping.py | 2 +- .../action/sg_mapping_bulk_monitor_status_info.py | 2 +- .../ise/plugins/action/sg_mapping_bulk_request.py | 2 +- .../cisco/ise/plugins/action/sg_mapping_deploy.py | 2 +- .../ise/plugins/action/sg_mapping_deploy_all.py | 2 +- .../action/sg_mapping_deploy_status_info.py | 2 +- .../cisco/ise/plugins/action/sg_mapping_group.py | 2 +- .../sg_mapping_group_bulk_monitor_status_info.py | 2 +- .../action/sg_mapping_group_bulk_request.py | 2 +- .../ise/plugins/action/sg_mapping_group_deploy.py | 2 +- .../plugins/action/sg_mapping_group_deploy_all.py | 2 +- .../action/sg_mapping_group_deploy_status_info.py | 2 +- .../ise/plugins/action/sg_mapping_group_info.py | 2 +- .../cisco/ise/plugins/action/sg_mapping_info.py | 2 +- .../cisco/ise/plugins/action/sg_to_vn_to_vlan.py | 2 +- .../sg_to_vn_to_vlan_bulk_monitor_status_info.py | 2 +- .../action/sg_to_vn_to_vlan_bulk_request.py | 2 +- .../ise/plugins/action/sg_to_vn_to_vlan_info.py | 2 +- .../cisco/ise/plugins/action/sgt.py | 2 +- .../plugins/action/sgt_bulk_monitor_status_info.py | 2 +- .../cisco/ise/plugins/action/sgt_bulk_request.py | 2 +- .../cisco/ise/plugins/action/sgt_info.py | 2 +- .../cisco/ise/plugins/action/sms_provider_info.py | 2 +- .../cisco/ise/plugins/action/sponsor_group.py | 2 +- .../cisco/ise/plugins/action/sponsor_group_info.py | 2 +- .../plugins/action/sponsor_group_member_info.py | 2 +- .../cisco/ise/plugins/action/sponsor_portal.py | 2 +- .../ise/plugins/action/sponsor_portal_info.py | 2 +- .../ise/plugins/action/sponsored_guest_portal.py | 2 +- .../plugins/action/sponsored_guest_portal_info.py | 2 +- .../cisco/ise/plugins/action/stop_replication.py | 168 + .../ise/plugins/action/stop_replication_info.py | 90 + .../cisco/ise/plugins/action/subscriber.py | 18 +- .../cisco/ise/plugins/action/subscriber_bulk.py | 6 +- .../ise/plugins/action/subscriber_imsi_info.py | 2 +- .../cisco/ise/plugins/action/subscriber_info.py | 2 +- .../cisco/ise/plugins/action/support_bundle.py | 2 +- .../ise/plugins/action/support_bundle_download.py | 2 +- .../plugins/action/support_bundle_status_info.py | 2 +- .../cisco/ise/plugins/action/sxp_connections.py | 2 +- .../sxp_connections_bulk_monitor_status_info.py | 2 +- .../plugins/action/sxp_connections_bulk_request.py | 2 +- .../ise/plugins/action/sxp_connections_info.py | 2 +- .../cisco/ise/plugins/action/sxp_local_bindings.py | 2 +- .../sxp_local_bindings_bulk_monitor_status_info.py | 2 +- .../action/sxp_local_bindings_bulk_request.py | 2 +- .../ise/plugins/action/sxp_local_bindings_info.py | 2 +- .../cisco/ise/plugins/action/sxp_vpns.py | 2 +- .../action/sxp_vpns_bulk_monitor_status_info.py | 2 +- .../ise/plugins/action/sxp_vpns_bulk_request.py | 2 +- .../cisco/ise/plugins/action/sxp_vpns_info.py | 2 +- .../cisco/ise/plugins/action/system_certificate.py | 2 +- .../plugins/action/system_certificate_create.py | 2 +- .../action/system_certificate_export_info.py | 4 +- .../plugins/action/system_certificate_import.py | 2 +- .../ise/plugins/action/system_certificate_info.py | 4 +- .../plugins/action/system_config_version_info.py | 2 +- .../ise/plugins/action/tacacs_command_sets.py | 2 +- .../ise/plugins/action/tacacs_command_sets_info.py | 2 +- .../ise/plugins/action/tacacs_external_servers.py | 2 +- .../plugins/action/tacacs_external_servers_info.py | 2 +- .../cisco/ise/plugins/action/tacacs_profile.py | 2 +- .../ise/plugins/action/tacacs_profile_info.py | 2 +- .../ise/plugins/action/tacacs_server_sequence.py | 2 +- .../plugins/action/tacacs_server_sequence_info.py | 2 +- .../cisco/ise/plugins/action/tasks_info.py | 2 +- .../cisco/ise/plugins/action/telemetry_info.py | 2 +- .../cisco/ise/plugins/action/test_connector.py | 98 - .../plugins/action/threat_vulnerabilities_clear.py | 2 +- .../plugins/action/transport_gateway_settings.py | 2 +- .../action/transport_gateway_settings_info.py | 2 +- .../ise/plugins/action/trusted_certificate.py | 2 +- .../action/trusted_certificate_export_info.py | 2 +- .../plugins/action/trusted_certificate_import.py | 2 +- .../ise/plugins/action/trusted_certificate_info.py | 4 +- .../cisco/ise/plugins/action/trustsec_nbar_app.py | 256 + .../ise/plugins/action/trustsec_nbar_app_info.py | 141 + .../ise/plugins/action/trustsec_sg_vn_mapping.py | 266 + .../action/trustsec_sg_vn_mapping_bulk_create.py | 88 + .../action/trustsec_sg_vn_mapping_bulk_delete.py | 88 + .../action/trustsec_sg_vn_mapping_bulk_update.py | 88 + .../plugins/action/trustsec_sg_vn_mapping_info.py | 141 + .../cisco/ise/plugins/action/trustsec_vn.py | 256 + .../ise/plugins/action/trustsec_vn_bulk_create.py | 88 + .../ise/plugins/action/trustsec_vn_bulk_delete.py | 88 + .../ise/plugins/action/trustsec_vn_bulk_update.py | 88 + .../cisco/ise/plugins/action/trustsec_vn_info.py | 141 + .../ise/plugins/action/trustsec_vn_vlan_mapping.py | 268 + .../action/trustsec_vn_vlan_mapping_bulk_create.py | 88 + .../action/trustsec_vn_vlan_mapping_bulk_delete.py | 88 + .../action/trustsec_vn_vlan_mapping_bulk_update.py | 88 + .../action/trustsec_vn_vlan_mapping_info.py | 141 + .../cisco/ise/plugins/action/upgrade_proceed.py | 171 + .../ise/plugins/action/upgrade_proceed_info.py | 87 + .../ise/plugins/action/upgrade_stage_cancel.py | 171 + .../plugins/action/upgrade_stage_cancel_info.py | 92 + .../ise/plugins/action/upgrade_stage_start.py | 172 + .../ise/plugins/action/upgrade_stage_start_info.py | 92 + .../cisco/ise/plugins/action/user_equipment.py | 253 + .../ise/plugins/action/user_equipment_bulk.py | 90 + .../cisco/ise/plugins/action/user_equipment_csv.py | 86 + .../ise/plugins/action/user_equipment_imei_info.py | 98 + .../ise/plugins/action/user_equipment_info.py | 141 + .../action/user_equipment_subscriber_info.py | 98 + .../cisco/ise/plugins/modules/aci_bindings_info.py | 2 +- .../cisco/ise/plugins/modules/aci_settings.py | 2 +- .../cisco/ise/plugins/modules/aci_settings_info.py | 2 +- .../ise/plugins/modules/aci_test_connectivity.py | 2 +- .../ise/plugins/modules/active_directories_info.py | 56 + .../cisco/ise/plugins/modules/active_directory.py | 2 +- .../plugins/modules/active_directory_add_groups.py | 2 +- .../active_directory_groups_by_domain_info.py | 2 +- .../ise/plugins/modules/active_directory_info.py | 2 +- ...ctive_directory_is_user_member_of_group_info.py | 2 +- .../modules/active_directory_join_domain.py | 2 +- .../active_directory_join_domain_with_all_nodes.py | 2 +- .../modules/active_directory_leave_domain.py | 2 +- ...active_directory_leave_domain_with_all_nodes.py | 2 +- .../active_directory_trusted_domains_info.py | 2 +- .../modules/active_directory_user_groups_info.py | 2 +- .../cisco/ise/plugins/modules/ad_groups_info.py | 60 + .../cisco/ise/plugins/modules/admin_user_info.py | 2 +- .../cisco/ise/plugins/modules/allowed_protocols.py | 2 +- .../ise/plugins/modules/allowed_protocols_info.py | 2 +- .../ise/plugins/modules/anc_endpoint_apply.py | 2 +- .../anc_endpoint_bulk_monitor_status_info.py | 2 +- .../plugins/modules/anc_endpoint_bulk_request.py | 2 +- .../ise/plugins/modules/anc_endpoint_clear.py | 2 +- .../cisco/ise/plugins/modules/anc_endpoint_info.py | 2 +- .../cisco/ise/plugins/modules/anc_policy.py | 2 +- .../modules/anc_policy_bulk_monitor_status_info.py | 2 +- .../ise/plugins/modules/anc_policy_bulk_request.py | 2 +- .../cisco/ise/plugins/modules/anc_policy_info.py | 2 +- .../ise/plugins/modules/authorization_profile.py | 2 +- .../plugins/modules/authorization_profile_info.py | 2 +- .../cisco/ise/plugins/modules/backup_cancel.py | 2 +- .../cisco/ise/plugins/modules/backup_config.py | 2 +- .../ise/plugins/modules/backup_last_status_info.py | 2 +- .../cisco/ise/plugins/modules/backup_restore.py | 2 +- .../ise/plugins/modules/backup_schedule_config.py | 2 +- .../modules/backup_schedule_config_update.py | 2 +- .../ise/plugins/modules/bind_signed_certificate.py | 2 +- .../cisco/ise/plugins/modules/byod_portal.py | 2 +- .../cisco/ise/plugins/modules/byod_portal_info.py | 2 +- .../ise/plugins/modules/certificate_profile.py | 2 +- .../plugins/modules/certificate_profile_info.py | 2 +- .../plugins/modules/certificate_template_info.py | 2 +- .../cisco/ise/plugins/modules/configuration.py | 2 +- .../ise/plugins/modules/configuration_info.py | 2 +- .../cisco/ise/plugins/modules/connector_config.py | 305 - .../ise/plugins/modules/connector_config_info.py | 111 - .../cisco/ise/plugins/modules/csr_delete.py | 2 +- .../cisco/ise/plugins/modules/csr_export_info.py | 2 +- .../cisco/ise/plugins/modules/csr_generate.py | 2 +- .../modules/csr_generate_intermediate_ca.py | 2 +- .../cisco/ise/plugins/modules/csr_info.py | 13 +- .../cisco/ise/plugins/modules/custom_attributes.py | 73 + .../ise/plugins/modules/custom_attributes_info.py | 67 + .../plugins/modules/custom_attributes_rename.py | 55 + .../cisco/ise/plugins/modules/dataconnect_info.py | 2 +- .../plugins/modules/dataconnect_settings_info.py | 2 +- .../modules/dataconnect_settings_password.py | 2 +- .../dataconnect_settings_password_expiry.py | 2 +- .../plugins/modules/dataconnect_settings_status.py | 2 +- .../cisco/ise/plugins/modules/deployment_info.py | 2 +- ...administration_authentication_reset_hitcount.py | 2 +- .../device_administration_authentication_rules.py | 2 +- ...ice_administration_authentication_rules_info.py | 2 +- ..._administration_authorization_reset_hitcount.py | 2 +- .../device_administration_authorization_rules.py | 2 +- ...vice_administration_authorization_rules_info.py | 2 +- .../device_administration_command_set_info.py | 2 +- .../modules/device_administration_conditions.py | 2 +- ...tion_conditions_for_authentication_rule_info.py | 2 +- ...ation_conditions_for_authorization_rule_info.py | 2 +- ...dministration_conditions_for_policy_set_info.py | 2 +- .../device_administration_conditions_info.py | 2 +- ...on_dictionary_attributes_authentication_info.py | 2 +- ...ion_dictionary_attributes_authorization_info.py | 2 +- ...ration_dictionary_attributes_policy_set_info.py | 2 +- ...device_administration_global_exception_rules.py | 2 +- ...e_administration_global_exception_rules_info.py | 2 +- ...ration_global_exception_rules_reset_hitcount.py | 2 +- .../device_administration_identity_stores_info.py | 2 +- .../device_administration_local_exception_rules.py | 2 +- ...ce_administration_local_exception_rules_info.py | 2 +- ...tration_local_exception_rules_reset_hitcount.py | 2 +- .../device_administration_network_conditions.py | 2 +- ...evice_administration_network_conditions_info.py | 2 +- .../modules/device_administration_policy_set.py | 2 +- .../device_administration_policy_set_info.py | 2 +- ...ice_administration_policy_set_reset_hitcount.py | 2 +- .../modules/device_administration_profiles_info.py | 2 +- .../device_administration_service_names_info.py | 2 +- .../device_administration_time_date_conditions.py | 2 +- ...ice_administration_time_date_conditions_info.py | 2 +- .../plugins/modules/dictionary_references_info.py | 49 - .../cisco/ise/plugins/modules/downloadable_acl.py | 2 +- .../ise/plugins/modules/downloadable_acl_info.py | 2 +- .../cisco/ise/plugins/modules/duo_identity_sync.py | 195 + .../modules/duo_identity_sync_cancel_info.py | 54 + .../ise/plugins/modules/duo_identity_sync_info.py | 94 + .../plugins/modules/duo_identity_sync_status.py | 107 + .../plugins/modules/duo_identitysync_sync_info.py | 54 + .../cisco/ise/plugins/modules/duo_mfa.py | 161 + .../cisco/ise/plugins/modules/duo_mfa_info.py | 84 + .../ise/plugins/modules/duo_mfa_testconnection.py | 84 + .../ise/plugins/modules/egress_matrix_cell.py | 2 +- .../egress_matrix_cell_bulk_monitor_status_info.py | 2 +- .../modules/egress_matrix_cell_bulk_request.py | 2 +- .../modules/egress_matrix_cell_clear_all.py | 2 +- .../plugins/modules/egress_matrix_cell_clone.py | 2 +- .../ise/plugins/modules/egress_matrix_cell_info.py | 2 +- .../modules/egress_matrix_cell_set_all_status.py | 2 +- .../cisco/ise/plugins/modules/endpoint.py | 2 +- .../modules/endpoint_bulk_monitor_status_info.py | 2 +- .../ise/plugins/modules/endpoint_bulk_request.py | 2 +- .../ise/plugins/modules/endpoint_certificate.py | 2 +- .../ise/plugins/modules/endpoint_deregister.py | 2 +- .../endpoint_get_rejected_endpoints_info.py | 2 +- .../cisco/ise/plugins/modules/endpoint_group.py | 2 +- .../ise/plugins/modules/endpoint_group_info.py | 2 +- .../cisco/ise/plugins/modules/endpoint_info.py | 2 +- .../cisco/ise/plugins/modules/endpoint_register.py | 2 +- .../modules/endpoint_release_rejected_endpoint.py | 2 +- .../cisco/ise/plugins/modules/endpoints.py | 237 + .../cisco/ise/plugins/modules/endpoints_bulk.py | 352 + .../ise/plugins/modules/endpoints_bulk_info.py | 168 + .../plugins/modules/endpoints_device_type_info.py | 54 + .../cisco/ise/plugins/modules/endpoints_info.py | 168 + .../cisco/ise/plugins/modules/endpoints_task.py | 137 + .../ise/plugins/modules/external_radius_server.py | 2 +- .../plugins/modules/external_radius_server_info.py | 2 +- .../cisco/ise/plugins/modules/filter_policy.py | 2 +- .../ise/plugins/modules/filter_policy_info.py | 2 +- .../ise/plugins/modules/guest_location_info.py | 2 +- .../modules/guest_smtp_notification_settings.py | 2 +- .../guest_smtp_notification_settings_info.py | 2 +- .../cisco/ise/plugins/modules/guest_ssid.py | 2 +- .../cisco/ise/plugins/modules/guest_ssid_info.py | 2 +- .../cisco/ise/plugins/modules/guest_type.py | 2 +- .../cisco/ise/plugins/modules/guest_type_email.py | 2 +- .../cisco/ise/plugins/modules/guest_type_info.py | 2 +- .../cisco/ise/plugins/modules/guest_type_sms.py | 2 +- .../cisco/ise/plugins/modules/guest_user.py | 2 +- .../ise/plugins/modules/guest_user_approve.py | 2 +- .../modules/guest_user_bulk_monitor_status_info.py | 2 +- .../ise/plugins/modules/guest_user_bulk_request.py | 2 +- .../modules/guest_user_change_sponsor_password.py | 2 +- .../cisco/ise/plugins/modules/guest_user_deny.py | 2 +- .../cisco/ise/plugins/modules/guest_user_email.py | 2 +- .../cisco/ise/plugins/modules/guest_user_info.py | 2 +- .../ise/plugins/modules/guest_user_reinstate.py | 2 +- .../plugins/modules/guest_user_reset_password.py | 2 +- .../cisco/ise/plugins/modules/guest_user_sms.py | 2 +- .../ise/plugins/modules/guest_user_suspend.py | 2 +- .../cisco/ise/plugins/modules/hotpatch_info.py | 2 +- .../cisco/ise/plugins/modules/hotpatch_install.py | 9 +- .../cisco/ise/plugins/modules/hotpatch_rollback.py | 9 +- .../cisco/ise/plugins/modules/hotspot_portal.py | 2 +- .../ise/plugins/modules/hotspot_portal_info.py | 2 +- .../cisco/ise/plugins/modules/id_store_sequence.py | 2 +- .../ise/plugins/modules/id_store_sequence_info.py | 2 +- .../cisco/ise/plugins/modules/identity_group.py | 2 +- .../ise/plugins/modules/identity_group_info.py | 2 +- .../cisco/ise/plugins/modules/internal_user.py | 2 +- .../ise/plugins/modules/internal_user_info.py | 2 +- .../cisco/ise/plugins/modules/ipsec.py | 236 + .../cisco/ise/plugins/modules/ipsec_bulk.py | 143 + .../ise/plugins/modules/ipsec_certificates_info.py | 55 + .../cisco/ise/plugins/modules/ipsec_delete.py | 88 + .../cisco/ise/plugins/modules/ipsec_delete_info.py | 90 + .../cisco/ise/plugins/modules/ipsec_disable.py | 98 + .../ise/plugins/modules/ipsec_disable_info.py | 90 + .../cisco/ise/plugins/modules/ipsec_enable.py | 98 + .../cisco/ise/plugins/modules/ipsec_enable_info.py | 90 + .../cisco/ise/plugins/modules/ipsec_info.py | 193 + .../ise/plugins/modules/ise_root_ca_regenerate.py | 2 +- .../modules/licensing_connection_type_info.py | 4 +- .../plugins/modules/licensing_eval_license_info.py | 4 +- .../licensing_feature_to_tier_mapping_info.py | 8 +- .../modules/licensing_registration_create.py | 13 +- .../plugins/modules/licensing_registration_info.py | 12 +- .../modules/licensing_smart_state_create.py | 4 +- .../plugins/modules/licensing_smart_state_info.py | 2 +- .../plugins/modules/licensing_tier_state_create.py | 14 +- .../plugins/modules/licensing_tier_state_info.py | 8 +- .../ise/plugins/modules/mnt_account_status_info.py | 2 +- .../modules/mnt_athentication_status_info.py | 2 +- .../modules/mnt_authentication_status_info.py | 2 +- .../plugins/modules/mnt_failure_reasons_info.py | 2 +- .../modules/mnt_session_active_count_info.py | 2 +- .../modules/mnt_session_active_list_info.py | 2 +- .../plugins/modules/mnt_session_auth_list_info.py | 2 +- .../ise/plugins/modules/mnt_session_by_ip_info.py | 2 +- .../ise/plugins/modules/mnt_session_by_mac_info.py | 2 +- .../plugins/modules/mnt_session_by_nas_ip_info.py | 2 +- .../modules/mnt_session_by_username_info.py | 2 +- .../ise/plugins/modules/mnt_session_delete_all.py | 2 +- .../plugins/modules/mnt_session_disconnect_info.py | 2 +- .../modules/mnt_session_posture_count_info.py | 2 +- .../modules/mnt_session_profiler_count_info.py | 2 +- .../modules/mnt_session_reauthentication_info.py | 2 +- .../modules/mnt_sessions_by_session_id_info.py | 2 +- .../cisco/ise/plugins/modules/mnt_version_info.py | 2 +- .../cisco/ise/plugins/modules/my_device_portal.py | 2 +- .../ise/plugins/modules/my_device_portal_info.py | 2 +- .../plugins/modules/native_supplicant_profile.py | 2 +- .../modules/native_supplicant_profile_info.py | 2 +- .../modules/network_access_authentication_rules.py | 2 +- .../network_access_authentication_rules_info.py | 2 +- ...k_access_authentication_rules_reset_hitcount.py | 2 +- .../modules/network_access_authorization_rules.py | 2 +- .../network_access_authorization_rules_info.py | 2 +- ...rk_access_authorization_rules_reset_hitcount.py | 2 +- .../plugins/modules/network_access_conditions.py | 2 +- ...cess_conditions_for_authentication_rule_info.py | 2 +- ...ccess_conditions_for_authorization_rule_info.py | 2 +- ...etwork_access_conditions_for_policy_set_info.py | 2 +- .../modules/network_access_conditions_info.py | 2 +- .../plugins/modules/network_access_dictionary.py | 2 +- .../modules/network_access_dictionary_attribute.py | 2 +- .../network_access_dictionary_attribute_info.py | 2 +- ...ss_dictionary_attributes_authentication_info.py | 2 +- ...ess_dictionary_attributes_authorization_info.py | 2 +- ...access_dictionary_attributes_policy_set_info.py | 2 +- .../modules/network_access_dictionary_info.py | 2 +- .../network_access_global_exception_rules.py | 2 +- .../network_access_global_exception_rules_info.py | 2 +- ...access_global_exception_rules_reset_hitcount.py | 2 +- .../modules/network_access_identity_stores_info.py | 2 +- .../network_access_local_exception_rules.py | 2 +- .../network_access_local_exception_rules_info.py | 2 +- ...access_local_exception_rules_reset_hitcounts.py | 2 +- .../modules/network_access_network_condition.py | 17 +- .../network_access_network_condition_info.py | 2 +- .../plugins/modules/network_access_policy_set.py | 2 +- .../modules/network_access_policy_set_info.py | 2 +- .../network_access_policy_set_reset_hitcount.py | 2 +- .../modules/network_access_profiles_info.py | 2 +- .../modules/network_access_security_groups_info.py | 2 +- .../modules/network_access_service_name_info.py | 2 +- .../modules/network_access_time_date_conditions.py | 2 +- .../network_access_time_date_conditions_info.py | 2 +- .../cisco/ise/plugins/modules/network_device.py | 2 +- .../network_device_bulk_monitor_status_info.py | 2 +- .../plugins/modules/network_device_bulk_request.py | 2 +- .../ise/plugins/modules/network_device_group.py | 12 +- .../plugins/modules/network_device_group_info.py | 6 +- .../ise/plugins/modules/network_device_info.py | 2 +- .../cisco/ise/plugins/modules/node_deployment.py | 2 +- .../ise/plugins/modules/node_deployment_info.py | 2 +- .../ise/plugins/modules/node_deployment_sync.py | 4 +- .../cisco/ise/plugins/modules/node_group.py | 14 +- .../cisco/ise/plugins/modules/node_group_info.py | 12 +- .../ise/plugins/modules/node_group_node_create.py | 2 +- .../ise/plugins/modules/node_group_node_delete.py | 2 +- .../ise/plugins/modules/node_group_node_info.py | 2 +- .../cisco/ise/plugins/modules/node_info.py | 2 +- .../plugins/modules/node_primary_to_standalone.py | 2 +- .../cisco/ise/plugins/modules/node_promotion.py | 2 +- .../modules/node_replication_status_info.py | 2 +- .../plugins/modules/node_secondary_to_primary.py | 2 +- .../modules/node_services_interfaces_info.py | 2 +- .../modules/node_services_profiler_probe_config.py | 2 +- .../node_services_profiler_probe_config_info.py | 2 +- .../modules/node_services_sxp_interfaces.py | 2 +- .../modules/node_services_sxp_interfaces_info.py | 2 +- .../plugins/modules/node_standalone_to_primary.py | 2 +- .../cisco/ise/plugins/modules/node_sync.py | 2 +- .../cisco/ise/plugins/modules/pan_ha.py | 2 +- .../cisco/ise/plugins/modules/pan_ha_info.py | 8 +- .../cisco/ise/plugins/modules/pan_ha_update.py | 2 +- .../cisco/ise/plugins/modules/patch_info.py | 2 +- .../cisco/ise/plugins/modules/patch_install.py | 9 +- .../cisco/ise/plugins/modules/patch_rollback.py | 5 +- .../plugins/modules/personas_promote_primary.py | 17 +- .../ise/plugins/modules/portal_global_setting.py | 2 +- .../plugins/modules/portal_global_setting_info.py | 2 +- .../cisco/ise/plugins/modules/portal_info.py | 2 +- .../cisco/ise/plugins/modules/portal_theme.py | 2 +- .../cisco/ise/plugins/modules/portal_theme_info.py | 2 +- .../ise/plugins/modules/profiler_profile_info.py | 2 +- .../plugins/modules/proxy_connection_settings.py | 2 +- .../modules/proxy_connection_settings_info.py | 2 +- .../cisco/ise/plugins/modules/px_grid_direct.py | 276 + .../modules/px_grid_direct_dictionary_info.py | 49 + .../ise/plugins/modules/px_grid_direct_info.py | 106 + .../ise/plugins/modules/px_grid_direct_sync.py | 66 + .../plugins/modules/px_grid_direct_sync_info.py | 59 + .../modules/px_grid_direct_test_connector.py | 92 + .../ise/plugins/modules/px_grid_node_approve.py | 2 +- .../ise/plugins/modules/px_grid_node_delete.py | 2 +- .../cisco/ise/plugins/modules/px_grid_node_info.py | 2 +- .../modules/px_grid_settings_auto_approve.py | 2 +- .../ise/plugins/modules/pxgrid_access_secret.py | 2 +- .../ise/plugins/modules/pxgrid_account_activate.py | 2 +- .../ise/plugins/modules/pxgrid_account_create.py | 2 +- .../ise/plugins/modules/pxgrid_authorization.py | 2 +- .../ise/plugins/modules/pxgrid_bindings_info.py | 2 +- .../plugins/modules/pxgrid_egress_matrices_info.py | 2 +- .../plugins/modules/pxgrid_egress_policies_info.py | 2 +- .../plugins/modules/pxgrid_endpoint_by_mac_info.py | 2 +- .../modules/pxgrid_endpoints_by_os_type_info.py | 2 +- .../modules/pxgrid_endpoints_by_type_info.py | 2 +- .../ise/plugins/modules/pxgrid_endpoints_info.py | 2 +- .../ise/plugins/modules/pxgrid_failures_info.py | 2 +- .../ise/plugins/modules/pxgrid_healths_info.py | 2 +- .../ise/plugins/modules/pxgrid_node_approve.py | 2 +- .../ise/plugins/modules/pxgrid_node_delete.py | 2 +- .../cisco/ise/plugins/modules/pxgrid_node_info.py | 2 +- .../plugins/modules/pxgrid_performances_info.py | 2 +- .../ise/plugins/modules/pxgrid_profiles_info.py | 2 +- .../modules/pxgrid_security_group_acls_info.py | 2 +- .../plugins/modules/pxgrid_security_groups_info.py | 2 +- .../ise/plugins/modules/pxgrid_service_lookup.py | 2 +- .../ise/plugins/modules/pxgrid_service_register.py | 2 +- .../plugins/modules/pxgrid_service_reregister.py | 2 +- .../plugins/modules/pxgrid_service_unregister.py | 2 +- .../plugins/modules/pxgrid_session_by_ip_info.py | 2 +- .../plugins/modules/pxgrid_session_by_mac_info.py | 2 +- .../modules/pxgrid_session_for_recovery_info.py | 2 +- .../ise/plugins/modules/pxgrid_sessions_info.py | 2 +- .../modules/pxgrid_settings_auto_approve.py | 2 +- .../modules/pxgrid_user_group_by_username_info.py | 2 +- .../ise/plugins/modules/pxgrid_user_groups_info.py | 2 +- .../ise/plugins/modules/radius_server_sequence.py | 2 +- .../plugins/modules/radius_server_sequence_info.py | 2 +- .../cisco/ise/plugins/modules/renew_certificate.py | 4 +- .../cisco/ise/plugins/modules/repository.py | 2 +- .../ise/plugins/modules/repository_files_info.py | 2 +- .../cisco/ise/plugins/modules/repository_info.py | 2 +- .../cisco/ise/plugins/modules/reservation.py | 114 + .../cisco/ise/plugins/modules/reservation_info.py | 97 + .../ise/plugins/modules/resource_version_info.py | 2 +- .../cisco/ise/plugins/modules/rest_id_store.py | 2 +- .../ise/plugins/modules/rest_id_store_info.py | 2 +- .../ise/plugins/modules/self_registered_portal.py | 2 +- .../plugins/modules/self_registered_portal_info.py | 2 +- .../modules/selfsigned_certificate_generate.py | 2 +- .../plugins/modules/session_service_node_info.py | 2 +- .../cisco/ise/plugins/modules/sg_acl.py | 2 +- .../modules/sg_acl_bulk_monitor_status_info.py | 2 +- .../ise/plugins/modules/sg_acl_bulk_request.py | 2 +- .../cisco/ise/plugins/modules/sg_acl_info.py | 2 +- .../cisco/ise/plugins/modules/sg_mapping.py | 2 +- .../modules/sg_mapping_bulk_monitor_status_info.py | 2 +- .../ise/plugins/modules/sg_mapping_bulk_request.py | 2 +- .../cisco/ise/plugins/modules/sg_mapping_deploy.py | 2 +- .../ise/plugins/modules/sg_mapping_deploy_all.py | 2 +- .../modules/sg_mapping_deploy_status_info.py | 2 +- .../cisco/ise/plugins/modules/sg_mapping_group.py | 2 +- .../sg_mapping_group_bulk_monitor_status_info.py | 2 +- .../modules/sg_mapping_group_bulk_request.py | 2 +- .../ise/plugins/modules/sg_mapping_group_deploy.py | 2 +- .../plugins/modules/sg_mapping_group_deploy_all.py | 2 +- .../modules/sg_mapping_group_deploy_status_info.py | 2 +- .../ise/plugins/modules/sg_mapping_group_info.py | 2 +- .../cisco/ise/plugins/modules/sg_mapping_info.py | 2 +- .../cisco/ise/plugins/modules/sg_to_vn_to_vlan.py | 2 +- .../sg_to_vn_to_vlan_bulk_monitor_status_info.py | 2 +- .../modules/sg_to_vn_to_vlan_bulk_request.py | 2 +- .../ise/plugins/modules/sg_to_vn_to_vlan_info.py | 2 +- .../cisco/ise/plugins/modules/sgt.py | 2 +- .../modules/sgt_bulk_monitor_status_info.py | 2 +- .../cisco/ise/plugins/modules/sgt_bulk_request.py | 2 +- .../cisco/ise/plugins/modules/sgt_info.py | 2 +- .../cisco/ise/plugins/modules/sms_provider_info.py | 2 +- .../cisco/ise/plugins/modules/sponsor_group.py | 2 +- .../ise/plugins/modules/sponsor_group_info.py | 2 +- .../plugins/modules/sponsor_group_member_info.py | 2 +- .../cisco/ise/plugins/modules/sponsor_portal.py | 2 +- .../ise/plugins/modules/sponsor_portal_info.py | 2 +- .../ise/plugins/modules/sponsored_guest_portal.py | 2 +- .../plugins/modules/sponsored_guest_portal_info.py | 2 +- .../cisco/ise/plugins/modules/stop_replication.py | 68 + .../ise/plugins/modules/stop_replication_info.py | 51 + .../cisco/ise/plugins/modules/subscriber.py | 2 +- .../cisco/ise/plugins/modules/subscriber_bulk.py | 2 +- .../ise/plugins/modules/subscriber_imsi_info.py | 2 +- .../cisco/ise/plugins/modules/subscriber_info.py | 2 +- .../cisco/ise/plugins/modules/support_bundle.py | 2 +- .../ise/plugins/modules/support_bundle_download.py | 2 +- .../plugins/modules/support_bundle_status_info.py | 2 +- .../cisco/ise/plugins/modules/sxp_connections.py | 2 +- .../sxp_connections_bulk_monitor_status_info.py | 2 +- .../modules/sxp_connections_bulk_request.py | 2 +- .../ise/plugins/modules/sxp_connections_info.py | 2 +- .../ise/plugins/modules/sxp_local_bindings.py | 2 +- .../sxp_local_bindings_bulk_monitor_status_info.py | 2 +- .../modules/sxp_local_bindings_bulk_request.py | 2 +- .../ise/plugins/modules/sxp_local_bindings_info.py | 2 +- .../cisco/ise/plugins/modules/sxp_vpns.py | 2 +- .../modules/sxp_vpns_bulk_monitor_status_info.py | 2 +- .../ise/plugins/modules/sxp_vpns_bulk_request.py | 2 +- .../cisco/ise/plugins/modules/sxp_vpns_info.py | 2 +- .../ise/plugins/modules/system_certificate.py | 2 +- .../plugins/modules/system_certificate_create.py | 2 +- .../modules/system_certificate_export_info.py | 20 +- .../plugins/modules/system_certificate_import.py | 2 +- .../ise/plugins/modules/system_certificate_info.py | 13 +- .../plugins/modules/system_config_version_info.py | 2 +- .../ise/plugins/modules/tacacs_command_sets.py | 2 +- .../plugins/modules/tacacs_command_sets_info.py | 2 +- .../ise/plugins/modules/tacacs_external_servers.py | 2 +- .../modules/tacacs_external_servers_info.py | 2 +- .../cisco/ise/plugins/modules/tacacs_profile.py | 2 +- .../ise/plugins/modules/tacacs_profile_info.py | 2 +- .../ise/plugins/modules/tacacs_server_sequence.py | 2 +- .../plugins/modules/tacacs_server_sequence_info.py | 2 +- .../cisco/ise/plugins/modules/tasks_info.py | 2 +- .../cisco/ise/plugins/modules/telemetry_info.py | 2 +- .../cisco/ise/plugins/modules/test_connector.py | 87 - .../modules/threat_vulnerabilities_clear.py | 2 +- .../plugins/modules/transport_gateway_settings.py | 4 +- .../modules/transport_gateway_settings_info.py | 4 +- .../ise/plugins/modules/trusted_certificate.py | 2 +- .../modules/trusted_certificate_export_info.py | 2 +- .../plugins/modules/trusted_certificate_import.py | 2 +- .../plugins/modules/trusted_certificate_info.py | 7 +- .../cisco/ise/plugins/modules/trustsec_nbar_app.py | 141 + .../ise/plugins/modules/trustsec_nbar_app_info.py | 150 + .../ise/plugins/modules/trustsec_sg_vn_mapping.py | 134 + .../modules/trustsec_sg_vn_mapping_bulk_create.py | 87 + .../modules/trustsec_sg_vn_mapping_bulk_delete.py | 59 + .../modules/trustsec_sg_vn_mapping_bulk_update.py | 87 + .../plugins/modules/trustsec_sg_vn_mapping_info.py | 144 + .../cisco/ise/plugins/modules/trustsec_vn.py | 119 + .../ise/plugins/modules/trustsec_vn_bulk_create.py | 75 + .../ise/plugins/modules/trustsec_vn_bulk_delete.py | 59 + .../ise/plugins/modules/trustsec_vn_bulk_update.py | 75 + .../cisco/ise/plugins/modules/trustsec_vn_info.py | 140 + .../plugins/modules/trustsec_vn_vlan_mapping.py | 138 + .../trustsec_vn_vlan_mapping_bulk_create.py | 93 + .../trustsec_vn_vlan_mapping_bulk_delete.py | 59 + .../trustsec_vn_vlan_mapping_bulk_update.py | 93 + .../modules/trustsec_vn_vlan_mapping_info.py | 148 + .../cisco/ise/plugins/modules/upgrade_proceed.py | 69 + .../ise/plugins/modules/upgrade_proceed_info.py | 53 + .../ise/plugins/modules/upgrade_stage_cancel.py | 73 + .../plugins/modules/upgrade_stage_cancel_info.py | 64 + .../ise/plugins/modules/upgrade_stage_start.py | 77 + .../plugins/modules/upgrade_stage_start_info.py | 64 + .../cisco/ise/plugins/modules/user_equipment.py | 98 + .../ise/plugins/modules/user_equipment_bulk.py | 75 + .../ise/plugins/modules/user_equipment_csv.py | 49 + .../plugins/modules/user_equipment_imei_info.py | 53 + .../ise/plugins/modules/user_equipment_info.py | 122 + .../modules/user_equipment_subscriber_info.py | 68 + .../cisco/ise/plugins/plugin_utils/ise.py | 2 +- ansible_collections/cisco/ise/requirements.txt | 2 +- ansible_collections/cisco/meraki/FILES.json | 19 +- ansible_collections/cisco/meraki/MANIFEST.json | 4 +- ansible_collections/cisco/meraki/README.md | 2 +- .../cisco/meraki/changelogs/changelog.yaml | 9 +- .../cisco/meraki/playbooks/test.yml | 100 +- .../plugins/action/networks_appliance_vlans.py | 36 +- ...ions_appliance_vpn_third_party_vpnpeers_info.py | 2 +- .../plugins/modules/networks_syslog_servers.py | 1 - .../cisco/meraki/tests/sanity/ignore-2.18.txt | 1 + ansible_collections/cisco/nxos/.flake8 | 67 + .../cisco/nxos/.github/workflows/ack.yml | 15 - .../cisco/nxos/.github/workflows/check_label.yml | 11 + .../cisco/nxos/.github/workflows/codecoverage.yml | 3 +- .../cisco/nxos/.github/workflows/draft_release.yml | 18 + .../nxos/.github/workflows/integration-test.yml | 38 + .../cisco/nxos/.github/workflows/push.yml | 27 - .../cisco/nxos/.github/workflows/release.yml | 4 +- .../cisco/nxos/.github/workflows/tests.yml | 22 +- .../cisco/nxos/.pre-commit-config.yaml | 11 +- ansible_collections/cisco/nxos/CHANGELOG.rst | 73 + ansible_collections/cisco/nxos/FILES.json | 10734 +++++++++---------- ansible_collections/cisco/nxos/MANIFEST.json | 6 +- ansible_collections/cisco/nxos/README.md | 12 +- .../cisco/nxos/changelogs/changelog.yaml | 68 + .../docs/cisco.nxos.nxos_acl_interfaces_module.rst | 146 +- .../nxos/docs/cisco.nxos.nxos_acls_module.rst | 76 +- .../docs/cisco.nxos.nxos_bfd_interfaces_module.rst | 48 +- .../cisco.nxos.nxos_bgp_address_family_module.rst | 70 +- .../docs/cisco.nxos.nxos_bgp_global_module.rst | 54 +- ...xos.nxos_bgp_neighbor_address_family_module.rst | 38 +- .../nxos/docs/cisco.nxos.nxos_command_module.rst | 24 +- .../nxos/docs/cisco.nxos.nxos_config_module.rst | 20 +- .../docs/cisco.nxos.nxos_devicealias_module.rst | 24 +- .../nxos/docs/cisco.nxos.nxos_evpn_vni_module.rst | 4 +- .../nxos/docs/cisco.nxos.nxos_facts_module.rst | 10 +- .../docs/cisco.nxos.nxos_fc_interfaces_module.rst | 94 +- ...sco.nxos.nxos_gir_profile_management_module.rst | 4 +- .../cisco.nxos.nxos_hsrp_interfaces_module.rst | 36 +- .../docs/cisco.nxos.nxos_igmp_interface_module.rst | 4 +- .../docs/cisco.nxos.nxos_install_os_module.rst | 3 +- .../docs/cisco.nxos.nxos_interfaces_module.rst | 60 +- .../docs/cisco.nxos.nxos_l2_interfaces_module.rst | 54 +- .../docs/cisco.nxos.nxos_l3_interfaces_module.rst | 70 +- .../cisco.nxos.nxos_lacp_interfaces_module.rst | 40 +- .../docs/cisco.nxos.nxos_lag_interfaces_module.rst | 40 +- .../cisco.nxos.nxos_lldp_interfaces_module.rst | 28 +- .../docs/cisco.nxos.nxos_logging_global_module.rst | 4 +- .../nxos/docs/cisco.nxos.nxos_logging_module.rst | 458 - .../nxos/docs/cisco.nxos.nxos_ntp_auth_module.rst | 224 - .../docs/cisco.nxos.nxos_ntp_global_module.rst | 44 +- .../cisco/nxos/docs/cisco.nxos.nxos_ntp_module.rst | 314 - .../docs/cisco.nxos.nxos_ntp_options_module.rst | 192 - .../cisco.nxos.nxos_ospf_interfaces_module.rst | 183 +- .../nxos/docs/cisco.nxos.nxos_ospfv2_module.rst | 278 +- .../nxos/docs/cisco.nxos.nxos_ospfv3_module.rst | 242 +- .../docs/cisco.nxos.nxos_route_maps_module.rst | 128 +- .../docs/cisco.nxos.nxos_snmp_server_module.rst | 90 +- .../docs/cisco.nxos.nxos_static_routes_module.rst | 126 +- .../nxos/docs/cisco.nxos.nxos_system_module.rst | 8 +- .../nxos/docs/cisco.nxos.nxos_telemetry_module.rst | 82 +- .../nxos/docs/cisco.nxos.nxos_user_module.rst | 4 +- .../nxos/docs/cisco.nxos.nxos_vlans_module.rst | 42 +- .../nxos/docs/cisco.nxos.nxos_vrf_af_module.rst | 53 +- .../cisco/nxos/docs/cisco.nxos.nxos_vrf_module.rst | 38 +- .../nxos/docs/cisco.nxos.nxos_vsan_module.rst | 38 +- .../docs/cisco.nxos.nxos_zone_zoneset_module.rst | 96 +- ansible_collections/cisco/nxos/meta/runtime.yml | 363 +- ansible_collections/cisco/nxos/platform_guide.rst | 170 + .../cisco/nxos/plugins/action/aaa_server.py | 43 +- .../cisco/nxos/plugins/action/aaa_server_host.py | 43 +- .../cisco/nxos/plugins/action/acl.py | 43 +- .../cisco/nxos/plugins/action/acl_interface.py | 43 +- .../cisco/nxos/plugins/action/acl_interfaces.py | 43 +- .../cisco/nxos/plugins/action/acls.py | 43 +- .../cisco/nxos/plugins/action/banner.py | 43 +- .../cisco/nxos/plugins/action/bfd_global.py | 43 +- .../cisco/nxos/plugins/action/bfd_interfaces.py | 43 +- .../cisco/nxos/plugins/action/bgp.py | 43 +- .../nxos/plugins/action/bgp_address_family.py | 43 +- .../cisco/nxos/plugins/action/bgp_af.py | 43 +- .../cisco/nxos/plugins/action/bgp_global.py | 43 +- .../cisco/nxos/plugins/action/bgp_neighbor.py | 43 +- .../plugins/action/bgp_neighbor_address_family.py | 43 +- .../cisco/nxos/plugins/action/bgp_neighbor_af.py | 43 +- .../cisco/nxos/plugins/action/command.py | 43 +- .../cisco/nxos/plugins/action/config.py | 43 +- .../cisco/nxos/plugins/action/devicealias.py | 43 +- .../cisco/nxos/plugins/action/evpn_global.py | 43 +- .../cisco/nxos/plugins/action/evpn_vni.py | 43 +- .../cisco/nxos/plugins/action/facts.py | 43 +- .../cisco/nxos/plugins/action/feature.py | 43 +- .../cisco/nxos/plugins/action/file_copy.py | 43 +- .../cisco/nxos/plugins/action/gir.py | 43 +- .../nxos/plugins/action/gir_profile_management.py | 43 +- .../cisco/nxos/plugins/action/hostname.py | 43 +- .../cisco/nxos/plugins/action/hsrp.py | 43 +- .../cisco/nxos/plugins/action/hsrp_interfaces.py | 43 +- .../cisco/nxos/plugins/action/igmp.py | 43 +- .../cisco/nxos/plugins/action/igmp_interface.py | 43 +- .../cisco/nxos/plugins/action/igmp_snooping.py | 43 +- .../cisco/nxos/plugins/action/install_os.py | 43 +- .../cisco/nxos/plugins/action/interface.py | 43 +- .../cisco/nxos/plugins/action/interface_ospf.py | 43 +- .../cisco/nxos/plugins/action/interfaces.py | 43 +- .../cisco/nxos/plugins/action/l2_interface.py | 43 +- .../cisco/nxos/plugins/action/l2_interfaces.py | 43 +- .../cisco/nxos/plugins/action/l3_interface.py | 43 +- .../cisco/nxos/plugins/action/l3_interfaces.py | 43 +- .../cisco/nxos/plugins/action/lacp.py | 43 +- .../cisco/nxos/plugins/action/lacp_interfaces.py | 43 +- .../cisco/nxos/plugins/action/lag_interfaces.py | 43 +- .../cisco/nxos/plugins/action/linkagg.py | 43 +- .../cisco/nxos/plugins/action/lldp.py | 43 +- .../cisco/nxos/plugins/action/lldp_global.py | 43 +- .../cisco/nxos/plugins/action/lldp_interfaces.py | 43 +- .../cisco/nxos/plugins/action/logging.py | 43 +- .../cisco/nxos/plugins/action/logging_global.py | 43 +- .../cisco/nxos/plugins/action/ntp.py | 43 +- .../cisco/nxos/plugins/action/ntp_auth.py | 43 +- .../cisco/nxos/plugins/action/ntp_global.py | 43 +- .../cisco/nxos/plugins/action/ntp_options.py | 43 +- .../cisco/nxos/plugins/action/nxapi.py | 43 +- .../cisco/nxos/plugins/action/nxos.py | 43 +- .../cisco/nxos/plugins/action/ospf.py | 43 +- .../cisco/nxos/plugins/action/ospf_interfaces.py | 43 +- .../cisco/nxos/plugins/action/ospf_vrf.py | 43 +- .../cisco/nxos/plugins/action/ospfv2.py | 43 +- .../cisco/nxos/plugins/action/ospfv3.py | 43 +- .../cisco/nxos/plugins/action/overlay_global.py | 43 +- .../cisco/nxos/plugins/action/pim.py | 43 +- .../cisco/nxos/plugins/action/pim_interface.py | 43 +- .../cisco/nxos/plugins/action/pim_rp_address.py | 43 +- .../cisco/nxos/plugins/action/ping.py | 43 +- .../cisco/nxos/plugins/action/prefix_lists.py | 43 +- .../cisco/nxos/plugins/action/reboot.py | 43 +- .../cisco/nxos/plugins/action/rollback.py | 43 +- .../cisco/nxos/plugins/action/route_maps.py | 43 +- .../cisco/nxos/plugins/action/rpm.py | 43 +- .../cisco/nxos/plugins/action/smu.py | 43 +- .../cisco/nxos/plugins/action/snapshot.py | 43 +- .../cisco/nxos/plugins/action/snmp_community.py | 43 +- .../cisco/nxos/plugins/action/snmp_contact.py | 43 +- .../cisco/nxos/plugins/action/snmp_host.py | 43 +- .../cisco/nxos/plugins/action/snmp_location.py | 43 +- .../cisco/nxos/plugins/action/snmp_server.py | 43 +- .../cisco/nxos/plugins/action/snmp_traps.py | 43 +- .../cisco/nxos/plugins/action/snmp_user.py | 43 +- .../cisco/nxos/plugins/action/static_route.py | 43 +- .../cisco/nxos/plugins/action/static_routes.py | 43 +- .../cisco/nxos/plugins/action/system.py | 43 +- .../cisco/nxos/plugins/action/telemetry.py | 43 +- .../cisco/nxos/plugins/action/udld.py | 43 +- .../cisco/nxos/plugins/action/udld_interface.py | 43 +- .../cisco/nxos/plugins/action/user.py | 43 +- .../cisco/nxos/plugins/action/vlan.py | 43 +- .../cisco/nxos/plugins/action/vlans.py | 43 +- .../cisco/nxos/plugins/action/vpc.py | 43 +- .../cisco/nxos/plugins/action/vpc_interface.py | 43 +- .../cisco/nxos/plugins/action/vrf.py | 43 +- .../cisco/nxos/plugins/action/vrf_af.py | 43 +- .../cisco/nxos/plugins/action/vrf_interface.py | 43 +- .../cisco/nxos/plugins/action/vrrp.py | 43 +- .../cisco/nxos/plugins/action/vsan.py | 43 +- .../cisco/nxos/plugins/action/vtp_domain.py | 43 +- .../cisco/nxos/plugins/action/vtp_password.py | 43 +- .../cisco/nxos/plugins/action/vtp_version.py | 43 +- .../cisco/nxos/plugins/action/vxlan_vtep.py | 43 +- .../cisco/nxos/plugins/action/vxlan_vtep_vni.py | 43 +- .../cisco/nxos/plugins/action/zone_zoneset.py | 43 +- .../cisco/nxos/plugins/cliconf/nxos.py | 6 + .../nxos/config/acl_interfaces/acl_interfaces.py | 19 +- .../network/nxos/config/interfaces/interfaces.py | 4 +- .../nxos/config/l2_interfaces/l2_interfaces.py | 2 +- .../nxos/facts/acl_interfaces/acl_interfaces.py | 6 +- .../module_utils/network/nxos/facts/acls/acls.py | 11 +- .../module_utils/network/nxos/facts/legacy/base.py | 67 +- .../nxos/facts/lldp_interfaces/lldp_interfaces.py | 6 +- .../network/nxos/rm_templates/ospfv2.py | 28 - .../network/nxos/utils/telemetry/telemetry.py | 7 +- .../nxos/plugins/modules/nxos_aaa_server_host.py | 5 +- .../nxos/plugins/modules/nxos_acl_interfaces.py | 147 +- .../cisco/nxos/plugins/modules/nxos_acls.py | 76 +- .../nxos/plugins/modules/nxos_bfd_interfaces.py | 48 +- .../plugins/modules/nxos_bgp_address_family.py | 72 +- .../cisco/nxos/plugins/modules/nxos_bgp_global.py | 56 +- .../modules/nxos_bgp_neighbor_address_family.py | 44 +- .../cisco/nxos/plugins/modules/nxos_command.py | 25 +- .../cisco/nxos/plugins/modules/nxos_config.py | 58 +- .../cisco/nxos/plugins/modules/nxos_devicealias.py | 58 +- .../cisco/nxos/plugins/modules/nxos_evpn_vni.py | 8 +- .../cisco/nxos/plugins/modules/nxos_facts.py | 10 +- .../nxos/plugins/modules/nxos_fc_interfaces.py | 98 +- .../plugins/modules/nxos_gir_profile_management.py | 4 +- .../cisco/nxos/plugins/modules/nxos_hostname.py | 1 - .../nxos/plugins/modules/nxos_hsrp_interfaces.py | 37 +- .../nxos/plugins/modules/nxos_igmp_interface.py | 18 +- .../cisco/nxos/plugins/modules/nxos_install_os.py | 7 +- .../cisco/nxos/plugins/modules/nxos_interfaces.py | 62 +- .../nxos/plugins/modules/nxos_l2_interfaces.py | 54 +- .../nxos/plugins/modules/nxos_l3_interfaces.py | 70 +- .../nxos/plugins/modules/nxos_lacp_interfaces.py | 40 +- .../nxos/plugins/modules/nxos_lag_interfaces.py | 40 +- .../nxos/plugins/modules/nxos_lldp_interfaces.py | 30 +- .../cisco/nxos/plugins/modules/nxos_logging.py | 940 -- .../nxos/plugins/modules/nxos_logging_global.py | 4 +- .../cisco/nxos/plugins/modules/nxos_ntp.py | 446 - .../cisco/nxos/plugins/modules/nxos_ntp_auth.py | 336 - .../cisco/nxos/plugins/modules/nxos_ntp_global.py | 44 +- .../cisco/nxos/plugins/modules/nxos_ntp_options.py | 173 - .../nxos/plugins/modules/nxos_ospf_interfaces.py | 197 +- .../cisco/nxos/plugins/modules/nxos_ospfv2.py | 278 +- .../cisco/nxos/plugins/modules/nxos_ospfv3.py | 278 +- .../cisco/nxos/plugins/modules/nxos_route_maps.py | 128 +- .../cisco/nxos/plugins/modules/nxos_snmp_server.py | 90 +- .../nxos/plugins/modules/nxos_static_routes.py | 126 +- .../cisco/nxos/plugins/modules/nxos_system.py | 8 +- .../cisco/nxos/plugins/modules/nxos_telemetry.py | 84 +- .../cisco/nxos/plugins/modules/nxos_user.py | 4 +- .../cisco/nxos/plugins/modules/nxos_vlans.py | 42 +- .../cisco/nxos/plugins/modules/nxos_vrf.py | 46 +- .../cisco/nxos/plugins/modules/nxos_vrf_af.py | 74 +- .../cisco/nxos/plugins/modules/nxos_vsan.py | 62 +- .../nxos/plugins/modules/nxos_zone_zoneset.py | 226 +- .../cisco/nxos/plugins/netconf/nxos.py | 1 - ansible_collections/cisco/nxos/pyproject.toml | 6 +- .../cisco/nxos/test-requirements.txt | 10 +- ansible_collections/cisco/nxos/tests/__init__.py | 0 ansible_collections/cisco/nxos/tests/config.yml | 2 +- .../cisco/nxos/tests/integration/__init__.py | 0 .../cisco/nxos/tests/integration/labs/single.yaml | 241 + .../tests/common/remove_config.yaml | 6 + .../nxos_acl_interfaces/tests/common/rtt.yml | 3 + .../nxos_facts/tests/common/interface_facts.yaml | 62 + .../targets/nxos_file_copy/tests/cli/sanity.yaml | 12 +- .../targets/nxos_logging/defaults/main.yaml | 2 - .../targets/nxos_logging/meta/main.yaml | 3 - .../targets/nxos_logging/tasks/cli.yaml | 31 - .../targets/nxos_logging/tasks/main.yaml | 19 - .../targets/nxos_logging/tasks/nxapi.yaml | 31 - .../targets/nxos_logging/tests/common/basic.yaml | 485 - .../targets/nxos_logging/tests/common/purge.yaml | 111 - .../targets/nxos_ntp/defaults/main.yaml | 2 - .../integration/targets/nxos_ntp/meta/main.yml | 3 - .../integration/targets/nxos_ntp/tasks/cli.yaml | 31 - .../integration/targets/nxos_ntp/tasks/main.yaml | 12 - .../integration/targets/nxos_ntp/tasks/nxapi.yaml | 31 - .../targets/nxos_ntp/tests/common/sanity.yaml | 114 - .../targets/nxos_ntp_auth/defaults/main.yaml | 2 - .../targets/nxos_ntp_auth/meta/main.yml | 3 - .../targets/nxos_ntp_auth/tasks/cli.yaml | 31 - .../targets/nxos_ntp_auth/tasks/main.yaml | 10 - .../targets/nxos_ntp_auth/tasks/nxapi.yaml | 31 - .../targets/nxos_ntp_auth/tests/common/sanity.yaml | 133 - .../targets/nxos_ntp_options/defaults/main.yaml | 2 - .../targets/nxos_ntp_options/meta/main.yml | 3 - .../targets/nxos_ntp_options/tasks/cli.yaml | 31 - .../targets/nxos_ntp_options/tasks/main.yaml | 10 - .../targets/nxos_ntp_options/tasks/nxapi.yaml | 31 - .../nxos_ntp_options/tests/common/sanity.yaml | 99 - .../nxos/tests/integration/test_integration.py | 43 + .../cisco/nxos/tests/sanity/ignore-2.10.txt | 34 - .../cisco/nxos/tests/sanity/ignore-2.11.txt | 34 - .../cisco/nxos/tests/sanity/ignore-2.12.txt | 36 - .../cisco/nxos/tests/sanity/ignore-2.13.txt | 1 - .../cisco/nxos/tests/sanity/ignore-2.18.txt | 1 + .../cisco/nxos/tests/sanity/ignore-2.9.txt | 55 - .../cisco/nxos/tests/unit/compat/__init__.py | 0 .../cisco/nxos/tests/unit/compat/mock.py | 127 - .../cisco/nxos/tests/unit/compat/unittest.py | 41 - .../cisco/nxos/tests/unit/mock/path.py | 4 +- .../cisco/nxos/tests/unit/mock/procenv.py | 5 +- .../tests/unit/modules/network/nxos/test_nxos.py | 15 +- .../network/nxos/test_nxos_acl_interfaces.py | 3 +- .../unit/modules/network/nxos/test_nxos_acls.py | 48 +- .../unit/modules/network/nxos/test_nxos_banner.py | 3 +- .../modules/network/nxos/test_nxos_bfd_global.py | 3 +- .../network/nxos/test_nxos_bfd_interfaces.py | 2 +- .../network/nxos/test_nxos_bgp_address_family.py | 4 +- .../modules/network/nxos/test_nxos_bgp_global.py | 6 +- .../nxos/test_nxos_bgp_neighbor_address_family.py | 4 +- .../network/nxos/test_nxos_bgp_templates.py | 2 +- .../unit/modules/network/nxos/test_nxos_command.py | 3 +- .../unit/modules/network/nxos/test_nxos_config.py | 3 +- .../modules/network/nxos/test_nxos_devicealias.py | 3 +- .../modules/network/nxos/test_nxos_evpn_global.py | 3 +- .../modules/network/nxos/test_nxos_evpn_vni.py | 3 +- .../network/nxos/test_nxos_fc_interfaces.py | 2 +- .../unit/modules/network/nxos/test_nxos_feature.py | 3 +- .../modules/network/nxos/test_nxos_hostname.py | 2 +- .../unit/modules/network/nxos/test_nxos_hsrp.py | 3 +- .../network/nxos/test_nxos_hsrp_interfaces.py | 2 +- .../modules/network/nxos/test_nxos_interfaces.py | 4 +- .../network/nxos/test_nxos_l3_interfaces.py | 2 +- .../network/nxos/test_nxos_lacp_interfaces.py | 2 +- .../network/nxos/test_nxos_lldp_interfaces.py | 3 +- .../network/nxos/test_nxos_logging_global.py | 8 +- .../modules/network/nxos/test_nxos_ntp_global.py | 4 +- .../unit/modules/network/nxos/test_nxos_nxapi.py | 3 +- .../network/nxos/test_nxos_ospf_interfaces.py | 2 +- .../unit/modules/network/nxos/test_nxos_ospfv2.py | 2 +- .../unit/modules/network/nxos/test_nxos_ospfv3.py | 2 +- .../network/nxos/test_nxos_overlay_global.py | 3 +- .../unit/modules/network/nxos/test_nxos_pim.py | 3 +- .../network/nxos/test_nxos_pim_interface.py | 3 +- .../network/nxos/test_nxos_pim_rp_address.py | 3 +- .../unit/modules/network/nxos/test_nxos_ping.py | 3 +- .../modules/network/nxos/test_nxos_prefix_lists.py | 2 +- .../modules/network/nxos/test_nxos_route_maps.py | 2 +- .../modules/network/nxos/test_nxos_snmp_server.py | 23 +- .../network/nxos/test_nxos_static_routes.py | 2 +- .../unit/modules/network/nxos/test_nxos_system.py | 3 +- .../modules/network/nxos/test_nxos_telemetry.py | 149 +- .../unit/modules/network/nxos/test_nxos_user.py | 3 +- .../unit/modules/network/nxos/test_nxos_vlans.py | 3 +- .../unit/modules/network/nxos/test_nxos_vpc.py | 3 +- .../network/nxos/test_nxos_vpc_interface.py | 3 +- .../unit/modules/network/nxos/test_nxos_vrf.py | 3 +- .../unit/modules/network/nxos/test_nxos_vrf_af.py | 3 +- .../unit/modules/network/nxos/test_nxos_vsan.py | 3 +- .../modules/network/nxos/test_nxos_vxlan_vtep.py | 3 +- .../network/nxos/test_nxos_vxlan_vtep_vni.py | 3 +- .../modules/network/nxos/test_nxos_zone_zoneset.py | 3 +- .../cisco/nxos/tests/unit/modules/utils.py | 8 +- ansible_collections/cisco/nxos/tox-ansible.ini | 10 + ansible_collections/cisco/nxos/tox.ini | 31 - 1520 files changed, 46295 insertions(+), 34144 deletions(-) create mode 100644 ansible_collections/cisco/asa/.ansible-lint create mode 100644 ansible_collections/cisco/asa/plugins/action/acls.py create mode 100644 ansible_collections/cisco/asa/plugins/action/command.py create mode 100644 ansible_collections/cisco/asa/plugins/action/config.py create mode 100644 ansible_collections/cisco/asa/plugins/action/facts.py create mode 100644 ansible_collections/cisco/asa/plugins/action/ogs.py create mode 100644 ansible_collections/cisco/asa/tests/config.yml create mode 100644 ansible_collections/cisco/intersight/playbooks/count_vms.yml delete mode 100644 ansible_collections/cisco/ios/.github/workflows/ack.yml create mode 100644 ansible_collections/cisco/ios/.github/workflows/check_label.yml create mode 100644 ansible_collections/cisco/ios/.github/workflows/draft_release.yml delete mode 100644 ansible_collections/cisco/ios/.github/workflows/lint.yml delete mode 100644 ansible_collections/cisco/ios/.github/workflows/push.yml delete mode 100644 ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_module.rst delete mode 100644 ansible_collections/cisco/ios/docs/cisco.ios.ios_ntp_module.rst create mode 100644 ansible_collections/cisco/ios/platform_guide.rst delete mode 100644 ansible_collections/cisco/ios/plugins/action/ntp.py delete mode 100644 ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/__init__.py delete mode 100644 ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/__init__.py delete mode 100644 ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/base.py delete mode 100644 ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/__init__.py delete mode 100644 ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/address_family.py delete mode 100644 ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/neighbors.py delete mode 100644 ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/process.py delete mode 100644 ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/module.py create mode 100644 ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/vlans.py delete mode 100644 ansible_collections/cisco/ios/plugins/modules/ios_bgp.py delete mode 100644 ansible_collections/cisco/ios/plugins/modules/ios_ntp.py create mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/remarks_states.yaml delete mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/defaults/main.yaml delete mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/meta/main.yaml delete mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tasks/cli.yaml delete mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tasks/main.yaml delete mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tests/cli/basic.yaml delete mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/defaults/main.yaml delete mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/meta/main.yml delete mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tasks/cli.yaml delete mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tasks/main.yaml delete mode 100644 ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tests/cli/ntp_configuration.yaml delete mode 100644 ansible_collections/cisco/ios/tests/sanity/ignore-2.10.txt delete mode 100644 ansible_collections/cisco/ios/tests/sanity/ignore-2.11.txt delete mode 100644 ansible_collections/cisco/ios/tests/sanity/ignore-2.12.txt delete mode 100644 ansible_collections/cisco/ios/tests/sanity/ignore-2.13.txt create mode 100644 ansible_collections/cisco/ios/tests/sanity/ignore-2.18.txt delete mode 100644 ansible_collections/cisco/ios/tests/sanity/ignore-2.9.txt delete mode 100644 ansible_collections/cisco/ios/tests/unit/compat/__init__.py delete mode 100644 ansible_collections/cisco/ios/tests/unit/compat/mock.py delete mode 100644 ansible_collections/cisco/ios/tests/unit/compat/unittest.py delete mode 100644 ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp.py delete mode 100644 ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ntp.py create mode 100644 ansible_collections/cisco/ios/tox-ansible.ini delete mode 100644 ansible_collections/cisco/ios/tox.ini create mode 100644 ansible_collections/cisco/iosxr/.ansible-lint create mode 100644 ansible_collections/cisco/iosxr/.flake8 create mode 100644 ansible_collections/cisco/iosxr/.github/CODEOWNERS delete mode 100644 ansible_collections/cisco/iosxr/.github/workflows/ack.yml create mode 100644 ansible_collections/cisco/iosxr/.github/workflows/check_label.yml create mode 100644 ansible_collections/cisco/iosxr/.github/workflows/draft_release.yml delete mode 100644 ansible_collections/cisco/iosxr/.github/workflows/push.yml delete mode 100644 ansible_collections/cisco/iosxr/.zuul.yaml delete mode 100644 ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_logging_module.rst create mode 100644 ansible_collections/cisco/iosxr/platform_guide.rst delete mode 100644 ansible_collections/cisco/iosxr/plugins/modules/iosxr_logging.py delete mode 100644 ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/defaults/main.yaml delete mode 100644 ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/meta/main.yaml delete mode 100644 ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/cli.yaml delete mode 100644 ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/main.yaml delete mode 100644 ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/netconf.yaml delete mode 100644 ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tests/cli/basic.yaml delete mode 100644 ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tests/netconf/basic.yaml delete mode 100644 ansible_collections/cisco/iosxr/tests/sanity/ignore-2.10.txt delete mode 100644 ansible_collections/cisco/iosxr/tests/sanity/ignore-2.11.txt delete mode 100644 ansible_collections/cisco/iosxr/tests/sanity/ignore-2.12.txt delete mode 100644 ansible_collections/cisco/iosxr/tests/sanity/ignore-2.13.txt create mode 100644 ansible_collections/cisco/iosxr/tests/sanity/ignore-2.18.txt delete mode 100644 ansible_collections/cisco/iosxr/tests/sanity/ignore-2.9.txt delete mode 100644 ansible_collections/cisco/iosxr/tests/unit/compat/__init__.py delete mode 100644 ansible_collections/cisco/iosxr/tests/unit/compat/mock.py delete mode 100644 ansible_collections/cisco/iosxr/tests/unit/compat/unittest.py create mode 100644 ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/fixtures/show_cdp create mode 100644 ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/fixtures/show_cdp_neighbors_detail create mode 100644 ansible_collections/cisco/iosxr/tox-ansible.ini delete mode 100644 ansible_collections/cisco/iosxr/tox.ini create mode 100644 ansible_collections/cisco/ise/.DS_Store create mode 100644 ansible_collections/cisco/ise/.vscode/launch.json create mode 100644 ansible_collections/cisco/ise/.vscode/settings.json delete mode 100644 ansible_collections/cisco/ise/Pipfile create mode 100644 ansible_collections/cisco/ise/plugins/.DS_Store create mode 100644 ansible_collections/cisco/ise/plugins/action/active_directories_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ad_groups_info.py delete mode 100644 ansible_collections/cisco/ise/plugins/action/connector_config.py delete mode 100644 ansible_collections/cisco/ise/plugins/action/connector_config_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/custom_attributes.py create mode 100644 ansible_collections/cisco/ise/plugins/action/custom_attributes_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/custom_attributes_rename.py delete mode 100644 ansible_collections/cisco/ise/plugins/action/dictionary_references_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/duo_identity_sync.py create mode 100644 ansible_collections/cisco/ise/plugins/action/duo_identity_sync_cancel_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/duo_identity_sync_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/duo_identity_sync_status.py create mode 100644 ansible_collections/cisco/ise/plugins/action/duo_identitysync_sync_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/duo_mfa.py create mode 100644 ansible_collections/cisco/ise/plugins/action/duo_mfa_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/duo_mfa_testconnection.py create mode 100644 ansible_collections/cisco/ise/plugins/action/endpoints.py create mode 100644 ansible_collections/cisco/ise/plugins/action/endpoints_bulk.py create mode 100644 ansible_collections/cisco/ise/plugins/action/endpoints_bulk_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/endpoints_device_type_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/endpoints_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/endpoints_task.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ipsec.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ipsec_bulk.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ipsec_certificates_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ipsec_delete.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ipsec_delete_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ipsec_disable.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ipsec_disable_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ipsec_enable.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ipsec_enable_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/ipsec_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/px_grid_direct.py create mode 100644 ansible_collections/cisco/ise/plugins/action/px_grid_direct_dictionary_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/px_grid_direct_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync.py create mode 100644 ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/px_grid_direct_test_connector.py create mode 100644 ansible_collections/cisco/ise/plugins/action/reservation.py create mode 100644 ansible_collections/cisco/ise/plugins/action/reservation_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/stop_replication.py create mode 100644 ansible_collections/cisco/ise/plugins/action/stop_replication_info.py delete mode 100644 ansible_collections/cisco/ise/plugins/action/test_connector.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_create.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_delete.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_update.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_vn.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_create.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_delete.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_update.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_vn_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_create.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_delete.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_update.py create mode 100644 ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/upgrade_proceed.py create mode 100644 ansible_collections/cisco/ise/plugins/action/upgrade_proceed_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel.py create mode 100644 ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/upgrade_stage_start.py create mode 100644 ansible_collections/cisco/ise/plugins/action/upgrade_stage_start_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/user_equipment.py create mode 100644 ansible_collections/cisco/ise/plugins/action/user_equipment_bulk.py create mode 100644 ansible_collections/cisco/ise/plugins/action/user_equipment_csv.py create mode 100644 ansible_collections/cisco/ise/plugins/action/user_equipment_imei_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/user_equipment_info.py create mode 100644 ansible_collections/cisco/ise/plugins/action/user_equipment_subscriber_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/active_directories_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ad_groups_info.py delete mode 100644 ansible_collections/cisco/ise/plugins/modules/connector_config.py delete mode 100644 ansible_collections/cisco/ise/plugins/modules/connector_config_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/custom_attributes.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/custom_attributes_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/custom_attributes_rename.py delete mode 100644 ansible_collections/cisco/ise/plugins/modules/dictionary_references_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/duo_identity_sync.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_cancel_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_status.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/duo_identitysync_sync_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/duo_mfa.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/duo_mfa_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/duo_mfa_testconnection.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/endpoints.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/endpoints_bulk.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/endpoints_bulk_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/endpoints_device_type_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/endpoints_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/endpoints_task.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ipsec.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ipsec_bulk.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ipsec_certificates_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ipsec_delete.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ipsec_delete_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ipsec_disable.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ipsec_disable_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ipsec_enable.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ipsec_enable_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/ipsec_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/px_grid_direct.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/px_grid_direct_dictionary_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/px_grid_direct_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/px_grid_direct_test_connector.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/reservation.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/reservation_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/stop_replication.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/stop_replication_info.py delete mode 100644 ansible_collections/cisco/ise/plugins/modules/test_connector.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_create.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_delete.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_update.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_vn.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_create.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_delete.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_update.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_vn_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_create.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_delete.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_update.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/upgrade_proceed.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/upgrade_proceed_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/user_equipment.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/user_equipment_bulk.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/user_equipment_csv.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/user_equipment_imei_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/user_equipment_info.py create mode 100644 ansible_collections/cisco/ise/plugins/modules/user_equipment_subscriber_info.py create mode 100644 ansible_collections/cisco/meraki/tests/sanity/ignore-2.18.txt create mode 100644 ansible_collections/cisco/nxos/.flake8 delete mode 100644 ansible_collections/cisco/nxos/.github/workflows/ack.yml create mode 100644 ansible_collections/cisco/nxos/.github/workflows/check_label.yml create mode 100644 ansible_collections/cisco/nxos/.github/workflows/draft_release.yml create mode 100644 ansible_collections/cisco/nxos/.github/workflows/integration-test.yml delete mode 100644 ansible_collections/cisco/nxos/.github/workflows/push.yml delete mode 100644 ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_logging_module.rst delete mode 100644 ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_auth_module.rst delete mode 100644 ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_module.rst delete mode 100644 ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_options_module.rst create mode 100644 ansible_collections/cisco/nxos/platform_guide.rst delete mode 100644 ansible_collections/cisco/nxos/plugins/modules/nxos_logging.py delete mode 100644 ansible_collections/cisco/nxos/plugins/modules/nxos_ntp.py delete mode 100644 ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_auth.py delete mode 100644 ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_options.py create mode 100644 ansible_collections/cisco/nxos/tests/__init__.py create mode 100644 ansible_collections/cisco/nxos/tests/integration/__init__.py create mode 100644 ansible_collections/cisco/nxos/tests/integration/labs/single.yaml create mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_facts/tests/common/interface_facts.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/defaults/main.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/meta/main.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/cli.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/main.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/nxapi.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tests/common/basic.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tests/common/purge.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/defaults/main.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/meta/main.yml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/cli.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/main.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/nxapi.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tests/common/sanity.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/defaults/main.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/meta/main.yml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/cli.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/main.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/nxapi.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tests/common/sanity.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/defaults/main.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/meta/main.yml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/cli.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/main.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/nxapi.yaml delete mode 100644 ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tests/common/sanity.yaml create mode 100644 ansible_collections/cisco/nxos/tests/integration/test_integration.py delete mode 100644 ansible_collections/cisco/nxos/tests/sanity/ignore-2.10.txt delete mode 100644 ansible_collections/cisco/nxos/tests/sanity/ignore-2.11.txt delete mode 100644 ansible_collections/cisco/nxos/tests/sanity/ignore-2.12.txt delete mode 100644 ansible_collections/cisco/nxos/tests/sanity/ignore-2.13.txt create mode 100644 ansible_collections/cisco/nxos/tests/sanity/ignore-2.18.txt delete mode 100644 ansible_collections/cisco/nxos/tests/sanity/ignore-2.9.txt delete mode 100644 ansible_collections/cisco/nxos/tests/unit/compat/__init__.py delete mode 100644 ansible_collections/cisco/nxos/tests/unit/compat/mock.py delete mode 100644 ansible_collections/cisco/nxos/tests/unit/compat/unittest.py create mode 100644 ansible_collections/cisco/nxos/tox-ansible.ini delete mode 100644 ansible_collections/cisco/nxos/tox.ini (limited to 'ansible_collections/cisco') diff --git a/ansible_collections/cisco/asa/.ansible-lint b/ansible_collections/cisco/asa/.ansible-lint new file mode 100644 index 000000000..8d9bb70b8 --- /dev/null +++ b/ansible_collections/cisco/asa/.ansible-lint @@ -0,0 +1,5 @@ +--- +profile: production + +exclude_paths: + - changelogs/changelog.yaml diff --git a/ansible_collections/cisco/asa/.github/workflows/lint.yml b/ansible_collections/cisco/asa/.github/workflows/lint.yml index 853e4b69c..fbac38cbf 100644 --- a/ansible_collections/cisco/asa/.github/workflows/lint.yml +++ b/ansible_collections/cisco/asa/.github/workflows/lint.yml @@ -8,5 +8,6 @@ jobs: name: Ansible Lint runs-on: ubuntu-latest steps: + - uses: actions/checkout@v4 - name: Run ansible-lint uses: ansible/ansible-lint@main diff --git a/ansible_collections/cisco/asa/.github/workflows/tests.yml b/ansible_collections/cisco/asa/.github/workflows/tests.yml index 0fb4cc0cf..506c33aa0 100644 --- a/ansible_collections/cisco/asa/.github/workflows/tests.yml +++ b/ansible_collections/cisco/asa/.github/workflows/tests.yml @@ -1,5 +1,5 @@ --- -name: test_collection +name: CI concurrency: group: ${{ github.head_ref || github.run_id }} @@ -12,11 +12,10 @@ on: # yamllint disable-line rule:truthy schedule: - cron: '0 0 * * *' - jobs: changelog: uses: ansible-network/github_actions/.github/workflows/changelog.yml@main - if: github.event_name != 'schedule' + if: github.event_name == 'pull_request' sanity: uses: ansible-network/github_actions/.github/workflows/sanity.yml@main unit-galaxy: @@ -28,7 +27,7 @@ jobs: git+https://github.com/ansible-collections/ansible.utils.git git+https://github.com/ansible-collections/ansible.netcommon.git all_green: - if: ${{ always() && (github.event_name != 'schedule') }} + if: ${{ always() }} needs: - changelog - sanity diff --git a/ansible_collections/cisco/asa/.pre-commit-config.yaml b/ansible_collections/cisco/asa/.pre-commit-config.yaml index 77ff23f3d..fe243a843 100644 --- a/ansible_collections/cisco/asa/.pre-commit-config.yaml +++ b/ansible_collections/cisco/asa/.pre-commit-config.yaml @@ -23,7 +23,7 @@ repos: - id: add-trailing-comma - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v3.0.3" + rev: "v4.0.0-alpha.8" hooks: - id: prettier entry: env CI=1 bash -c "prettier --list-different . || ec=$? && prettier --loglevel=error --write . && exit $ec" @@ -34,13 +34,13 @@ repos: - prettier-plugin-toml - repo: https://github.com/PyCQA/isort - rev: 5.12.0 + rev: 5.13.2 hooks: - id: isort name: Sort import statements using isort args: ["--filter-files"] - repo: https://github.com/psf/black - rev: 23.10.1 + rev: 23.12.1 hooks: - id: black diff --git a/ansible_collections/cisco/asa/CHANGELOG.rst b/ansible_collections/cisco/asa/CHANGELOG.rst index 39bdff83c..d7fdfb3e3 100644 --- a/ansible_collections/cisco/asa/CHANGELOG.rst +++ b/ansible_collections/cisco/asa/CHANGELOG.rst @@ -5,6 +5,27 @@ Cisco Asa Collection Release Notes .. contents:: Topics +v5.0.1 +====== + +Bugfixes +-------- + +- Prevents module_defaults from were being incorrectly applied to the platform action, instead of the concerned module. + +v5.0.0 +====== + +Release Summary +--------------- + +Starting from this release, the minimum `ansible-core` version this collection requires is `2.14.0`. The last known version compatible with ansible-core<2.14 is `v4.0.3`. + +Major Changes +------------- + +- Bumping `requires_ansible` to `>=2.14.0`, since previous ansible-core versions are EoL now. + v4.0.3 ====== diff --git a/ansible_collections/cisco/asa/FILES.json b/ansible_collections/cisco/asa/FILES.json index 5d2cc3c89..37b5b3188 100644 --- a/ansible_collections/cisco/asa/FILES.json +++ b/ansible_collections/cisco/asa/FILES.json @@ -8,80 +8,87 @@ "format": 1 }, { - "name": ".github", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": ".ansible-lint", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b47f72e159f93a5ff07ea2534752e0fa977b214e9ac05c667fa83ac13be4e50c", "format": 1 }, { - "name": ".github/workflows", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "README.md", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "469d2028bce417a69822005f81cd8144549ef7391813d27a37b0c94bdce5921d", "format": 1 }, { - "name": ".github/workflows/ack.yml", + "name": ".isort.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24c6fbafaa69e3e3ee696f2cefa5120794b62cef7e870553dddce8b8af0a127c", + "chksum_sha256": "4e11dfc2dddd670a70b23d3c1504e08c2d3175a3b7323d912d94fa40c18d524a", "format": 1 }, { - "name": ".github/workflows/codecoverage.yml", + "name": "docs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "docs/cisco.asa.asa_command_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8bbcae622f5e51798b577df290135e846244399c2a6ccbfedac523b38a8330a3", + "chksum_sha256": "de89e062700396aecebc8688205cf4bb67f6c823f59ade25c8d0941e7f95e80e", "format": 1 }, { - "name": ".github/workflows/lint.yml", + "name": "docs/cisco.asa.asa_config_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5f88713a9a457040f5019604498e2e783aefb40ea70d667b969c213f5758116", + "chksum_sha256": "c19c1548c0df6b695ad7ca78e96e75acfd23f8298502bc4ece7713b9fc036951", "format": 1 }, { - "name": ".github/workflows/push.yml", + "name": "docs/cisco.asa.asa_acls_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab12fa802baf5f9545109b311f6bac5b76ae1a404a60d20a32481d41b06d901c", + "chksum_sha256": "4bf9ceee633d44f4509326f63e3c9f5aa7e21dfe85e1460ee899c4d155e54215", "format": 1 }, { - "name": ".github/workflows/release.yml", + "name": "docs/cisco.asa.asa_ogs_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9b7dba505905600bbb9f0d8e9956b7cc20f80edfa742dfdae9395542f417aa1", + "chksum_sha256": "2187a61050ddfc69156df4780558b2f2fca740ebb5e1a17bf197ba220362e2f8", "format": 1 }, { - "name": ".github/workflows/tests.yml", + "name": "docs/cisco.asa.asa_facts_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4f91a01c164850068d354337e1e18eb370fa87ed19023526987de3e79a5f6ede", + "chksum_sha256": "54782ce3a5835e74bc09a4ec6fd3bd833230f10485bac2d7d1c374676192b925", "format": 1 }, { - "name": ".github/CODEOWNERS", + "name": "docs/cisco.asa.asa_cliconf.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ad972424785be2caafac8900de928fb6dee9fdd793c66da9439f19ec031b72d6", "format": 1 }, { - "name": ".github/dependabot.yml", + "name": "CHANGELOG.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "11ceee3c57116e9fd08bc423414b1095ff002aa012d6fb325b1a7e24d7e28461", + "chksum_sha256": "8cba1f82f03d027e6835a30731a1827a527196c036d170fed3e8f57394936ca2", "format": 1 }, { - "name": ".github/release-drafter.yml", + "name": "codecov.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", + "chksum_sha256": "4aa7e485dd4db6f8a55b046088c745def2b3145d9499ccda4e9a3336467dcea2", "format": 1 }, { @@ -109,7 +116,7 @@ "name": "changelogs/changelog.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29d60ece077d15d48396df191a66424227181af47ee96ee8857f0000223ab6a3", + "chksum_sha256": "888e07188798b19da3e154bbdf0993c74875dbd44e77082cec9bcb6824eb5bbd", "format": 1 }, { @@ -120,1774 +127,1816 @@ "format": 1 }, { - "name": "docs", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "docs/cisco.asa.asa_acls_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4bf9ceee633d44f4509326f63e3c9f5aa7e21dfe85e1460ee899c4d155e54215", - "format": 1 - }, - { - "name": "docs/cisco.asa.asa_cliconf.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ad972424785be2caafac8900de928fb6dee9fdd793c66da9439f19ec031b72d6", - "format": 1 - }, - { - "name": "docs/cisco.asa.asa_command_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "de89e062700396aecebc8688205cf4bb67f6c823f59ade25c8d0941e7f95e80e", - "format": 1 - }, - { - "name": "docs/cisco.asa.asa_config_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cc3c3963268c8bc964ffefdc2d18bd767f74fdbddbddda33af421d8e9e6e41a0", - "format": 1 - }, - { - "name": "docs/cisco.asa.asa_facts_module.rst", + "name": "tox.ini", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54782ce3a5835e74bc09a4ec6fd3bd833230f10485bac2d7d1c374676192b925", + "chksum_sha256": "c3d0045e391c8743eef92c7f130b1d800d7bfc38952a8537d13c7401a8f45e11", "format": 1 }, { - "name": "docs/cisco.asa.asa_ogs_module.rst", + "name": "requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2187a61050ddfc69156df4780558b2f2fca740ebb5e1a17bf197ba220362e2f8", + "chksum_sha256": "883b106f13b0c6536f55619685ddca25968b4167dedb12e08fa37c93f4c63b25", "format": 1 }, { - "name": "meta", + "name": "tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "meta/runtime.yml", + "name": "tests/config.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "483de672a6e528a7f5f2cd50f5d8d6a650b29e9ed55d72b0cb0965742286facb", + "chksum_sha256": "4129945061440c8d8c281590b8054b194f5958833c722aa40e878b09038c380e", "format": 1 }, { - "name": "plugins", + "name": "tests/sanity", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/sanity/ignore-2.10.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8000e45c60499f99ceece9b4c2e153a0b50d02906850dcfc758d08c42b9ac066", "format": 1 }, { - "name": "plugins/action/__init__.py", + "name": "tests/sanity/ignore-2.9.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8000e45c60499f99ceece9b4c2e153a0b50d02906850dcfc758d08c42b9ac066", "format": 1 }, { - "name": "plugins/action/asa.py", + "name": "tests/sanity/ignore-2.11.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b92aa8d78762e91888d71583077ff00c127ebcde8551b94e6b96e495943157c", + "chksum_sha256": "a726fa26f4d91f96be9d8d98ab93c32b82bc16a69f9ab116ddeee2c042cbe4b1", "format": 1 }, { - "name": "plugins/cliconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/sanity/ignore-2.12.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5e57cb2fa7cd31227fcf1fd7085c7213f560ce12895b80211aeba768ec9de041", "format": 1 }, { - "name": "plugins/cliconf/__init__.py", + "name": "tests/sanity/ignore-2.16.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9a01d39f278abada36c8f698d56c3a0c17efdf85178ceba34c1dc3c523679b9d", "format": 1 }, { - "name": "plugins/cliconf/asa.py", + "name": "tests/sanity/ignore-2.17.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dda3e968fc69abbddc6f0742420d8b0e11e2d44358a20239025a6f54ebc4f41c", + "chksum_sha256": "9a01d39f278abada36c8f698d56c3a0c17efdf85178ceba34c1dc3c523679b9d", "format": 1 }, { - "name": "plugins/doc_fragments", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/sanity/ignore-2.13.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9a01d39f278abada36c8f698d56c3a0c17efdf85178ceba34c1dc3c523679b9d", "format": 1 }, { - "name": "plugins/doc_fragments/__init__.py", + "name": "tests/sanity/ignore-2.14.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9a01d39f278abada36c8f698d56c3a0c17efdf85178ceba34c1dc3c523679b9d", "format": 1 }, { - "name": "plugins/doc_fragments/asa.py", + "name": "tests/sanity/ignore-2.15.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "130cf43f0307ebbc4bc121d6b0616af8895c602bc9bc3e2abd0341fd10a49500", + "chksum_sha256": "9a01d39f278abada36c8f698d56c3a0c17efdf85178ceba34c1dc3c523679b9d", "format": 1 }, { - "name": "plugins/module_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/.gitignore", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600", "format": 1 }, { - "name": "plugins/module_utils/network", + "name": "tests/integration", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa", + "name": "tests/integration/targets", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/argspec", + "name": "tests/integration/targets/asa_facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/argspec/acls", + "name": "tests/integration/targets/asa_facts/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/argspec/acls/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/module_utils/network/asa/argspec/acls/acls.py", + "name": "tests/integration/targets/asa_facts/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fcae6ce706327a09b0ab8b82c91a55186f9974e5a0e190a5188c49bcc8cb93e7", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "plugins/module_utils/network/asa/argspec/facts", + "name": "tests/integration/targets/asa_facts/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/argspec/facts/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/module_utils/network/asa/argspec/facts/facts.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "58646002557f192f15baf87346550ea1a6b37b36596b47bc66a1465540e26e01", - "format": 1 - }, - { - "name": "plugins/module_utils/network/asa/argspec/ogs", + "name": "tests/integration/targets/asa_facts/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/argspec/ogs/__init__.py", + "name": "tests/integration/targets/asa_facts/tests/cli/invalid_subset.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "2667b18d98a0879804b84662b77a1337b2d5b13e6eb8dfa4ebcae52f1547f713", "format": 1 }, { - "name": "plugins/module_utils/network/asa/argspec/ogs/ogs.py", + "name": "tests/integration/targets/asa_facts/tests/cli/default_facts.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d0487f754e8a1b8968ec7cda2bab9849ed0a920dfc9da1d77930c821b613bdc", + "chksum_sha256": "5bda0a98b84f8436c2a3d5ad6f22d3d63a5ed61e8173793e0d0f9cbc78c8c376", "format": 1 }, { - "name": "plugins/module_utils/network/asa/argspec/__init__.py", + "name": "tests/integration/targets/asa_facts/tests/cli/all_facts.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "90f62bf5f42692f354534580d39774a8b65e1194b6fa268e1a81e2083c39b7e8", "format": 1 }, { - "name": "plugins/module_utils/network/asa/config", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_facts/tests/cli/not_hardware.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0733ddb2fcf5a9e2d272f413b41df5d537db53231e049c10497a282e45f2885c", "format": 1 }, { - "name": "plugins/module_utils/network/asa/config/acls", + "name": "tests/integration/targets/asa_facts/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/config/acls/__init__.py", + "name": "tests/integration/targets/asa_facts/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ba31c87031318be43a61d696eab1ba755270c889cd5ae5dd78effad49953342c", "format": 1 }, { - "name": "plugins/module_utils/network/asa/config/acls/acls.py", + "name": "tests/integration/targets/asa_facts/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54d4f42507c10b4b994457008be4c8377e78ea71f719f1a08c8a8fe39793ba1d", + "chksum_sha256": "615d4358df331e4239442a5b6656390598bf4e857bd6acd1bad18cee0542e6c2", "format": 1 }, { - "name": "plugins/module_utils/network/asa/config/ogs", + "name": "tests/integration/targets/asa_config", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/config/ogs/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/module_utils/network/asa/config/ogs/ogs.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fff92969cf78d6efb283bec90fcdf347f34c63011f01e97a06eeafce6bb6aea3", + "name": "tests/integration/targets/asa_config/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/config/__init__.py", + "name": "tests/integration/targets/asa_config/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts", + "name": "tests/integration/targets/asa_config/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts/acls", + "name": "tests/integration/targets/asa_config/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts/acls/__init__.py", + "name": "tests/integration/targets/asa_config/tests/cli/toplevel.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c3ce7a4e25b93db51b50f5025d899b6e84319439679cfe420ed2034ec9656d3c", "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts/acls/acls.py", + "name": "tests/integration/targets/asa_config/tests/cli/backup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b7289bcc81ad8747f031c4deb4c888e8eabed74ce40b5e0930d6c7e199fd8325", + "chksum_sha256": "b9a3f2fd164079dba1ce9b9d7c54f229b882c3d0bfd3adca82371c365383c89e", "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts/legacy", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/module_utils/network/asa/facts/legacy/__init__.py", + "name": "tests/integration/targets/asa_config/tests/cli/sublevel_strict.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "1ea488e47a54ebbc99e07ef5fb149f267e1c90fb1a3efb47c596f4ba9b1988e8", "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts/legacy/base.py", + "name": "tests/integration/targets/asa_config/tests/cli/save_when.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1d90560b4d39f8e0adbe73753790528ba39dbe4b7edc70d8089706da1a84823e", + "chksum_sha256": "3b5c27c229aa6cad17c276c37fdfdcd6599921f9cfe5872cb4b5ce6e5b9ae64f", "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts/ogs", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_config/tests/cli/toplevel_after.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0d5ab0be030639871c9d7d686ade4cafae0c8459eb0216579659aa0ea597ec49", "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts/ogs/__init__.py", + "name": "tests/integration/targets/asa_config/tests/cli/more_system.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "7f0f4407ef0031cc4f52d2df23780638286bbd7efcf2de58d5beedfc42e85548", "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts/ogs/ogs.py", + "name": "tests/integration/targets/asa_config/tests/cli/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4889d0ef1f24d9aebaf0653e16669f19277989efb52ee0042f49fcd5cd903162", + "chksum_sha256": "64c12ec0001e3a74b2eb4544ddfc7b6fd9b47120613675c836dceede1efecd14", "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts/__init__.py", + "name": "tests/integration/targets/asa_config/tests/cli/toplevel_before.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9811b1ef10b4e55b09414219c3ee8eaa915ef4927fd52c6cbc266d052576475d", "format": 1 }, { - "name": "plugins/module_utils/network/asa/facts/facts.py", + "name": "tests/integration/targets/asa_config/tests/cli/sublevel.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "974b74159f6d3e59e5a56f8677c26e470860eae57ecb53c91c3e5cefe552df91", + "chksum_sha256": "153e3da671217a483d8e6b8c3d6d10873164a3faa9f6af410125cba547e44027", "format": 1 }, { - "name": "plugins/module_utils/network/asa/providers", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_config/tests/cli/sublevel_block.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "88b1cda079ba825b4c9d70fb3bfef738d6c02b4a75afc6aca262baf1bbab004c", "format": 1 }, { - "name": "plugins/module_utils/network/asa/providers/__init__.py", + "name": "tests/integration/targets/asa_config/tests/cli/sublevel_strict_mul_parents.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ea1fe24ae755b8040528bee28a832a6a87a1be74bd5d74695f84040de83d161b", "format": 1 }, { - "name": "plugins/module_utils/network/asa/providers/module.py", + "name": "tests/integration/targets/asa_config/tests/cli/force.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b87ca2036255d1dcd9080d73f0997df1a19af0fa9466f84e3a7eef8a803de9a", + "chksum_sha256": "3a84229b96d4ab9bbabfa9dfc4045008a0476b2cd2dc9fd8ef565dcbaebd1b91", "format": 1 }, { - "name": "plugins/module_utils/network/asa/providers/providers.py", + "name": "tests/integration/targets/asa_config/tests/cli/defaults.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d12b31ea6902b70db0eb9e71564b586d4e62b90655345669eb372f1f3f9c9cc", + "chksum_sha256": "380fa6f2c2dd6dd83478737e5e6752ef011256e76292d422c01a9e324c4810b9", "format": 1 }, { - "name": "plugins/module_utils/network/asa/rm_templates", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_config/tests/cli/sublevel_exact.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2a8ee340d192f59f19bafb617a8138e3e1c6b1b4962b66a2c93b9e5c940f7245", "format": 1 }, { - "name": "plugins/module_utils/network/asa/rm_templates/acls.py", + "name": "tests/integration/targets/asa_config/tests/cli/removal_error.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f244c13a86b80d08dae36977a2c7344baf8913b00df67128fc0caf4c7eb81865", + "chksum_sha256": "a25a6865359950d61ae00f6bdd47fd4f952521ca0525bcf863741618cf23b2ca", "format": 1 }, { - "name": "plugins/module_utils/network/asa/rm_templates/ogs.py", + "name": "tests/integration/targets/asa_config/tests/cli/toplevel_nonidempotent.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff869d21e976eeeef522b52b44df1c276e97dbb90cee0aa13a9eedc42570ae0b", + "chksum_sha256": "cdbbf917190b6c099d6205a64342c7dcd91ed499f2a81e024d4b28e27f7b53bf", "format": 1 }, { - "name": "plugins/module_utils/network/asa/utils", + "name": "tests/integration/targets/asa_config/tests/redirection", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/utils/__init__.py", + "name": "tests/integration/targets/asa_config/tests/redirection/shortname.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "6dbd8ee31865bbe879cb1a8b35b25bd529a84f8820525a0388a38ba147a66f66", "format": 1 }, { - "name": "plugins/module_utils/network/asa/utils/utils.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "869e911f1d710075554251977a255d09e8054cecce9ba0910f1b52027fc81c2f", + "name": "tests/integration/targets/asa_config/templates", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/integration/targets/asa_config/templates/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/asa/asa.py", + "name": "tests/integration/targets/asa_config/templates/defaults/config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e924eeba5d9c9489c645c7bea52c1ef6ebcb0cb22c70746b78fd25f2fd385a85", + "chksum_sha256": "fb99eb6895703bb60ee1260b4fda100bc0715b494b276bd30af5f86140e3636c", "format": 1 }, { - "name": "plugins/module_utils/__init__.py", + "name": "tests/integration/targets/asa_config/templates/basic", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/asa_config/templates/basic/config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "65308b2b6c691f26581d2c167f0bee0c6175d39279ec8578bb86ca795d7de6fb", "format": 1 }, { - "name": "plugins/modules", + "name": "tests/integration/targets/asa_config/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/modules/__init__.py", + "name": "tests/integration/targets/asa_config/tasks/redirection.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "090d83ccf27d81d1b7d2baace335d2ff9082f7cd8f79b6958daefdc33b8b17e3", "format": 1 }, { - "name": "plugins/modules/asa_acls.py", + "name": "tests/integration/targets/asa_config/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b56a38b92596b7d22ebc6bed87c1587a7732f4a3d7680e274d0afa3553067490", + "chksum_sha256": "56c0833e7848214f8dcfeffcd6d4d37828d80f9366ceef5eb25c61b0228979c1", "format": 1 }, { - "name": "plugins/modules/asa_command.py", + "name": "tests/integration/targets/asa_config/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9fbb4c90a18d3945dfd710c5dbd17f8b81780528e2a9bb8fe3c6136acc76a907", + "chksum_sha256": "4c98b618972ade76b972540d358cfee5e45ec0501c17df5120227fddd0ff3a83", "format": 1 }, { - "name": "plugins/modules/asa_config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5210224a3e633f4611401d71d0bb9699827647d3900547ed4f9bb0a27e099640", + "name": "tests/integration/targets/asa_smoke", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/modules/asa_facts.py", + "name": "tests/integration/targets/asa_smoke/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/asa_smoke/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "17fc0b752d583d54f38f878f8122a7fe8db0319b7fbee1519577b588d4034b6c", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "plugins/modules/asa_ogs.py", + "name": "tests/integration/targets/asa_smoke/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/asa_smoke/tests/caching.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "278c499570e2f0cf5a2c6a48929e9c40530e00ab0ecc4945689858e689808119", + "chksum_sha256": "4a956e5bd4218f18bd151bb253589e06d96f0ca012afeeb815a77f6213148945", "format": 1 }, { - "name": "plugins/terminal", + "name": "tests/integration/targets/asa_smoke/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/terminal/__init__.py", + "name": "tests/integration/targets/asa_smoke/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ba31c87031318be43a61d696eab1ba755270c889cd5ae5dd78effad49953342c", "format": 1 }, { - "name": "plugins/terminal/asa.py", + "name": "tests/integration/targets/asa_smoke/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b24a952d8c6d070d4e29c7a6a58d6bc3c0f17741df33ad56b213b87372854f1", + "chksum_sha256": "835db3bc2ab92dd760d6730f09922b1e5b90395db7d11c7e374c0ba09f78daf7", "format": 1 }, { - "name": "tests", + "name": "tests/integration/targets/asa_command", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration", + "name": "tests/integration/targets/asa_command/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_command/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/asa_acls", + "name": "tests/integration/targets/asa_command/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_acls/defaults", + "name": "tests/integration/targets/asa_command/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_acls/defaults/main.yaml", + "name": "tests/integration/targets/asa_command/tests/cli/bad_operator.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "05d50d802310ba9d35f203b94bcd61bcad7f1a6cb06b678f8c95d4a56fd12c64", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_command/tests/cli/timeout.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1fd92e197c788c603c8f4d8f4641d4fd93dd0484f10a1ed0402e54ff526f8080", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/meta/main.yaml", + "name": "tests/integration/targets/asa_command/tests/cli/output.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "e3f0e7ba5086de752b9a87fcac7187b27960487ef1264ed6eb82933ee5560fc9", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tasks", + "name": "tests/integration/targets/asa_command/tests/cli/contains.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "03fe833b91682e8d58be13ac1e75c06dc58430cfdc4db46b55a1204e34352d60", + "format": 1 + }, + { + "name": "tests/integration/targets/asa_command/tests/cli/invalid.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "854f342de74002bcae25bc676898bac7c44dccbcb17680ee98ff7d105cccef80", + "format": 1 + }, + { + "name": "tests/integration/targets/asa_command/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tasks/cli.yaml", + "name": "tests/integration/targets/asa_command/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a22906fff9c3194905ad30497e247fa66145b848ec502e050b17332bd3cb148c", + "chksum_sha256": "ba31c87031318be43a61d696eab1ba755270c889cd5ae5dd78effad49953342c", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tasks/main.yaml", + "name": "tests/integration/targets/asa_command/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba31c87031318be43a61d696eab1ba755270c889cd5ae5dd78effad49953342c", + "chksum_sha256": "4c98b618972ade76b972540d358cfee5e45ec0501c17df5120227fddd0ff3a83", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests", + "name": "tests/integration/targets/asa_ogs", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli", + "name": "tests/integration/targets/asa_ogs/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/asa_ogs/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a3f566b6a9c72ca243265852b24e9d5a01f4b30b68058134001ecc88b75c00f3", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "84d196a881a4bc595bc580973d383ec06e46907bdb2188a786d1e080a9729199", + "name": "tests/integration/targets/asa_ogs/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/_populate_network_og.yaml", + "name": "tests/integration/targets/asa_ogs/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82201b0b674b40da9d8f1df8d332a5b0a92453962aa5d995398b61d271d60819", + "chksum_sha256": "1418941753a214f960e5772742927306c42e64decf1f0cc4b7445167801ac377", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4cf464b3bd8b5375ce936a39c61b4778d28ea9c92c1fc32669149d5dbcb1168e", + "name": "tests/integration/targets/asa_ogs/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/_remove_og_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "386c512bf4a392dfcd2c508a47a29ec7c45729775e0e209c76de3e5095eef7a3", + "name": "tests/integration/targets/asa_ogs/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/deleted.yaml", + "name": "tests/integration/targets/asa_ogs/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eee00a3f750a8b6a6faf31771d210cf6b69745511007de23c4506728d18c1033", + "chksum_sha256": "2a00f9c6f94bdf5e1f2dc3431cab004b36946ca4baee07cece978f42254f2806", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/asa_ogs/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b8428ddd338848c6456cd8c991af2ee7dac84d296244187e99086166e552fac7", + "chksum_sha256": "b46fa5bf7986ea33e69d718395dcd529756fae19695d858bb5f2cfddb69acf32", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/gathered.yaml", + "name": "tests/integration/targets/asa_ogs/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "35bd267dd0c46ac2d87aba919a0d375caf5dbdd8202d58fc07c9e13a63fe6fea", + "chksum_sha256": "abad4da95ec7d092272595de5569c28efef79203ef5de89e9b6455df5d0702ed", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/merged.yaml", + "name": "tests/integration/targets/asa_ogs/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9601c55b51df1f3e8883106d1253fba4a9126420350a45a75d3486802533ec94", + "chksum_sha256": "afe118ea3be25d57e9ab26348bdd52bc4b840490a85f11b9f79563a92eb51834", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/overridden.yaml", + "name": "tests/integration/targets/asa_ogs/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dbf4e1e8f6ccffbb68cd5b42c3012ffcd8a91f4af94bc045bc73b82907c79f39", + "chksum_sha256": "e775a90f35bf1d02c36f75947efd359595085f0b8d7cda9e70b295a064cb0840", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/parsed.yaml", + "name": "tests/integration/targets/asa_ogs/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d30d81ec523819eb2f59f34323392b89b8fa243485bcf1ce627a9d537e80adc", + "chksum_sha256": "c12d15a33e441f5b5a1462c660d899ed33f258f437e81f1cf7954c11e50bed73", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/rendered.yaml", + "name": "tests/integration/targets/asa_ogs/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ee80f2ddb0cd38198407d0499e9af0f4f6a4240e5e1dcdf0bc4cf73f907d040f", + "chksum_sha256": "6bdc390ed516bdb772e8b3e4e9498bb9f8e48c7a023d08e919809e66e62dd979", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/replaced.yaml", + "name": "tests/integration/targets/asa_ogs/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "70fac1dc646c612f07d014d12796fe67e2799f711dca91d18761dd0a2aceef9f", + "chksum_sha256": "f149bbc1ec48feedc896079f15994dd6a5175514dc026e7d12fa417b88d48728", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/tests/cli/rtt.yaml", + "name": "tests/integration/targets/asa_ogs/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7c3c0039b62a050d223a0324c538214989cdfb4ea11a95807519a980f157b0a", + "chksum_sha256": "b902fb274a202ee8efbbe72f3a824a7b390d585235f3e5d9ec3a48682be07a3a", "format": 1 }, { - "name": "tests/integration/targets/asa_acls/vars", + "name": "tests/integration/targets/asa_ogs/tests/cli/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a7f127a390e99667637b87bd4e9297e6d5cafd88d873587ae03cf88f88ec5288", + "format": 1 + }, + { + "name": "tests/integration/targets/asa_ogs/tests/cli/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0ab9e8d1c4ab5c6c8cff5dbcbd6de19807bc8a736ec05cac65a7358f3d919b1e", + "format": 1 + }, + { + "name": "tests/integration/targets/asa_ogs/tests/cli/_populate_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2ef178de83b73bbcbb57eec0a53bf1916400afe2a306df42e7421fb7bd1b49a4", + "format": 1 + }, + { + "name": "tests/integration/targets/asa_ogs/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_acls/vars/main.yaml", + "name": "tests/integration/targets/asa_ogs/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1d217a7fa8decd498e4dd9c715bfaf8d560a734eded627b20dbc09cc7c7b0151", + "chksum_sha256": "ba31c87031318be43a61d696eab1ba755270c889cd5ae5dd78effad49953342c", "format": 1 }, { - "name": "tests/integration/targets/asa_command", + "name": "tests/integration/targets/asa_ogs/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7c0ac0f39eb8cbe127ea8c3f461dbbe9ebbc956b1bc3040ef6e4a56564ce4d30", + "format": 1 + }, + { + "name": "tests/integration/targets/asa_acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_command/defaults", + "name": "tests/integration/targets/asa_acls/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_command/defaults/main.yaml", + "name": "tests/integration/targets/asa_acls/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/asa_command/tasks", + "name": "tests/integration/targets/asa_acls/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_command/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4c98b618972ade76b972540d358cfee5e45ec0501c17df5120227fddd0ff3a83", - "format": 1 - }, - { - "name": "tests/integration/targets/asa_command/tasks/main.yaml", + "name": "tests/integration/targets/asa_acls/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba31c87031318be43a61d696eab1ba755270c889cd5ae5dd78effad49953342c", + "chksum_sha256": "1d217a7fa8decd498e4dd9c715bfaf8d560a734eded627b20dbc09cc7c7b0151", "format": 1 }, { - "name": "tests/integration/targets/asa_command/tests", + "name": "tests/integration/targets/asa_acls/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_command/tests/cli", + "name": "tests/integration/targets/asa_acls/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_command/tests/cli/bad_operator.yaml", + "name": "tests/integration/targets/asa_acls/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05d50d802310ba9d35f203b94bcd61bcad7f1a6cb06b678f8c95d4a56fd12c64", + "chksum_sha256": "4cf464b3bd8b5375ce936a39c61b4778d28ea9c92c1fc32669149d5dbcb1168e", "format": 1 }, { - "name": "tests/integration/targets/asa_command/tests/cli/contains.yaml", + "name": "tests/integration/targets/asa_acls/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "03fe833b91682e8d58be13ac1e75c06dc58430cfdc4db46b55a1204e34352d60", + "chksum_sha256": "eee00a3f750a8b6a6faf31771d210cf6b69745511007de23c4506728d18c1033", "format": 1 }, { - "name": "tests/integration/targets/asa_command/tests/cli/invalid.yaml", + "name": "tests/integration/targets/asa_acls/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "854f342de74002bcae25bc676898bac7c44dccbcb17680ee98ff7d105cccef80", + "chksum_sha256": "b8428ddd338848c6456cd8c991af2ee7dac84d296244187e99086166e552fac7", "format": 1 }, { - "name": "tests/integration/targets/asa_command/tests/cli/output.yaml", + "name": "tests/integration/targets/asa_acls/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3f0e7ba5086de752b9a87fcac7187b27960487ef1264ed6eb82933ee5560fc9", + "chksum_sha256": "dbf4e1e8f6ccffbb68cd5b42c3012ffcd8a91f4af94bc045bc73b82907c79f39", "format": 1 }, { - "name": "tests/integration/targets/asa_command/tests/cli/timeout.yaml", + "name": "tests/integration/targets/asa_acls/tests/cli/_remove_og_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1fd92e197c788c603c8f4d8f4641d4fd93dd0484f10a1ed0402e54ff526f8080", - "format": 1 - }, - { - "name": "tests/integration/targets/asa_config", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "386c512bf4a392dfcd2c508a47a29ec7c45729775e0e209c76de3e5095eef7a3", "format": 1 }, { - "name": "tests/integration/targets/asa_config/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_acls/tests/cli/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "35bd267dd0c46ac2d87aba919a0d375caf5dbdd8202d58fc07c9e13a63fe6fea", "format": 1 }, { - "name": "tests/integration/targets/asa_config/defaults/main.yaml", + "name": "tests/integration/targets/asa_acls/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "4d30d81ec523819eb2f59f34323392b89b8fa243485bcf1ce627a9d537e80adc", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_acls/tests/cli/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "70fac1dc646c612f07d014d12796fe67e2799f711dca91d18761dd0a2aceef9f", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tasks/cli.yaml", + "name": "tests/integration/targets/asa_acls/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c98b618972ade76b972540d358cfee5e45ec0501c17df5120227fddd0ff3a83", + "chksum_sha256": "9601c55b51df1f3e8883106d1253fba4a9126420350a45a75d3486802533ec94", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tasks/main.yaml", + "name": "tests/integration/targets/asa_acls/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "56c0833e7848214f8dcfeffcd6d4d37828d80f9366ceef5eb25c61b0228979c1", + "chksum_sha256": "a3f566b6a9c72ca243265852b24e9d5a01f4b30b68058134001ecc88b75c00f3", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tasks/redirection.yaml", + "name": "tests/integration/targets/asa_acls/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "090d83ccf27d81d1b7d2baace335d2ff9082f7cd8f79b6958daefdc33b8b17e3", + "chksum_sha256": "f7c3c0039b62a050d223a0324c538214989cdfb4ea11a95807519a980f157b0a", "format": 1 }, { - "name": "tests/integration/targets/asa_config/templates", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_acls/tests/cli/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ee80f2ddb0cd38198407d0499e9af0f4f6a4240e5e1dcdf0bc4cf73f907d040f", "format": 1 }, { - "name": "tests/integration/targets/asa_config/templates/basic", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_acls/tests/cli/_populate_network_og.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "82201b0b674b40da9d8f1df8d332a5b0a92453962aa5d995398b61d271d60819", "format": 1 }, { - "name": "tests/integration/targets/asa_config/templates/basic/config.j2", + "name": "tests/integration/targets/asa_acls/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65308b2b6c691f26581d2c167f0bee0c6175d39279ec8578bb86ca795d7de6fb", + "chksum_sha256": "84d196a881a4bc595bc580973d383ec06e46907bdb2188a786d1e080a9729199", "format": 1 }, { - "name": "tests/integration/targets/asa_config/templates/defaults", + "name": "tests/integration/targets/asa_acls/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_config/templates/defaults/config.j2", + "name": "tests/integration/targets/asa_acls/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fb99eb6895703bb60ee1260b4fda100bc0715b494b276bd30af5f86140e3636c", + "chksum_sha256": "ba31c87031318be43a61d696eab1ba755270c889cd5ae5dd78effad49953342c", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/asa_acls/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a22906fff9c3194905ad30497e247fa66145b848ec502e050b17332bd3cb148c", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli", + "name": "tests/integration/targets/asa_acls/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/backup.yaml", + "name": "tests/integration/targets/asa_acls/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b9a3f2fd164079dba1ce9b9d7c54f229b882c3d0bfd3adca82371c365383c89e", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/basic.yaml", + "name": "tests/integration/target-prefixes.network", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64c12ec0001e3a74b2eb4544ddfc7b6fd9b47120613675c836dceede1efecd14", + "chksum_sha256": "14f51b782822dec130f35894d08367652be7b29aa19102314e5f049ddc307445", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/defaults.yaml", + "name": "tests/integration/network-integration.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "380fa6f2c2dd6dd83478737e5e6752ef011256e76292d422c01a9e324c4810b9", + "chksum_sha256": "d67b11263a8f50b30bf43c7c2b4bdd8dc4f173f0b5dd22761311360dfbd56a1d", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/force.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3a84229b96d4ab9bbabfa9dfc4045008a0476b2cd2dc9fd8ef565dcbaebd1b91", + "name": "tests/unit", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/more_system.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7f0f4407ef0031cc4f52d2df23780638286bbd7efcf2de58d5beedfc42e85548", + "name": "tests/unit/compat", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/removal_error.yaml", + "name": "tests/unit/compat/mock.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a25a6865359950d61ae00f6bdd47fd4f952521ca0525bcf863741618cf23b2ca", + "chksum_sha256": "b91b074a0bb9cfda8560f02aa3cefe0bfaae9b045f8386597bfe342f1e5a0717", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/save_when.yaml", + "name": "tests/unit/compat/unittest.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b5c27c229aa6cad17c276c37fdfdcd6599921f9cfe5872cb4b5ce6e5b9ae64f", + "chksum_sha256": "727203a3846be41893b78a4b77852a1658925e936fb19539551958a5d8e8fb81", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/sublevel.yaml", + "name": "tests/unit/compat/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "153e3da671217a483d8e6b8c3d6d10873164a3faa9f6af410125cba547e44027", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/sublevel_block.yaml", + "name": "tests/unit/requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "88b1cda079ba825b4c9d70fb3bfef738d6c02b4a75afc6aca262baf1bbab004c", + "chksum_sha256": "49ba996dc4735c3463e9af561344346dfae14bcc1a68096ce78364b377f0df1f", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/sublevel_exact.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2a8ee340d192f59f19bafb617a8138e3e1c6b1b4962b66a2c93b9e5c940f7245", + "name": "tests/unit/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/sublevel_strict.yaml", + "name": "tests/unit/modules/conftest.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ea488e47a54ebbc99e07ef5fb149f267e1c90fb1a3efb47c596f4ba9b1988e8", + "chksum_sha256": "e0ae70fa7c2a5e56d7f02a47c3602398cff60c8eb021772ac59a76df2a234048", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/sublevel_strict_mul_parents.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ea1fe24ae755b8040528bee28a832a6a87a1be74bd5d74695f84040de83d161b", + "name": "tests/unit/modules/network", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/toplevel.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c3ce7a4e25b93db51b50f5025d899b6e84319439679cfe420ed2034ec9656d3c", + "name": "tests/unit/modules/network/asa", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/toplevel_after.yaml", + "name": "tests/unit/modules/network/asa/asa_module.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0d5ab0be030639871c9d7d686ade4cafae0c8459eb0216579659aa0ea597ec49", + "chksum_sha256": "92f0ead04504c5da2ad3d7b613b9832ad0f22fc379eee5b3c9be347064213b18", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/toplevel_before.yaml", + "name": "tests/unit/modules/network/asa/test_asa_acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9811b1ef10b4e55b09414219c3ee8eaa915ef4927fd52c6cbc266d052576475d", + "chksum_sha256": "2725a0d5d4a680c056a3d644f824257f18af756aa028980c864ff495afb1692a", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/cli/toplevel_nonidempotent.yaml", + "name": "tests/unit/modules/network/asa/test_asa_ogs.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cdbbf917190b6c099d6205a64342c7dcd91ed499f2a81e024d4b28e27f7b53bf", + "chksum_sha256": "68ad856224f437cdd22a45a3a8412f71fb9158f70558b9206d96da84280d9e03", "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/redirection", + "name": "tests/unit/modules/network/asa/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_config/tests/redirection/shortname.yaml", + "name": "tests/unit/modules/network/asa/fixtures/asa_facts_show_version", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6dbd8ee31865bbe879cb1a8b35b25bd529a84f8820525a0388a38ba147a66f66", + "chksum_sha256": "740b1ca496b3d669bc243713a931477f995ccdc458c3d15e95de89adacf81f3d", "format": 1 }, { - "name": "tests/integration/targets/asa_facts", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/asa/fixtures/asa_facts_show_memory", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ac8a97005ae66296bad1abcba64857ed3b9a9a3cdd3bc94c5b41272193458e32", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/asa/fixtures/asa_og_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8c324a36273027bf40c6aa8003cc355200cfbf67e34ab630e406f74c87a40aee", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/defaults/main.yaml", + "name": "tests/unit/modules/network/asa/fixtures/asa_ogs_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "ed1061977da5661fcb73e4399908fd271914e714716942cc9bfffaec4a82e90a", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/asa/fixtures/asa_facts_dir", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5e44f9ecbe09cf864c3d107d24eed7e34baa78b45a9edda1b35c28d232434ae9", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/tasks/cli.yaml", + "name": "tests/unit/modules/network/asa/fixtures/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "615d4358df331e4239442a5b6656390598bf4e857bd6acd1bad18cee0542e6c2", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/tasks/main.yaml", + "name": "tests/unit/modules/network/asa/fixtures/asa_acls_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba31c87031318be43a61d696eab1ba755270c889cd5ae5dd78effad49953342c", + "chksum_sha256": "877c2b14dbd661c2235be0269f9e7ee0eeedc86ca3abc9b2883df838a2af2b99", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/asa/test_asa_facts.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e21775c2419e680466d71213ce3ffd68d9b460e0ad4f1a0eb50e22c5c6462957", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/asa/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/tests/cli/all_facts.yaml", + "name": "tests/unit/modules/network/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "90f62bf5f42692f354534580d39774a8b65e1194b6fa268e1a81e2083c39b7e8", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/tests/cli/default_facts.yaml", + "name": "tests/unit/modules/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5bda0a98b84f8436c2a3d5ad6f22d3d63a5ed61e8173793e0d0f9cbc78c8c376", + "chksum_sha256": "f2cca5cec1121f8e27ef6f4c0611b6ec246d47610f6411f2dc511cde612174c0", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/tests/cli/invalid_subset.yaml", + "name": "tests/unit/modules/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2667b18d98a0879804b84662b77a1337b2d5b13e6eb8dfa4ebcae52f1547f713", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/asa_facts/tests/cli/not_hardware.yaml", + "name": "tests/unit/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0733ddb2fcf5a9e2d272f413b41df5d537db53231e049c10497a282e45f2885c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs", + "name": "tests/unit/mock", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/mock/yaml_helper.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "134eef238c83a9611799871b743e49e9bfbcd8bdddf2cc6a7bf69fd1000345b3", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/defaults/main.yaml", + "name": "tests/unit/mock/loader.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "bdaecf94a3bba53aa135687aecc6fc2c45f7ec5e85f5d2556f5a269aa3fe0c8a", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/mock/path.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1042460934c45b35a3bd39c9ddb9b06f25986c251c6ce9f5288e32406d2e2034", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tasks/cli.yaml", + "name": "tests/unit/mock/vault_helper.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c0ac0f39eb8cbe127ea8c3f461dbbe9ebbc956b1bc3040ef6e4a56564ce4d30", + "chksum_sha256": "55bd0e924dcc22d050612c944bff0ef745e51faac9260dce9b9b2018c4c8a661", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tasks/main.yaml", + "name": "tests/unit/mock/procenv.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba31c87031318be43a61d696eab1ba755270c889cd5ae5dd78effad49953342c", + "chksum_sha256": "d4362cb826d0529ad37056279571952424c356db10971c024fbab4ec382563d9", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/mock/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "bindep.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "104adbad1acc69a10523807ae1b14344dddd76b712907ddc2b3ddf656d2c69c0", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/_parsed.cfg", + "name": ".pre-commit-config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b902fb274a202ee8efbbe72f3a824a7b390d585235f3e5d9ec3a48682be07a3a", + "chksum_sha256": "2362c3114e5a6bd09e7809ca3b7f07bb49de8022acc9da443220f66cd1f637e3", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/_populate_config.yaml", + "name": ".yamllint", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2ef178de83b73bbcbb57eec0a53bf1916400afe2a306df42e7421fb7bd1b49a4", + "chksum_sha256": "827ef9e031ecdcaf137be239d33ef93fcbbc3611cbb6b30b0e507d0e03373d0e", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2a00f9c6f94bdf5e1f2dc3431cab004b36946ca4baee07cece978f42254f2806", + "name": "meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/deleted.yaml", + "name": "meta/runtime.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b46fa5bf7986ea33e69d718395dcd529756fae19695d858bb5f2cfddb69acf32", + "chksum_sha256": "5672e56b9931aa53ca58c3b166b83499535042e17a88fbc87bc7311309bb90a7", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/empty_config.yaml", + "name": "test-requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "abad4da95ec7d092272595de5569c28efef79203ef5de89e9b6455df5d0702ed", + "chksum_sha256": "92e26f12b6e7c3d4c8e73859c9dbbc26591dc317c0ba8bcfc98eadfe1fdefa25", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/gathered.yaml", + "name": "pyproject.toml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e775a90f35bf1d02c36f75947efd359595085f0b8d7cda9e70b295a064cb0840", + "chksum_sha256": "1cb6a45dfa2625123890b93ad7fdc156b063c16e8ae6dba11511a1d1986b0fcc", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/merged.yaml", + "name": "LICENSE", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f149bbc1ec48feedc896079f15994dd6a5175514dc026e7d12fa417b88d48728", + "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/overridden.yaml", + "name": ".gitignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afe118ea3be25d57e9ab26348bdd52bc4b840490a85f11b9f79563a92eb51834", + "chksum_sha256": "e620f88c2366ee31df48a1a4efc69c2b06cfe8bef75979f9d6e32f0a872b2644", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/parsed.yaml", + "name": ".prettierignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c12d15a33e441f5b5a1462c660d899ed33f258f437e81f1cf7954c11e50bed73", + "chksum_sha256": "9881cacd6494858bc3c50f32917a7971c275f5dbeaa27d438985eacb344f9857", "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0ab9e8d1c4ab5c6c8cff5dbcbd6de19807bc8a736ec05cac65a7358f3d919b1e", + "name": "plugins", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6bdc390ed516bdb772e8b3e4e9498bb9f8e48c7a023d08e919809e66e62dd979", + "name": "plugins/module_utils", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/tests/cli/rtt.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a7f127a390e99667637b87bd4e9297e6d5cafd88d873587ae03cf88f88ec5288", + "name": "plugins/module_utils/network", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/vars", + "name": "plugins/module_utils/network/asa", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_ogs/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1418941753a214f960e5772742927306c42e64decf1f0cc4b7445167801ac377", + "name": "plugins/module_utils/network/asa/config", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_smoke", + "name": "plugins/module_utils/network/asa/config/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_smoke/defaults", + "name": "plugins/module_utils/network/asa/config/acls/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/asa/config/acls/acls.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "54d4f42507c10b4b994457008be4c8377e78ea71f719f1a08c8a8fe39793ba1d", + "format": 1 + }, + { + "name": "plugins/module_utils/network/asa/config/ogs", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_smoke/defaults/main.yaml", + "name": "plugins/module_utils/network/asa/config/ogs/ogs.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "fff92969cf78d6efb283bec90fcdf347f34c63011f01e97a06eeafce6bb6aea3", "format": 1 }, { - "name": "tests/integration/targets/asa_smoke/tasks", + "name": "plugins/module_utils/network/asa/config/ogs/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/asa/config/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/asa/utils", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_smoke/tasks/cli.yaml", + "name": "plugins/module_utils/network/asa/utils/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "835db3bc2ab92dd760d6730f09922b1e5b90395db7d11c7e374c0ba09f78daf7", + "chksum_sha256": "869e911f1d710075554251977a255d09e8054cecce9ba0910f1b52027fc81c2f", "format": 1 }, { - "name": "tests/integration/targets/asa_smoke/tasks/main.yaml", + "name": "plugins/module_utils/network/asa/utils/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba31c87031318be43a61d696eab1ba755270c889cd5ae5dd78effad49953342c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/asa_smoke/tests", + "name": "plugins/module_utils/network/asa/facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/asa_smoke/tests/caching.yaml", + "name": "plugins/module_utils/network/asa/facts/legacy", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/asa/facts/legacy/base.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a956e5bd4218f18bd151bb253589e06d96f0ca012afeeb815a77f6213148945", + "chksum_sha256": "1d90560b4d39f8e0adbe73753790528ba39dbe4b7edc70d8089706da1a84823e", "format": 1 }, { - "name": "tests/integration/network-integration.cfg", + "name": "plugins/module_utils/network/asa/facts/legacy/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d67b11263a8f50b30bf43c7c2b4bdd8dc4f173f0b5dd22761311360dfbd56a1d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/target-prefixes.network", + "name": "plugins/module_utils/network/asa/facts/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14f51b782822dec130f35894d08367652be7b29aa19102314e5f049ddc307445", + "chksum_sha256": "974b74159f6d3e59e5a56f8677c26e470860eae57ecb53c91c3e5cefe552df91", "format": 1 }, { - "name": "tests/sanity", + "name": "plugins/module_utils/network/asa/facts/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.10.txt", + "name": "plugins/module_utils/network/asa/facts/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8000e45c60499f99ceece9b4c2e153a0b50d02906850dcfc758d08c42b9ac066", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/asa/facts/acls/acls.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b7289bcc81ad8747f031c4deb4c888e8eabed74ce40b5e0930d6c7e199fd8325", + "format": 1 + }, + { + "name": "plugins/module_utils/network/asa/facts/ogs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/asa/facts/ogs/ogs.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4889d0ef1f24d9aebaf0653e16669f19277989efb52ee0042f49fcd5cd903162", + "format": 1 + }, + { + "name": "plugins/module_utils/network/asa/facts/ogs/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/sanity/ignore-2.11.txt", + "name": "plugins/module_utils/network/asa/facts/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a726fa26f4d91f96be9d8d98ab93c32b82bc16a69f9ab116ddeee2c042cbe4b1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/sanity/ignore-2.12.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5e57cb2fa7cd31227fcf1fd7085c7213f560ce12895b80211aeba768ec9de041", + "name": "plugins/module_utils/network/asa/providers", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.13.txt", + "name": "plugins/module_utils/network/asa/providers/providers.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a01d39f278abada36c8f698d56c3a0c17efdf85178ceba34c1dc3c523679b9d", + "chksum_sha256": "2d12b31ea6902b70db0eb9e71564b586d4e62b90655345669eb372f1f3f9c9cc", "format": 1 }, { - "name": "tests/sanity/ignore-2.14.txt", + "name": "plugins/module_utils/network/asa/providers/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a01d39f278abada36c8f698d56c3a0c17efdf85178ceba34c1dc3c523679b9d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/sanity/ignore-2.15.txt", + "name": "plugins/module_utils/network/asa/providers/module.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a01d39f278abada36c8f698d56c3a0c17efdf85178ceba34c1dc3c523679b9d", + "chksum_sha256": "9b87ca2036255d1dcd9080d73f0997df1a19af0fa9466f84e3a7eef8a803de9a", "format": 1 }, { - "name": "tests/sanity/ignore-2.16.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9a01d39f278abada36c8f698d56c3a0c17efdf85178ceba34c1dc3c523679b9d", + "name": "plugins/module_utils/network/asa/rm_templates", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.17.txt", + "name": "plugins/module_utils/network/asa/rm_templates/ogs.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a01d39f278abada36c8f698d56c3a0c17efdf85178ceba34c1dc3c523679b9d", + "chksum_sha256": "ff869d21e976eeeef522b52b44df1c276e97dbb90cee0aa13a9eedc42570ae0b", "format": 1 }, { - "name": "tests/sanity/ignore-2.9.txt", + "name": "plugins/module_utils/network/asa/rm_templates/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8000e45c60499f99ceece9b4c2e153a0b50d02906850dcfc758d08c42b9ac066", + "chksum_sha256": "f244c13a86b80d08dae36977a2c7344baf8913b00df67128fc0caf4c7eb81865", "format": 1 }, { - "name": "tests/unit", + "name": "plugins/module_utils/network/asa/argspec", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/compat", + "name": "plugins/module_utils/network/asa/argspec/facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/compat/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/compat/mock.py", + "name": "plugins/module_utils/network/asa/argspec/facts/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b91b074a0bb9cfda8560f02aa3cefe0bfaae9b045f8386597bfe342f1e5a0717", + "chksum_sha256": "58646002557f192f15baf87346550ea1a6b37b36596b47bc66a1465540e26e01", "format": 1 }, { - "name": "tests/unit/compat/unittest.py", + "name": "plugins/module_utils/network/asa/argspec/facts/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "727203a3846be41893b78a4b77852a1658925e936fb19539551958a5d8e8fb81", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/mock", + "name": "plugins/module_utils/network/asa/argspec/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/mock/__init__.py", + "name": "plugins/module_utils/network/asa/argspec/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/mock/loader.py", + "name": "plugins/module_utils/network/asa/argspec/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bdaecf94a3bba53aa135687aecc6fc2c45f7ec5e85f5d2556f5a269aa3fe0c8a", + "chksum_sha256": "fcae6ce706327a09b0ab8b82c91a55186f9974e5a0e190a5188c49bcc8cb93e7", "format": 1 }, { - "name": "tests/unit/mock/path.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1042460934c45b35a3bd39c9ddb9b06f25986c251c6ce9f5288e32406d2e2034", + "name": "plugins/module_utils/network/asa/argspec/ogs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/mock/procenv.py", + "name": "plugins/module_utils/network/asa/argspec/ogs/ogs.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d4362cb826d0529ad37056279571952424c356db10971c024fbab4ec382563d9", + "chksum_sha256": "5d0487f754e8a1b8968ec7cda2bab9849ed0a920dfc9da1d77930c821b613bdc", "format": 1 }, { - "name": "tests/unit/mock/vault_helper.py", + "name": "plugins/module_utils/network/asa/argspec/ogs/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55bd0e924dcc22d050612c944bff0ef745e51faac9260dce9b9b2018c4c8a661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/mock/yaml_helper.py", + "name": "plugins/module_utils/network/asa/argspec/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "134eef238c83a9611799871b743e49e9bfbcd8bdddf2cc6a7bf69fd1000345b3", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/asa/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/asa/asa.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e924eeba5d9c9489c645c7bea52c1ef6ebcb0cb22c70746b78fd25f2fd385a85", "format": 1 }, { - "name": "tests/unit/modules/network/asa", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/asa/fixtures", + "name": "plugins/doc_fragments", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/asa/fixtures/__init__.py", + "name": "plugins/doc_fragments/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/asa/fixtures/asa_acls_config.cfg", + "name": "plugins/doc_fragments/asa.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "877c2b14dbd661c2235be0269f9e7ee0eeedc86ca3abc9b2883df838a2af2b99", + "chksum_sha256": "130cf43f0307ebbc4bc121d6b0616af8895c602bc9bc3e2abd0341fd10a49500", "format": 1 }, { - "name": "tests/unit/modules/network/asa/fixtures/asa_facts_dir", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5e44f9ecbe09cf864c3d107d24eed7e34baa78b45a9edda1b35c28d232434ae9", + "name": "plugins/cliconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/asa/fixtures/asa_facts_show_memory", + "name": "plugins/cliconf/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac8a97005ae66296bad1abcba64857ed3b9a9a3cdd3bc94c5b41272193458e32", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/asa/fixtures/asa_facts_show_version", + "name": "plugins/cliconf/asa.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "740b1ca496b3d669bc243713a931477f995ccdc458c3d15e95de89adacf81f3d", + "chksum_sha256": "dda3e968fc69abbddc6f0742420d8b0e11e2d44358a20239025a6f54ebc4f41c", "format": 1 }, { - "name": "tests/unit/modules/network/asa/fixtures/asa_og_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8c324a36273027bf40c6aa8003cc355200cfbf67e34ab630e406f74c87a40aee", + "name": "plugins/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/asa/fixtures/asa_ogs_config.cfg", + "name": "plugins/modules/asa_ogs.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ed1061977da5661fcb73e4399908fd271914e714716942cc9bfffaec4a82e90a", + "chksum_sha256": "278c499570e2f0cf5a2c6a48929e9c40530e00ab0ecc4945689858e689808119", "format": 1 }, { - "name": "tests/unit/modules/network/asa/__init__.py", + "name": "plugins/modules/asa_facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "17fc0b752d583d54f38f878f8122a7fe8db0319b7fbee1519577b588d4034b6c", "format": 1 }, { - "name": "tests/unit/modules/network/asa/asa_module.py", + "name": "plugins/modules/asa_command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92f0ead04504c5da2ad3d7b613b9832ad0f22fc379eee5b3c9be347064213b18", + "chksum_sha256": "9fbb4c90a18d3945dfd710c5dbd17f8b81780528e2a9bb8fe3c6136acc76a907", "format": 1 }, { - "name": "tests/unit/modules/network/asa/test_asa_acls.py", + "name": "plugins/modules/asa_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2725a0d5d4a680c056a3d644f824257f18af756aa028980c864ff495afb1692a", + "chksum_sha256": "a9677bf1c1b654f58c292bf1eaab9e7d9fe3531e8eccbb7c7b03235ef2a0abb5", "format": 1 }, { - "name": "tests/unit/modules/network/asa/test_asa_facts.py", + "name": "plugins/modules/asa_acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e21775c2419e680466d71213ce3ffd68d9b460e0ad4f1a0eb50e22c5c6462957", + "chksum_sha256": "b56a38b92596b7d22ebc6bed87c1587a7732f4a3d7680e274d0afa3553067490", "format": 1 }, { - "name": "tests/unit/modules/network/asa/test_asa_ogs.py", + "name": "plugins/modules/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "68ad856224f437cdd22a45a3a8412f71fb9158f70558b9206d96da84280d9e03", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "plugins/terminal", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/__init__.py", + "name": "plugins/terminal/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/conftest.py", + "name": "plugins/terminal/asa.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0ae70fa7c2a5e56d7f02a47c3602398cff60c8eb021772ac59a76df2a234048", + "chksum_sha256": "3b24a952d8c6d070d4e29c7a6a58d6bc3c0f17741df33ad56b213b87372854f1", "format": 1 }, { - "name": "tests/unit/modules/utils.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f2cca5cec1121f8e27ef6f4c0611b6ec246d47610f6411f2dc511cde612174c0", + "name": "plugins/action", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/__init__.py", + "name": "plugins/action/ogs.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "7b92aa8d78762e91888d71583077ff00c127ebcde8551b94e6b96e495943157c", "format": 1 }, { - "name": "tests/unit/requirements.txt", + "name": "plugins/action/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49ba996dc4735c3463e9af561344346dfae14bcc1a68096ce78364b377f0df1f", + "chksum_sha256": "7b92aa8d78762e91888d71583077ff00c127ebcde8551b94e6b96e495943157c", "format": 1 }, { - "name": "tests/.gitignore", + "name": "plugins/action/config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600", + "chksum_sha256": "7b92aa8d78762e91888d71583077ff00c127ebcde8551b94e6b96e495943157c", "format": 1 }, { - "name": ".gitignore", + "name": "plugins/action/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e620f88c2366ee31df48a1a4efc69c2b06cfe8bef75979f9d6e32f0a872b2644", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": ".isort.cfg", + "name": "plugins/action/command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e11dfc2dddd670a70b23d3c1504e08c2d3175a3b7323d912d94fa40c18d524a", + "chksum_sha256": "7b92aa8d78762e91888d71583077ff00c127ebcde8551b94e6b96e495943157c", "format": 1 }, { - "name": ".pre-commit-config.yaml", + "name": "plugins/action/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e58624a7144289a17cc3adc6b49c11ab58d9c9e80a05c4240a36b4b3968f368", + "chksum_sha256": "7b92aa8d78762e91888d71583077ff00c127ebcde8551b94e6b96e495943157c", "format": 1 }, { - "name": ".prettierignore", + "name": "plugins/action/asa.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9881cacd6494858bc3c50f32917a7971c275f5dbeaa27d438985eacb344f9857", + "chksum_sha256": "7b92aa8d78762e91888d71583077ff00c127ebcde8551b94e6b96e495943157c", "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": "ebc72b854489f94f781844c4c506df9f923573b633e2a45a0b8170d696cb292c", + "chksum_sha256": "11ceee3c57116e9fd08bc423414b1095ff002aa012d6fb325b1a7e24d7e28461", "format": 1 }, { - "name": "LICENSE", + "name": ".github/workflows", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": ".github/workflows/ack.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "chksum_sha256": "24c6fbafaa69e3e3ee696f2cefa5120794b62cef7e870553dddce8b8af0a127c", "format": 1 }, { - "name": "README.md", + "name": ".github/workflows/push.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d5554553376536ef1033fa36e0c81cd23362e19b76b1462562ead08c0202ea23", + "chksum_sha256": "ab12fa802baf5f9545109b311f6bac5b76ae1a404a60d20a32481d41b06d901c", "format": 1 }, { - "name": "bindep.txt", + "name": ".github/workflows/lint.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "104adbad1acc69a10523807ae1b14344dddd76b712907ddc2b3ddf656d2c69c0", + "chksum_sha256": "4aeac57f14d48d82a859c822f84a0573419958bc70708f19caa6daac5c771ff9", "format": 1 }, { - "name": "codecov.yml", + "name": ".github/workflows/codecoverage.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4aa7e485dd4db6f8a55b046088c745def2b3145d9499ccda4e9a3336467dcea2", + "chksum_sha256": "8bbcae622f5e51798b577df290135e846244399c2a6ccbfedac523b38a8330a3", "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/tests.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "883b106f13b0c6536f55619685ddca25968b4167dedb12e08fa37c93f4c63b25", + "chksum_sha256": "b9ea02b4481063bd0aff87fb00917fba18afe89405d0aef219993f36f4bfe14c", "format": 1 }, { - "name": "test-requirements.txt", + "name": ".github/release-drafter.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eaa5e13a5ebe3344585b2e5ac61a6974a6d5b132f13a815d3a0f68c36ecfe8ad", + "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", "format": 1 }, { - "name": "tox.ini", + "name": ".github/CODEOWNERS", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c3d0045e391c8743eef92c7f130b1d800d7bfc38952a8537d13c7401a8f45e11", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 } ], diff --git a/ansible_collections/cisco/asa/MANIFEST.json b/ansible_collections/cisco/asa/MANIFEST.json index d8f452300..99747eae6 100644 --- a/ansible_collections/cisco/asa/MANIFEST.json +++ b/ansible_collections/cisco/asa/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "cisco", "name": "asa", - "version": "4.0.3", + "version": "5.0.1", "authors": [ "Ansible Security Community (ansible-security)" ], @@ -17,7 +17,7 @@ "license": [], "license_file": "LICENSE", "dependencies": { - "ansible.netcommon": ">=2.5.1" + "ansible.netcommon": ">=6.0.0" }, "repository": "https://github.com/ansible-collections/cisco.asa", "documentation": null, @@ -28,7 +28,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "12ce03a7723c4c84e304c5ca4c2e1e909423ee63faecd32e9418d7e5ad7d0123", + "chksum_sha256": "87992149a312c8be931d6d3e682e38feb95d091ad791f9158c19103494452f21", "format": 1 }, "format": 1 diff --git a/ansible_collections/cisco/asa/README.md b/ansible_collections/cisco/asa/README.md index 81870ffef..2ca17c688 100644 --- a/ansible_collections/cisco/asa/README.md +++ b/ansible_collections/cisco/asa/README.md @@ -1,13 +1,14 @@ # CISCO ASA Ansible Collection [![CI](https://zuul-ci.org/gated.svg)](https://dashboard.zuul.ansible.com/t/ansible/project/github.com/ansible-collections/cisco.asa) +[![CI](https://github.com/ansible-collections/cisco.asa/actions/workflows/tests.yml/badge.svg?branch=main&event=schedule)](https://github.com/ansible-collections/cisco.asa/actions/workflows/tests.yml) The Ansible Cisco ASA collection includes a variety of Ansible content to help automate the management of Cisco ASA firewall appliances. ## Ansible version compatibility -This collection has been tested against following Ansible versions: **>=2.9.10**. +This collection has been tested against following Ansible versions: **>=2.14.0**. For collections that support Ansible 2.9, please ensure you update your `network_os` to use the fully qualified collection name (for example, `cisco.ios.ios`). @@ -92,7 +93,7 @@ ansible_python_interpreter=python #### Using the modules with Fully Qualified Collection Name (FQCN) -You can either call modules by their Fully Qualified Collection Namespace (FQCN), like `cisco.asa.asa_acls`, or you can call modules by their short name if you list the `cisco.asa` collection in the playbook's `collections`, as follows: +You can either call modules by their Fully Qualified Collection Name (FQCN), like `cisco.asa.asa_acls`, or you can call modules by their short name if you list the `cisco.asa` collection in the playbook's `collections`, as follows: ```yaml --- diff --git a/ansible_collections/cisco/asa/changelogs/changelog.yaml b/ansible_collections/cisco/asa/changelogs/changelog.yaml index d0f0d4e3a..9dbfd2c43 100644 --- a/ansible_collections/cisco/asa/changelogs/changelog.yaml +++ b/ansible_collections/cisco/asa/changelogs/changelog.yaml @@ -204,3 +204,22 @@ releases: - codecov_pr.yml - lint_fixtures.yaml release_date: "2023-10-31" + 5.0.0: + changes: + major_changes: + - Bumping `requires_ansible` to `>=2.14.0`, since previous ansible-core versions + are EoL now. + release_summary: + Starting from this release, the minimum `ansible-core` version + this collection requires is `2.14.0`. The last known version compatible with + fragments: + - lint_fixtures.yaml + release_date: "2023-11-30" + 5.0.1: + changes: + bugfixes: + - Prevents module_defaults from were being incorrectly applied to the platform + action, instead of the concerned module. + fragments: + - fix_module_defaults.yaml + release_date: "2024-01-31" diff --git a/ansible_collections/cisco/asa/docs/cisco.asa.asa_config_module.rst b/ansible_collections/cisco/asa/docs/cisco.asa.asa_config_module.rst index c3a2ed106..61a2551a0 100644 --- a/ansible_collections/cisco/asa/docs/cisco.asa.asa_config_module.rst +++ b/ansible_collections/cisco/asa/docs/cisco.asa.asa_config_module.rst @@ -80,7 +80,7 @@ Parameters -
This is a dict object containing configurable options related to backup file path. The value of this option is read only when backup is set to yes, if backup is set to no this option will be silently ignored.
+
This is a dict object containing configurable options related to backup file path. The value of this option is read only when backup is set to true, if backup is set to no this option will be silently ignored.
@@ -360,7 +360,6 @@ Examples - message-length maximum 512 match: line parents: [policy-map type inspect dns PM-DNS, parameters] - authorize: yes auth_pass: cisco username: admin password: cisco @@ -370,7 +369,7 @@ Examples lines: - ikev1 pre-shared-key MyS3cretVPNK3y parents: tunnel-group 1.1.1.1 ipsec-attributes - passwords: yes + passwords: true - name: attach ASA acl on interface vlan13/nameif cloud13 cisco.asa.asa_config: @@ -414,7 +413,7 @@ Examples cisco.asa.asa_config: lines: - access-group cloud-acl_access_in in interface cloud13 - backup: yes + backup: true backup_options: filename: backup.cfg dir_path: /home/user @@ -446,7 +445,7 @@ Common return values are documented `here string - when backup is yes + when backup is true
The full path to the backup file

diff --git a/ansible_collections/cisco/asa/meta/runtime.yml b/ansible_collections/cisco/asa/meta/runtime.yml index 35f1e5f93..f52e66c08 100644 --- a/ansible_collections/cisco/asa/meta/runtime.yml +++ b/ansible_collections/cisco/asa/meta/runtime.yml @@ -1,27 +1,6 @@ --- -requires_ansible: ">=2.9.10" +requires_ansible: ">=2.14.0" plugin_routing: - action: - asa_acls: - redirect: cisco.asa.asa - acls: - redirect: cisco.asa.asa - asa_command: - redirect: cisco.asa.asa - command: - redirect: cisco.asa.asa - asa_config: - redirect: cisco.asa.asa - config: - redirect: cisco.asa.asa - asa_facts: - redirect: cisco.asa.asa - facts: - redirect: cisco.asa.asa - asa_ogs: - redirect: cisco.asa.asa - ogs: - redirect: cisco.asa.asa modules: acls: redirect: cisco.asa.asa_acls diff --git a/ansible_collections/cisco/asa/plugins/action/acls.py b/ansible_collections/cisco/asa/plugins/action/acls.py new file mode 100644 index 000000000..4d4fcf32f --- /dev/null +++ b/ansible_collections/cisco/asa/plugins/action/acls.py @@ -0,0 +1,55 @@ +# +# (c) 2016 Red Hat Inc. +# +# 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 . +# +from __future__ import absolute_import, division, print_function + + +__metaclass__ = type + +from ansible.utils.display import Display +from ansible_collections.ansible.netcommon.plugins.action.network import ( + ActionModule as ActionNetworkModule, +) + + +display = Display() + + +class ActionModule(ActionNetworkModule): + def run(self, tmp=None, task_vars=None): + del tmp # tmp no longer has any effect + + module_name = self._task.action.split(".")[-1] + self._config_module = True if module_name in ["asa_config", "config"] else False + persistent_connection = self._play_context.connection.split(".")[-1] + warnings = [] + + if persistent_connection not in ("network_cli"): + return { + "failed": True, + "msg": "Connection type %s is not valid for this module" + % self._play_context.connection, + } + + result = super(ActionModule, self).run(task_vars=task_vars) + if warnings: + if "warnings" in result: + result["warnings"].extend(warnings) + else: + result["warnings"] = warnings + return result diff --git a/ansible_collections/cisco/asa/plugins/action/command.py b/ansible_collections/cisco/asa/plugins/action/command.py new file mode 100644 index 000000000..4d4fcf32f --- /dev/null +++ b/ansible_collections/cisco/asa/plugins/action/command.py @@ -0,0 +1,55 @@ +# +# (c) 2016 Red Hat Inc. +# +# 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 . +# +from __future__ import absolute_import, division, print_function + + +__metaclass__ = type + +from ansible.utils.display import Display +from ansible_collections.ansible.netcommon.plugins.action.network import ( + ActionModule as ActionNetworkModule, +) + + +display = Display() + + +class ActionModule(ActionNetworkModule): + def run(self, tmp=None, task_vars=None): + del tmp # tmp no longer has any effect + + module_name = self._task.action.split(".")[-1] + self._config_module = True if module_name in ["asa_config", "config"] else False + persistent_connection = self._play_context.connection.split(".")[-1] + warnings = [] + + if persistent_connection not in ("network_cli"): + return { + "failed": True, + "msg": "Connection type %s is not valid for this module" + % self._play_context.connection, + } + + result = super(ActionModule, self).run(task_vars=task_vars) + if warnings: + if "warnings" in result: + result["warnings"].extend(warnings) + else: + result["warnings"] = warnings + return result diff --git a/ansible_collections/cisco/asa/plugins/action/config.py b/ansible_collections/cisco/asa/plugins/action/config.py new file mode 100644 index 000000000..4d4fcf32f --- /dev/null +++ b/ansible_collections/cisco/asa/plugins/action/config.py @@ -0,0 +1,55 @@ +# +# (c) 2016 Red Hat Inc. +# +# 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 . +# +from __future__ import absolute_import, division, print_function + + +__metaclass__ = type + +from ansible.utils.display import Display +from ansible_collections.ansible.netcommon.plugins.action.network import ( + ActionModule as ActionNetworkModule, +) + + +display = Display() + + +class ActionModule(ActionNetworkModule): + def run(self, tmp=None, task_vars=None): + del tmp # tmp no longer has any effect + + module_name = self._task.action.split(".")[-1] + self._config_module = True if module_name in ["asa_config", "config"] else False + persistent_connection = self._play_context.connection.split(".")[-1] + warnings = [] + + if persistent_connection not in ("network_cli"): + return { + "failed": True, + "msg": "Connection type %s is not valid for this module" + % self._play_context.connection, + } + + result = super(ActionModule, self).run(task_vars=task_vars) + if warnings: + if "warnings" in result: + result["warnings"].extend(warnings) + else: + result["warnings"] = warnings + return result diff --git a/ansible_collections/cisco/asa/plugins/action/facts.py b/ansible_collections/cisco/asa/plugins/action/facts.py new file mode 100644 index 000000000..4d4fcf32f --- /dev/null +++ b/ansible_collections/cisco/asa/plugins/action/facts.py @@ -0,0 +1,55 @@ +# +# (c) 2016 Red Hat Inc. +# +# 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 . +# +from __future__ import absolute_import, division, print_function + + +__metaclass__ = type + +from ansible.utils.display import Display +from ansible_collections.ansible.netcommon.plugins.action.network import ( + ActionModule as ActionNetworkModule, +) + + +display = Display() + + +class ActionModule(ActionNetworkModule): + def run(self, tmp=None, task_vars=None): + del tmp # tmp no longer has any effect + + module_name = self._task.action.split(".")[-1] + self._config_module = True if module_name in ["asa_config", "config"] else False + persistent_connection = self._play_context.connection.split(".")[-1] + warnings = [] + + if persistent_connection not in ("network_cli"): + return { + "failed": True, + "msg": "Connection type %s is not valid for this module" + % self._play_context.connection, + } + + result = super(ActionModule, self).run(task_vars=task_vars) + if warnings: + if "warnings" in result: + result["warnings"].extend(warnings) + else: + result["warnings"] = warnings + return result diff --git a/ansible_collections/cisco/asa/plugins/action/ogs.py b/ansible_collections/cisco/asa/plugins/action/ogs.py new file mode 100644 index 000000000..4d4fcf32f --- /dev/null +++ b/ansible_collections/cisco/asa/plugins/action/ogs.py @@ -0,0 +1,55 @@ +# +# (c) 2016 Red Hat Inc. +# +# 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 . +# +from __future__ import absolute_import, division, print_function + + +__metaclass__ = type + +from ansible.utils.display import Display +from ansible_collections.ansible.netcommon.plugins.action.network import ( + ActionModule as ActionNetworkModule, +) + + +display = Display() + + +class ActionModule(ActionNetworkModule): + def run(self, tmp=None, task_vars=None): + del tmp # tmp no longer has any effect + + module_name = self._task.action.split(".")[-1] + self._config_module = True if module_name in ["asa_config", "config"] else False + persistent_connection = self._play_context.connection.split(".")[-1] + warnings = [] + + if persistent_connection not in ("network_cli"): + return { + "failed": True, + "msg": "Connection type %s is not valid for this module" + % self._play_context.connection, + } + + result = super(ActionModule, self).run(task_vars=task_vars) + if warnings: + if "warnings" in result: + result["warnings"].extend(warnings) + else: + result["warnings"] = warnings + return result diff --git a/ansible_collections/cisco/asa/plugins/modules/asa_config.py b/ansible_collections/cisco/asa/plugins/modules/asa_config.py index 793844f83..0430a0fda 100644 --- a/ansible_collections/cisco/asa/plugins/modules/asa_config.py +++ b/ansible_collections/cisco/asa/plugins/modules/asa_config.py @@ -95,7 +95,7 @@ options: value is not given, the backup file is written to the C(backup) folder in the playbook root directory. If the directory does not exist, it is created. type: bool - default: no + default: false config: description: - The C(config) argument allows the playbook designer to supply the base configuration @@ -125,7 +125,7 @@ options: 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), + path. The value of this option is read only when C(backup) is set to I(true), if C(backup) is set to I(no) this option will be silently ignored. suboptions: filename: @@ -182,7 +182,6 @@ EXAMPLES = """ - message-length maximum 512 match: line parents: [policy-map type inspect dns PM-DNS, parameters] - authorize: yes auth_pass: cisco username: admin password: cisco @@ -192,7 +191,7 @@ EXAMPLES = """ lines: - ikev1 pre-shared-key MyS3cretVPNK3y parents: tunnel-group 1.1.1.1 ipsec-attributes - passwords: yes + passwords: true - name: attach ASA acl on interface vlan13/nameif cloud13 cisco.asa.asa_config: @@ -236,7 +235,7 @@ EXAMPLES = """ cisco.asa.asa_config: lines: - access-group cloud-acl_access_in in interface cloud13 - backup: yes + backup: true backup_options: filename: backup.cfg dir_path: /home/user @@ -254,7 +253,7 @@ updates: sample: ['...', '...'] 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/asa_config.2016-07-16@22:28:34 """ diff --git a/ansible_collections/cisco/asa/test-requirements.txt b/ansible_collections/cisco/asa/test-requirements.txt index 8002336b1..fa1e9fd35 100644 --- a/ansible_collections/cisco/asa/test-requirements.txt +++ b/ansible_collections/cisco/asa/test-requirements.txt @@ -1,8 +1,8 @@ -black==22.3.0 ; python_version > '3.5' +black==23.3.0 ; python_version >= '3.7' flake8 mock ; python_version < '3.5' pexpect pytest-xdist yamllint -coverage==4.5.4 -git+https://github.com/ansible-community/pytest-ansible-units.git +pytest-ansible ; python_version >= '3.9' +git+https://github.com/ansible-community/pytest-ansible-units.git ; python_version < '3.9' diff --git a/ansible_collections/cisco/asa/tests/config.yml b/ansible_collections/cisco/asa/tests/config.yml new file mode 100644 index 000000000..c26ea5966 --- /dev/null +++ b/ansible_collections/cisco/asa/tests/config.yml @@ -0,0 +1,3 @@ +--- +modules: + python_requires: ">=3.9" diff --git a/ansible_collections/cisco/intersight/CHANGELOG.md b/ansible_collections/cisco/intersight/CHANGELOG.md index 1ed1a5e3e..fac62949e 100644 --- a/ansible_collections/cisco/intersight/CHANGELOG.md +++ b/ansible_collections/cisco/intersight/CHANGELOG.md @@ -1,5 +1,8 @@ # cisco.intersight Ansible Collection Changelog +## Version 2.0.9 +- Fix issue #114 to support $count query param + ## Version 2.0.8 - Fix issue #111 to allow User Policy updates diff --git a/ansible_collections/cisco/intersight/FILES.json b/ansible_collections/cisco/intersight/FILES.json index 95315ee60..fff54d97f 100644 --- a/ansible_collections/cisco/intersight/FILES.json +++ b/ansible_collections/cisco/intersight/FILES.json @@ -46,7 +46,7 @@ "name": "CHANGELOG.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "184c0ed03fe6bbd200481b356aab0a3e8c92fbb08bcf3ca6057c53fac6e65e1d", + "chksum_sha256": "a5b35131740307d42fbd05f3ae58102a6efc3fadbc2fa484e51cb46f92e9faeb", "format": 1 }, { @@ -88,7 +88,7 @@ "name": "plugins/module_utils/intersight.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4b3f573930d8818604518a9f0131e4f12dbea0509b1158f4fd8004e0967a3a3d", + "chksum_sha256": "a5608cbf9e6abd118ac846b95204afe39ff4aad15c34c2f324cdb78e6b87d1c6", "format": 1 }, { @@ -329,6 +329,13 @@ "chksum_sha256": "7c2c5a08115b656eb0cefca6ba606233b8c8e5ea9ead6f1138ad7da31b317ac7", "format": 1 }, + { + "name": "playbooks/count_vms.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6d4c73d070fa70eead9a41b3f4062398586d6ddca57a077a208d827baba110ae", + "format": 1 + }, { "name": "playbooks/roles", "ftype": "dir", diff --git a/ansible_collections/cisco/intersight/MANIFEST.json b/ansible_collections/cisco/intersight/MANIFEST.json index 990405175..59a47d8be 100644 --- a/ansible_collections/cisco/intersight/MANIFEST.json +++ b/ansible_collections/cisco/intersight/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "cisco", "name": "intersight", - "version": "2.0.8", + "version": "2.0.9", "authors": [ "David Soper (@dsoper2)" ], @@ -27,7 +27,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7958d8bc5047610831777f3a56171c17f505aff4bd24acfe861039c60da2c771", + "chksum_sha256": "c34815de4b4e930a5a0d62ab855cb1cbfeb27876d40417b91496c934042a9222", "format": 1 }, "format": 1 diff --git a/ansible_collections/cisco/intersight/playbooks/count_vms.yml b/ansible_collections/cisco/intersight/playbooks/count_vms.yml new file mode 100644 index 000000000..9590a4804 --- /dev/null +++ b/ansible_collections/cisco/intersight/playbooks/count_vms.yml @@ -0,0 +1,26 @@ +--- +- name: Get count + hosts: localhost + connection: local + gather_facts: false + vars: + # Create an anchor for api_info that can be used throughout the file + api_info: &api_info + # if api_key vars are omitted, INTERSIGHT_API_KEY_ID, INTERSIGHT_API_PRIVATE_KEY, + # and INTERSIGHT_API_URI environment variables used for API key data + api_private_key: "{{ api_private_key | default(omit) }}" + api_key_id: "{{ api_key_id | default(omit) }}" + api_uri: "{{ api_uri | default(omit) }}" + validate_certs: "{{ validate_certs | default(omit) }}" + tasks: + # Get a count of the VM hosts + - name: "Get VM Count" + cisco.intersight.intersight_rest_api: + <<: *api_info + resource_path: /virtualization/VirtualMachines + query_params: + $count: true + register: resp + - name: "Print VM count" + ansible.builtin.debug: + msg: "VM count {{ resp.count }}" diff --git a/ansible_collections/cisco/intersight/plugins/module_utils/intersight.py b/ansible_collections/cisco/intersight/plugins/module_utils/intersight.py index 143cd7d25..552afebb7 100644 --- a/ansible_collections/cisco/intersight/plugins/module_utils/intersight.py +++ b/ansible_collections/cisco/intersight/plugins/module_utils/intersight.py @@ -360,6 +360,7 @@ class IntersightModule(): else: # return the 1st list element self.result['api_response'] = response['Results'][0] + self.result['count'] = response.get('Count') self.result['trace_id'] = response.get('trace_id') def configure_resource(self, moid, resource_path, body, query_params, update_method=''): diff --git a/ansible_collections/cisco/ios/.ansible-lint b/ansible_collections/cisco/ios/.ansible-lint index 8d9bb70b8..d2869106c 100644 --- a/ansible_collections/cisco/ios/.ansible-lint +++ b/ansible_collections/cisco/ios/.ansible-lint @@ -1,5 +1,7 @@ --- + profile: production -exclude_paths: - - changelogs/changelog.yaml +# exclude_paths: + +# - changelogs/changelog.yaml diff --git a/ansible_collections/cisco/ios/.flake8 b/ansible_collections/cisco/ios/.flake8 index 4795515e8..03be69242 100644 --- a/ansible_collections/cisco/ios/.flake8 +++ b/ansible_collections/cisco/ios/.flake8 @@ -39,19 +39,14 @@ extend-exclude = # IMPORTANT: avoid using ignore option, always use extend-ignore instead # Completely and unconditionally ignore the following errors: extend-ignore = - # Safeguard neutering of flake8-quotes : https://github.com/zheller/flake8-quotes/issues/105 - Q, - # annoy black by allowing white space before : https://github.com/psf/black/issues/315 - E203, - # duplicate of pylint W0611 (unused-import) - F401, - # duplicate of pylint E0602 (undefined-variable) - F821, - # duplicate of pylint W0612 (unused-variable) F841, + # line-length + E501, + # module level import not at top of file + E402 # Accessibility/large fonts and PEP8 unfriendly: -max-line-length = 100 +max-line-length = 120 # Allow certain violations in certain files: # Please keep both sections of this list sorted, as it will be easier for others to find and add entries in the future @@ -62,7 +57,7 @@ per-file-ignores = # these will need to be added to that line as well. - # S101: Allow the use of assert within the tests directory, since tests require it. + # S101: Allow the use of assert within the tests directory, since tests require it. tests/**.py: S101 # The following were present during the initial implementation. diff --git a/ansible_collections/cisco/ios/.github/workflows/ack.yml b/ansible_collections/cisco/ios/.github/workflows/ack.yml deleted file mode 100644 index fda595dc5..000000000 --- a/ansible_collections/cisco/ios/.github/workflows/ack.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# 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/cisco/ios/.github/workflows/check_label.yml b/ansible_collections/cisco/ios/.github/workflows/check_label.yml new file mode 100644 index 000000000..b120bfa32 --- /dev/null +++ b/ansible_collections/cisco/ios/.github/workflows/check_label.yml @@ -0,0 +1,11 @@ +--- +name: "Check label" +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: + check_label: + uses: ansible/ansible-content-actions/.github/workflows/check_label.yaml@main diff --git a/ansible_collections/cisco/ios/.github/workflows/codecoverage.yml b/ansible_collections/cisco/ios/.github/workflows/codecoverage.yml index c2a7ad60d..3e0f17919 100644 --- a/ansible_collections/cisco/ios/.github/workflows/codecoverage.yml +++ b/ansible_collections/cisco/ios/.github/workflows/codecoverage.yml @@ -1,8 +1,9 @@ --- -name: code_coverage +name: "Code coverage" on: # yamllint disable-line rule:truthy push: + branches: [main] pull_request: branches: [ main ] diff --git a/ansible_collections/cisco/ios/.github/workflows/draft_release.yml b/ansible_collections/cisco/ios/.github/workflows/draft_release.yml new file mode 100644 index 000000000..33a890a57 --- /dev/null +++ b/ansible_collections/cisco/ios/.github/workflows/draft_release.yml @@ -0,0 +1,18 @@ +--- +name: "Draft release" +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: ${{ github.repository_owner }} + COLLECTION_NAME: ios + ANSIBLE_COLLECTIONS_PATHS: ./ +jobs: + update_release_draft: + uses: ansible/ansible-content-actions/.github/workflows/draft_release.yaml@main + with: + repo: ${{ github.event.pull_request.head.repo.full_name }} + secrets: + BOT_PAT: ${{ secrets.BOT_PAT }} diff --git a/ansible_collections/cisco/ios/.github/workflows/lint.yml b/ansible_collections/cisco/ios/.github/workflows/lint.yml deleted file mode 100644 index fbac38cbf..000000000 --- a/ansible_collections/cisco/ios/.github/workflows/lint.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: ansible-lint -on: # yamllint disable-line rule:truthy - pull_request: - branches: ["main"] -jobs: - build: - name: Ansible Lint - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Run ansible-lint - uses: ansible/ansible-lint@main diff --git a/ansible_collections/cisco/ios/.github/workflows/push.yml b/ansible_collections/cisco/ios/.github/workflows/push.yml deleted file mode 100644 index 2e144f623..000000000 --- a/ansible_collections/cisco/ios/.github/workflows/push.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -# 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 - # # auto generate changelog and add PR by ansibuddy - # push: - # # branches to consider in the event; optional, defaults to all - # branches: - # - main - # - 'releases/**' - # - 'stable/**' - # # Prevent a 2nd run after the changelog is updated - # paths-ignore: - # - CHANGELOG.rst - # - changelogs/changelog.yaml - workflow_dispatch: - -env: - NAMESPACE: cisco - COLLECTION_NAME: ios - ANSIBLE_COLLECTIONS_PATHS: ./ - -jobs: - update_release_draft: - uses: ansible/devtools/.github/workflows/push_network.yml@main - with: - repo: ansible-collections/cisco.ios - secrets: - BOT_PAT: ${{ secrets.BOT_PAT }} diff --git a/ansible_collections/cisco/ios/.github/workflows/release.yml b/ansible_collections/cisco/ios/.github/workflows/release.yml index eb04259d1..6dbb1aa39 100644 --- a/ansible_collections/cisco/ios/.github/workflows/release.yml +++ b/ansible_collections/cisco/ios/.github/workflows/release.yml @@ -1,12 +1,12 @@ --- -name: release +name: "Release collection" on: # yamllint disable-line rule:truthy release: types: [published] jobs: release: - uses: ansible/devtools/.github/workflows/release_collection.yml@main + uses: ansible/ansible-content-actions/.github/workflows/release.yaml@main with: environment: release secrets: diff --git a/ansible_collections/cisco/ios/.github/workflows/tests.yml b/ansible_collections/cisco/ios/.github/workflows/tests.yml index 2c1d85055..bf7ade86c 100644 --- a/ansible_collections/cisco/ios/.github/workflows/tests.yml +++ b/ansible_collections/cisco/ios/.github/workflows/tests.yml @@ -1,5 +1,5 @@ --- -name: CI +name: "CI" concurrency: group: ${{ github.head_ref || github.run_id }} @@ -12,15 +12,18 @@ on: # yamllint disable-line rule:truthy schedule: - cron: '0 0 * * *' - jobs: changelog: - uses: ansible-network/github_actions/.github/workflows/changelog.yml@main - if: github.event_name != 'schedule' + uses: ansible/ansible-content-actions/.github/workflows/changelog.yaml@main + if: github.event_name == 'pull_request' + build-import: + uses: ansible/ansible-content-actions/.github/workflows/build_import.yaml@main + ansible-lint: + uses: ansible/ansible-content-actions/.github/workflows/ansible_lint.yaml@main sanity: - uses: ansible-network/github_actions/.github/workflows/sanity.yml@main + uses: ansible/ansible-content-actions/.github/workflows/sanity.yaml@main unit-galaxy: - uses: ansible-network/github_actions/.github/workflows/unit_galaxy.yml@main + uses: ansible/ansible-content-actions/.github/workflows/unit.yaml@main unit-source: uses: ansible-network/github_actions/.github/workflows/unit_source.yml@main with: @@ -31,16 +34,19 @@ jobs: if: ${{ always() }} needs: - changelog + - build-import - sanity - unit-galaxy - - unit-source + - ansible-lint runs-on: ubuntu-latest steps: - run: >- python -c "assert 'failure' not in set([ '${{ needs.changelog.result }}', + '${{ needs.build-import.result }}', '${{ needs.sanity.result }}', - '${{ needs.unit-galaxy.result }}', + '${{ needs.unit-galaxy.result }}' + '${{ needs.ansible-lint.result }}' '${{ needs.unit-source.result }}' ])" diff --git a/ansible_collections/cisco/ios/.pre-commit-config.yaml b/ansible_collections/cisco/ios/.pre-commit-config.yaml index 275086d8d..031505895 100644 --- a/ansible_collections/cisco/ios/.pre-commit-config.yaml +++ b/ansible_collections/cisco/ios/.pre-commit-config.yaml @@ -23,7 +23,7 @@ repos: - id: add-trailing-comma - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v3.1.0" + rev: "v4.0.0-alpha.8" hooks: - id: prettier entry: env CI=1 bash -c "prettier --list-different . || ec=$? && prettier --loglevel=error --write . && exit $ec" @@ -34,13 +34,18 @@ repos: - prettier-plugin-toml - repo: https://github.com/PyCQA/isort - rev: 5.12.0 + rev: 5.13.2 hooks: - id: isort name: Sort import statements using isort args: ["--filter-files"] - repo: https://github.com/psf/black - rev: 23.11.0 + rev: 24.3.0 hooks: - id: black + + - repo: https://github.com/pycqa/flake8 + rev: 7.0.0 + hooks: + - id: flake8 diff --git a/ansible_collections/cisco/ios/CHANGELOG.rst b/ansible_collections/cisco/ios/CHANGELOG.rst index 1dcb5aa02..9fdf040df 100644 --- a/ansible_collections/cisco/ios/CHANGELOG.rst +++ b/ansible_collections/cisco/ios/CHANGELOG.rst @@ -5,6 +5,123 @@ Cisco Ios Collection Release Notes .. contents:: Topics +v8.0.0 +====== + +Major Changes +------------- + +- Update the netcommon base version 6.1.0 to support cli_restore plugin. + +Minor Changes +------------- + +- Add support for cli_restore functionality. +- Please refer the PR to know more about core changes (https://github.com/ansible-collections/ansible.netcommon/pull/618). +- cli_restore module is part of netcommon. + +v7.0.0 +====== + +Major Changes +------------- + +- ios_ntp - Remove deprecated ntp legacy module + +Removed Features (previously deprecated) +---------------------------------------- + +- Deprecated ios_ntp module in favor of ios_ntp_global. + +v6.1.4 +====== + +Bugfixes +-------- + +- ios_acls - update module to apply remarks entry with sequence numbers. +- ios_bgp_address_family - description attribute, evalutated as complex object casted to string. +- ios_bgp_global - description attribute, evalutated as complex object casted to string. +- ios_interfaces - description attribute, evalutated as complex object casted to string. +- ios_prefix_lists - description attribute, evalutated as complex object casted to string. +- ios_route_maps - description attribute, evalutated as complex object casted to string. + +v6.1.3 +====== + +Bugfixes +-------- + +- ios_acls - Adds back existing remarks for an ace entry when updated with replaced or overridden state, as all remarks for a specific sequence gets removed when ace entry is updated. +- ios_bgp_global - Shutdown attributes generates negate command on set as false. +- ios_vrf - Update and add missing argspec keys that define the attributes. + +Documentation Changes +--------------------- + +- ios_vrf - Update and add missing documentation for ios_vrf module. + +v6.1.2 +====== + +Bugfixes +-------- + +- ios_acls - Fix replaced state to consider remarks and ace entries while comparing configuration. +- ios_acls - correctly match the different line for ACL without sequence number +- ios_acls - take correctly in case where we want to push an ACL from a different type +- ios_ospfv2 - Fix improper rendering of admin_distance attribute. +- ios_snmp_server - fixed config issue with snmp user password update being idempotent on consecutive runs. +- ios_user - Fix configuration of hashed passwords and secrets. + +v6.1.1 +====== + +Bugfixes +-------- + +- Prevents module_defaults from were being incorrectly applied to the platform action, instead of the concerned module. +- ios_vlans - fixes behaviour of shutdown attribute with action states. + +v6.1.0 +====== + +Minor Changes +------------- + +- ios_bgp_global - added 'bgp.default.ipv4_unicast' and 'bgp.default.route_target.filter' key +- ios_l3_interfaces - added 'autostate', 'mac_address', 'ipv4.source_interface', and 'ipv6.enable' key +- ios_vlans - Add purged state to deal with toplevel vlan and vlan configuration config. + +Bugfixes +-------- + +- ios_bgp_global - fix template attribute to generate configuration commands. +- ios_l3_interfaces - remove validation from ipv6 address parameter. +- ios_snmp_server - fix group and user IPv6 ACL commands. +- ios_user - fix configuration of user with hashed password. +- ios_user - fixed configuration removal of ssh users using purge. +- ios_vlans - Make behaviour of the action states consistent. +- ios_vlans - Top level configuration attribute is not required, the module works with vlan and vlan configuration both. + +v6.0.0 +====== + +Release Summary +--------------- + +Starting from this release, the minimum `ansible-core` version this collection requires is `2.14.0`. The last known version compatible with ansible-core<2.14 is `v5.3.0`. + +Major Changes +------------- + +- Bumping `requires_ansible` to `>=2.14.0`, since previous ansible-core versions are EoL now. + +Removed Features (previously deprecated) +---------------------------------------- + +- Removed previously deprecated ios_bgp module in favor of ios_bgp_global and ios_bgp_address_family. + v5.3.0 ====== @@ -569,7 +686,7 @@ Documentation Changes New Modules ----------- -- ios_hostname - hostname resource module +- ios_hostname - Resource module to configure hostname. v2.6.0 ====== @@ -600,7 +717,7 @@ Documentation Changes New Modules ----------- -- ios_snmp_server - snmp_server resource module +- ios_snmp_server - Resource module to configure snmp server. v2.5.0 ====== @@ -633,7 +750,7 @@ Documentation Changes New Modules ----------- -- ios_ntp_global - ntp_global resource module +- ios_ntp_global - Resource module to configure NTP. v2.4.0 ====== @@ -720,8 +837,8 @@ Bugfixes New Modules ----------- -- ios_logging_global - Logging resource module. -- ios_prefix_lists - Prefix Lists resource module. +- ios_logging_global - Resource module to configure logging. +- ios_prefix_lists - Resource module to configure prefix lists. v2.1.0 ====== @@ -745,7 +862,7 @@ Bugfixes New Modules ----------- -- ios_route_maps - Route Maps resource module. +- ios_route_maps - Resource module to configure route maps. v2.0.1 ====== @@ -790,7 +907,7 @@ Bugfixes New Modules ----------- -- ios_bgp_address_family - BGP Address Family resource module. +- ios_bgp_address_family - Resource module to configure BGP Address family. v1.3.0 ====== @@ -813,7 +930,7 @@ Bugfixes New Modules ----------- -- ios_bgp_global - BGP Global resource module +- ios_bgp_global - Resource module to configure BGP. v1.2.1 ====== @@ -844,7 +961,7 @@ Bugfixes New Modules ----------- -- ios_ospf_interfaces - OSPF Interfaces resource module +- ios_ospf_interfaces - Resource module to configure OSPF interfaces. v1.1.0 ====== @@ -865,7 +982,7 @@ Bugfixes New Modules ----------- -- ios_ospfv3 - OSPFv3 resource module +- ios_ospfv3 - Resource module to configure OSPFv3. v1.0.3 ====== @@ -917,34 +1034,26 @@ Cliconf New Modules ----------- -- ios_acl_interfaces - ACL interfaces resource module -- ios_acls - ACLs resource module -- ios_banner - Manage multiline banners on Cisco IOS devices -- ios_bgp - Configure global BGP protocol settings on Cisco IOS. -- ios_command - Run commands on remote devices running Cisco IOS -- ios_config - Manage Cisco IOS configuration sections -- ios_facts - Collect facts from remote devices running Cisco IOS -- ios_interface - (deprecated, removed after 2022-06-01) Manage Interface on Cisco IOS network devices -- ios_interfaces - Interfaces resource module -- ios_l2_interface - (deprecated, removed after 2022-06-01) Manage Layer-2 interface on Cisco IOS devices. -- ios_l2_interfaces - L2 interfaces resource module -- ios_l3_interface - (deprecated, removed after 2022-06-01) Manage Layer-3 interfaces on Cisco IOS network devices. -- ios_l3_interfaces - L3 interfaces resource module -- ios_lacp - LACP resource module -- ios_lacp_interfaces - LACP interfaces resource module -- ios_lag_interfaces - LAG interfaces resource module -- ios_linkagg - Manage link aggregation groups on Cisco IOS network devices -- ios_lldp - Manage LLDP configuration on Cisco IOS network devices. -- ios_lldp_global - LLDP resource module -- ios_lldp_interfaces - LLDP interfaces resource module -- ios_logging - Manage logging on network devices -- ios_ntp - Manages core NTP configuration. -- ios_ospfv2 - OSPFv2 resource module -- ios_ping - Tests reachability using ping from Cisco IOS network devices -- ios_static_route - (deprecated, removed after 2022-06-01) Manage static IP routes on Cisco IOS network devices -- ios_static_routes - Static routes resource module -- ios_system - Manage the system attributes on Cisco IOS devices -- ios_user - Manage the aggregate of local users on Cisco IOS device -- ios_vlan - (deprecated, removed after 2022-06-01) Manage VLANs on IOS network devices -- ios_vlans - VLANs resource module -- ios_vrf - Manage the collection of VRF definitions on Cisco IOS devices +- ios_acl_interfaces - Resource module to configure ACL interfaces. +- ios_acls - Resource module to configure ACLs. +- ios_banner - Module to configure multiline banners. +- ios_command - Module to run commands on remote devices. +- ios_config - Module to manage configuration sections. +- ios_facts - Module to collect facts from remote devices. +- ios_interfaces - Resource module to configure interfaces. +- ios_l2_interfaces - Resource module to configure L2 interfaces. +- ios_l3_interfaces - Resource module to configure L3 interfaces. +- ios_lacp - Resource module to configure LACP. +- ios_lacp_interfaces - Resource module to configure LACP interfaces. +- ios_lag_interfaces - Resource module to configure LAG interfaces. +- ios_linkagg - Module to configure link aggregation groups. +- ios_lldp - (deprecated, removed after 2024-06-01) Manage LLDP configuration on Cisco IOS network devices. +- ios_lldp_global - Resource module to configure LLDP. +- ios_lldp_interfaces - Resource module to configure LLDP interfaces. +- ios_ospfv2 - Resource module to configure OSPFv2. +- ios_ping - Tests reachability using ping from IOS switch. +- ios_static_routes - Resource module to configure static routes. +- ios_system - Module to manage the system attributes. +- ios_user - Module to manage the aggregates of local users. +- ios_vlans - Resource module to configure VLANs. +- ios_vrf - Module to configure VRF definitions. diff --git a/ansible_collections/cisco/ios/FILES.json b/ansible_collections/cisco/ios/FILES.json index 93015a7cb..e53a66d62 100644 --- a/ansible_collections/cisco/ios/FILES.json +++ b/ansible_collections/cisco/ios/FILES.json @@ -8,80 +8,80 @@ "format": 1 }, { - "name": "codecov.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4aa7e485dd4db6f8a55b046088c745def2b3145d9499ccda4e9a3336467dcea2", + "name": ".github", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "LICENSE", + "name": ".github/dependabot.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "chksum_sha256": "11ceee3c57116e9fd08bc423414b1095ff002aa012d6fb325b1a7e24d7e28461", "format": 1 }, { - "name": ".yamllint", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "827ef9e031ecdcaf137be239d33ef93fcbbc3611cbb6b30b0e507d0e03373d0e", + "name": ".github/workflows", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "requirements.txt", + "name": ".github/workflows/codecoverage.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "47d9fe78273fd64c750e78a317b1a59a6f87ebb93d8d4cf9ae6d98a0f2fc9f9e", + "chksum_sha256": "57e1fa3c1edef3b462e23b36f5ea116f8675a71d7f49731193e38b708c859742", "format": 1 }, { - "name": "meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": ".github/workflows/draft_release.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fa1789eadc286843dc2ced7f596d7dc49bd098cc2d816800c66659641cda298c", "format": 1 }, { - "name": "meta/runtime.yml", + "name": ".github/workflows/check_label.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "12277ae9f6f950b1b0bcbef81136879cabb0ecde5c7f464592000d7e964bd0ca", + "chksum_sha256": "9eb6abad2038b10cd6ea70310aa88d163f10c374d1728df29bb553eff2acfaba", "format": 1 }, { - "name": "meta/__init__.py", + "name": ".github/workflows/tests.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "162f3fb34963b1ec1e673de3506a5627b03a083fc97b9359758c8663dca87cc0", "format": 1 }, { - "name": "mypy.ini", + "name": ".github/workflows/release.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5cc01a9c3e2a80b779ca004be5e4df814eebd494db650387b1bde98267a0b317", + "chksum_sha256": "2e3f90a3147d93b97347d8418352f23e201417e05539a466399dd258a65d699c", "format": 1 }, { - "name": ".config", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": ".github/CODEOWNERS", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": ".config/dictionary.txt", + "name": ".github/release-drafter.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b504c990735c090ba655b9acdcc12a537ebf7d2e101b308ef1edc8543d9ed804", + "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", "format": 1 }, { - "name": "README.md", + "name": ".darglint", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b78d164194085339590122e47cd810abad85929a0b0934ae0baecdf5234817f5", + "chksum_sha256": "954a7045c6fa17fddfe80995f7f8251efb6df1a2b05eaf479afca6bbc6dfd4f2", "format": 1 }, { @@ -92,878 +92,864 @@ "format": 1 }, { - "name": "plugins/terminal", + "name": "plugins/doc_fragments", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/terminal/ios.py", + "name": "plugins/doc_fragments/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8924640c75e1b992771d6b42d29a581ca03cdb594aa0cf3071b60aee9551f848", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/terminal/__init__.py", + "name": "plugins/doc_fragments/ios.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "183557f42150c3888baca407c30a651bb6d0c70a06ac55f409b271323dfcbacf", "format": 1 }, { - "name": "plugins/inventory", + "name": "plugins/lookup", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/inventory/__init__.py", + "name": "plugins/lookup/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/cache", + "name": "plugins/action", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/cache/__init__.py", + "name": "plugins/action/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/cliconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/l2_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/cliconf/ios.py", + "name": "plugins/action/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c8e1266fc9979ffe143c1c97308ba48fac1a8b9a88ca2fbae116a52520dd6db", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/cliconf/__init__.py", + "name": "plugins/action/lldp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/plugin_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/facts.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/plugin_utils/__init__.py", + "name": "plugins/action/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/acl_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_facts.py", + "name": "plugins/action/vrf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "972575a88e6eaf128ecf1def334d75e696c872077ea91a5414a32dafb4866143", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_evpn_global.py", + "name": "plugins/action/bgp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b39999ffe208c5d9c8486d1bbf1fb8403aeb12df591bb83f284cd4a36a8aef1", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_linkagg.py", + "name": "plugins/action/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "187e709f0befcb38f03ee1c255f87bb373f5d1cc6eedbb3aaa0b65d29d193da7", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_l3_interfaces.py", + "name": "plugins/action/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4638e9583cab76097431b4f3d58906b5de755dd4251f831f85ad7b686d91f973", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_prefix_lists.py", + "name": "plugins/action/command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a5937aafcc9ffa0ea3bb0c118aafe6f51e599038092aac782e80470c17f2be54", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_bgp_global.py", + "name": "plugins/action/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a7ccab9fecf8b77b750367f9bb26f78d68116658d1e0df3f7a9222cc9ce2368", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_evpn_evi.py", + "name": "plugins/action/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "648b3f87f6eaa9d4c154175f4e1678ac4cce819db19e87bf3715deb1e0ae64f1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/ios_lag_interfaces.py", + "name": "plugins/action/system.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15ab6e5cb7cd7556ec0a828795d5eebc0e3a12779de558d8c95c5c519e52b47b", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_lldp_global.py", + "name": "plugins/action/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6ed88f852a8fe1eee3d14965ba9700efcc11dfb4786169fa9f0ffff1888c54b", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_command.py", + "name": "plugins/action/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d472c553267cd83de3d89409d05556068511b522139903551605098c26e81b0a", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_ntp.py", + "name": "plugins/action/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "60f03c439ea2646c81a9d78e4fa0b5a99fcabd51e3ec9056397d3397b9b50a13", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_vxlan_vtep.py", + "name": "plugins/action/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3817c3561c4521f0d75e464101d50b45872da612cc463ad1d6d99a1233b95d82", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_banner.py", + "name": "plugins/action/linkagg.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3080e91ec01655a266e3052ce6b7d20f20a575adef570293e9b5d4c91e706010", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/__init__.py", + "name": "plugins/action/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_acls.py", + "name": "plugins/action/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d77e989734fcc228ba09fe0729353f598845030e5a450c6057106ece50a3ebb", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_lacp.py", + "name": "plugins/action/service.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c38d69e1f6cbf52fdd84449b019b337962afdd3685d38e8635bd80c79fc28d9", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_bgp_address_family.py", + "name": "plugins/action/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e3d38788590802b2c9007594d0b008532e9314bc44e8a8c17083c1f70c0a35e", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_lldp.py", + "name": "plugins/action/banner.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ed7f699ea8b847870a2f99e9d42ecf55bb70cd2d1f38d39b65f6b35ea7bf7739", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_logging_global.py", + "name": "plugins/action/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "74ba47a819e4473bdc366272680c4351f2a0cc8b95001ef437d7018011134e7c", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_ping.py", + "name": "plugins/action/route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "abd66507a7d8a768518d0925de79e6b81f8fea7a23f087177932df20f5702715", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_ntp_global.py", + "name": "plugins/action/user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76d59f676f660789f3ed3793b2b48672d240efe238a20f92c336515e1002b4b2", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_ospfv3.py", + "name": "plugins/action/ios.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15b349ce09d6168c98525de1a9225f510909629e737c754412168ee5e1800e1a", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_ospf_interfaces.py", + "name": "plugins/action/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59e0db107b7b050f2d6910f14301bc17d72432526d96dee97d62d99c58502e15", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_ospfv2.py", + "name": "plugins/action/logging.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64ed9313605ffaaae2385dc9d4a2b41e566dc760d2e5c4a2bc5fa0aeb9357982", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_route_maps.py", + "name": "plugins/action/ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a8944dc9ce33fd98c154ac00a97ebf73fab242a3d42a11b0fda3a5b9a5556445", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_snmp_server.py", + "name": "plugins/action/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "816d1f4bcf90311e4402e74d4bb76aa5fd78326535b2bd4860bce1957b091c8a", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_bgp.py", + "name": "plugins/action/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0db4f0011ef38cce8fe177deab111257d3012ab7e25d5cb5680a8d9b8640e2be", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_config.py", + "name": "plugins/action/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bcac658cede985e299d5e1d0079309784b1886e61bf5e789e8721975eeca0a51", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_user.py", + "name": "plugins/action/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec8c31c038a8a573be22c6cc7781b18f51fc3c35a9990d81f7fc51e30db66a37", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_lacp_interfaces.py", + "name": "plugins/action/config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16c553e3997af81f7fe41232b71f9548ab567a5430356e2904573441a1254ab5", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_acl_interfaces.py", + "name": "plugins/action/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba34b07e15d390595759f5bda5f78d022cf3bde78d960c3a944b29b4ac78df0b", + "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", "format": 1 }, { - "name": "plugins/modules/ios_lldp_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bf57b49a9b78774f084d3bb6d1e6b3d8b69ab19c7f544e1c621dbcf75b0b740e", + "name": "plugins/cache", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/modules/ios_hostname.py", + "name": "plugins/cache/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb285380781590a0c9712994169f032e2158e1a081c39ca587cf9b708835aea8", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/ios_static_routes.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "005f38e5c7349ba72fe3a68bc0c55f2f88a0ea8569f72265a69eeaa8a0709a66", + "name": "plugins/inventory", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/modules/ios_interfaces.py", + "name": "plugins/inventory/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dbc7c65001c2d571718846580485ff91cc1937dc7b8c621c4593e84b1dfe7e41", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/ios_l2_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8aa17b7de5645ef7d089251107a7c479c0c33a6078c87e319a5e0612f448e05c", + "name": "plugins/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/modules/ios_vrf.py", + "name": "plugins/modules/ios_vxlan_vtep.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d61b581c7b35b4c0ae9c56c2971fe32f9af84b86a84f01a91913d15fcb733c8", + "chksum_sha256": "3897ab55eed7ce1de5b147dbafcc16005b8a3c0dd6139ef46f7406696153cd22", "format": 1 }, { - "name": "plugins/modules/ios_vlans.py", + "name": "plugins/modules/ios_bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2343fe7113565914f6bc257a500e7d86a936969dfa86baee79f2eb4beebaaff3", + "chksum_sha256": "3b9b312d3fb290ad3b748f8ab433a074a9796d1f9ce95c0effe353656b16bee2", "format": 1 }, { - "name": "plugins/modules/ios_service.py", + "name": "plugins/modules/ios_lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e4d9a134d041cf48669cbdb6cde10dd2337a8f6a577c967d0db062fecb3eec33", + "chksum_sha256": "b6ed88f852a8fe1eee3d14965ba9700efcc11dfb4786169fa9f0ffff1888c54b", "format": 1 }, { - "name": "plugins/modules/ios_system.py", + "name": "plugins/modules/ios_lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "04f36c07687618fd2cff763acdb88f9b1b4f600ca554d626abddff78d16887e0", - "format": 1 - }, - { - "name": "plugins/doc_fragments", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "bf57b49a9b78774f084d3bb6d1e6b3d8b69ab19c7f544e1c621dbcf75b0b740e", "format": 1 }, { - "name": "plugins/doc_fragments/ios.py", + "name": "plugins/modules/ios_l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "183557f42150c3888baca407c30a651bb6d0c70a06ac55f409b271323dfcbacf", + "chksum_sha256": "8aa17b7de5645ef7d089251107a7c479c0c33a6078c87e319a5e0612f448e05c", "format": 1 }, { - "name": "plugins/doc_fragments/__init__.py", + "name": "plugins/modules/ios_hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/lookup", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "bb285380781590a0c9712994169f032e2158e1a081c39ca587cf9b708835aea8", "format": 1 }, { - "name": "plugins/lookup/__init__.py", + "name": "plugins/modules/ios_lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/filter", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "5c38d69e1f6cbf52fdd84449b019b337962afdd3685d38e8635bd80c79fc28d9", "format": 1 }, { - "name": "plugins/filter/__init__.py", + "name": "plugins/modules/ios_facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "972575a88e6eaf128ecf1def334d75e696c872077ea91a5414a32dafb4866143", "format": 1 }, { - "name": "plugins/module_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/ios_lldp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ed7f699ea8b847870a2f99e9d42ecf55bb70cd2d1f38d39b65f6b35ea7bf7739", "format": 1 }, { - "name": "plugins/module_utils/__init__.py", + "name": "plugins/modules/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/ios_ospfv3.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "15b349ce09d6168c98525de1a9225f510909629e737c754412168ee5e1800e1a", "format": 1 }, { - "name": "plugins/module_utils/network/__init__.py", + "name": "plugins/modules/ios_service.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "e4d9a134d041cf48669cbdb6cde10dd2337a8f6a577c967d0db062fecb3eec33", "format": 1 }, { - "name": "plugins/module_utils/network/ios", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/ios_l3_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8affa943f54d1729e00666e43580c3d03d936d67ea56dd001fb856108b2b65c8", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/ios_config.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bcac658cede985e299d5e1d0079309784b1886e61bf5e789e8721975eeca0a51", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/bgp_global.py", + "name": "plugins/modules/ios_bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dca0cb13b6e26be815be0020643a86a88a7ce39cad897bdc7f369feb7ccbf614", + "chksum_sha256": "fd47cae1f8a8d041da43172d14cbd75bd5fb54419d8558186c823a75dc22e8b5", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/evpn_global.py", + "name": "plugins/modules/ios_snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "249fe0eba1589f0bdb2ba5510fa5e8f0b885e989121347301c41e44a108dfe2b", + "chksum_sha256": "816d1f4bcf90311e4402e74d4bb76aa5fd78326535b2bd4860bce1957b091c8a", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/lag_interfaces.py", + "name": "plugins/modules/ios_command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cde795fceb364b30850bb9c04ac589c84896800e1729ebe0c9a9c3478f4722b2", + "chksum_sha256": "d472c553267cd83de3d89409d05556068511b522139903551605098c26e81b0a", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/interfaces.py", + "name": "plugins/modules/ios_acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "01ee7704f1fbcefbe1c43dcf83c782817ccd2ae09d1fe9532d667b5bfcf962d1", + "chksum_sha256": "ba34b07e15d390595759f5bda5f78d022cf3bde78d960c3a944b29b4ac78df0b", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/bgp_address_family.py", + "name": "plugins/modules/ios_linkagg.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29e1cfe2d4c8064d04f53bdae1c971f631be6f0844a3ff5df9347aab1c6c0dff", + "chksum_sha256": "dff3a9d857515f74e56eebac1b59c9e8b45475e9cbd2d25ecbb9de73280baa68", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/static_routes.py", + "name": "plugins/modules/ios_acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aee1c6a1aca4f66c407d9a805b12471d1ed27959ed486bf46b34569c7a30d79e", + "chksum_sha256": "9807470479f124d8529fe6d7b2b14f25941c7817b4bf11389f2d694288925861", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/hostname.py", + "name": "plugins/modules/ios_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dd7353433ed688982b69d5f12378ff56bb0b399f0734e27b1571a86a14384253", + "chksum_sha256": "cb8b637e1f752a56bde1835241d53a5cf12d02bed53a280cf052a46b44d314a8", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/vxlan_vtep.py", + "name": "plugins/modules/ios_banner.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "982beb248da55ccc7ecf9fa011237ce35cdb9360467e8917d4ca599913ea2255", + "chksum_sha256": "3080e91ec01655a266e3052ce6b7d20f20a575adef570293e9b5d4c91e706010", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/ntp_global.py", + "name": "plugins/modules/ios_vrf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b678c59980cd60b4ab5e3cc4911f1dead04603b229b1519d74ea69b94951906b", + "chksum_sha256": "f040be5c941c61ee4bb90bb467b456254b1775de48fbb99f157e61e05bf766ad", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/snmp_server.py", + "name": "plugins/modules/ios_ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4584df761d31b13f2375279763059612816a629e584c16a4572ab991df128f3b", + "chksum_sha256": "abd66507a7d8a768518d0925de79e6b81f8fea7a23f087177932df20f5702715", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/__init__.py", + "name": "plugins/modules/ios_vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b77581c23e8dd35a0d9bdd448a3638ce38e9779e2a41f86f008739d85120fd92", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/ospfv3.py", + "name": "plugins/modules/ios_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dbd8f6a15c395b673de496acf55ac661dbf4911c6bf767b121a47240550ec2fb", + "chksum_sha256": "dbc7c65001c2d571718846580485ff91cc1937dc7b8c621c4593e84b1dfe7e41", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/service.py", + "name": "plugins/modules/ios_system.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a3a79e6c58e4de26c7d6e759b48befd4c79c541924c27ae6aad77f267e49aac", + "chksum_sha256": "04f36c07687618fd2cff763acdb88f9b1b4f600ca554d626abddff78d16887e0", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/route_maps.py", + "name": "plugins/modules/ios_ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b3ba655a290e50e5ace24b073656b5eb5aed5b1589c4e693ae5e38aca29ee941", + "chksum_sha256": "59e0db107b7b050f2d6910f14301bc17d72432526d96dee97d62d99c58502e15", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/l2_interfaces.py", + "name": "plugins/modules/ios_evpn_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "38538d11bfe3e802bebb0e784aacd68b06f83229e706087a9471713311e459fd", + "chksum_sha256": "0d7a613d4b97452d3866af5e913c5509a624d552a8e0c31029aeea9460799c6e", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/acl_interfaces.py", + "name": "plugins/modules/ios_evpn_evi.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff8d18baa44b30871ea6d13392254549e24830173ed5d8184a221d1e6a069ba4", + "chksum_sha256": "eb607f361b27e065a8f659bbefdda3b313f1ea3d80394b328120847c2be6f2d5", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/ospfv2.py", + "name": "plugins/modules/ios_route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "23b21c827433ed747a30839619719620c43d616420f4b39e3f9b07611b2da091", + "chksum_sha256": "a8944dc9ce33fd98c154ac00a97ebf73fab242a3d42a11b0fda3a5b9a5556445", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/acls.py", + "name": "plugins/modules/ios_prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e77900337a8d62303dc9365f0974278f9111ccc1efe24a33dc491e826bdb13c2", + "chksum_sha256": "a5937aafcc9ffa0ea3bb0c118aafe6f51e599038092aac782e80470c17f2be54", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/l3_interfaces.py", + "name": "plugins/modules/ios_ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ab404b96774116937c242b64b9e72fef658603adbfb92ac51c70561e8513eca", + "chksum_sha256": "76d59f676f660789f3ed3793b2b48672d240efe238a20f92c336515e1002b4b2", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/ping.py", + "name": "plugins/modules/ios_logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1f3a2280507d4b378e65de305f7c0b9512106ea50adb00615cb834366540087", + "chksum_sha256": "74ba47a819e4473bdc366272680c4351f2a0cc8b95001ef437d7018011134e7c", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/ospf_interfaces.py", + "name": "plugins/modules/ios_static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6e8876d90d0af81d076a4a10aca05c03ee0502b58e6ab3dc20e89dad38dda87", + "chksum_sha256": "005f38e5c7349ba72fe3a68bc0c55f2f88a0ea8569f72265a69eeaa8a0709a66", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/logging_global.py", + "name": "plugins/modules/ios_lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "841f75df76900bfdcae91e9d7e44bfaf394e0d75b2a8d3e38e8e0b8e62997a33", + "chksum_sha256": "16c553e3997af81f7fe41232b71f9548ab567a5430356e2904573441a1254ab5", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/prefix_lists.py", + "name": "plugins/modules/ios_ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c88d89b37339555efa1ad535ff0850e6624177208edc9e32078df5b79ea07ce", + "chksum_sha256": "64ed9313605ffaaae2385dc9d4a2b41e566dc760d2e5c4a2bc5fa0aeb9357982", "format": 1 }, { - "name": "plugins/module_utils/network/ios/rm_templates/evpn_evi.py", + "name": "plugins/modules/ios_lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c224d0295c96f2645cd41d4fe3dff84d527e48c28a9122f0c35374045147d0c1", + "chksum_sha256": "15ab6e5cb7cd7556ec0a828795d5eebc0e3a12779de558d8c95c5c519e52b47b", "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers", + "name": "plugins/module_utils", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/module.py", + "name": "plugins/module_utils/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "41e79a9b0ff1082f7cfd7356a0638c4c84ad9df056b5298a4a68a6afd663e573", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/cli", + "name": "plugins/module_utils/network", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/cli/__init__.py", + "name": "plugins/module_utils/network/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/cli/config", + "name": "plugins/module_utils/network/ios", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/ios/utils", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/cli/config/base.py", + "name": "plugins/module_utils/network/ios/utils/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba52ed9fa57f47249591b68367d04f0d70d86df7b651be27d578408924547687", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/cli/config/__init__.py", + "name": "plugins/module_utils/network/ios/utils/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "859374075d189f310c3ec91517f81e97111b6aba318644cd5769c889391e2b5f", "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/cli/config/bgp", + "name": "plugins/module_utils/network/ios/rm_templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/cli/config/bgp/neighbors.py", + "name": "plugins/module_utils/network/ios/rm_templates/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05f60415ef9fc10d6349d9a21a2bd7ae64059cad21081ba3c1b619d5a67ecf62", + "chksum_sha256": "38538d11bfe3e802bebb0e784aacd68b06f83229e706087a9471713311e459fd", "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/cli/config/bgp/__init__.py", + "name": "plugins/module_utils/network/ios/rm_templates/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "dd7353433ed688982b69d5f12378ff56bb0b399f0734e27b1571a86a14384253", "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/cli/config/bgp/process.py", + "name": "plugins/module_utils/network/ios/rm_templates/evpn_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c67a39dd2dfe3459a294045e83843d6169452bb20964249c2516f0b55025ddb", + "chksum_sha256": "249fe0eba1589f0bdb2ba5510fa5e8f0b885e989121347301c41e44a108dfe2b", "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/cli/config/bgp/address_family.py", + "name": "plugins/module_utils/network/ios/rm_templates/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "31ecceba4cfd7b5c5e9ac4508fb23295420cf8eec49edf7ccb194002e73245fa", + "chksum_sha256": "ff8d18baa44b30871ea6d13392254549e24830173ed5d8184a221d1e6a069ba4", "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/providers.py", + "name": "plugins/module_utils/network/ios/rm_templates/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "282be606081a1895bce9320c131e547a2567b1f97071a21489f244bb066f547c", + "chksum_sha256": "6f73dd148de05082a9fe6bda1ee98ed978ff3eb784fab8e2f4d39f8b4be5efdf", "format": 1 }, { - "name": "plugins/module_utils/network/ios/providers/__init__.py", + "name": "plugins/module_utils/network/ios/rm_templates/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "cde795fceb364b30850bb9c04ac589c84896800e1729ebe0c9a9c3478f4722b2", "format": 1 }, { - "name": "plugins/module_utils/network/ios/ios.py", + "name": "plugins/module_utils/network/ios/rm_templates/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c8f19b937a299add5e06e503feb5671c9233948f7eac8f73059b4eed31d00d0", + "chksum_sha256": "b678c59980cd60b4ab5e3cc4911f1dead04603b229b1519d74ea69b94951906b", "format": 1 }, { - "name": "plugins/module_utils/network/ios/__init__.py", + "name": "plugins/module_utils/network/ios/rm_templates/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/module_utils/network/ios/facts/bgp_address_family", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/ios/rm_templates/snmp_server.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2242ad92c639b8ba94555ceaf0a8b03e6474b118dd03a745a07a1d79cd10f8f2", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/ios/rm_templates/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d02fd4c43363ca7df4e9e9879e4cea873334bc4ce10f86e7bd7ae0df041fa6a6", + "chksum_sha256": "7e020c96b0f338987d398ddb205e20b6bc9984ee2f9aa2fb1d91291714158e1a", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/ios/rm_templates/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "dbd8f6a15c395b673de496acf55ac661dbf4911c6bf767b121a47240550ec2fb", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/static_routes", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/ios/rm_templates/bgp_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e63de89c1832db959e7cdddda37baf350dee719ab1a702cf9f039cf756f99061", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/static_routes/static_routes.py", + "name": "plugins/module_utils/network/ios/rm_templates/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4219bf270bcc7f6c374128d1c721ade8c3f1622da5a7377ca6115973ab0b183b", + "chksum_sha256": "841f75df76900bfdcae91e9d7e44bfaf394e0d75b2a8d3e38e8e0b8e62997a33", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/static_routes/__init__.py", + "name": "plugins/module_utils/network/ios/rm_templates/service.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "4a3a79e6c58e4de26c7d6e759b48befd4c79c541924c27ae6aad77f267e49aac", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/prefix_lists", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/ios/rm_templates/ospf_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f6e8876d90d0af81d076a4a10aca05c03ee0502b58e6ab3dc20e89dad38dda87", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/ios/rm_templates/evpn_evi.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c224d0295c96f2645cd41d4fe3dff84d527e48c28a9122f0c35374045147d0c1", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/ios/rm_templates/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb75d959c5be987f0bca13bda393af91ce11f97885fa64a22a6f1e5df4bf0bf8", + "chksum_sha256": "62bcf00cf29f836f2307ef4fa5ca20fd389bec0ab825c54e98f1246be1df9e8c", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/vxlan_vtep", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/ios/rm_templates/route_maps.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "067d135760cdcf59985c9479e468232d9699649daf3354cf328660acd36f97a0", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/vxlan_vtep/vxlan_vtep.py", + "name": "plugins/module_utils/network/ios/rm_templates/vxlan_vtep.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe7e6cd2e81720a21b23cd45a7893776528e66f9a236713e8fb97239966d8c4f", + "chksum_sha256": "982beb248da55ccc7ecf9fa011237ce35cdb9360467e8917d4ca599913ea2255", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/vxlan_vtep/__init__.py", + "name": "plugins/module_utils/network/ios/rm_templates/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "cb9300a8408af5162e90bf6454d16cc1a1dea83ff67585ad2f0394990ac19e81", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/hostname", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/ios/rm_templates/ping.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b1f3a2280507d4b378e65de305f7c0b9512106ea50adb00615cb834366540087", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/hostname/hostname.py", + "name": "plugins/module_utils/network/ios/rm_templates/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b66f9bbe31ee1de7a4acefb0fe020180477a46c7ed4787955bf5f11a714e9b3e", + "chksum_sha256": "5d2cd6f3c8e8a4c1b877d949e5868f51a9909011894e949ef729428bf75e1bdb", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/hostname/__init__.py", + "name": "plugins/module_utils/network/ios/rm_templates/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5321943611897741c7d43b18f8540a1d9cf127dd62d38622b0b3d9611423e129", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lldp_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/ios/rm_templates/static_routes.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "aee1c6a1aca4f66c407d9a805b12471d1ed27959ed486bf46b34569c7a30d79e", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/rm_templates/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8c05a82ce71ca9ebeb5df66b257d7cdbd1b5da644c9e6c95abc77296e50a93f4", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/ios/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0c0f5296b417c1eba895f8c8843cc99411f4a96fa560243ef92bf166776b3df3", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/ios/facts", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { @@ -988,304 +974,311 @@ "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/ospfv2", + "name": "plugins/module_utils/network/ios/facts/facts.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3950613aa65fc8444a44e4f02726d8f211c5e4564f179e4dae38b9dd7d16d443", + "format": 1 + }, + { + "name": "plugins/module_utils/network/ios/facts/vxlan_vtep", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/ospfv2/__init__.py", + "name": "plugins/module_utils/network/ios/facts/vxlan_vtep/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/ios/facts/vxlan_vtep/vxlan_vtep.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "113b67eaa8aa54c14a3044bef9bc27b185d3ef024cb4f8c17715a2b9a9837137", + "chksum_sha256": "fe7e6cd2e81720a21b23cd45a7893776528e66f9a236713e8fb97239966d8c4f", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/logging_global", + "name": "plugins/module_utils/network/ios/facts/legacy", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/logging_global/__init__.py", + "name": "plugins/module_utils/network/ios/facts/legacy/base.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "10afffae4140e201461d7fa9554cc10fb1bda3c55adb88b61df1430b0369ace6", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/logging_global/logging_global.py", + "name": "plugins/module_utils/network/ios/facts/legacy/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "70ccc9337540a7335478531f5d86a6a8e7769693ca56178dc405484c4954c99a", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/ospfv3", + "name": "plugins/module_utils/network/ios/facts/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/ospfv3/__init__.py", + "name": "plugins/module_utils/network/ios/facts/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/ios/facts/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ada439ee84e0d1a2ab7301e2e54e82160f60e969a79a2d004ff0e834c61c1cb8", + "chksum_sha256": "113b67eaa8aa54c14a3044bef9bc27b185d3ef024cb4f8c17715a2b9a9837137", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/legacy", + "name": "plugins/module_utils/network/ios/facts/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/legacy/base.py", + "name": "plugins/module_utils/network/ios/facts/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "10afffae4140e201461d7fa9554cc10fb1bda3c55adb88b61df1430b0369ace6", + "chksum_sha256": "2c67945d2e056b94dd9d7b778d3f7dc2881ebb00192882d846db863701f612fe", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/legacy/__init__.py", + "name": "plugins/module_utils/network/ios/facts/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/l2_interfaces", + "name": "plugins/module_utils/network/ios/facts/acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/facts/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8e711de61f5a2efc9b7c93a3f591fbcbbe96cccdfd8bfac0e62346d281b58537", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/ios/facts/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26ecb4ba4028670a5fdf7a70fa0b551a5a068db5730b721815659e618e1ec2de", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/ospf_interfaces", + "name": "plugins/module_utils/network/ios/facts/route_maps", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/facts/route_maps/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/ios/facts/route_maps/route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6246168ca839894fb46959c82ac239133251c370565901795cf361d9e3c46e7", + "chksum_sha256": "c7f2359e2128b9e5591db197d33fbcf002f07eb23c078dbfe9af3fc3cbc18a0f", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/route_maps", + "name": "plugins/module_utils/network/ios/facts/l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/route_maps/__init__.py", + "name": "plugins/module_utils/network/ios/facts/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "26ecb4ba4028670a5fdf7a70fa0b551a5a068db5730b721815659e618e1ec2de", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/route_maps/route_maps.py", + "name": "plugins/module_utils/network/ios/facts/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7f2359e2128b9e5591db197d33fbcf002f07eb23c078dbfe9af3fc3cbc18a0f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/acl_interfaces", + "name": "plugins/module_utils/network/ios/facts/lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/facts/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "96b35fdb9298af93724292ddb020ef441a25cbb787af940f806a3bd7417bf1d7", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/ios/facts/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8e711de61f5a2efc9b7c93a3f591fbcbbe96cccdfd8bfac0e62346d281b58537", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lldp_global", + "name": "plugins/module_utils/network/ios/facts/evpn_evi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lldp_global/__init__.py", + "name": "plugins/module_utils/network/ios/facts/evpn_evi/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lldp_global/lldp_global.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "392c897fb49431138840ba657137fe5b7a0bc77aec11eab9daf3ab79c7002c36", - "format": 1 - }, - { - "name": "plugins/module_utils/network/ios/facts/__init__.py", + "name": "plugins/module_utils/network/ios/facts/evpn_evi/evpn_evi.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "7a7116deaeadef9990039d9e3a307d8e654e82105bfba539fa5d9d2998451272", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/snmp_server", + "name": "plugins/module_utils/network/ios/facts/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/ios/facts/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a7f3abe73e700e987574e96c8f8d3631473cdd9254ff9dcbfa843fe99ed9742", + "chksum_sha256": "b66f9bbe31ee1de7a4acefb0fe020180477a46c7ed4787955bf5f11a714e9b3e", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/snmp_server/__init__.py", + "name": "plugins/module_utils/network/ios/facts/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lacp_interfaces", + "name": "plugins/module_utils/network/ios/facts/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/ios/facts/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21e764a5334f2bf9f4f9f642677acd7c333f65fac11664bbede8e37c4bcae070", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/facts/lldp_interfaces/lldp_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0c0f5296b417c1eba895f8c8843cc99411f4a96fa560243ef92bf166776b3df3", + "format": 1 + }, + { + "name": "plugins/module_utils/network/ios/facts/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/evpn_evi", + "name": "plugins/module_utils/network/ios/facts/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/evpn_evi/__init__.py", + "name": "plugins/module_utils/network/ios/facts/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/evpn_evi/evpn_evi.py", + "name": "plugins/module_utils/network/ios/facts/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a7116deaeadef9990039d9e3a307d8e654e82105bfba539fa5d9d2998451272", + "chksum_sha256": "392c897fb49431138840ba657137fe5b7a0bc77aec11eab9daf3ab79c7002c36", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/service", + "name": "plugins/module_utils/network/ios/facts/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/service/__init__.py", + "name": "plugins/module_utils/network/ios/facts/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/service/service.py", + "name": "plugins/module_utils/network/ios/facts/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efc3f3c00bcf17a9b56cd293e545cc6d38c096d0eebe1e72dfa00bc83bbb3846", + "chksum_sha256": "1a7f3abe73e700e987574e96c8f8d3631473cdd9254ff9dcbfa843fe99ed9742", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/acls", + "name": "plugins/module_utils/network/ios/facts/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/acls/__init__.py", + "name": "plugins/module_utils/network/ios/facts/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/acls/acls.py", + "name": "plugins/module_utils/network/ios/facts/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe000519557ac7521aab1d74348c9374a90d8ddce5806e683637751d3c6b5048", + "chksum_sha256": "cb75d959c5be987f0bca13bda393af91ce11f97885fa64a22a6f1e5df4bf0bf8", "format": 1 }, { @@ -1331,374 +1324,353 @@ "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lag_interfaces", + "name": "plugins/module_utils/network/ios/facts/l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/ios/facts/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96b35fdb9298af93724292ddb020ef441a25cbb787af940f806a3bd7417bf1d7", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/facts/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "59320bb4d3a93f8477f0b5e6a3931304863aa5d6484cd0b2b867673b04c09037", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/vlans", + "name": "plugins/module_utils/network/ios/facts/service", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/vlans/vlans.py", + "name": "plugins/module_utils/network/ios/facts/service/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "547db84d096fb43a0552766c18b1fe9464037591f9ac948497d6816ec88b2b78", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/vlans/__init__.py", + "name": "plugins/module_utils/network/ios/facts/service/service.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "efc3f3c00bcf17a9b56cd293e545cc6d38c096d0eebe1e72dfa00bc83bbb3846", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/interfaces", + "name": "plugins/module_utils/network/ios/facts/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/interfaces/interfaces.py", + "name": "plugins/module_utils/network/ios/facts/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c67945d2e056b94dd9d7b778d3f7dc2881ebb00192882d846db863701f612fe", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/facts/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "3558df7ede6d65335368161e22f5048625681c70c47ae090ea011cd7fdd4bc68", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/l3_interfaces", + "name": "plugins/module_utils/network/ios/facts/bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/facts/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/ios/facts/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6caa00263da8ce34f349a42e997a0ddd63954a3fe92e0e2499e9ad489a77f195", + "chksum_sha256": "2c5b22c31105d761f61e72d0ce69751647260fe17604eb8acb6a05022ab06d5a", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/bgp_global", + "name": "plugins/module_utils/network/ios/facts/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/bgp_global/bgp_global.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "97e15a6d847dec5b142a7aa1e49c23c3f8d23b2cb966475ca2f4db5b998ce245", - "format": 1 - }, - { - "name": "plugins/module_utils/network/ios/facts/bgp_global/__init__.py", + "name": "plugins/module_utils/network/ios/facts/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/facts/facts.py", + "name": "plugins/module_utils/network/ios/facts/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3583f4fe6da74bc42f7c9406a5e51c4d4aa3000183ad49b826bfd802f0c0ed52", - "format": 1 - }, - { - "name": "plugins/module_utils/network/ios/argspec", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "4219bf270bcc7f6c374128d1c721ade8c3f1622da5a7377ca6115973ab0b183b", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/bgp_address_family", + "name": "plugins/module_utils/network/ios/facts/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/ios/facts/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "897b1f1139b38bc098a6d8cf92b47ff1d3145596f6e7b2cee75d191a96ac1283", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/ios/facts/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "70ccc9337540a7335478531f5d86a6a8e7769693ca56178dc405484c4954c99a", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/static_routes", + "name": "plugins/module_utils/network/ios/facts/ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/static_routes/static_routes.py", + "name": "plugins/module_utils/network/ios/facts/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5b93019ca688aa2b3c9ffaed228a4d8c01258b5034d588be516deef2e37603e4", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/static_routes/__init__.py", + "name": "plugins/module_utils/network/ios/facts/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c6246168ca839894fb46959c82ac239133251c370565901795cf361d9e3c46e7", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/prefix_lists", + "name": "plugins/module_utils/network/ios/facts/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/ios/facts/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/ios/facts/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c45218163937496cae4e1594682a2a34b9e4933933ed5aba4c5115e34c79babb", + "chksum_sha256": "d02fd4c43363ca7df4e9e9879e4cea873334bc4ce10f86e7bd7ae0df041fa6a6", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/vxlan_vtep", + "name": "plugins/module_utils/network/ios/facts/vlans", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/vxlan_vtep/vxlan_vtep.py", + "name": "plugins/module_utils/network/ios/facts/vlans/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d173f9688ac144daa92782712e98c919fdf2bf16cbc67df8901f24d49271329f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/vxlan_vtep/__init__.py", + "name": "plugins/module_utils/network/ios/facts/vlans/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "db60ef97e24dd8cae240c045a31e378b0c4ef70f88437d6a5ec50db3bcdb009c", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/hostname", + "name": "plugins/module_utils/network/ios/facts/lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/hostname/hostname.py", + "name": "plugins/module_utils/network/ios/facts/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c54693851f2ac212f5f30d3ac4062ce8c11c8ec8cf464ac95620c12b685d081", + "chksum_sha256": "21e764a5334f2bf9f4f9f642677acd7c333f65fac11664bbede8e37c4bcae070", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/hostname/__init__.py", + "name": "plugins/module_utils/network/ios/facts/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lldp_interfaces", + "name": "plugins/module_utils/network/ios/facts/ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/facts/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/ios/facts/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c27fc5f34d7ac72f7e07e97409531470bb55a0e552bfd989a5d9b69f1dd9ac74", - "format": 1 - }, - { - "name": "plugins/module_utils/network/ios/argspec/lacp", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "ada439ee84e0d1a2ab7301e2e54e82160f60e969a79a2d004ff0e834c61c1cb8", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lacp/lacp.py", + "name": "plugins/module_utils/network/ios/ios.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "89db25fde82eb1ec3f45c141805d2f47ececbd6c2af2e2550c021935065c1ed7", + "chksum_sha256": "8c8f19b937a299add5e06e503feb5671c9233948f7eac8f73059b4eed31d00d0", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lacp/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "plugins/module_utils/network/ios/argspec", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ospfv2", + "name": "plugins/module_utils/network/ios/argspec/lacp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ospfv2/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/lacp/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "89db25fde82eb1ec3f45c141805d2f47ececbd6c2af2e2550c021935065c1ed7", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/ios/argspec/lacp/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dcedd4871d07466c1151ca66b038663800525dcd467928d46020dc3341d2b9ad", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/logging_global", + "name": "plugins/module_utils/network/ios/argspec/vxlan_vtep", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/logging_global/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/vxlan_vtep/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/logging_global/logging_global.py", + "name": "plugins/module_utils/network/ios/argspec/vxlan_vtep/vxlan_vtep.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05483c5a5defc62aae5f5f4413d7a0eeaf5949abe12673e879368fc628ff9784", + "chksum_sha256": "d173f9688ac144daa92782712e98c919fdf2bf16cbc67df8901f24d49271329f", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ospfv3", + "name": "plugins/module_utils/network/ios/argspec/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ospfv3/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/ios/argspec/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "966dc855301946bcffa53d43f3bc2a86835131c35ad14a48422f355379bc7738", + "chksum_sha256": "dcedd4871d07466c1151ca66b038663800525dcd467928d46020dc3341d2b9ad", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/l2_interfaces", + "name": "plugins/module_utils/network/ios/argspec/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "a393a0e39a619c48351e257131f34e581756ea196feaa0579e06ca2ab980e4a1", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/ios/argspec/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5457f6be5b2efdc9cd5d0c33500fdcc8cd857c299441ea5cfad0325c0960c57e", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ospf_interfaces", + "name": "plugins/module_utils/network/ios/argspec/acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "4bd638f26736e99f9344760db34a47fa9a0e05132a6ae6e8ee45e01f81888064", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/ios/argspec/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c91be7d7581d9aae2657187c3e4e0233d0b86e7886d174a1803df99fafcc5be", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { @@ -1723,199 +1695,178 @@ "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/acl_interfaces", + "name": "plugins/module_utils/network/ios/argspec/l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5457f6be5b2efdc9cd5d0c33500fdcc8cd857c299441ea5cfad0325c0960c57e", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/ios/argspec/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4bd638f26736e99f9344760db34a47fa9a0e05132a6ae6e8ee45e01f81888064", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lldp_global", + "name": "plugins/module_utils/network/ios/argspec/lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lldp_global/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/module_utils/network/ios/argspec/lldp_global/lldp_global.py", + "name": "plugins/module_utils/network/ios/argspec/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4053cf17588d3f40e96123a5a0adbd48b9aad14450a70a612b6c7244b137c189", + "chksum_sha256": "d74d58b5cf7ad1ddb524b74f220ae5af7314b646139fa2bda4d9126c185e43e0", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/snmp_server", + "name": "plugins/module_utils/network/ios/argspec/evpn_evi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/ios/argspec/evpn_evi/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6edeffac28f4315f61fc610de0ca688fcbbaa224fce0e5fecd8084bb1a7bf8eb", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/snmp_server/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/evpn_evi/evpn_evi.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "e657aa784d67f251088a2cb86faa901fd53513c936d887aa4045c9d8026f5ace", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ping", + "name": "plugins/module_utils/network/ios/argspec/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ping/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "1c54693851f2ac212f5f30d3ac4062ce8c11c8ec8cf464ac95620c12b685d081", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/ping/ping.py", + "name": "plugins/module_utils/network/ios/argspec/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8280adf6fec29f9ded0d547a41cff6b2c822d1a53a56008e7fa890397dd569f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/facts", + "name": "plugins/module_utils/network/ios/argspec/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/facts/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/facts/facts.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4d3340a5018ae4c06ca1d4fed2b7e307feaba807408f949b4d6b89ef2ff7408f", - "format": 1 - }, - { - "name": "plugins/module_utils/network/ios/argspec/lacp_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/module_utils/network/ios/argspec/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/ios/argspec/lldp_interfaces/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "66630ccb587e57b78f8b61fbf6e499f0ffdf5a886cd6afa119dbe4552b812942", + "chksum_sha256": "c27fc5f34d7ac72f7e07e97409531470bb55a0e552bfd989a5d9b69f1dd9ac74", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/evpn_evi", + "name": "plugins/module_utils/network/ios/argspec/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/evpn_evi/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/evpn_evi/evpn_evi.py", + "name": "plugins/module_utils/network/ios/argspec/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e657aa784d67f251088a2cb86faa901fd53513c936d887aa4045c9d8026f5ace", + "chksum_sha256": "4053cf17588d3f40e96123a5a0adbd48b9aad14450a70a612b6c7244b137c189", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/service", + "name": "plugins/module_utils/network/ios/argspec/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/service/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/service/service.py", + "name": "plugins/module_utils/network/ios/argspec/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82d5f1b9d574c4753c3e7acee9c3ec0da539fdd67257f44e2ddebe976b9990a3", + "chksum_sha256": "6edeffac28f4315f61fc610de0ca688fcbbaa224fce0e5fecd8084bb1a7bf8eb", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/acls", + "name": "plugins/module_utils/network/ios/argspec/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/acls/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/acls/acls.py", + "name": "plugins/module_utils/network/ios/argspec/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aee0703ab5ab05bc8845c32332b051ef94361f2256b01f9bb08efa7c1748256a", + "chksum_sha256": "c45218163937496cae4e1594682a2a34b9e4933933ed5aba4c5115e34c79babb", "format": 1 }, { @@ -1961,563 +1912,584 @@ "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lag_interfaces", + "name": "plugins/module_utils/network/ios/argspec/facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/ios/argspec/facts/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d74d58b5cf7ad1ddb524b74f220ae5af7314b646139fa2bda4d9126c185e43e0", + "chksum_sha256": "4d3340a5018ae4c06ca1d4fed2b7e307feaba807408f949b4d6b89ef2ff7408f", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/facts/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/vlans", + "name": "plugins/module_utils/network/ios/argspec/l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/vlans/vlans.py", + "name": "plugins/module_utils/network/ios/argspec/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bcb614781b29a9fd793ffd5eb53a4b7feb0a93db84c2ca40e53fcb828192a6e4", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/vlans/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8d9df43341b3bd98923cd796466dad9677bb2a2f8a6bf2e3a772244d0532767e", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/interfaces", + "name": "plugins/module_utils/network/ios/argspec/service", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/interfaces/interfaces.py", + "name": "plugins/module_utils/network/ios/argspec/service/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a393a0e39a619c48351e257131f34e581756ea196feaa0579e06ca2ab980e4a1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/service/service.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "82d5f1b9d574c4753c3e7acee9c3ec0da539fdd67257f44e2ddebe976b9990a3", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/l3_interfaces", + "name": "plugins/module_utils/network/ios/argspec/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/ios/argspec/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fa202b891eca20e325fd07cfe7bb8c8b62ae8c1c0f90986fc2d11ebd60ee4116", + "chksum_sha256": "aee0703ab5ab05bc8845c32332b051ef94361f2256b01f9bb08efa7c1748256a", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/bgp_global", + "name": "plugins/module_utils/network/ios/argspec/ping", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/bgp_global/bgp_global.py", + "name": "plugins/module_utils/network/ios/argspec/ping/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5cfd5f037bbe2a36ecaa598d0510c195fcec9100b82ca6fa6a5cd0a5051be051", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/argspec/bgp_global/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/ping/ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/module_utils/network/ios/config", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "f8280adf6fec29f9ded0d547a41cff6b2c822d1a53a56008e7fa890397dd569f", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/bgp_address_family", + "name": "plugins/module_utils/network/ios/argspec/bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/ios/argspec/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "460ceeee40e7598109073d42741b0dffe67fe70c66a325e6c1fb0cfd7c509375", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "764927615985c9f0e7ef1f523a1eeade921a44f59e591cc189ce92ffd0966576", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/static_routes", + "name": "plugins/module_utils/network/ios/argspec/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/static_routes/static_routes.py", + "name": "plugins/module_utils/network/ios/argspec/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5120bfb8491af8a7eba0fe9aa34aed7584b68f52c893e1503a09c4553f09ab53", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/static_routes/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5b93019ca688aa2b3c9ffaed228a4d8c01258b5034d588be516deef2e37603e4", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/prefix_lists", + "name": "plugins/module_utils/network/ios/argspec/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/ios/argspec/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cf110869b334a0434d5455afb0f908ab7791e2826f3cb86786cf6b61d493f3fe", + "chksum_sha256": "05483c5a5defc62aae5f5f4413d7a0eeaf5949abe12673e879368fc628ff9784", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/vxlan_vtep", + "name": "plugins/module_utils/network/ios/argspec/ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/vxlan_vtep/vxlan_vtep.py", + "name": "plugins/module_utils/network/ios/argspec/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "207545a5f0ceff4d0b5263f455bca714143347f279555c7669d470e63745b76d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/vxlan_vtep/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "7c91be7d7581d9aae2657187c3e4e0233d0b86e7886d174a1803df99fafcc5be", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/hostname", + "name": "plugins/module_utils/network/ios/argspec/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/hostname/hostname.py", + "name": "plugins/module_utils/network/ios/argspec/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a3ee876a751592ce69707eb7d89fe013d8659752a50246b6b85b209f0afa4a4", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/hostname/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "897b1f1139b38bc098a6d8cf92b47ff1d3145596f6e7b2cee75d191a96ac1283", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lldp_interfaces", + "name": "plugins/module_utils/network/ios/argspec/vlans", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/vlans/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/ios/argspec/vlans/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3949fb9c8b9448e84fce989aaec57be482668c7920451aea2423d725bbe0987", + "chksum_sha256": "a3383e378f7dd6d8cb0016e37921ac12301eb9e6866275d17defca986bf89035", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lacp", + "name": "plugins/module_utils/network/ios/argspec/lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lacp/lacp.py", + "name": "plugins/module_utils/network/ios/argspec/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "300ba5cb0ef7e095c22f44d5f6b97949745d772edd1da67d8bb258e9da2a3c81", + "chksum_sha256": "66630ccb587e57b78f8b61fbf6e499f0ffdf5a886cd6afa119dbe4552b812942", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lacp/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ospfv2", + "name": "plugins/module_utils/network/ios/argspec/ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ospfv2/__init__.py", + "name": "plugins/module_utils/network/ios/argspec/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/ios/argspec/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bddbd16a2f3a16949e7d6d68aeae72c33916badfc79cd03549d5f8d7b7063daa", + "chksum_sha256": "966dc855301946bcffa53d43f3bc2a86835131c35ad14a48422f355379bc7738", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/logging_global", + "name": "plugins/module_utils/network/ios/config", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/logging_global/__init__.py", + "name": "plugins/module_utils/network/ios/config/lacp", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/ios/config/lacp/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "300ba5cb0ef7e095c22f44d5f6b97949745d772edd1da67d8bb258e9da2a3c81", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/logging_global/logging_global.py", + "name": "plugins/module_utils/network/ios/config/lacp/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e3cc535a16266ea929afad7724c40519bc119627f8312411fedea16ab1a624f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ospfv3", + "name": "plugins/module_utils/network/ios/config/vxlan_vtep", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ospfv3/__init__.py", + "name": "plugins/module_utils/network/ios/config/vxlan_vtep/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/ios/config/vxlan_vtep/vxlan_vtep.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "736eb6daa9c808d54ce49fe1d90dde283856c61fbe5e6f7e13553c955ca4ad76", + "chksum_sha256": "207545a5f0ceff4d0b5263f455bca714143347f279555c7669d470e63745b76d", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/l2_interfaces", + "name": "plugins/module_utils/network/ios/config/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/config/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/ios/config/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d7deaadebc8d74f00864d4d87666c974297fa01637522c6a5438193953dfdab", + "chksum_sha256": "bddbd16a2f3a16949e7d6d68aeae72c33916badfc79cd03549d5f8d7b7063daa", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ospf_interfaces", + "name": "plugins/module_utils/network/ios/config/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/config/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "d76972dfae66d04dadb152c4f023e58aaef97df0c1ae88e33bdc3d7cf0be2b45", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/ios/config/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "383eeb77e1dfebff8ea69cad713d8e3f3468e91a07cc57de5ebbf4bdc1aa75d7", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/route_maps", + "name": "plugins/module_utils/network/ios/config/acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/route_maps/__init__.py", + "name": "plugins/module_utils/network/ios/config/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c703e02ad4dce33a34ba9c3400cf40c69681fd582d0e58e50abd50a416c4d638", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/route_maps/route_maps.py", + "name": "plugins/module_utils/network/ios/config/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1b3a698c940c2092d72f35fc6839e5f5a91bff84f34ebbcb492f7f89e3ff9b1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/acl_interfaces", + "name": "plugins/module_utils/network/ios/config/route_maps", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/config/route_maps/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/ios/config/route_maps/route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c703e02ad4dce33a34ba9c3400cf40c69681fd582d0e58e50abd50a416c4d638", + "chksum_sha256": "371c1bf37a31ec94b5cda763d46013c978403a88cbfd901baec4e05e1644a724", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lldp_global", + "name": "plugins/module_utils/network/ios/config/l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lldp_global/__init__.py", + "name": "plugins/module_utils/network/ios/config/l2_interfaces/l2_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3d7deaadebc8d74f00864d4d87666c974297fa01637522c6a5438193953dfdab", + "format": 1 + }, + { + "name": "plugins/module_utils/network/ios/config/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lldp_global/lldp_global.py", + "name": "plugins/module_utils/network/ios/config/lag_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/ios/config/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5e138aaf2b9b9eb6f546d25f0957bec353342b61f8047f97f7e882c71e1422e9", + "chksum_sha256": "295679089484f01af9517b998fb2e0caf5d810436bcf8e40e261a309b81b5865", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/__init__.py", + "name": "plugins/module_utils/network/ios/config/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/snmp_server", + "name": "plugins/module_utils/network/ios/config/evpn_evi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/ios/config/evpn_evi/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "78f688254f56593bdbf0e8a42f53f99e14a14ba3f0d010feb0d3363269691996", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/snmp_server/__init__.py", + "name": "plugins/module_utils/network/ios/config/evpn_evi/evpn_evi.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "534f88e839f73905c4eba1522537b7ae4b1fa6352ff1b3ae994d98c7b9b2a544", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ping", + "name": "plugins/module_utils/network/ios/config/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ping/__init__.py", + "name": "plugins/module_utils/network/ios/config/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "2a3ee876a751592ce69707eb7d89fe013d8659752a50246b6b85b209f0afa4a4", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/ping/ping.py", + "name": "plugins/module_utils/network/ios/config/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59aaa34239c2ffb3176d64799286da43cd062d2b4fc22893990bcf03c9103961", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lacp_interfaces", + "name": "plugins/module_utils/network/ios/config/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/ios/config/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dbc626e83c3d4ce8c8aa42ee8903738f6ac2b1e16e8cda34dba4eebfdaebc01a", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/config/lldp_interfaces/lldp_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d3949fb9c8b9448e84fce989aaec57be482668c7920451aea2423d725bbe0987", + "format": 1 + }, + { + "name": "plugins/module_utils/network/ios/config/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/evpn_evi", + "name": "plugins/module_utils/network/ios/config/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/evpn_evi/__init__.py", + "name": "plugins/module_utils/network/ios/config/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/evpn_evi/evpn_evi.py", + "name": "plugins/module_utils/network/ios/config/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "534f88e839f73905c4eba1522537b7ae4b1fa6352ff1b3ae994d98c7b9b2a544", + "chksum_sha256": "5e138aaf2b9b9eb6f546d25f0957bec353342b61f8047f97f7e882c71e1422e9", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/service", + "name": "plugins/module_utils/network/ios/config/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/service/__init__.py", + "name": "plugins/module_utils/network/ios/config/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/service/service.py", + "name": "plugins/module_utils/network/ios/config/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e81e0457003ea7380ead5e8550544b20ed8d05bdb2e4ced4a21d99c7319c345", + "chksum_sha256": "addd5b7ee358b6faefebf98793f270f21c2584114f2066d08743add965dc5f6c", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/acls", + "name": "plugins/module_utils/network/ios/config/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/acls/__init__.py", + "name": "plugins/module_utils/network/ios/config/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/acls/acls.py", + "name": "plugins/module_utils/network/ios/config/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "41b94b7f5977a81c90a558ef1e7e80cbeccf17cff3068c19fc3af31612c25921", + "chksum_sha256": "cf110869b334a0434d5455afb0f908ab7791e2826f3cb86786cf6b61d493f3fe", "format": 1 }, { @@ -2563,87 +2535,87 @@ "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lag_interfaces", + "name": "plugins/module_utils/network/ios/config/l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/ios/config/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "295679089484f01af9517b998fb2e0caf5d810436bcf8e40e261a309b81b5865", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/config/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9c8b711012e2b25b8a2ecdc0d10581981ca1e99d0910cc70344091a1f2386780", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/vlans", + "name": "plugins/module_utils/network/ios/config/service", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/vlans/vlans.py", + "name": "plugins/module_utils/network/ios/config/service/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8fa9b1e49d5701c3308565b55f231299f7a6d986f4c8698c1b2d7d7d6b807476", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/vlans/__init__.py", + "name": "plugins/module_utils/network/ios/config/service/service.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "2e81e0457003ea7380ead5e8550544b20ed8d05bdb2e4ced4a21d99c7319c345", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/interfaces", + "name": "plugins/module_utils/network/ios/config/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/interfaces/interfaces.py", + "name": "plugins/module_utils/network/ios/config/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d76972dfae66d04dadb152c4f023e58aaef97df0c1ae88e33bdc3d7cf0be2b45", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/config/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8c7c3550d9f5bc131536a6b86f51a50f663b00321d6e1ee4e54d7d8e43ea4601", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/l3_interfaces", + "name": "plugins/module_utils/network/ios/config/ping", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/ios/config/ping/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/ios/config/ping/ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "80d5e6e948da92d2ed41df019bc761282b0d9220c25c53c7fd4e6efa7c30281a", + "chksum_sha256": "59aaa34239c2ffb3176d64799286da43cd062d2b4fc22893990bcf03c9103961", "format": 1 }, { @@ -2654,2033 +2626,1543 @@ "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/bgp_global/bgp_global.py", + "name": "plugins/module_utils/network/ios/config/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab439c9625cb093beca2e87390a97baa4ecd7be4c483e6c4ad15158b19e04bfa", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/config/bgp_global/__init__.py", + "name": "plugins/module_utils/network/ios/config/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ce94cfe092d61a9de61960b016d90eb10869f3621c8d835f4ad5f9b03b3afeaa", "format": 1 }, { - "name": "plugins/module_utils/network/ios/utils", + "name": "plugins/module_utils/network/ios/config/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/ios/utils/__init__.py", + "name": "plugins/module_utils/network/ios/config/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/ios/utils/utils.py", + "name": "plugins/module_utils/network/ios/config/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf2039ac32f07f4585257dd7ac39ea79bd3a7e4a0954b5666461f36094dc7361", + "chksum_sha256": "5120bfb8491af8a7eba0fe9aa34aed7584b68f52c893e1503a09c4553f09ab53", "format": 1 }, { - "name": "plugins/action", + "name": "plugins/module_utils/network/ios/config/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/bgp_global.py", + "name": "plugins/module_utils/network/ios/config/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/lacp.py", + "name": "plugins/module_utils/network/ios/config/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "9e3cc535a16266ea929afad7724c40519bc119627f8312411fedea16ab1a624f", "format": 1 }, { - "name": "plugins/action/vlans.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "plugins/module_utils/network/ios/config/ospf_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/lag_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", - "format": 1 - }, - { - "name": "plugins/action/user.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", - "format": 1 - }, - { - "name": "plugins/action/interfaces.py", + "name": "plugins/module_utils/network/ios/config/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/linkagg.py", + "name": "plugins/module_utils/network/ios/config/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "383eeb77e1dfebff8ea69cad713d8e3f3468e91a07cc57de5ebbf4bdc1aa75d7", "format": 1 }, { - "name": "plugins/action/bgp_address_family.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "plugins/module_utils/network/ios/config/bgp_address_family", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/system.py", + "name": "plugins/module_utils/network/ios/config/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/static_routes.py", + "name": "plugins/module_utils/network/ios/config/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "460ceeee40e7598109073d42741b0dffe67fe70c66a325e6c1fb0cfd7c509375", "format": 1 }, { - "name": "plugins/action/hostname.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "plugins/module_utils/network/ios/config/vlans", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/lacp_interfaces.py", + "name": "plugins/module_utils/network/ios/config/vlans/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/logging.py", + "name": "plugins/module_utils/network/ios/config/vlans/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "936a5ee66ddac54f3bf82be305f6f0c40e29d5783a5db95f7c22e66f75f68ee5", "format": 1 }, { - "name": "plugins/action/ntp_global.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "plugins/module_utils/network/ios/config/lacp_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/ntp.py", + "name": "plugins/module_utils/network/ios/config/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "dbc626e83c3d4ce8c8aa42ee8903738f6ac2b1e16e8cda34dba4eebfdaebc01a", "format": 1 }, { - "name": "plugins/action/ios.py", + "name": "plugins/module_utils/network/ios/config/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/snmp_server.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "plugins/module_utils/network/ios/config/ospfv3", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/__init__.py", + "name": "plugins/module_utils/network/ios/config/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/ospfv3.py", + "name": "plugins/module_utils/network/ios/config/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "736eb6daa9c808d54ce49fe1d90dde283856c61fbe5e6f7e13553c955ca4ad76", "format": 1 }, { - "name": "plugins/action/service.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "plugins/module_utils/network/ios/providers", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/route_maps.py", + "name": "plugins/module_utils/network/ios/providers/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/bgp.py", + "name": "plugins/module_utils/network/ios/providers/providers.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "282be606081a1895bce9320c131e547a2567b1f97071a21489f244bb066f547c", "format": 1 }, { - "name": "plugins/action/l2_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "plugins/terminal", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/command.py", + "name": "plugins/terminal/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/acl_interfaces.py", + "name": "plugins/terminal/ios.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "2a6048a34e92899b3ae64a00d92dd6fff82bdb17f3065bfd2acce4cb94c1d7d6", "format": 1 }, { - "name": "plugins/action/ospfv2.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "plugins/cliconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/config.py", + "name": "plugins/cliconf/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/acls.py", + "name": "plugins/cliconf/ios.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "d7aba72972fc76fe4ff311096e72347c1be5a3d8cd2fbcdf44447a02e76ffb85", "format": 1 }, { - "name": "plugins/action/lldp.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "plugins/plugin_utils", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/l3_interfaces.py", + "name": "plugins/plugin_utils/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/ping.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "plugins/filter", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/ospf_interfaces.py", + "name": "plugins/filter/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/lldp_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": "meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/logging_global.py", + "name": "meta/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/prefix_lists.py", + "name": "meta/runtime.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "ffdb23b4e35b69fbd30d065a11f01c54f7ff093c0cbdb1601fcd9449fd4e88e7", "format": 1 }, { - "name": "plugins/action/banner.py", + "name": ".ansible-lint", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "856f0e6918f45626935cfc1f99dc19e9bb367c10482e490ad3595c3f92b7ee84", "format": 1 }, { - "name": "plugins/action/vrf.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "name": ".config", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/facts.py", + "name": ".config/dictionary.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "b504c990735c090ba655b9acdcc12a537ebf7d2e101b308ef1edc8543d9ed804", "format": 1 }, { - "name": "plugins/action/lldp_global.py", + "name": ".pre-commit-config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43d06ad4def4673c1c239fe5c7d625c9e7a233437a7780c0d97c67ea4052acc9", + "chksum_sha256": "9702099b03b60d629847b7a305a1e9557d5229f5d406e0346dc6dbcb0722fefe", "format": 1 }, { - "name": ".ansible-lint", + "name": "pyproject.toml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b47f72e159f93a5ff07ea2534752e0fa977b214e9ac05c667fa83ac13be4e50c", + "chksum_sha256": "1cb6a45dfa2625123890b93ad7fdc156b063c16e8ae6dba11511a1d1986b0fcc", "format": 1 }, { - "name": "test-requirements.txt", + "name": "README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef11b7e31c53ed88a2352faacda33806dda00f45d4e9cce540a40e6a47ccbe73", + "chksum_sha256": "68ff7eb1cebf6fcee44618f9a029ed45ccde0a8dcd97e8faebf3a8ebc113a7de", "format": 1 }, { - "name": "tests", + "name": "changelogs", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity", + "name": "changelogs/fragments", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.9.txt", + "name": "changelogs/fragments/.keep", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd021dfbe2578d6984075377ccfa70ef38c5643a3c9828b3b639c4751c964967", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/sanity/ignore-2.13.txt", + "name": "changelogs/config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", + "chksum_sha256": "337a1b5254e78eb8982998815aec7e88f9d63d46e1a70c46268683a5513191f1", "format": 1 }, { - "name": "tests/sanity/ignore-2.11.txt", + "name": "changelogs/changelog.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "81071aa2e12650110cdf71d787e2703af0ed3028873f7a51d71f6684dd0afc84", + "chksum_sha256": "636aee6b5f5dd00c3e3a25a13e451f7ed19fa31698b9de95c9f8b6f28519257e", "format": 1 }, { - "name": "tests/sanity/ignore-2.10.txt", + "name": ".isort.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4abd57a7ab2a407892bb5873028919109aaa28d5fed12c2a0e4b9691076d713e", + "chksum_sha256": "f287de31c528e7d37475770952855fb25ec053d0bcaedd577091d13807b4c5dc", "format": 1 }, { - "name": "tests/sanity/ignore-2.14.txt", + "name": ".yamllint", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", + "chksum_sha256": "827ef9e031ecdcaf137be239d33ef93fcbbc3611cbb6b30b0e507d0e03373d0e", "format": 1 }, { - "name": "tests/sanity/ignore-2.17.txt", + "name": "test-requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", + "chksum_sha256": "0c5ac3417352160300a61814db3a245f2ff474f0a3f49e32de12ade27c4156be", "format": 1 }, { - "name": "tests/sanity/ignore-2.16.txt", + "name": ".prettierignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", + "chksum_sha256": "87f689e56b912f78012677dba2e0237a65f7b3c1f903006cddefab21bf0689f2", "format": 1 }, { - "name": "tests/sanity/ignore-2.12.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", + "name": "tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.15.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", + "name": "tests/integration", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/__init__.py", + "name": "tests/integration/target-prefixes.network", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "39053a91dac30879cf24512c4234e519681a1e88be8af8b18415df87fa4b9006", "format": 1 }, { - "name": "tests/config.yml", + "name": "tests/integration/network-integration.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de5087316490411841c67aa3307cfdd3acaea09875c9b4dee6852bca7c120764", + "chksum_sha256": "d67b11263a8f50b30bf43c7c2b4bdd8dc4f173f0b5dd22761311360dfbd56a1d", "format": 1 }, { - "name": "tests/unit", + "name": "tests/integration/targets", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/requirements.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "49ba996dc4735c3463e9af561344346dfae14bcc1a68096ce78364b377f0df1f", + "name": "tests/integration/targets/ios_hostname", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins", + "name": "tests/integration/targets/ios_hostname/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/__init__.py", + "name": "tests/integration/targets/ios_hostname/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/unit/plugins/cliconf", + "name": "tests/integration/targets/ios_hostname/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/cliconf/__init__.py", + "name": "tests/integration/targets/ios_hostname/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "febb64d561f5a456e89d59fb77210502df86daa4eca07014b96993b76d0bc5ba", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/test_ios.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f46dc137e8680947b460f18c891b28964607d14143c57a7fb7fc85d8e8b956aa", - "format": 1 - }, - { - "name": "tests/unit/plugins/cliconf/fixtures", + "name": "tests/integration/targets/ios_hostname/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/__init__.py", + "name": "tests/integration/targets/ios_hostname/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/slxos", + "name": "tests/integration/targets/ios_hostname/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/slxos/show_version", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e18e1a4f1640ca226a2f0d067a422af58218fa7f191a8b71394432a56177c7fd", + "name": "tests/integration/targets/ios_hostname/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/slxos/show_startup-config", + "name": "tests/integration/targets/ios_hostname/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1a135373ce559af818475189bbfc8ff838f5891869b62e159e38ac4c30b3284", + "chksum_sha256": "e42472783ff99e3351a0a581b2ddcdaca689eb9cb8044af829d580473e17ac35", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/slxos/__init__.py", + "name": "tests/integration/targets/ios_hostname/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "909ad0ac69441e0c20405814bade15872ccc23e5b736632efcfd2880d863c6d7", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/slxos/show_running-config", + "name": "tests/integration/targets/ios_hostname/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1a135373ce559af818475189bbfc8ff838f5891869b62e159e38ac4c30b3284", + "chksum_sha256": "6cd846336af90bbf055ebce81f350f2187733b3580f5c227b07ad766e6c4bf9f", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/slxos/show_chassis", + "name": "tests/integration/targets/ios_hostname/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ab5008e1e19a8b1995b8c284856ae37ae5d242975b81057a3f0127fafa0f7a2", + "chksum_sha256": "0a18425a89f8e85573729e8c29b8c45e491dd6814b221f9d42a0acf0960689e8", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/nos", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_hostname/tests/cli/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9313132bb4ea08fdfebbd76b6376eda299d1e61fef0b62973309894399193613", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/nos/show_version", + "name": "tests/integration/targets/ios_hostname/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a21600440d1fbd2208fd81eeeaa632cfdf6b69c060bcff46e5a3f4a5f5c26f68", + "chksum_sha256": "334a751e168137370f8d5baaae2c017e63cd9870191a2476633bdb33f5aec915", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/nos/__init__.py", + "name": "tests/integration/targets/ios_hostname/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5b7529ae69029b3e22b4dec95b722595deebe267cb2f2735a85fd53a4c82bac8", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/nos/show_running-config", + "name": "tests/integration/targets/ios_hostname/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "42f2e50d84821d1ce5c9ddfa082e7a6086254ef9908166a0d4523a3dc5b6b2df", + "chksum_sha256": "070883e8b78940daa953461fd32520d1bef4bdf4cf98664b3e82c7d0fae842b6", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/nos/show_chassis", + "name": "tests/integration/targets/ios_hostname/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2890b7a8db9c1e8954a186fa311c8a2b44477b1d04bff9c32bf75b7797b4533", + "chksum_sha256": "8f0c8602b6863de3c09c0f29fb3fbe83fc0afa94d1358db7cb974628c616ebc4", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/ios", + "name": "tests/integration/targets/ios_hostname/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/ios/show_version", + "name": "tests/integration/targets/ios_hostname/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28896cfd7a101f137f8433db1efdb33343aa43425aaedc2d4f7eebec7e71204d", + "chksum_sha256": "9e463dfec9973774a7a87d75f8e492a829e08a207f7330616a23032087174429", "format": 1 }, { - "name": "tests/unit/plugins/cliconf/fixtures/ios/__init__.py", + "name": "tests/integration/targets/ios_hostname/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/unit/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/integration/targets/ios_lldp", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/mock", + "name": "tests/integration/targets/ios_lldp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/mock/vault_helper.py", + "name": "tests/integration/targets/ios_lldp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3bf7834d18bd34473d0f4b898253177229a131f14364874efba584ff985e4a41", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/unit/mock/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/integration/targets/ios_lldp/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/mock/procenv.py", + "name": "tests/integration/targets/ios_lldp/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e869c848191bb9586fa25214c452cd18497a737e30ff2747977f8b8d4da620c7", + "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", "format": 1 }, { - "name": "tests/unit/mock/loader.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2343d1f644250d4b616f0bf0a826fdee8fe306243d8412d44dd0e033352b262b", + "name": "tests/integration/targets/ios_lldp/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/mock/yaml_helper.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fa89194ba60856f51500efdd1f802c5ca3b2e4ded9461d7b88847c427a43a958", + "name": "tests/integration/targets/ios_lldp/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/mock/path.py", + "name": "tests/integration/targets/ios_lldp/tests/cli/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "920ca3acb70a819bba26034101cf1e8497e8a5445f220a4df0cbacca03b21bd7", + "chksum_sha256": "9f61afc65151115e5a86c79276acf3c3ced37cd6df01cf54550ef54252792ec7", "format": 1 }, { - "name": "tests/unit/modules", + "name": "tests/integration/targets/ios_lldp/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/__init__.py", + "name": "tests/integration/targets/ios_lldp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b0906e69a469f54c61369370c1de70ece7ed9341c9647ae69f471544fad206e4", "format": 1 }, { - "name": "tests/unit/modules/conftest.py", + "name": "tests/integration/targets/ios_lldp/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "354440d86f684a9641f329807a687fe71fc66ab901207f7a166ecfa648935488", + "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", "format": 1 }, { - "name": "tests/unit/modules/utils.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fec06b445abd9398a3dbed94e82c9e76f7daa125c13f09e7842a24aefbb216ee", + "name": "tests/integration/targets/ios_system", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network", + "name": "tests/integration/targets/ios_system/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/__init__.py", + "name": "tests/integration/targets/ios_system/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/unit/modules/network/ios", + "name": "tests/integration/targets/ios_system/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_service.py", + "name": "tests/integration/targets/ios_system/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c00bb9aff720be808ece114a8c4e3f18e4dff823186aa69f2502638a0f8658c2", + "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_acl_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "226ee34e9d64f4c1b63bee3030d846dffcf85bcb4f04a71e893bf0bb07b44ee1", + "name": "tests/integration/targets/ios_system/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_lacp_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d4ff68a41cb3751290da98519066dec8a071eb335b3edfb59511e5ae34567c9e", + "name": "tests/integration/targets/ios_system/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_logging_global.py", + "name": "tests/integration/targets/ios_system/tests/cli/set_domain_name.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c06d947da67fb9595e789d26315d77f41cec2f9aa346d9fce452be9f15abc1d2", + "chksum_sha256": "4bc85f65fcaa284e9503fe5643f16111f14daf7ba677abd84daa04302f8b007d", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_ntp.py", + "name": "tests/integration/targets/ios_system/tests/cli/set_hostname.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2987bd3aa0842cc1aa97484424f9098814f539bccba1d94c12bf33d51200365", + "chksum_sha256": "810d48f3ce471254c763859c7d33ad70b06aaa28b45712179b4794f3b5a667c5", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_lldp_global.py", + "name": "tests/integration/targets/ios_system/tests/cli/set_lookup_source.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cdfcb9c7988f951aeb3e45819d62db13c4974b0772c96937a15388cb3c2f2084", + "chksum_sha256": "10e512f2cf5dc0fe7c9d3cb0188fc3dc96dffa68beb61895d88c8dc422c886e7", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_ospfv3.py", + "name": "tests/integration/targets/ios_system/tests/cli/set_domain_list.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8171f1e8dab0e2da0cafc913dbc92d80f144acfaea650dbe1b029eebe28ccaa0", + "chksum_sha256": "592210cc1bf19177523967179ec83b786b9c60d9341acdb087e739911876007b", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_hostname.py", + "name": "tests/integration/targets/ios_system/tests/cli/set_name_servers.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e8fd5109de3a0c00ef3bfc89d6673ef6ecd0b9ecc52742ec3215768172a2bb30", + "chksum_sha256": "b59e7228e155bfcbaa1863f12fbbdc641e01c2fdef2d6bd4f4aeb2f3fa96bddf", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_lag_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5c5afac7db102eec9b01bb5f185afb06fb118cb01c7ec2393af4a37c9829fc89", + "name": "tests/integration/targets/ios_system/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_vxlan_vtep.py", + "name": "tests/integration/targets/ios_system/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "df24e333fa123be819420f2086e938d257e35283352cfff3ba34df001f9c2262", + "chksum_sha256": "68e898ba92f5164ddc8cc51967c5e2876e9002699d528634a67f2183dd558d39", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_vrf.py", + "name": "tests/integration/targets/ios_system/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29d5dd5eb47eda13e50282508895716ec7d64cc528aae244ed02744f0891d5b3", + "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_ping.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b4b15f4a2ee334263a07bc2083dc599423f3cf5c34175d4b30e888fa99c932eb", + "name": "tests/integration/targets/ios_banner", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_ospf_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c3be97fd55cc742ad99ba812a26f13a25dbf18857f037854b563873f3522dc21", + "name": "tests/integration/targets/ios_banner/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_evpn_global.py", + "name": "tests/integration/targets/ios_banner/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb1f69e919e200020e995d8794f0f030bd284b68b39013c31326394693b60afe", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_lacp.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ec2e679151350238a5994704b6b6536b0b1592e7d1dbbfcdc96b20a52820122b", + "name": "tests/integration/targets/ios_banner/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_acls.py", + "name": "tests/integration/targets/ios_banner/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fec5deeba545dbd9a3f0a08d8013929ec7f163487a8dbb476c269d39488bc1cc", + "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_snmp_server.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d3d27b8a357a47365f026dbcdf7a1b3e2317e30a21df3f7070a99b65a7bd6adb", + "name": "tests/integration/targets/ios_banner/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/integration/targets/ios_banner/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_bgp_global.py", + "name": "tests/integration/targets/ios_banner/tests/cli/basic-motd.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "689d3fd1c81b87dac82c7758c3c1721d93b83a5affb05d02a5afe43b89a33439", + "chksum_sha256": "2f9346d2348dd942748aa47f61b6aff3cf6e6ad48f94121546f09266930d371b", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_vlans.py", + "name": "tests/integration/targets/ios_banner/tests/cli/basic-login.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f888b8198120a922adf3fd3a8788186da0958fa1ceb4c383f67f4e92189a42aa", + "chksum_sha256": "455be068cdb2741b681458831a33abbe656d86186a21d5dec3425add135dc14a", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_bgp.py", + "name": "tests/integration/targets/ios_banner/tests/cli/multiple-login-exec.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16e9b1cc88b73924484d635ee5a75a1906cb759e11316cc3ca2bc6884e03d216", + "chksum_sha256": "4c2ad7f508adfa637bf8f80e8afb4c68eeb24061eb0e54b670cb020133a38f63", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_l3_interfaces.py", + "name": "tests/integration/targets/ios_banner/tests/cli/basic-no-login.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8fb3d1e70ac009d24328fe3680aaf7a62cd5382b8b985c5f41be8ab7aba03a9b", + "chksum_sha256": "3deefaccfe8f72086372732ab08319268107114dc4cf238dfef54e2974b29b26", "format": 1 }, { - "name": "tests/unit/modules/network/ios/ios_module.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8a08cf8bab33ef88408880ffc6f8034be5e532945ca4f79d82b213426104876c", + "name": "tests/integration/targets/ios_banner/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_command.py", + "name": "tests/integration/targets/ios_banner/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0b4f793aecb789530a6f3f0001fafbe618ffcdc464ca69ed105bed3bf070e8de", + "chksum_sha256": "eebaf78d8d30ccd861ee6d250aec3bc87871e249b6875f8b0f44a4a3fc828680", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_facts.py", + "name": "tests/integration/targets/ios_banner/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "205430daf9d063ed7424fee04dd5fc937fc12771b13281a096ed259e394d166a", + "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", "format": 1 }, { - "name": "tests/unit/modules/network/ios/test_ios_l2_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5f8c15e6ef5a1e936ff5be4975802e5653150bb926dd50ad90baa27747332733", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_user.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "af31457a05a3722eb39dbae567dcb89310cc242300e97b4f58cdfa7d8385fb84", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_evpn_evi.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e029ae1db0cc2e55e9a3b1ce9ff340f6f6a6cec55d49645adfd57f269ce7a1e9", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_lldp_inteface.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aaefaf4ab2bfd58d99396bb634db067b881eecd359dab67de6fc872b46869853", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_bgp_address_family.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e262dda143867de45a2cf8344627aa9fd2cbe3c209c07a58c6b34d0cbbcbf58a", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_banner.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3f093e6f88c6c61cc9bf8f3d2f3e8bdc31d7462f5312506255e645fb55efd70", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_route_maps.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cc1fd7c6b70d2f623e2f348da1b65652e6fbee1b10911531d43bc2ce034b9d5d", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_prefix_lists.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "017a9454d003407820fda4a0b61662bc7a4cccc82afeb867bf015fc210c11f1f", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures", + "name": "tests/integration/targets/ios_vxlan_vtep", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/ios/fixtures/ios_user_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "92081628d201c43cc40e2022f0ebac80f1ee5c1e78e19479d0b94780945a9657", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/show_version", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dc71e5e1dc8e16c64ad26477c7b0dc0d0278a20be9dc4a6d53224328f239f79b", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_route_maps.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a2764456add35e41e5109cefb0694cd6a708bcf77239259b47ed60d86fa06856", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_ntp_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2dc4f5c356e2ba9f40ec1ad94b5bc4e597c39657662156764465f156ab6cd7cd", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_vlan_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "73a0c5b62bea4279d25deae4c2e04bf12c53fc3784297675a92eb98c911696fc", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_ip_interface", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_lldp", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ad64c29374175a8d737d01ae856c16364c442fca9ea7b9447ab8f22d9ed78dad", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_logging_config_ios12.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2923b7e2af16ca384a4c44c7fc1c9944367fffc1769b9ee6c41d73a9e0a2c1fb", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_banner_show_banner.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fcbd9e21fbc41c072eed699ebf08ba9fc0e86b9084e4e54eb701cc12d4c764d0", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_switch_virtual", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "db1b7ead274089538a05952a47f1e7800560ca1a552adc345c34dc2ab4c4f9de", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_memory_statistics", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "38375b22d4c94dad4289ad32a3360980e0e8f30d69c4a0c2ab1d8181d4fb811b", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_config_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6fe81e446733fef4e3643a80042ab4111b9b0c927599c4b5972ecea4c18b4ffd", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_prefix_lists.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dc8a935708bb8e0b18381fb2cbd56f7bd389aa02255d0b5cbfe36a5b633b1bf1", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_ipv6_interface", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_config_defaults.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "114e89387a2b3cb37c475ed22f287f83dd93bd16a51845286b27f8355d1ae0e5", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_config_src.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "57d42d2e8e8b7a4b6cae566115ee42fecea077b525cace10cefc3b7dbd85f033", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_interfaces", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1cfa8bf44c06737f51019c8a3d7a6987fb91cb55c72a3a4a883f0eb75f13c27f", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_logging_global.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "89a3006dad756d356d14bf9704c493b1ebac4267dca6344c6af536d53dd1bbf4", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_ping_ping_10.255.255.250_repeat_2", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f6102ec8eb37947bb6892dbb4c1252c794ef52376540c9d8ce2b9753aa613685", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_cdp", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5abf76b46295216c079870fba8c70f8f6064ccd667e80d91e31b47ab84f6fd70", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_vlans_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9e3b415848259747054d6586d9a85787a48f2a5d3fd5866c41f8b050eadfae90", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_l2_interfaces.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "743adf2fb8dcad62933e91c19b47b2b0437868c7e50db9a4e556431ed696f2f5", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_ping_ping_8.8.8.8_size_1400", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "825819c8953b25588aadeb8264ebc23a52d06537049b7e3f4f0b9edfda1b7e45", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_bgp_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8e1448b74254646dea1644addbebf552013bc999c32b8a90f3141fadfd2e045c", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_ospfv2.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f557ec41733d7040f5585b79e18b88623ace43d899ac80edc055e01c469240c1", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_cdp_neighbors_detail", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6e29939eafbbdcd5d64d8558cf6f5fe9d7fa1b806e62b5f19b65b0401c9c9c44", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_virtual_switch", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a3c3bbfb2fdcb11e3f9721d7596800690969e51e7fc66ee2e5adae3b524f7177", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_ping_ping_8.8.8.8_repeat_2", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4962134fb2b2230a111b5b94f904ba094c12d0e0775e22c50b3db6599dbfcb36", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_inventory", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "695c97917cde02fca97d816d92429a12142d6400180388630847a6938513829f", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_banner_show_running_config_ios12.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ed9d617788c3a95226fda5a0dfa4271afe77626709937b27a3af70ffde7af53a", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_vrf_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9ee43d746654712aed9c1163d6130a7b6de350a3efef3e6e228355378b20be50", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_logging_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "547917e90b62a4ef7eb05c6a2527019acf8e3790d7d5a0c9f6b24af6a82a2fb3", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_l3_interfaces.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2836ef546936bc7b3ff57cd557f54d5c5024ecbf64451cbb4f0d9c937cdb71c6", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/configure_terminal", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_ospfv3.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b45b7eafd03c14cb0a9737561ddd60b86b708aabe1223697376c56066fabb29c", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_lldp_neighbors_detail", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "11544c73f3e88ab5384140abf1bedd0c2501f4ed13132ab56bd22a53909183b0", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_ping_ping_8.8.8.8_size_1400_df-bit", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c8452a768d797ca829ff18314236a7275cf03a14f751c6f53c8b6711bc8a1d7f", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_system_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ecb0f88d690961592ffec4c1dbeebb4b6883ed2fee08fd60117a3b7937b37949", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_dir", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bf4241a7402fd70614b668b90da04f80c7430f8f4535a1eb0a40e989a1d9d48b", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_version", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a6290b0be0cd8622c90617eace7c4c8bb1508a77d33c2b0e7bb9d6f7f8967282", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_processes_cpu", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e8edd6276089ec830cb2978305dcff0f77cbe3a39f393eb0969c671a981d8d89", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ee85caaab9dcd66f7884d65ec2258b31e6e293815063df652bf5e855c4eb9e62", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_ntp_global.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "40f53692102deb7518dcd712d547f7c69eb91ef39368f2580fae05c19007a8f1", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_static_routes.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "21fb9e42e6cd9ad1100664fd9547d6e42780dd49021fb75c61695fbb75171063", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_system.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f8bcc32990f03f7c3fcd480ba2166364190e718787fac98303dc45fe829dd545", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e4cde58f50818e45a86e4a41b795090fb15f98dbba58287705de31c480d0e28e", - "format": 1 - }, - { - "name": "tests/unit/modules/network/ios/test_ios_ospfv2.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8ea2f5f1e4b14adda3c4a1e59b0ee3ee8ddf6cc65bb102efcf0a5def60f41a3b", - "format": 1 - }, - { - "name": "tests/unit/compat", + "name": "tests/integration/targets/ios_vxlan_vtep/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/compat/unittest.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "727203a3846be41893b78a4b77852a1658925e936fb19539551958a5d8e8fb81", - "format": 1 - }, - { - "name": "tests/unit/compat/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/compat/mock.py", + "name": "tests/integration/targets/ios_vxlan_vtep/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8ef8138e4a1226b85dfb3567d9be04aaef39270af32ae62765b745f8f46cb0ec", - "format": 1 - }, - { - "name": "tests/integration", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/ios_logging_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tasks", + "name": "tests/integration/targets/ios_vxlan_vtep/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "16f3cc0b8e2e2d5d9776298fab6f9d5648e4c35498db7605af69c8e97e122464", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_logging_global/tasks/cli.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "7bbcfaab60d1b44f73192415eef696368496e56fecd0d5f6384a36f6ed0bf500", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/meta", + "name": "tests/integration/targets/ios_vxlan_vtep/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/meta/main.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/defaults", + "name": "tests/integration/targets/ios_vxlan_vtep/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/defaults/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_logging_global/tests", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/parsed.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "67f3d6703dbc41fb80ddc9360a8fd99addc2dbd17258b2e3d4bfc859c604d867", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3b22fb7585f08098afcf881010b4d9348529e0f722c139b763f6b0c158965d9", + "chksum_sha256": "0b9a801456bd9db90925de5fb3ddf02130ebf6e4de5abbc8dd0a3d8785ade822", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f014b1c94475c54528d1f3680735baaf6f2e8f4712df5a77665b969c98a16228", + "chksum_sha256": "23ba22f2eacb69c8cda7d4bc0b8ffb9b9b4e3c8c2499e8512fdd09ed136e051f", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f808045f76ecfd2f709fb9a4af7907660e8dfb4efa55fefc3744c32da9c20bf9", + "chksum_sha256": "149f7e871cffbb37baa730d0dc0a4964723f90d64d0f0a409ebd923b743e682a", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4573b578a199c5195348871a4f8d0b0daee309e9ee60368db6968c6e64ee15f7", + "chksum_sha256": "9c7f20dee20d06af4441f5369836e86db1aba0bda93cb50caa49e6041ae98dba", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f25d81fb7693d57c2abd74e8739be232a9cbedbba1e9f8699050d04ea18d2b38", + "chksum_sha256": "c56eb808c76e38656a84bb5e725dc14af02482efdb85d2246613aff63e9b52cb", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09a264fcae252de2ac6ee85b8af26b74cc369cb29dc450cb21eb209818796182", + "chksum_sha256": "5665b8e91a6bb98092632ca9952389b634005325762d970aa987bf0523ccc882", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2ecf2a5261b5c148d8c8142586318132ac92fd1663b20e91a2504ca2c2f9596c", + "chksum_sha256": "6e7e8c2edb74ee0476b0c4d83a52c84e4230c16e3c3d051c63c6fc63018c4211", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "94cb8dc2e04d8643d4feeedaaf3eb159c60bb1a997c8186a0ad7f33912a8b945", + "chksum_sha256": "2dbca0fd8e9d00593a5785ab68cb246e21a2ac99fff6970ff150710c246f1927", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7961543ce55fd097ff5b420ecabd3926f29b8631d0ef0e0a802ca601a177e2d0", + "chksum_sha256": "61c3a851e2d056cec1479981c331fd2a4c1126bb8bbacd5c38ed0b4e4ff026c0", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6752b5ded2fc4b5361215ef8163a1ac17f48da2d1a26796414a2f7d7d4aab1f3", + "chksum_sha256": "7d54c5dd89c14a5b02575b8e80f647bc66ba075563571e876e5d471beca81c10", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/_populate_vlan_vrf_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d8b45e3678e544bb5e707a93e1155402218b01bb88ba710417db77102a7bb634", + "chksum_sha256": "455e27f59263b50ef9ec28db7556b9746070f5672cabe83cb0c03f6103ca3918", "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/vars", + "name": "tests/integration/targets/ios_vxlan_vtep/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_logging_global/vars/main.yaml", + "name": "tests/integration/targets/ios_vxlan_vtep/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54432abdc418154d2bc2d0a75a1a26d387c2ef5cc217cdcd6ddeb6cc19bc9ad5", + "chksum_sha256": "7607c1041a822e911d328c572b5986636a52054bad2895b89c4beb7861755017", "format": 1 }, { - "name": "tests/integration/targets/prepare_ios_tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_vxlan_vtep/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/prepare_ios_tests/tasks", + "name": "tests/integration/targets/ios_command", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_ios_tests/tasks/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "044df3cbbc253645266ad8c2a377e8758a8fd53c7a7398818eeb2fe0220e0a1f", - "format": 1 - }, - { - "name": "tests/integration/targets/prepare_ios_tests/meta", + "name": "tests/integration/targets/ios_command/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_ios_tests/meta/main.yaml", + "name": "tests/integration/targets/ios_command/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "851860fe2ed1258710d7fcf89ac5b7d8c3c87755e89ca56fdd79bea022eb2b92", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/prepare_ios_tests/templates", + "name": "tests/integration/targets/ios_command/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_ios_tests/templates/config.j2", + "name": "tests/integration/targets/ios_command/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a21d7b66f513ecb424fd6e23df9f0737c855281f3a5d0be6c856a0d2ce7af23b", + "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", "format": 1 }, { - "name": "tests/integration/targets/ios_smoke", + "name": "tests/integration/targets/ios_command/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/tasks", + "name": "tests/integration/targets/ios_command/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/tasks/main.yaml", + "name": "tests/integration/targets/ios_command/tests/cli/invalid.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f9fa924aaef2895a7bc9899ba35028617be0e242888fd3558903a9a5c621bf2", + "chksum_sha256": "9a5de37d3a4e9c0a0deb381515d7aad38814e2573570881499c2f37d01c33148", "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/tasks/cli.yaml", + "name": "tests/integration/targets/ios_command/tests/cli/error_regex.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6cdc2604047d999342d2e29f3a546b9f8ceab22e37c2d4eaed5fb596bd4cd2f0", + "chksum_sha256": "9d8673ef0e332533bc520e1fc69282244014b33fe4fd67c9df97fb0c45389b35", "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_command/tests/cli/timeout.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "99999a86b0c912cd067669a525d1e0032db4e19aac5fedec7593bfc8868ae37b", "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/meta/main.yaml", + "name": "tests/integration/targets/ios_command/tests/cli/cli_command.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "chksum_sha256": "765a06846e98c1bc59b769855ba3c28f6ed2b7f8301b1aef0b8f0a9a4aef4863", "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_command/tests/cli/bad_operator.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "114c1244968981a22617d661fe4e9de4734037af8970bce9b0c5b79102f8ae6e", "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/defaults/main.yaml", + "name": "tests/integration/targets/ios_command/tests/cli/output.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "90067084bae011b7afc19fc1569700cf0007d29ae86d423be0111fbdb7d9bf8d", "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_command/tests/cli/contains.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ac41c0332715a477675065b303c059029f452524c9613bfa6837221b3c8a4748", "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/tests/cli", + "name": "tests/integration/targets/ios_command/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/tests/cli/misc_tests.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7eb9e4e697c8432c1a40e9408f7638d887c347aec871bfa157bbd7c3f0586b95", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_smoke/tests/cli/common_config.yaml", + "name": "tests/integration/targets/ios_command/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3cadb8dae7de5b5be84fcab95fd6e5f65816069841a996010af41c32b8438897", + "chksum_sha256": "cbea343b9422e831a52eac293e12796cebaba8432a2a7c3ea24f3d7cfde98a01", "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/tests/cli/caching.yaml", + "name": "tests/integration/targets/ios_command/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "618ffe0e7bbd5a6d4e6172cdcca046317acbb06f8dc8b4de4e214fec6e642640", + "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/templates", + "name": "tests/integration/targets/ios_ping", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/templates/defaults", + "name": "tests/integration/targets/ios_ping/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_smoke/templates/defaults/config.j2", + "name": "tests/integration/targets/ios_ping/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c67459067166baed6059b02907fb2692e34868270185b09fcd9f5d7c3ec013d0", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_ospfv2", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tasks", + "name": "tests/integration/targets/ios_ping/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tasks/main.yaml", + "name": "tests/integration/targets/ios_ping/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf9e0e41402b83f7506fedba9515bd73a0fef00d77e63f09f9b2eda0ee5c3754", + "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "name": "tests/integration/targets/ios_ping/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/meta", + "name": "tests/integration/targets/ios_ping/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/meta/main.yaml", + "name": "tests/integration/targets/ios_ping/tests/cli/ping.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "beb45b19b88ea64c61e0d67d7769275c18e3c12a0c572bea86d171bada913956", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/defaults", + "name": "tests/integration/targets/ios_ping/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/defaults/main.yaml", + "name": "tests/integration/targets/ios_ping/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "d4fb9eae8dce0d7933579bdf2d3f8795995a4058621bb90be902cecbb7fda0da", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests", + "name": "tests/integration/targets/ios_ping/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli", + "name": "tests/integration/targets/ios_static_routes/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_static_routes/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be91779003c353db09835a7ade40aa7e16311e93c3a111335d4caea13b27c3a4", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fcfa39efe63ec56350bd75b0b4ded134aa99c4f1a810039fcf0744eed952a0fd", + "name": "tests/integration/targets/ios_static_routes/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_static_routes/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8554a710fa447dcbe0f7f0097a0f81b7129deecd19b5f4f6caafaf80bef690f8", + "chksum_sha256": "9cbfbd72a07c59fa3718d4dd77eda9cfc144ecbd081561172b9cf09c5eeadf53", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b2013ced0c8268e36db6925558607e68fddb5887092aa3d520a2b6e1318fc7fb", + "name": "tests/integration/targets/ios_static_routes/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/_initial_vrf_setup.yaml", + "name": "tests/integration/targets/ios_static_routes/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c35a0a936bc8f7a82cefc3c831cfed82f738026c5b5cf5832c06ed42f7098309", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/rtt.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3e11b9f26e0eb1e022969d8091b88bd0c02cb8e4e12649c63d2f526009bd6ec7", + "name": "tests/integration/targets/ios_static_routes/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "71aad36583afacee1f2d50726b8a99cffc3e17566f1297f8c06cda6cdb9483c5", + "name": "tests/integration/targets/ios_static_routes/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_static_routes/tests/cli/_remove_extra_ipv6_data.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be6663b98bbde670ccf5f4c019cc50bcf3461c7f1df79d59206e0dec1f9c87de", + "chksum_sha256": "a6ceabecece292ded2c58a0da2f9f147af26de4c6428584afa2f0c456afc5061", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_static_routes/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "030a148d0e9b7d4e89581f3b82aeb06ce828a2a494fcebecac6a99a5fd9be893", + "chksum_sha256": "854a251b2b1da970c8de705b4a7d5605c18e2107d157feee9496805b811943a7", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_static_routes/tests/cli/_initial_setup_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e1995543982bd7f2a4aee73e5a9fce445b21af1d6ffb5f410d34b372dcd904ae", + "chksum_sha256": "59e9f957b72ad03c69b153719c63dfa82fc76462044bf190464dd27e23b38ce8", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_static_routes/tests/cli/_add_extra_ipv6_data.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c2c2d35e0efc547f71effa33a8e7de17a8c8447b28d79a00d0ad56fe4a29d130", + "chksum_sha256": "27fca9065f41504020492968e54b2e06402c06e0125a486302d1917a63ac1f43", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_static_routes/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e36682d7d591a6ebd1311a1b34bfbeb402c35f98f14f9d9521a9839f1a5fc081", + "chksum_sha256": "e971b8839367066f0b190610a58229ed0599df3e17c4f97244b641a620b0e781", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_static_routes/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c2988c367bd38b6fc431b3184c661086ae4bab311882e80c941cae6db04344c", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_ospfv2/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "d94e463bdb85337d3eec7c13b3a6f08547817fcb70bacc4b842ffe40fe11c13f", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv2/vars/main.yaml", + "name": "tests/integration/targets/ios_static_routes/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8649ac5af985e516bc0be12ea860f9ada7a4454ab14ecf2d056dc16565a95e55", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_lldp", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/ios_lldp/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "ab4fe0e6c364f83917063a0918a0cb632f8f9d26f6d4bca6c667e1e2e1181cd9", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp/tasks/main.yaml", + "name": "tests/integration/targets/ios_static_routes/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b0906e69a469f54c61369370c1de70ece7ed9341c9647ae69f471544fad206e4", + "chksum_sha256": "a789e3b6c7198a508bf40cd4e3cb57e546cda7632199c859f9099f6fb88f0f95", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp/tasks/cli.yaml", + "name": "tests/integration/targets/ios_static_routes/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "chksum_sha256": "0283a6e9bffb601b04610bc3005eecafab4424e7adffc0cd92d5f2ec80854451", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_static_routes/tests/cli/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "45bc3228d1228672490f41f89975c552acc03459b8d0879185ec00e9ae72e411", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp/meta/main.yaml", + "name": "tests/integration/targets/ios_static_routes/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "chksum_sha256": "923d1055671a7fc041e16e4b245f7b31451ccee290adc60cc145da9e23101c29", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_static_routes/tests/cli/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c356f5c2db3137413b1235ce6ae54d6b2a5dc02f41074c65f2a0ba23370e3c38", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp/defaults/main.yaml", + "name": "tests/integration/targets/ios_static_routes/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "dcdb366f9c765b9c097f4c406703abd2c9a03a524a6eb1d19b352d93fa2deef2", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp/tests", + "name": "tests/integration/targets/ios_static_routes/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_static_routes/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "38d132ea3d937d0294148c6f3a04d55737b22d89d81da2b9a62d2f143db5c577", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp/tests/cli/basic.yaml", + "name": "tests/integration/targets/ios_static_routes/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f61afc65151115e5a86c79276acf3c3ced37cd6df01cf54550ef54252792ec7", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global", + "name": "tests/integration/targets/ios_route_maps", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tasks", + "name": "tests/integration/targets/ios_route_maps/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "40cba4a01ca4d7671041cd1c34aad247ab33b8027f3143233bab09d039780e3d", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_evpn_global/tasks/cli.yaml", + "name": "tests/integration/targets/ios_route_maps/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/meta", + "name": "tests/integration/targets/ios_route_maps/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/meta/main.yaml", + "name": "tests/integration/targets/ios_route_maps/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "707242064a446604688cfa42b04d777ff801846293ade1154dcb3e82a9badfb8", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/defaults", + "name": "tests/integration/targets/ios_route_maps/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/defaults/main.yaml", + "name": "tests/integration/targets/ios_route_maps/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests", + "name": "tests/integration/targets/ios_route_maps/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli", + "name": "tests/integration/targets/ios_route_maps/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_route_maps/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf27aff9be6f72a1bac5da95577b426f851356b9afa907bc35a5100f51b3500c", + "chksum_sha256": "3c56d9e9cfa1c23282710af3f23af288e856f3ff9134cc411a498b186c2df4c4", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_route_maps/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "df48d4875d6c309498c93bf1654170b5de8dd36f00cad9b7dda06fa0ec6135d8", + "chksum_sha256": "49d07d449a90342c4a3b2605f7d2e5a99c3c04952701ea4a1d8b29b02577fa49", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_route_maps/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c950ea407d98e84ee9ef11ae5f11cdd1402a460f48159591eed290af69aa730", + "chksum_sha256": "85fea8de40eb500f7b93f6842ded059cc8f3e346d902a06028a4869db7e19b01", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_route_maps/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6e04317befb43f382b3b5e4e37757fd905ea5f8099327bb255ce3031da38285", + "chksum_sha256": "df41c3a26d7834ab66fdfe1b2faade9c312e8225c7bc99d736308371f3600ea2", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_route_maps/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0b7ddb734d42978b5ebb82d436a354e8fae2fce18e60a1546f2d519cead08390", + "chksum_sha256": "7f164fe2b72297a0ed83c0dfde78abb1673ebf7715469c55d263904c54e75e8d", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_route_maps/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54905a1be066debe036046408f5d40d3ceeccee3074090e3d1c459aeb4355e67", + "chksum_sha256": "d0f8053909d848db5a593451794962888efd2e041f710294929ca1bdde0caff8", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_route_maps/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1cb6068d536690bed4bb86b5901cc97b78325b5ff9a6104805278172427c9af3", + "chksum_sha256": "b4046f281274bc9935c8cde1acc6b9be307f1b7ef9fb583957e1322b0c082d60", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_route_maps/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c1eda73556b1082527e3387499aa6a6d5d6734bcdd7070409964563ef73734b", + "chksum_sha256": "ac7be197d9f1c5d050d19763c77777eb76e358ee919bb8f9cbb9f9844dc88223", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_route_maps/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0e4acad796d01a6db7a44d08d8ae4a7eefa3da818382224189c30eb5c6bbd92", + "chksum_sha256": "9107ec621b5c648121c0917cd969eb12895ff1bbd5164798902d8fade0887608", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_route_maps/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ee5e0cd3f90d1d5461cc3de8eec434fbb245688d2c99d12a477d0ee565f19c9", + "chksum_sha256": "9991663c3944fd60eb5c0dd904a88348ce7ebdb04550a3e596b92b67c312a8fc", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/vars", + "name": "tests/integration/targets/ios_route_maps/tests/cli/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ff7c6c2838c19016776a01f6d6704aada960e930a0829c0e47e847c70144b9f7", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_route_maps/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_global/vars/main.yaml", + "name": "tests/integration/targets/ios_route_maps/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a930c7415288124acd312b6bc09b1120f8f8085b31c7267a1e183467377b70e0", + "chksum_sha256": "8e9a834620253664b73e74d67506006c5a301715f7b7a867c5bca4334f82ece7", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_route_maps/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { @@ -4691,52 +4173,45 @@ "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/tasks", + "name": "tests/integration/targets/ios_snmp_server/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e41e847b30cdc92d4ba8d8ad59e109a2acf5fdb2207b9b345199ae1692d5c386", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_snmp_server/tasks/cli.yaml", + "name": "tests/integration/targets/ios_snmp_server/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/meta", + "name": "tests/integration/targets/ios_snmp_server/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/meta/main.yaml", + "name": "tests/integration/targets/ios_snmp_server/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "5e91e745876e69219bc6bfbd0cbdd32a8c148c856b1646dbbef806719634d3af", "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/defaults", + "name": "tests/integration/targets/ios_snmp_server/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/defaults/main.yaml", + "name": "tests/integration/targets/ios_snmp_server/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { @@ -4754,17 +4229,24 @@ "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_snmp_server/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "314132891ee35f3cd44df768368899b2b9fa9ee51d3f9510796e9f147660526d", + "chksum_sha256": "b950ea2795a909e67285cae4843c7dfadd52bc1521fd8d2138da9c7e6675aee6", "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_snmp_server/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d324239706acbc0938a35cebdce4f126c4ac1619c44d71e8f1f7b6df123df26", + "chksum_sha256": "7b544236b53c9b2e7df27b49d1c854d4fa0000d4508dbb639d366407fe35617c", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_snmp_server/tests/cli/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cba89a05752a9e1102b676dab55609ea2cf326cd88b3900015a5e0b178032fab", "format": 1 }, { @@ -4782,4350 +4264,4525 @@ "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_snmp_server/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "32f48d0476fccf4880ae5670b4c12afeb89951421b643296d3540a42970a2c3c", + "chksum_sha256": "e229df97b6ba4cfa166b966f97b69f69c348cf1d3b61e42d82869a3c8b4cef45", "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_snmp_server/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07644781622568558c597427f05f80ebb7da335eac6a6ab67dd37a7b6f86a60d", + "chksum_sha256": "5d324239706acbc0938a35cebdce4f126c4ac1619c44d71e8f1f7b6df123df26", "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_snmp_server/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e229df97b6ba4cfa166b966f97b69f69c348cf1d3b61e42d82869a3c8b4cef45", + "chksum_sha256": "314132891ee35f3cd44df768368899b2b9fa9ee51d3f9510796e9f147660526d", "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_snmp_server/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b544236b53c9b2e7df27b49d1c854d4fa0000d4508dbb639d366407fe35617c", + "chksum_sha256": "07644781622568558c597427f05f80ebb7da335eac6a6ab67dd37a7b6f86a60d", "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_snmp_server/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b950ea2795a909e67285cae4843c7dfadd52bc1521fd8d2138da9c7e6675aee6", + "chksum_sha256": "32f48d0476fccf4880ae5670b4c12afeb89951421b643296d3540a42970a2c3c", "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_snmp_server/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_snmp_server/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cba89a05752a9e1102b676dab55609ea2cf326cd88b3900015a5e0b178032fab", + "chksum_sha256": "e41e847b30cdc92d4ba8d8ad59e109a2acf5fdb2207b9b345199ae1692d5c386", "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/vars", + "name": "tests/integration/targets/ios_snmp_server/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "format": 1 + }, + { + "name": "tests/integration/targets/prepare_ios_tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_snmp_server/vars/main.yaml", + "name": "tests/integration/targets/prepare_ios_tests/templates", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/prepare_ios_tests/templates/config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5e91e745876e69219bc6bfbd0cbdd32a8c148c856b1646dbbef806719634d3af", + "chksum_sha256": "a21d7b66f513ecb424fd6e23df9f0737c855281f3a5d0be6c856a0d2ce7af23b", "format": 1 }, { - "name": "tests/integration/targets/ios_acls", + "name": "tests/integration/targets/prepare_ios_tests/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tasks", + "name": "tests/integration/targets/prepare_ios_tests/meta/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "851860fe2ed1258710d7fcf89ac5b7d8c3c87755e89ca56fdd79bea022eb2b92", + "format": 1 + }, + { + "name": "tests/integration/targets/prepare_ios_tests/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tasks/main.yaml", + "name": "tests/integration/targets/prepare_ios_tests/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a35279615971415b54c2877e35c58f430c4b5ecf79ab75cf8b1145408aa2f1c8", + "chksum_sha256": "044df3cbbc253645266ad8c2a377e8758a8fd53c7a7398818eeb2fe0220e0a1f", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tasks/cli.yaml", + "name": "tests/integration/targets/ios_bgp_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_bgp_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_bgp_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/meta", + "name": "tests/integration/targets/ios_bgp_global/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acls/meta/main.yaml", + "name": "tests/integration/targets/ios_bgp_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "294fb05c40c2dc3d7c4784a8cc61089bd1a705a9461e09fb33b05dbff99f9e33", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/defaults", + "name": "tests/integration/targets/ios_bgp_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acls/defaults/main.yaml", + "name": "tests/integration/targets/ios_bgp_global/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests", + "name": "tests/integration/targets/ios_bgp_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli", + "name": "tests/integration/targets/ios_bgp_global/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "42615f514256b1a7d451a57c904dafc5c7887df9bd1c968f5332b28b65ee999a", + "chksum_sha256": "b28f32004005582bc80fbc2a9c8db6728687c25d87f74a365e61e7a20ec853d5", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2110fa4eadb1937613e4b408e6d87ec92dd2e55ea8d01b22a3f058fe670aed83", + "chksum_sha256": "ac9b0f35b9607c4dcd6ee6fe8c4c5a3a890eb3ffef2606e5d9935648df7d5b7e", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "46fbc34461ca07fa76173803e47b59638be46b109cf3033e12ab8e741e66d203", + "chksum_sha256": "75c019721cd809896e681cc3826abf70eb2a7d0616bc09817577e99c02ef7070", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c3c4569c578ec8336fa353111482916a96d9b9f7ab0f3262e9fe3fb92ce0f1e", + "chksum_sha256": "22e70effcb2a1b4e95a65356aeb5851b46cc61d518aa81ce133b7934eb8c6d83", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4aa123dc7a38645f48ca983339b0a43702f527b615514715a05689ddda18f592", + "chksum_sha256": "b6479de2654937093427d57930e46c699ad3265ee6f67624b7414d03cd9888eb", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aaf7849f1fc016f09813c37599fa2f567313c681920a349d3976117ca61033bf", + "chksum_sha256": "87c9833d471a6b80a6c2cd0a14d29ef5b983fe7d8e9e61e6f43a8c0e1e8a89f6", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ecf088fce17e2e3b5612311c4c10d551e1c0fc20716a2cba7f0424611b989fff", + "chksum_sha256": "6fb296f62f074510365c9916869e8db44765c6cd34459320babfaee14deb6253", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "40cfb30ce1b837e512a4e0a8e5d8aaa90026019732f6b712c49fa8f86c742f46", + "chksum_sha256": "3c6b76253c2d8e53a0df8c1f620ad1b90d537912cb81877fff08d39689a1537f", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c7af067764f9e7823717d5b09d690789309bdb098c621a8886151cb7c5126f9", + "chksum_sha256": "124e599b3086fa609f480a4a1904670d4501b436c5a927758b5399fae15e8124", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "22dff6930e31491a66e9b9f96b3adbb57e5619f9bb1cc04e699ad09651dfb23d", + "chksum_sha256": "cfa79d338f05e3971ce8a30e951a60e8a3898786fecbf125898bfc20275377a4", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a6cc930a39872ad57c5b74919747421b13b0a0c985100d70763b27d0f646d0f4", + "chksum_sha256": "cca6983e388a8e06b3b72325026c23d5794b130d45a74adb6d2156525ff8335d", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_bgp_global/tests/cli/purged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "855485788ef3b774a156a6a7780597f2c73639a9da4f7093bfe3289ca1e67853", + "chksum_sha256": "440e31a2f87615c703a8a25d436bebf5e076b729ab0316294b1aea01585fb9ae", "format": 1 }, { - "name": "tests/integration/targets/ios_acls/vars", + "name": "tests/integration/targets/ios_bgp_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acls/vars/main.yaml", + "name": "tests/integration/targets/ios_bgp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3706a44db972213dcbf36515e04647a1cc508296cc5faea5afd0666dcf499dc9", + "chksum_sha256": "3c1978dc1393f0ddade54f4568fbe2a213f323e71e9aa334266bad4fd016ea95", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_bgp_global/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tasks", + "name": "tests/integration/targets/ios_user", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "42f682d0706bde5cedd3667110b289d169b29ca20a1692b85c51bbe5f1e3131e", + "name": "tests/integration/targets/ios_user/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tasks/cli.yaml", + "name": "tests/integration/targets/ios_user/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f113e17755cf29780c0366eea077fbf7d12d9332c0d31df993556813c20a9bf", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/meta", + "name": "tests/integration/targets/ios_user/files", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/meta/main.yaml", + "name": "tests/integration/targets/ios_user/files/test_rsa", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "660b96e5ac6d6bd17900490c4749ff3a63898bb155db0a661fefbd6ac6f0fc44", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/defaults", + "name": "tests/integration/targets/ios_user/files/test_rsa.pub", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4552b1d9416ac1be7c90b10b182a6ff4a4c56efcba53bb31851808c5d1fd787c", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_user/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/defaults/main.yaml", + "name": "tests/integration/targets/ios_user/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests", + "name": "tests/integration/targets/ios_user/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests/cli", + "name": "tests/integration/targets/ios_user/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "be1b9226490c3801116b3325385dedad65ee514e21d853298e2aa94ca9f16766", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_lacp/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_user/tests/cli/auth.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "83fb72d50e9f4e9ff7e3b906e1b4dba8ba4a08b0c8ff81c130a6b5c95c2c86cd", + "chksum_sha256": "1f1317bad114d20ffe0ec55fcda33969a2575dc965be99b58cefda6742beaebe", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_user/tests/cli/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bfe347a63f6fa9d686ee7151ca4344f94c3fdc8c7e1ce73a637ec9e4924f38fd", + "chksum_sha256": "6e0a3882e754b70b183dac98c191e5db07f0c629ecc69b466b63cb3e3b0ea0d0", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests/cli/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2ae637240277ae729d901550cd50ce19b6b29b1eca663eaed8ce011bec832615", + "name": "tests/integration/targets/ios_user/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_user/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ce393c8b6381d3030b5d2d12e7338fa4423cf1891c816db296f544467860992a", + "chksum_sha256": "a8da0d0bc00401711103caf4be61022ba74b53c8296bfcd784db7ea4853111c5", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_user/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "744f90515ff83553dfeff83df0ccf4aa826c3249574c42686fd9d6c41394d19c", + "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests/cli/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fc650f89a8a2ebce685210ae5fa3d65d1d31652a993164005d3327f4861881b6", + "name": "tests/integration/targets/ios_l3_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests/cli/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "68518c550a5a993fc26f2508bbf71ef506bcb2eb7101ac3005ec4b7163515459", + "name": "tests/integration/targets/ios_l3_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_l3_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45475bede19466ee41f4b1d966a80c10988ece6e1ea77232c4c9883ef2f22123", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/tests/cli/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "364387abef4d57a5903ef74f788703e41ed604a98ef24bcebcc837c85fad934a", + "name": "tests/integration/targets/ios_l3_interfaces/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/aliases", + "name": "tests/integration/targets/ios_l3_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b121bba6a0892e8ff599846aa1ea5c388ae3c8a9e6a85192f43b89cf992719f", + "chksum_sha256": "380802a37176afaba3d88556db35153b263ac7133e59292b1c2bc3633070ccd5", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/vars", + "name": "tests/integration/targets/ios_l3_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp/vars/main.yaml", + "name": "tests/integration/targets/ios_l3_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "34537c31909d55ab6461991eb2ddfae9e4dd32b1b7e01133aa040dfe08ae02b9", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp", + "name": "tests/integration/targets/ios_l3_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp/tasks", + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp/tasks/main.yaml", + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e03ae6e52f8d7161565991a66935845e9141dd6b6bf67f939b1651c229cea114", + "chksum_sha256": "bfc3c984e0da8a8065696a6a4801d945bfaed1f84146f7c3c9745ba4468d0e1d", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp/tasks/cli.yaml", + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9739e364f374e25ab4075944df0f36a45c1937d5bcaee64b9120d651349f7297", + "chksum_sha256": "5a8e64e20ebea7d3a898216c6e256a3c0dccfcfb68a0671e3bf160e1f6c1b935", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ade890c5c428f4f2ada261b01e89f9149d27d8add293430df56161249cf0f6b2", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp/meta/main.yaml", + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "chksum_sha256": "030195c5574fcaa46ade5d2d9f640d1b1668c41025f0c78032cdebd9ebc4ef86", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9c065775b6484b284e03beb65d1e250361c09fa4fc20e5006058f69e7c4eebc5", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp/defaults/main.yaml", + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "74906256718324f2c376a9dcb3be7bbadb2487067b1617e6d90c16f0a109cfcd", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "77cc14435d04e3f72f0ab9457713fca28de7a508c865c08df619ce999d7ace03", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4ed4649e2c9b10b71a7ae63117d06ec134eae6b2182f26bb8b04eb911e609707", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d2a2840acaf208fa439d00dd3be862789bb3e249ca568c9e3a0f958ce4c92987", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f5380c447d728d61be3bdfc3dd1ba1d805186c04b0f400eeb39c91b93bbf332a", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9ecda90386ebc75e0cb6e8a820a5c4bf172d4ca7bd4dbe399a4733aa6c08d07e", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3ccde47cab8fd1f7d6eb91c8a1744831097c27bebbf655e15d71fd2456db7f2", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp/tests/cli", + "name": "tests/integration/targets/ios_l3_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp/tests/cli/basic.yaml", + "name": "tests/integration/targets/ios_l3_interfaces/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "daa688f229d7e8db61d23cc61ebc79ccff40a6e9af6de742f4cf5fde2fab74be", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_l3_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "93546203b3b3da6687b1f61844ce847c75681b3b2ca9d9456bb1ad296603de72", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_banner", + "name": "tests/integration/targets/ios_vlans", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_banner/tasks", + "name": "tests/integration/targets/ios_vlans/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_banner/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "eebaf78d8d30ccd861ee6d250aec3bc87871e249b6875f8b0f44a4a3fc828680", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_banner/tasks/cli.yaml", + "name": "tests/integration/targets/ios_vlans/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_banner/meta", + "name": "tests/integration/targets/ios_vlans/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_banner/meta/main.yml", + "name": "tests/integration/targets/ios_vlans/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "chksum_sha256": "1cade52f40e5745ea62114c4c0c970e7f03db0578670180c7ddbd4d968a0ebf1", "format": 1 }, { - "name": "tests/integration/targets/ios_banner/defaults", + "name": "tests/integration/targets/ios_vlans/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_banner/defaults/main.yaml", + "name": "tests/integration/targets/ios_vlans/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_banner/tests", + "name": "tests/integration/targets/ios_vlans/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_banner/tests/cli", + "name": "tests/integration/targets/ios_vlans/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_banner/tests/cli/basic-login.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "455be068cdb2741b681458831a33abbe656d86186a21d5dec3425add135dc14a", + "chksum_sha256": "9dcb409a302fb60386633c000240bd99c7e1a925e59d940604e6b1319d138eb8", "format": 1 }, { - "name": "tests/integration/targets/ios_banner/tests/cli/basic-no-login.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3deefaccfe8f72086372732ab08319268107114dc4cf238dfef54e2974b29b26", + "chksum_sha256": "1b9940730019c5607914c500f4e39e23b55fe858a6d0b276c96a28e72f222049", "format": 1 }, { - "name": "tests/integration/targets/ios_banner/tests/cli/basic-motd.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/_parsed_vlan_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f9346d2348dd942748aa47f61b6aff3cf6e6ad48f94121546f09266930d371b", + "chksum_sha256": "5921afbe0954f8ced2a95ceba0ffe19b6d3e0b31e50dae387704727e4602aa50", "format": 1 }, { - "name": "tests/integration/targets/ios_banner/tests/cli/multiple-login-exec.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c2ad7f508adfa637bf8f80e8afb4c68eeb24061eb0e54b670cb020133a38f63", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_ntp_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/ios_ntp_global/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "7c3dead8718d5c971c74c59bf6c3eee8be63eb99fea05c03b0aba14e2994c4c4", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tasks/main.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fc06936d093493791466cc5b227ef05b6a0175615a5ce00453f6effb74f9532", + "chksum_sha256": "19bfcf9b214bd48339bd025b2c044eb3a640bd46b88442f4dc5337faadc0e18c", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tasks/cli.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_ntp_global/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "4ffdb8c877c749e808b435c833c92f3b7d7343d05c4ba8d8f1b39e519b1b63a2", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/meta/main.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/rendered_vlan_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_ntp_global/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "eb23b5c2bf1f0f35f49b160da45e45decfd895bb8d789a023f4ef8b975dc2dbc", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/defaults/main.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/merged_vlan_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "018078882c63dfba371d5ada153412afd132eacc280cf5fda138c0c663fb500d", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_vlans/tests/cli/_parsed.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "31dcdedd876672aa1f15ac36c7b35b156cea9795b15f686e40b2eecaa0ea5392", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_vlans/tests/cli/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e7bc4328acfacc36056f4f9fd2ed9cebef987ba490730967a191721c62993aa5", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bcff8a20978c31e6c69a155803657b695a5f65a32c494c6d83d65d008e8020d6", + "chksum_sha256": "2cee0574690e1a22ae1502659dbf76f95aa0f3adcc742e32a25241043c9eaa20", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b3bef8e48a4ebef6e417c5e919751cd9bd526308fdacd16395203eb4feb9f82", + "chksum_sha256": "2d7773b3edea41259b34dbfefcc4c7a543c6ab3c1a1a2d85a334d0cefad37b91", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/gathered_vlan_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a6b0345d271e15e951a9a150a43aa0906c3c91a5290b27ae942ab9ece89cbeb4", + "chksum_sha256": "5fee35bae6ec5d9945f2f9f4b7c5bea83745b2316b00de19871379315d1db91e", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d80307c7fbf6fc328ebf0395601768f230c08d052cba3e459e4b1755635a2a21", + "chksum_sha256": "96631f083020ab2d55c8ad66ef70bf26942bf12da2864a3b45b8afb934e5c7d7", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/_remove_config_vlan_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f41a107502fd7e4be2baf717aafa72bbafc34125fa229ec2e123f7dd7225176e", + "chksum_sha256": "552b6d2b0820aa662bcfdd52f55b169b4cee43dd29677494db263ba3a9e7a548", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/_populate_config_vlan_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d9b1ee000ffc164233351430bc0f5f3c9d3a336fd09ef670bfa40a7e2eebafc3", + "chksum_sha256": "ea1418e61499a54da8b0fc871d438e4955dfc1ae371120f4abed0fa6dafd1836", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306dedea01d094347dc69f10f2e68ed7787372ed087fa1c5ee2d5953a8767016", + "chksum_sha256": "d90eba79cf10b15a5318824e1fbc6e877db3951526be828180d47a3d1f8aeb03", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_vlans/tests/cli/overridden_vlan_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e350806f21caa0181d510feb9cb4e70185286e62aa3b52719b59d55172f2126a", + "chksum_sha256": "5f85654bf5f219c1d3e2569e0bcefad7c12232329ce58ad42219373b88ea2c15", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/deleted_vlan_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8cc9ea8d4a47459ec32d942855702c789ba3347e0693f57313003f45020d8a7a", + "chksum_sha256": "c257655cbf982e357facbb58b224b180677889e1dd9803351435d85b834a7b9f", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b633b4d6ccef76001f6764713b498278bf30e1dd964673e556fab42166480786", + "chksum_sha256": "85a1aebb72960e9ca957302e141f03debf96a1ab54926905a182b6f12fc2bb55", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_vlans/tests/cli/parsed_vlan_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9080f77ada9c677a1f4f275d42ed6bb0123286aa0ce5462bd2c580f47dda0d07", + "chksum_sha256": "a48ff2cab2dc7f5b92ac31b25fa52af940fc463ceb244c8fd28ee7b107ef08fa", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/vars", + "name": "tests/integration/targets/ios_vlans/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ntp_global/vars/main.yaml", + "name": "tests/integration/targets/ios_vlans/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "99f97d7709529ad5a370ef88ca759dd566abc45940443dbe28762778ab40c544", + "chksum_sha256": "8fa2acc83e477a128ac38edeec64fee41b19c60ee0c81a9c4fc633958a687a73", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_vlans/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2f113e17755cf29780c0366eea077fbf7d12d9332c0d31df993556813c20a9bf", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tasks", + "name": "tests/integration/targets/ios_logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "38d132ea3d937d0294148c6f3a04d55737b22d89d81da2b9a62d2f143db5c577", + "name": "tests/integration/targets/ios_logging_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tasks/cli.yaml", + "name": "tests/integration/targets/ios_logging_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/meta", + "name": "tests/integration/targets/ios_logging_global/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/meta/main.yaml", + "name": "tests/integration/targets/ios_logging_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "54432abdc418154d2bc2d0a75a1a26d387c2ef5cc217cdcd6ddeb6cc19bc9ad5", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/defaults", + "name": "tests/integration/targets/ios_logging_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/defaults/main.yaml", + "name": "tests/integration/targets/ios_logging_global/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests", + "name": "tests/integration/targets/ios_logging_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli", + "name": "tests/integration/targets/ios_logging_global/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/_initial_setup_config.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59e9f957b72ad03c69b153719c63dfa82fc76462044bf190464dd27e23b38ce8", + "chksum_sha256": "6752b5ded2fc4b5361215ef8163a1ac17f48da2d1a26796414a2f7d7d4aab1f3", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/_add_extra_ipv6_data.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "27fca9065f41504020492968e54b2e06402c06e0125a486302d1917a63ac1f43", + "chksum_sha256": "94cb8dc2e04d8643d4feeedaaf3eb159c60bb1a997c8186a0ad7f33912a8b945", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0283a6e9bffb601b04610bc3005eecafab4424e7adffc0cd92d5f2ec80854451", + "chksum_sha256": "d8b45e3678e544bb5e707a93e1155402218b01bb88ba710417db77102a7bb634", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a789e3b6c7198a508bf40cd4e3cb57e546cda7632199c859f9099f6fb88f0f95", + "chksum_sha256": "f808045f76ecfd2f709fb9a4af7907660e8dfb4efa55fefc3744c32da9c20bf9", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d94e463bdb85337d3eec7c13b3a6f08547817fcb70bacc4b842ffe40fe11c13f", + "chksum_sha256": "4573b578a199c5195348871a4f8d0b0daee309e9ee60368db6968c6e64ee15f7", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab4fe0e6c364f83917063a0918a0cb632f8f9d26f6d4bca6c667e1e2e1181cd9", + "chksum_sha256": "2ecf2a5261b5c148d8c8142586318132ac92fd1663b20e91a2504ca2c2f9596c", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/_remove_extra_ipv6_data.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a6ceabecece292ded2c58a0da2f9f147af26de4c6428584afa2f0c456afc5061", + "chksum_sha256": "f014b1c94475c54528d1f3680735baaf6f2e8f4712df5a77665b969c98a16228", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dcdb366f9c765b9c097f4c406703abd2c9a03a524a6eb1d19b352d93fa2deef2", + "chksum_sha256": "d3b22fb7585f08098afcf881010b4d9348529e0f722c139b763f6b0c158965d9", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "923d1055671a7fc041e16e4b245f7b31451ccee290adc60cc145da9e23101c29", + "chksum_sha256": "09a264fcae252de2ac6ee85b8af26b74cc369cb29dc450cb21eb209818796182", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45bc3228d1228672490f41f89975c552acc03459b8d0879185ec00e9ae72e411", + "chksum_sha256": "f25d81fb7693d57c2abd74e8739be232a9cbedbba1e9f8699050d04ea18d2b38", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_logging_global/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "854a251b2b1da970c8de705b4a7d5605c18e2107d157feee9496805b811943a7", + "chksum_sha256": "7961543ce55fd097ff5b420ecabd3926f29b8631d0ef0e0a802ca601a177e2d0", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c356f5c2db3137413b1235ce6ae54d6b2a5dc02f41074c65f2a0ba23370e3c38", + "name": "tests/integration/targets/ios_logging_global/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_logging_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e971b8839367066f0b190610a58229ed0599df3e17c4f97244b641a620b0e781", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_static_routes/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "16f3cc0b8e2e2d5d9776298fab6f9d5648e4c35498db7605af69c8e97e122464", "format": 1 }, { - "name": "tests/integration/targets/ios_static_routes/vars/main.yaml", + "name": "tests/integration/targets/ios_logging_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9cbfbd72a07c59fa3718d4dd77eda9cfc144ecbd081561172b9cf09c5eeadf53", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces", + "name": "tests/integration/targets/ios_lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tasks", + "name": "tests/integration/targets/ios_lacp_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5e606724f5e050623ada8c3ebac4a083abdd02767b5957a2a8904f043d62e05d", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_lldp_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/defaults", + "name": "tests/integration/targets/ios_lacp_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "866d49b9fb83bafefee3c2ed7ba79d894e2b28af83b4fed56ad48982c364a894", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests", + "name": "tests/integration/targets/ios_lacp_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e44e3d1b77f9197ef4361d6dbf20eded541d03f581394845c3696a83e441f2ad", + "chksum_sha256": "fc43ad13fcf0465249c1941a418f61f36fba08a55afaef2aa8a7949ed028a7fe", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b9cdedfb409a6a585b41bbb846c76b74db84cecab5bdbfeef8886855f6cd1a51", + "chksum_sha256": "ac8361b624da0372fb79c80bd147c5b9bfed4d4140d0be7fe9957b75e414c61b", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4ae00f45065d40f19d7d616af65721f965809346dac870564a152f74da00bffa", + "chksum_sha256": "e87a35985502b9c92eb9c60ed83fdefcc11a17e26b421e067dcf7be3624c8503", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d046da8c0e4dd08e6001b5d32c7acfea4dd2b005242bf7d11e0f89ead65f48f1", + "chksum_sha256": "5bb10615fc266a5079e9adaf3307602bdefac54f4e8c9fda96954eb59ddc1485", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c677840c5b24b7fbc56a54cbe609c24c198bf12cb1b9db9218316a45f9481211", + "chksum_sha256": "200cc72937b5aab4388efc5e85b4f590dfae9bbbfd9668c2c8390d42c73cb1a3", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ebe78d90845598db5bbb9706a02725bbd5b4c78bc04e50afb888329367641945", + "chksum_sha256": "05d13aca3673ed53547e84c3a96b852f6c6b21e31b250ccae1a3c9dc8a455415", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ca080f4e61b3ed9435f09d4ce2341f2851ab47817e80383ce5c329cb89216b8f", + "chksum_sha256": "6b15190694a3230175825f662ffc5be36c207a5508f8dd03e34d0f16dba801c3", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fccbbf49369445f70a482c85b55c078f9cadd67786a0a013fc6698b25100108c", + "chksum_sha256": "337f2c06ea2b0c31adfc06bd0684edb480b1a333dc4d82fd36e74e6efad7d6ba", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/_add_port_channels.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5beb898fd85dd55c16543656a24d0f3cf81103d0b4a3b9ac5c0986a4f630e703", + "chksum_sha256": "37e0850a33908a4856f7167d6e488cbf3b6060950a032aae1f1006dae560d2aa", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/_enable_lldp.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "88bd2a8904ddb081f33df2ad15b7cad35f711c4ce1e32400d45b598f647484ab", + "chksum_sha256": "83acc10766bff99eaf1085cfc2fab4b54e4101edfc70d06c19f65eb5f90f0478", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a5e1d25df92ed1b5dca114c6cf36b26b24d049f0866014034597f9c44b1827e", + "chksum_sha256": "8a4d9930854480ec68685dfce6a5ca53170d519fa93b8b10ff89d84c2fef906d", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "007a1de94220246c924b2d51649d632c2caee32e05fdb91f25df2e14e0e602e8", + "chksum_sha256": "6fd2582bf431113cefd8a863baf6d1b6908f5cd142dccde32ef536feb29d0702", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "def5a49dd2014e2079ca9312f36b626f9bfe5606d255f306eec9dc700ae9f7a0", + "chksum_sha256": "3de8041d6d7c288d7f421fc629c2bbcfd5b1faf29d3785fb1f8c39b6b5f36775", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/vars", + "name": "tests/integration/targets/ios_lacp_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_interfaces/vars/main.yaml", + "name": "tests/integration/targets/ios_lacp_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "887240ad30c1751c17e47be11a0cc78b5c323d442967b30457bba74054d6ada3", + "chksum_sha256": "42f682d0706bde5cedd3667110b289d169b29ca20a1692b85c51bbe5f1e3131e", "format": 1 }, { - "name": "tests/integration/targets/ios_facts", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_lacp_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2f113e17755cf29780c0366eea077fbf7d12d9332c0d31df993556813c20a9bf", "format": 1 }, { - "name": "tests/integration/targets/ios_facts/tasks", + "name": "tests/integration/targets/ios_lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_facts/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "093a68ecff9678aad9ed8e47c822c8dd795b7f5b6a14493bbbfe1d67a378c324", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_facts/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_facts/meta", + "name": "tests/integration/targets/ios_lldp_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_facts/meta/main.yml", + "name": "tests/integration/targets/ios_lldp_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_facts/defaults", + "name": "tests/integration/targets/ios_lldp_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_facts/defaults/main.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "887240ad30c1751c17e47be11a0cc78b5c323d442967b30457bba74054d6ada3", "format": 1 }, { - "name": "tests/integration/targets/ios_facts/tests", + "name": "tests/integration/targets/ios_lldp_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_facts/tests/cli", + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_facts/tests/cli/not_hardware.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "738d319cd48b7e3b5f396a7a5af1f30285de3dc9021256498f6b34b76b44f451", + "chksum_sha256": "007a1de94220246c924b2d51649d632c2caee32e05fdb91f25df2e14e0e602e8", "format": 1 }, { - "name": "tests/integration/targets/ios_facts/tests/cli/default_facts.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "075848c45a672667c64eafa88b47044c411d5299aa4197e2784127b2b09e4a3a", + "chksum_sha256": "5beb898fd85dd55c16543656a24d0f3cf81103d0b4a3b9ac5c0986a4f630e703", "format": 1 }, { - "name": "tests/integration/targets/ios_facts/tests/cli/invalid_subset.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4bb2e50a1b9d682b6e11db8e5f3ddba9e624b09092d16471bbd94ba9d6b3567a", + "chksum_sha256": "def5a49dd2014e2079ca9312f36b626f9bfe5606d255f306eec9dc700ae9f7a0", "format": 1 }, { - "name": "tests/integration/targets/ios_facts/tests/cli/all_facts.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c5dd6cf0f7fe495fd14458aafe778ec70adcec1013d6bfd57baed70599f98c90", + "chksum_sha256": "4ae00f45065d40f19d7d616af65721f965809346dac870564a152f74da00bffa", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d046da8c0e4dd08e6001b5d32c7acfea4dd2b005242bf7d11e0f89ead65f48f1", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/_parsed.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fccbbf49369445f70a482c85b55c078f9cadd67786a0a013fc6698b25100108c", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "79c7a4587c7a00a2c7a91a5eab3b092671c730ab0c82458102614e087ae32030", + "chksum_sha256": "b9cdedfb409a6a585b41bbb846c76b74db84cecab5bdbfeef8886855f6cd1a51", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f113e17755cf29780c0366eea077fbf7d12d9332c0d31df993556813c20a9bf", + "chksum_sha256": "e44e3d1b77f9197ef4361d6dbf20eded541d03f581394845c3696a83e441f2ad", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ca080f4e61b3ed9435f09d4ce2341f2851ab47817e80383ce5c329cb89216b8f", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/meta/main.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "ebe78d90845598db5bbb9706a02725bbd5b4c78bc04e50afb888329367641945", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/_enable_lldp.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "88bd2a8904ddb081f33df2ad15b7cad35f711c4ce1e32400d45b598f647484ab", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "7a5e1d25df92ed1b5dca114c6cf36b26b24d049f0866014034597f9c44b1827e", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_lldp_interfaces/tests/cli/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c677840c5b24b7fbc56a54cbe609c24c198bf12cb1b9db9218316a45f9481211", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli", + "name": "tests/integration/targets/ios_lldp_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d11cd0691705a44a06275d2438229562d70cb6eeafdfd7823c306fae55ab7974", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ae384d2d361bfec3e5ec8d4521923a328fd0a6b06ee0fad2dc813650f4867af", + "chksum_sha256": "5e606724f5e050623ada8c3ebac4a083abdd02767b5957a2a8904f043d62e05d", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_lldp_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a3bf0d0d675271115fbfcb01d220b647d351ba511dff0d16d9f8d7468ce8ac6", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "41fc0f1077783f0157b1bdae02da05009bd55cf31cfffdce93f25490569c7eaa", + "name": "tests/integration/targets/ios_facts", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/_add_port_channels.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "37e0850a33908a4856f7167d6e488cbf3b6060950a032aae1f1006dae560d2aa", + "name": "tests/integration/targets/ios_facts/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_facts/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45de9b52c7ab6864f1abd09fe743ffafdc10eb084285f98755c9ec21137e9bb0", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a9ef52fd6e4d52c3bdf173bf2d2c13f4ad7515dfd508f93e70d00f951cebc8d5", + "name": "tests/integration/targets/ios_facts/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_facts/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dae7f6e33417854fdb686dc22ab25acf7ccd05b1cd088087f4b6777012ecd7c4", + "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/_parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c30f577272b1c7bdc04fc0cf9a016b5c004a93f0e7d09cdb4bca3fa5aafeea8e", + "name": "tests/integration/targets/ios_facts/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "af7be4e062acefec5cf61c6cc7ad3cb369db2b641ae00f229621ee62a47fe90e", + "name": "tests/integration/targets/ios_facts/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/_populate_port_channel.yaml", + "name": "tests/integration/targets/ios_facts/tests/cli/not_hardware.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "18e91e2791fb6dd738d3042718436ae3244dbd0a90b5f1886ed5a5daf1d46ceb", + "chksum_sha256": "738d319cd48b7e3b5f396a7a5af1f30285de3dc9021256498f6b34b76b44f451", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_facts/tests/cli/all_facts.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59d406ceef4165fcae86490c8251a719575a113ebe80cce578c1e4b67c974225", + "chksum_sha256": "e8dc5bf84ef359c8b9110d3263998c4104a821dce2f3d80475e69e3ca4d781b3", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_facts/tests/cli/default_facts.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "523ce08d67e26a55d5ae1004bdf73f5f785348437c918d98179f5bb01e403839", + "chksum_sha256": "075848c45a672667c64eafa88b47044c411d5299aa4197e2784127b2b09e4a3a", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_facts/tests/cli/invalid_subset.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ce0f4b8f4ff19ca8202594612bfff8bbe94ce65867e3db6e3e9bde4354c4c16", + "chksum_sha256": "4bb2e50a1b9d682b6e11db8e5f3ddba9e624b09092d16471bbd94ba9d6b3567a", "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/vars", + "name": "tests/integration/targets/ios_facts/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lag_interfaces/vars/main.yaml", + "name": "tests/integration/targets/ios_facts/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7548cef68905ad34af6e5c02e932c61e8eadc317b15831fca6346a128b89f7bb", + "chksum_sha256": "093a68ecff9678aad9ed8e47c822c8dd795b7f5b6a14493bbbfe1d67a378c324", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces", + "name": "tests/integration/targets/ios_facts/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_lacp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tasks", + "name": "tests/integration/targets/ios_lacp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/ios_lacp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a46304602c050830a04642d790e2c32e7ca38138a3115617a321b0aaa966ac9", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/ios_lacp/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_lacp/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "34537c31909d55ab6461991eb2ddfae9e4dd32b1b7e01133aa040dfe08ae02b9", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/defaults", + "name": "tests/integration/targets/ios_lacp/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/ios_lacp/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests", + "name": "tests/integration/targets/ios_lacp/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli", + "name": "tests/integration/targets/ios_lacp/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_lacp/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3989e7f762cbbf518de2b3778ab60754ec12e403c145956777cbab0962368206", + "chksum_sha256": "45475bede19466ee41f4b1d966a80c10988ece6e1ea77232c4c9883ef2f22123", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_lacp/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26b38d39df6a806126bb1981ac16b20707118f8d4b4bf77036dd328705ed3b76", + "chksum_sha256": "fc650f89a8a2ebce685210ae5fa3d65d1d31652a993164005d3327f4861881b6", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_lacp/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b052384eec330f45bc81d36118752d8997371068252fc29e436bdb59391de045", + "chksum_sha256": "364387abef4d57a5903ef74f788703e41ed604a98ef24bcebcc837c85fad934a", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_lacp/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5e5d0eebcdf9df91bd9427cda551ac2faa5b3c91559e742a18ce0eb59d0b5755", + "chksum_sha256": "bfe347a63f6fa9d686ee7151ca4344f94c3fdc8c7e1ce73a637ec9e4924f38fd", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_lacp/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "02c8c24f18a12ddb0ed2b7d21e39eac17a3c36787f8ff145223ca43af0c02e42", + "chksum_sha256": "2ae637240277ae729d901550cd50ce19b6b29b1eca663eaed8ce011bec832615", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_lacp/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3077db7d9d462cc53d8a755d6ff91972855473a4303ea49862dd1c26b1345816", + "chksum_sha256": "744f90515ff83553dfeff83df0ccf4aa826c3249574c42686fd9d6c41394d19c", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_lacp/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5f0b6df959031fc5ab1736f470d21d0d029f71711b916b666e8172e5af4be64b", + "chksum_sha256": "83fb72d50e9f4e9ff7e3b906e1b4dba8ba4a08b0c8ff81c130a6b5c95c2c86cd", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_lacp/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25ed4323da59a62b27fbd759263f146585f660557ae20c810f4a00602a4584d1", + "chksum_sha256": "be1b9226490c3801116b3325385dedad65ee514e21d853298e2aa94ca9f16766", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_lacp/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "135c4a4d72895e789f33ef5d20039e4dd8a1ddb92402b8fd25cbed9d3cf993b6", + "chksum_sha256": "ce393c8b6381d3030b5d2d12e7338fa4423cf1891c816db296f544467860992a", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_lacp/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3860df920e3f445383200f9261984c3a4bf72d7c93ad252ee8bb237fe2acc163", + "chksum_sha256": "68518c550a5a993fc26f2508bbf71ef506bcb2eb7101ac3005ec4b7163515459", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_lacp/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_lacp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e5e5626f01eb1f6cd90237efc8972743f594500e8f3fcb34f8f0e6752069ab2c", + "chksum_sha256": "42f682d0706bde5cedd3667110b289d169b29ca20a1692b85c51bbe5f1e3131e", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_lacp/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "168cef1691a6a4585ce66751fe0e9520573ac71ffbe016a9a3f239b195b9a8e3", + "chksum_sha256": "2f113e17755cf29780c0366eea077fbf7d12d9332c0d31df993556813c20a9bf", "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/vars", + "name": "tests/integration/targets/ios_lacp/aliases", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9b121bba6a0892e8ff599846aa1ea5c388ae3c8a9e6a85192f43b89cf992719f", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_linkagg", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_acl_interfaces/vars/main.yaml", + "name": "tests/integration/targets/ios_linkagg/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_linkagg/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f860d0bfa1a178cc8f9426b3e865a1e8db7123ea9dbeed64494fb52dca4875c4", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps", + "name": "tests/integration/targets/ios_linkagg/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tasks", + "name": "tests/integration/targets/ios_linkagg/meta/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_linkagg/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8e9a834620253664b73e74d67506006c5a301715f7b7a867c5bca4334f82ece7", + "name": "tests/integration/targets/ios_linkagg/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tasks/cli.yaml", + "name": "tests/integration/targets/ios_linkagg/tests/cli/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "01543795b9d0559974aa6eb2e501541a442c6d8a61361ab6ce30eb7d7a0610e3", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/meta", + "name": "tests/integration/targets/ios_linkagg/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/meta/main.yaml", + "name": "tests/integration/targets/ios_linkagg/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "8171ce9eb1bd2474dcb5e0f86eeb142567bac349514708f53c24829283fd382e", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/defaults", + "name": "tests/integration/targets/ios_linkagg/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/defaults/main.yaml", + "name": "tests/integration/targets/ios_ospfv3/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_ospfv3/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests", + "name": "tests/integration/targets/ios_ospfv3/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli", + "name": "tests/integration/targets/ios_ospfv3/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5d9a640abfe561027b4afaadcf0306d9f52437a9ca11c8c6bd33aa39668cfc2b", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_ospfv3/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_ospfv3/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac7be197d9f1c5d050d19763c77777eb76e358ee919bb8f9cbb9f9844dc88223", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_ospfv3/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_ospfv3/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_ospfv3/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b4046f281274bc9935c8cde1acc6b9be307f1b7ef9fb583957e1322b0c082d60", + "chksum_sha256": "616e7d9e3cc11d85aa6f6948a80ba8ad080df33b6fa2574e58ea96dda1b8b4d7", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_ospfv3/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "df41c3a26d7834ab66fdfe1b2faade9c312e8225c7bc99d736308371f3600ea2", + "chksum_sha256": "d825c44ce8c9cec4e8b41ce23a867b76e766c6e6a3491d6621585bce8bdd57c3", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_ospfv3/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f164fe2b72297a0ed83c0dfde78abb1673ebf7715469c55d263904c54e75e8d", + "chksum_sha256": "21aabfd4dd00cabd0670087c3f46d8f3cf0dac51e013d14790546ec52612579c", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_ospfv3/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9991663c3944fd60eb5c0dd904a88348ce7ebdb04550a3e596b92b67c312a8fc", + "chksum_sha256": "72297b557d1b34d29b999d26e00a0b28d813fd1e458338acd1cd3b24b0a35aab", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_ospfv3/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9107ec621b5c648121c0917cd969eb12895ff1bbd5164798902d8fade0887608", + "chksum_sha256": "2bfc27b217fab25508ee8dedb4819c40bdb98b3352c464065f8ef169622f4384", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_ospfv3/tests/cli/_initial_vrf_setup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d0f8053909d848db5a593451794962888efd2e041f710294929ca1bdde0caff8", + "chksum_sha256": "7fb8dc743143aa6677f024b7333e02bb1f52f1a9c434cd86e1617b442dcc8a0b", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_ospfv3/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49d07d449a90342c4a3b2605f7d2e5a99c3c04952701ea4a1d8b29b02577fa49", + "chksum_sha256": "75178f12ee6688bc6635aafb6d83adddbed9b5a0d12fb9d39c819afa14adba64", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_ospfv3/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff7c6c2838c19016776a01f6d6704aada960e930a0829c0e47e847c70144b9f7", + "chksum_sha256": "844b1f73132324bcee3f3390fce22388df69b69e4266ffebbdd4c5d6a8a4c2e8", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_ospfv3/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c56d9e9cfa1c23282710af3f23af288e856f3ff9134cc411a498b186c2df4c4", + "chksum_sha256": "238918c44b8752332fe7ee6df2e293a51da17252fdf2362b337e6a897cc224cc", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_ospfv3/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85fea8de40eb500f7b93f6842ded059cc8f3e346d902a06028a4869db7e19b01", + "chksum_sha256": "c8f73d52be036135d76b6157719db5f9bd4f7761ebeae5618e48a339ed14ae4e", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_ospfv3/tests/cli/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c70156e646606c78e8221d3f09140d0be29bfc307756e6f0993b02b78b8fe9e9", "format": 1 }, { - "name": "tests/integration/targets/ios_route_maps/vars/main.yaml", + "name": "tests/integration/targets/ios_ospfv3/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "707242064a446604688cfa42b04d777ff801846293ade1154dcb3e82a9badfb8", + "chksum_sha256": "23df18165ce662f9a6837926a752e92d9c0500334a68492ae8607c2385b4cb29", "format": 1 }, { - "name": "tests/integration/targets/ios_system", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_ospfv3/tests/cli/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8a735801dc4fc0769f2773722caa333ada8c5c41daad731c271c185ff1d6a040", "format": 1 }, { - "name": "tests/integration/targets/ios_system/tasks", + "name": "tests/integration/targets/ios_ospfv3/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_system/tasks/main.yaml", + "name": "tests/integration/targets/ios_ospfv3/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "68e898ba92f5164ddc8cc51967c5e2876e9002699d528634a67f2183dd558d39", + "chksum_sha256": "2ee4493aa601f74dca37f18dfebff80578f8ad47283d1921825a9036bae468ad", "format": 1 }, { - "name": "tests/integration/targets/ios_system/tasks/cli.yaml", + "name": "tests/integration/targets/ios_ospfv3/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_system/meta", + "name": "tests/integration/targets/ios_acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_system/meta/main.yml", + "name": "tests/integration/targets/ios_acl_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_acl_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_system/defaults", + "name": "tests/integration/targets/ios_acl_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_system/defaults/main.yaml", + "name": "tests/integration/targets/ios_acl_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "f860d0bfa1a178cc8f9426b3e865a1e8db7123ea9dbeed64494fb52dca4875c4", "format": 1 }, { - "name": "tests/integration/targets/ios_system/tests", + "name": "tests/integration/targets/ios_acl_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_system/tests/cli", + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_system/tests/cli/set_lookup_source.yaml", + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "10e512f2cf5dc0fe7c9d3cb0188fc3dc96dffa68beb61895d88c8dc422c886e7", + "chksum_sha256": "e5e5626f01eb1f6cd90237efc8972743f594500e8f3fcb34f8f0e6752069ab2c", "format": 1 }, { - "name": "tests/integration/targets/ios_system/tests/cli/set_domain_name.yaml", + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4bc85f65fcaa284e9503fe5643f16111f14daf7ba677abd84daa04302f8b007d", + "chksum_sha256": "135c4a4d72895e789f33ef5d20039e4dd8a1ddb92402b8fd25cbed9d3cf993b6", "format": 1 }, { - "name": "tests/integration/targets/ios_system/tests/cli/set_name_servers.yaml", + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b59e7228e155bfcbaa1863f12fbbdc641e01c2fdef2d6bd4f4aeb2f3fa96bddf", + "chksum_sha256": "168cef1691a6a4585ce66751fe0e9520573ac71ffbe016a9a3f239b195b9a8e3", "format": 1 }, { - "name": "tests/integration/targets/ios_system/tests/cli/set_domain_list.yaml", + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "592210cc1bf19177523967179ec83b786b9c60d9341acdb087e739911876007b", + "chksum_sha256": "b052384eec330f45bc81d36118752d8997371068252fc29e436bdb59391de045", "format": 1 }, { - "name": "tests/integration/targets/ios_system/tests/cli/set_hostname.yaml", + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "810d48f3ce471254c763859c7d33ad70b06aaa28b45712179b4794f3b5a667c5", + "chksum_sha256": "5e5d0eebcdf9df91bd9427cda551ac2faa5b3c91559e742a18ce0eb59d0b5755", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/_parsed.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "25ed4323da59a62b27fbd759263f146585f660557ae20c810f4a00602a4584d1", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "26b38d39df6a806126bb1981ac16b20707118f8d4b4bf77036dd328705ed3b76", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tasks/main.yaml", + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7607c1041a822e911d328c572b5986636a52054bad2895b89c4beb7861755017", + "chksum_sha256": "3989e7f762cbbf518de2b3778ab60754ec12e403c145956777cbab0962368206", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tasks/cli.yaml", + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "5f0b6df959031fc5ab1736f470d21d0d029f71711b916b666e8172e5af4be64b", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3077db7d9d462cc53d8a755d6ff91972855473a4303ea49862dd1c26b1345816", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/meta/main.yaml", + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "3860df920e3f445383200f9261984c3a4bf72d7c93ad252ee8bb237fe2acc163", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/defaults", + "name": "tests/integration/targets/ios_acl_interfaces/tests/cli/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "02c8c24f18a12ddb0ed2b7d21e39eac17a3c36787f8ff145223ca43af0c02e42", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_acl_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/defaults/main.yaml", + "name": "tests/integration/targets/ios_acl_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "9a46304602c050830a04642d790e2c32e7ca38138a3115617a321b0aaa966ac9", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_acl_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli", + "name": "tests/integration/targets/ios_smoke", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6e7e8c2edb74ee0476b0c4d83a52c84e4230c16e3c3d051c63c6fc63018c4211", + "name": "tests/integration/targets/ios_smoke/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_smoke/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5665b8e91a6bb98092632ca9952389b634005325762d970aa987bf0523ccc882", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "149f7e871cffbb37baa730d0dc0a4964723f90d64d0f0a409ebd923b743e682a", + "name": "tests/integration/targets/ios_smoke/templates", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9c7f20dee20d06af4441f5369836e86db1aba0bda93cb50caa49e6041ae98dba", + "name": "tests/integration/targets/ios_smoke/templates/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_smoke/templates/defaults/config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61c3a851e2d056cec1479981c331fd2a4c1126bb8bbacd5c38ed0b4e4ff026c0", + "chksum_sha256": "c67459067166baed6059b02907fb2692e34868270185b09fcd9f5d7c3ec013d0", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2dbca0fd8e9d00593a5785ab68cb246e21a2ac99fff6970ff150710c246f1927", + "name": "tests/integration/targets/ios_smoke/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_smoke/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c56eb808c76e38656a84bb5e725dc14af02482efdb85d2246613aff63e9b52cb", + "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0b9a801456bd9db90925de5fb3ddf02130ebf6e4de5abbc8dd0a3d8785ade822", + "name": "tests/integration/targets/ios_smoke/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/_populate_vlan_vrf_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "455e27f59263b50ef9ec28db7556b9746070f5672cabe83cb0c03f6103ca3918", + "name": "tests/integration/targets/ios_smoke/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_smoke/tests/cli/misc_tests.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d54c5dd89c14a5b02575b8e80f647bc66ba075563571e876e5d471beca81c10", + "chksum_sha256": "7eb9e4e697c8432c1a40e9408f7638d887c347aec871bfa157bbd7c3f0586b95", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_smoke/tests/cli/common_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "67f3d6703dbc41fb80ddc9360a8fd99addc2dbd17258b2e3d4bfc859c604d867", + "chksum_sha256": "3cadb8dae7de5b5be84fcab95fd6e5f65816069841a996010af41c32b8438897", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_smoke/tests/cli/caching.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "23ba22f2eacb69c8cda7d4bc0b8ffb9b9b4e3c8c2499e8512fdd09ed136e051f", + "chksum_sha256": "618ffe0e7bbd5a6d4e6172cdcca046317acbb06f8dc8b4de4e214fec6e642640", "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/vars", + "name": "tests/integration/targets/ios_smoke/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vxlan_vtep/vars/main.yaml", + "name": "tests/integration/targets/ios_smoke/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7bbcfaab60d1b44f73192415eef696368496e56fecd0d5f6384a36f6ed0bf500", + "chksum_sha256": "7f9fa924aaef2895a7bc9899ba35028617be0e242888fd3558903a9a5c621bf2", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_smoke/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6cdc2604047d999342d2e29f3a546b9f8ceab22e37c2d4eaed5fb596bd4cd2f0", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tasks", + "name": "tests/integration/targets/ios_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0c72f070fd187ae7c13c368647de220f6b254ab856db38328f952f012461f480", + "name": "tests/integration/targets/ios_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/ios_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f113e17755cf29780c0366eea077fbf7d12d9332c0d31df993556813c20a9bf", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/meta", + "name": "tests/integration/targets/ios_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/meta/main.yaml", + "name": "tests/integration/targets/ios_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "e8f3979e005bccc2337f70eee9f2a8cae18b80600e2336e64eca1c1b0552b4be", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/defaults", + "name": "tests/integration/targets/ios_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/ios_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_l2_interfaces/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli", + "name": "tests/integration/targets/ios_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/_remove_vlan_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "89eb56e9a96ba32ab65009fc09ebf8bbbeb74843839557a70f1c76c3ba2f2c58", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e5c3d3a3d316de8d72b101a3200a8e81785710ef1f1386c0ea3dbf5da45eacda", + "name": "tests/integration/targets/ios_interfaces/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b04564f5e0e3b1f5527f25e60a42766131d47c8f14e5704c558156a2d901654c", + "chksum_sha256": "c3aa08c205d7535bccd127dd4f2561e51a2ec026d151af29a27161cce05fc3fb", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae60010ce6b859e677cd2fe0443293d0cbbfb6059f00416c2827998f8dba96c1", + "chksum_sha256": "ef6bdcebaf77721c230b529ea6d8930afd19840ad644b09d7a9d9e8b08042a64", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2df68349950dac68eddcf5f1560371ca7d58868b3d5c978bb2047ec1d37a908e", + "chksum_sha256": "c9f8c4f20831746975e125b2813af5a924c6ec65692e3b373b62cca70e07bac7", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "094afbbdd9097ab670c41df21b081705791bd7efa1ff26a741ccd2f9a21ed2a5", + "chksum_sha256": "37d322a0d70e5051c2f54be098c6cb7261c5cba19d030d69c87c9a25d05b3a2e", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "205a1557e675e86da5aa68c11e65648bc868852e81d2d483ffdacbd72e058181", + "chksum_sha256": "191fc3bbaf3d78756bb2ce23765cebb199b569f0f7b88689063d00ee049db9ec", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_interfaces/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8b4e94db711765525756701212c456abfea84fb4c38cb4cd45c9010dbad93927", + "chksum_sha256": "3830de884a4d8a13874f4bb664a6dfe92240148a26f2414fd430051e40752b1f", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "18a86eba9dd5b79bedad92815399beb362a10c96e402b18fc70884852a2c502e", + "chksum_sha256": "8de2097894aadebd181dd7ae7d0f5dec4cb017ff95010899b37d3bcad6bd0860", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "557b6eac4dd1d40678d52e9f59e84d8f9cddaf70a6be82787d43785fae35539a", + "chksum_sha256": "7d6150da669c91be1f6470c7441e2bbac682c7b78c59eb2bccd837230b68e2d8", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91412f73bc4b57376bf22ae459899b858383999655c2365958695393758ff1ae", + "chksum_sha256": "b5f19e8e25cc5e2704ded61eb61d7ee0095acc136e1380809cdf47f12d8bbf17", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aa8e71b9953a2d70da7fac058ba031f21cfb5bfb71df81285552b5aedb16328b", + "chksum_sha256": "96501d4ff6cafdb68d01c77d5cfeaf6b9c92470d76db8d43b694671c2459e741", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05a8a3246332f26b13525220bfb3ae2df1369eafe66f255ee76dc5d7d801fbd8", + "chksum_sha256": "49b157678ba5cc812ab3a5344bc492003e8cb6b1f849ae168b81f48ebba8ff83", "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/vars", + "name": "tests/integration/targets/ios_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l2_interfaces/vars/main.yaml", + "name": "tests/integration/targets/ios_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c39e3586ef18b985c228717ae7eac1e306f5e77a15d450a24628cf72e2d7e0ab", + "chksum_sha256": "c8f9dc60a371baf0f3c770c2818e2feae840331bbf85a9c23ba3d2cfdfe13547", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tasks", + "name": "tests/integration/targets/ios_evpn_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8fa2acc83e477a128ac38edeec64fee41b19c60ee0c81a9c4fc633958a687a73", + "name": "tests/integration/targets/ios_evpn_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tasks/cli.yaml", + "name": "tests/integration/targets/ios_evpn_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f113e17755cf29780c0366eea077fbf7d12d9332c0d31df993556813c20a9bf", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/meta", + "name": "tests/integration/targets/ios_evpn_global/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/meta/main.yaml", + "name": "tests/integration/targets/ios_evpn_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "a930c7415288124acd312b6bc09b1120f8f8085b31c7267a1e183467377b70e0", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/defaults", + "name": "tests/integration/targets/ios_evpn_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/defaults/main.yaml", + "name": "tests/integration/targets/ios_evpn_global/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests", + "name": "tests/integration/targets/ios_evpn_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli", + "name": "tests/integration/targets/ios_evpn_global/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/overridden_vlan_config.yaml", + "name": "tests/integration/targets/ios_evpn_global/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c2f157243c1f0874051f031c51813641fc2d08529e7d97971f10e15553acf3fe", + "chksum_sha256": "e0e4acad796d01a6db7a44d08d8ae4a7eefa3da818382224189c30eb5c6bbd92", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_evpn_global/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2cee0574690e1a22ae1502659dbf76f95aa0f3adcc742e32a25241043c9eaa20", + "chksum_sha256": "1cb6068d536690bed4bb86b5901cc97b78325b5ff9a6104805278172427c9af3", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/parsed_vlan_config.yaml", + "name": "tests/integration/targets/ios_evpn_global/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "babf6f1d0227a6f5013632fbe2c7ab70a01b1991bf1683a11bf9d60d23cff0cf", + "chksum_sha256": "1ee5e0cd3f90d1d5461cc3de8eec434fbb245688d2c99d12a477d0ee565f19c9", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/merged_vlan_config.yaml", + "name": "tests/integration/targets/ios_evpn_global/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1855d64d7d7700e8da4e69c4df727cdd37926f720867dcc87c05fc443b14ff99", + "chksum_sha256": "8c950ea407d98e84ee9ef11ae5f11cdd1402a460f48159591eed290af69aa730", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/rendered_vlan_config.yaml", + "name": "tests/integration/targets/ios_evpn_global/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5bc3030e1201026ce580492c74f1762660e20ae6a9c6945972ecc0f65cf3a0dc", + "chksum_sha256": "e6e04317befb43f382b3b5e4e37757fd905ea5f8099327bb255ce3031da38285", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_evpn_global/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7bc4328acfacc36056f4f9fd2ed9cebef987ba490730967a191721c62993aa5", + "chksum_sha256": "54905a1be066debe036046408f5d40d3ceeccee3074090e3d1c459aeb4355e67", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_evpn_global/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "19bfcf9b214bd48339bd025b2c044eb3a640bd46b88442f4dc5337faadc0e18c", + "chksum_sha256": "df48d4875d6c309498c93bf1654170b5de8dd36f00cad9b7dda06fa0ec6135d8", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_evpn_global/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4ffdb8c877c749e808b435c833c92f3b7d7343d05c4ba8d8f1b39e519b1b63a2", + "chksum_sha256": "bf27aff9be6f72a1bac5da95577b426f851356b9afa907bc35a5100f51b3500c", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/_parsed_vlan_config.cfg", + "name": "tests/integration/targets/ios_evpn_global/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5921afbe0954f8ced2a95ceba0ffe19b6d3e0b31e50dae387704727e4602aa50", + "chksum_sha256": "0b7ddb734d42978b5ebb82d436a354e8fae2fce18e60a1546f2d519cead08390", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/_populate_config_vlan_config.yaml", + "name": "tests/integration/targets/ios_evpn_global/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d96a7d3e3bfe8da463bf2dd734b70aa86db1e98fa4307435ef430e0574a732dd", + "chksum_sha256": "1c1eda73556b1082527e3387499aa6a6d5d6734bcdd7070409964563ef73734b", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/_remove_config_vlan_config.yaml", + "name": "tests/integration/targets/ios_evpn_global/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_evpn_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f50d841acb552a2397492892efa62ca868a227651d2cdb2179a4bd3da66c9817", + "chksum_sha256": "40cba4a01ca4d7671041cd1c34aad247ab33b8027f3143233bab09d039780e3d", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_evpn_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85a1aebb72960e9ca957302e141f03debf96a1ab54926905a182b6f12fc2bb55", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_evpn_evi", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_evpn_evi/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_evpn_evi/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96631f083020ab2d55c8ad66ef70bf26942bf12da2864a3b45b8afb934e5c7d7", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/gathered_vlan_config.yaml", + "name": "tests/integration/targets/ios_evpn_evi/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_evpn_evi/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c50c17d5cc8d365e9df2d11698f67bd0a6f8650dcb2b3c7cdbc2bbd0ce82e58", + "chksum_sha256": "d8d4519b069cabc7f791adda0fc239b41ce354dd4eccb8f1929e2503910fa16d", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_evpn_evi/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_evpn_evi/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d7773b3edea41259b34dbfefcc4c7a543c6ab3c1a1a2d85a334d0cefad37b91", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_evpn_evi/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_evpn_evi/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "31dcdedd876672aa1f15ac36c7b35b156cea9795b15f686e40b2eecaa0ea5392", + "chksum_sha256": "f152c59eea19452042fd7fd86a18ec51a8ba501b488f2a104e81e7a4099fa617", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/deleted_vlan_config.yaml", + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "56e174577879e139ac99b46f2588b9c101e1667faf4fd9ae1b59cab9466979d9", + "chksum_sha256": "78274255f88531ce6799143d0f15f9dcc4d350c92ad3d792cc49a8b8ed5e45e7", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b9940730019c5607914c500f4e39e23b55fe858a6d0b276c96a28e72f222049", + "chksum_sha256": "d2729d3bd7841494cddd0732bd7a9c75663bb18eeba552161426cd88ede87611", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d90eba79cf10b15a5318824e1fbc6e877db3951526be828180d47a3d1f8aeb03", + "chksum_sha256": "d6115bc64148a4cb99bde23fb20e1b7d90cb8e08a826d1ce988b56d1aa56f959", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9dcb409a302fb60386633c000240bd99c7e1a925e59d940604e6b1319d138eb8", + "chksum_sha256": "0b5dffe39805b32781c56cf69f5dd7cb5102da1dd53eaa29f011001e009ecb83", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c3dead8718d5c971c74c59bf6c3eee8be63eb99fea05c03b0aba14e2994c4c4", + "chksum_sha256": "7fc6dd9b2d30b6cb5e0785ee409ed4afc0ba34e469fe18e024bd003985a38b65", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0a5f817b301780f98b42b3ff17ee875ec1da8cec84cc5196cf2e87eab9ecb05b", "format": 1 }, { - "name": "tests/integration/targets/ios_vlans/vars/main.yaml", + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1cade52f40e5745ea62114c4c0c970e7f03db0578670180c7ddbd4d968a0ebf1", + "chksum_sha256": "c8a64e95f6b485fa79daf39dd1f5c2e160ced25717df889d6c63f6054a227673", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "58d8e5d48d73a1c2b302830fc55a50f3c53e60f612a2e20f0debee651a912062", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tasks", + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4244b8eb838cb04aa475d98824e7a4f314f6ad599111c8523185cf346b2074e3", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_evpn_evi/tests/cli/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "39b3e0b71234dc27e4baf2b26606120f452be06e624dfd6242133ad5d49a13cf", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_evpn_evi/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/ios_evpn_evi/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ca85e538cabf8bda1ebd32dee2b5803e8e171ce955d7affe2f1417283cd92d6", + "chksum_sha256": "ef3434585fe8063da82d4d92c7cb20198bb9cb86fe82d49b0e8eba3fc398f561", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/ios_evpn_evi/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/meta", + "name": "tests/integration/targets/ios_config", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/meta/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_ospf_interfaces/defaults", + "name": "tests/integration/targets/ios_config/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/ios_config/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests", + "name": "tests/integration/targets/ios_config/templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli", + "name": "tests/integration/targets/ios_config/templates/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_config/templates/defaults/config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6645517abeb9ff0bea3331bc844b12c1382b0eea4178be0dfa523a3a38c5a97", + "chksum_sha256": "c67459067166baed6059b02907fb2692e34868270185b09fcd9f5d7c3ec013d0", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_config/templates/basic", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_config/templates/basic/configexact1.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "338693405501e01ca57d2ddeb40f482891c029a986864fc98946fc266265bf13", + "chksum_sha256": "a112244df64f4360549463724af9ae4c598c3f39c22310a4d0a98c44cf034408", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_config/templates/basic/setupblock.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4395e95e40e7a0dfcf80e05ade1c443c37cfe70fe80fc4fdcfc0ee48ca7bca7b", + "chksum_sha256": "c7e470728246324f9d35d7d1f36e53f10a1d424cb9b14aea8ebd22ae03384985", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_config/templates/basic/acl_config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd72a9b920445f668d61b31646621e0f9587851e61eaaa071f8034468e3fab43", + "chksum_sha256": "819000cad7a1b4e27b8b206fe04b2d18c0bbba7876801d9f2786c94f76482050", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_config/templates/basic/macro.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0c23c50849c89a60cce7588ee594c9f12fc89ae710516e3371d9cdf23bbdfbc", + "chksum_sha256": "240ea6bffb5f8140b8fb61c0e4505e89f76ea5c0ade1103b63b25c6024e57892", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_config/templates/basic/intended_running_config", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7ef2eb2c6dd20e38ac7f6058ced2a4902a838cfb902e8a32e33fc83bc8ffca5a", + "chksum_sha256": "0c8e4ffd5cb273c2c92fe0690fce9249386fbd72ac0e77872e8fa2cb1c256138", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_config/templates/basic/config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d05e7ad3cd69bd4b423def7c76b0200ec3daff4ce28f945cf1b53a001c52d95", + "chksum_sha256": "fed860520ec0b19850744af6be1c77939335d4a09539bf563d0c15aa6afc84ef", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_config/templates/basic/base_running_config", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adda4ccbcef419623366dff6fd814799b732583587c8b71b9a49638079cf4c7d", + "chksum_sha256": "7385f5112a2ea15a4ca3f480bf6830bf91439a67073d846367170819b02692c6", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_config/templates/basic/configstrict1.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e822477d57a3e430f8e379be1528039e6e4ee5eff278141cdc2c3f5c4ea4ad1b", + "chksum_sha256": "d7019ec0a3b0c34ed351eed7b9ea2979114804e6aac94b9433bd42789bec5b0c", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/_initial_ipv6_setup.yaml", + "name": "tests/integration/targets/ios_config/templates/basic/configblock.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a2472a61a85371edf42157eb38de6446a90882922de4471337054194b698dff", + "chksum_sha256": "d7019ec0a3b0c34ed351eed7b9ea2979114804e6aac94b9433bd42789bec5b0c", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_config/templates/basic/setupexact.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "843a2bd9f2693a11e665a5f552e9de54fcc379ca3e06ee80ba2530f9077acede", + "chksum_sha256": "78abef2216f92c74b21c0a935660fa35625c923e4d3b5d6eaa014a2f7b9d5182", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_config/templates/basic/setupstrict.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff7d15cb956c6a22c1687aee06920653392f08ff0e53223afbab89ad7c7c98a9", + "chksum_sha256": "78abef2216f92c74b21c0a935660fa35625c923e4d3b5d6eaa014a2f7b9d5182", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_config/templates/basic/configexact2.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f097e25e0459371162a4d0d2b645ae9ca361ad5d7fce778cab8793d7bcd2f433", + "chksum_sha256": "d7019ec0a3b0c34ed351eed7b9ea2979114804e6aac94b9433bd42789bec5b0c", "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/vars", + "name": "tests/integration/targets/ios_config/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ospf_interfaces/vars/main.yaml", + "name": "tests/integration/targets/ios_config/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d904ba1b1ee67876b5c1db5e8a2c063c500c99af83e05fd36d7584745f906957", + "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", "format": 1 }, { - "name": "tests/integration/targets/ios_user", + "name": "tests/integration/targets/ios_config/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_user/tasks", + "name": "tests/integration/targets/ios_config/tests/redirection", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_user/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a8da0d0bc00401711103caf4be61022ba74b53c8296bfcd784db7ea4853111c5", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_user/tasks/cli.yaml", + "name": "tests/integration/targets/ios_config/tests/redirection/shortname.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "chksum_sha256": "a9d8f38448bbc15b4db9520e986758afbb1e4332917cfa4e676c4726ecb1324c", "format": 1 }, { - "name": "tests/integration/targets/ios_user/meta", + "name": "tests/integration/targets/ios_config/tests/cli_config", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_user/meta/main.yaml", + "name": "tests/integration/targets/ios_config/tests/cli_config/cli_block_replace.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_user/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "b9b16a4833c6d7626d43f1c1e90a106af469adc1f3a032875e78e13c6b563e5f", "format": 1 }, { - "name": "tests/integration/targets/ios_user/defaults/main.yaml", + "name": "tests/integration/targets/ios_config/tests/cli_config/cli_backup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_user/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "6c6e65aa217139078a0e172b54fc00eb2cfe51f2079cb7d9b0a5d9c5d2a74ca6", "format": 1 }, { - "name": "tests/integration/targets/ios_user/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_config/tests/cli_config/cli_strict_match.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "faee234111770cb64085b9a25509c53fbd3fcc6d783bebff7592a0cf5ee4e317", "format": 1 }, { - "name": "tests/integration/targets/ios_user/tests/cli/auth.yaml", + "name": "tests/integration/targets/ios_config/tests/cli_config/cli_basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1f1317bad114d20ffe0ec55fcda33969a2575dc965be99b58cefda6742beaebe", + "chksum_sha256": "28f51d7f60e5fcd45a211c50797cc4142a3e4784cf8619ed41eadf1a630e4629", "format": 1 }, { - "name": "tests/integration/targets/ios_user/tests/cli/basic.yaml", + "name": "tests/integration/targets/ios_config/tests/cli_config/cli_exact_match.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "acbe615c9d6ee6c43971ed6986a31ed4e769c623d8f91f2258bbfb2255f76361", + "chksum_sha256": "3445b7155b0702ea632d8e846e514af4e58679edf35a1b00034c1f33611c7bcb", "format": 1 }, { - "name": "tests/integration/targets/ios_user/files", + "name": "tests/integration/targets/ios_config/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_user/files/test_rsa.pub", + "name": "tests/integration/targets/ios_config/tests/cli/toplevel_after.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4552b1d9416ac1be7c90b10b182a6ff4a4c56efcba53bb31851808c5d1fd787c", + "chksum_sha256": "c80fc079cc0294cc808809f7524cd26dce8746cb3cbceccae5947c26a53bba77", "format": 1 }, { - "name": "tests/integration/targets/ios_user/files/test_rsa", + "name": "tests/integration/targets/ios_config/tests/cli/sublevel_exact.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "660b96e5ac6d6bd17900490c4749ff3a63898bb155db0a661fefbd6ac6f0fc44", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_evpn_evi", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/ios_evpn_evi/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "8ff88256789e8892cc5604826818b4a694faa8dd37d8de6f37a06535724dedd2", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tasks/main.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/save.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef3434585fe8063da82d4d92c7cb20198bb9cb86fe82d49b0e8eba3fc398f561", + "chksum_sha256": "2fbcbac7be1a2444b9866a0312ebd7f30691de74f434b693b301e1b667efbc34", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tasks/cli.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/src_invalid.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "e37382eede72ae657893c3933a8e6731db78596f46d5fede249d4d050e8f12b6", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_config/tests/cli/macro.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c50af815c1122d68ec8aa76f0738a923e3100ffbdce96ec9f6eeda091001ff12", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/meta/main.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/sublevel_strict_mul_parents.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "ca18a9f33f955ba25c6df6be5108b58cb0b159406b531931d7886b65ec1a0316", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_config/tests/cli/src_match_none.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3b6ae94a3a40d6baa6400753b0273af9e1f0c693c0b9d02a216b4d16c9afad67", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/defaults/main.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/sublevel.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "81e93d0c4240f0c189dcc3db9d2887404f6f79ccc22a7ae9d8c2c616a823ae23", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_config/tests/cli/backup.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e567e119083aae3e8dd3739d64db3927cb554387079640fbff99b1d6b79f267e", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_config/tests/cli/defaults.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f299c02b02d7c454dd2eaa7eca83f4306f99b64430892077955f5159b3009031", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/toplevel_nonidempotent.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8a64e95f6b485fa79daf39dd1f5c2e160ced25717df889d6c63f6054a227673", + "chksum_sha256": "25ef9f513a03aa86771b90bd0d22940459f94fa3b2257ae7498b9217a405bb9a", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/toplevel.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a5f817b301780f98b42b3ff17ee875ec1da8cec84cc5196cf2e87eab9ecb05b", + "chksum_sha256": "f45a6bb9f23763b221df958302548d88734cedb25ee2edc0fe1ec86be00b4e8b", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/diff.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6115bc64148a4cb99bde23fb20e1b7d90cb8e08a826d1ce988b56d1aa56f959", + "chksum_sha256": "c4223635f760bffc17141049ab0cb3e09c3e9b2a53398754c740569c1244a548", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/sublevel_strict.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0b5dffe39805b32781c56cf69f5dd7cb5102da1dd53eaa29f011001e009ecb83", + "chksum_sha256": "ce6faa181c1fb7ab5ba44db51d418b0120a7d110a3f4373e91ce02987a76fefa", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/toplevel_before.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4244b8eb838cb04aa475d98824e7a4f314f6ad599111c8523185cf346b2074e3", + "chksum_sha256": "289b05fea7a7180ab37fb5e04220fa7c387634fbfe67e997d39ea44e53b6b03d", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/src_basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "58d8e5d48d73a1c2b302830fc55a50f3c53e60f612a2e20f0debee651a912062", + "chksum_sha256": "2544e95d1ed36fd4c73cad6dd719051035205bfd414ef4d6bbb73fe7e592b981", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_config/tests/cli/replace_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fc6dd9b2d30b6cb5e0785ee409ed4afc0ba34e469fe18e024bd003985a38b65", + "chksum_sha256": "7cbde273238be56ec3dc2174913de0c2933067aa634987a04dd7fb72fefeac3f", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_config/tests/cli/sublevel_block.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "78274255f88531ce6799143d0f15f9dcc4d350c92ad3d792cc49a8b8ed5e45e7", + "chksum_sha256": "91c95c35263639fde90b44f93f0612c0a7b3c510f325285afe281d9fc121e58b", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "39b3e0b71234dc27e4baf2b26606120f452be06e624dfd6242133ad5d49a13cf", + "name": "tests/integration/targets/ios_config/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_config/tasks/redirection.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f152c59eea19452042fd7fd86a18ec51a8ba501b488f2a104e81e7a4099fa617", + "chksum_sha256": "4c45a3649d432bb34bfcde5f3557848f294212fdd78da9b1c0f9b98176f462ce", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_config/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2729d3bd7841494cddd0732bd7a9c75663bb18eeba552161426cd88ede87611", + "chksum_sha256": "7011b000e1a4b28787b459b2a05c625052f68b10a1f108068ec805bb7a0875f4", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_config/tasks/cli_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5f583eec9d6129fbfe6d2b800c2013f2dff80308e21b59c9da1fa7382b6a401d", "format": 1 }, { - "name": "tests/integration/targets/ios_evpn_evi/vars/main.yaml", + "name": "tests/integration/targets/ios_config/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d8d4519b069cabc7f791adda0fc239b41ce354dd4eccb8f1929e2503910fa16d", + "chksum_sha256": "100c25aa8e342471c45f4ced56d10739c8a7f50ffaf83531800819f0911615ac", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family", + "name": "tests/integration/targets/ios_acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tasks", + "name": "tests/integration/targets/ios_acls/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "af949d2e120137280e403535d60cb3485ba4baa88a48d465d066d2151defacff", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_bgp_address_family/tasks/cli.yaml", + "name": "tests/integration/targets/ios_acls/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/meta", + "name": "tests/integration/targets/ios_acls/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/meta/main.yaml", + "name": "tests/integration/targets/ios_acls/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "426d56b0add7f2c6df6469c2f33efe3a33443a413009f85d3a2a38e317b47ba9", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/defaults", + "name": "tests/integration/targets/ios_acls/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/defaults/main.yaml", + "name": "tests/integration/targets/ios_acls/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests", + "name": "tests/integration/targets/ios_acls/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli", + "name": "tests/integration/targets/ios_acls/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "46c2410786bf0f78b7645d8a6bf4dda5825d8949e13851505d83e30277257877", + "chksum_sha256": "a6cc930a39872ad57c5b74919747421b13b0a0c985100d70763b27d0f646d0f4", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/_ospf_proc_setup.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4b82d41f2e4894c7d11e847a8e436b9e29fee5159acc72269f651697a7f62da", + "chksum_sha256": "f94f4b6ca8fba96b34c1fde4b3bb9ddf97b049ace4232ea5c0549ac3be547ae0", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8dc8ef4a203fd9de24d4afe860f25acd653f1f3512c445be6aec069b6bf4b22a", + "chksum_sha256": "855485788ef3b774a156a6a7780597f2c73639a9da4f7093bfe3289ca1e67853", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "537c4819a15fc7842de8cad0e8b74745f2c5b57d98db904078c9d8316b71ba12", + "chksum_sha256": "46fbc34461ca07fa76173803e47b59638be46b109cf3033e12ab8e741e66d203", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f3c31ce095304e438dfe658c12a1f429d9ff8764217ab52bd3dba99e0dbb8e99", + "chksum_sha256": "9c3c4569c578ec8336fa353111482916a96d9b9f7ab0f3262e9fe3fb92ce0f1e", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/_initial_vrf_setup.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/remarks_states.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7bfcd11a8eba0c26e564d5b5600060584998da25484e8e92443c602067f72db", + "chksum_sha256": "e540d6f58dd558e2d1f05fc134c8c4694f405ce8decd5fbc174ab20d83c19256", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "109f26ef884c25ffda307c25bf4180ebbb0c6a18b73e2509ade840be68f641c6", + "chksum_sha256": "40cfb30ce1b837e512a4e0a8e5d8aaa90026019732f6b712c49fa8f86c742f46", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6447bcd80411c1d8f04d26582c2ab5dfef6ced7cd2be9a0681e609601bfe27e1", + "chksum_sha256": "2110fa4eadb1937613e4b408e6d87ec92dd2e55ea8d01b22a3f058fe670aed83", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_acls/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6cba5ef4746373c30e85d18fdf83be09ad50d9ee4c312a64422d34cb325e4a8", + "chksum_sha256": "42615f514256b1a7d451a57c904dafc5c7887df9bd1c968f5332b28b65ee999a", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a2278af99b3d7b657b496333d700467810c0298ddaa567040b56c173f473182", + "chksum_sha256": "ecf088fce17e2e3b5612311c4c10d551e1c0fc20716a2cba7f0424611b989fff", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ed4186a91d1cb41e8d7d24196821f6a055801eba77fc72c59af07eabb43f25b4", + "chksum_sha256": "aaf7849f1fc016f09813c37599fa2f567313c681920a349d3976117ca61033bf", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d452abe349d6f966fb7db5133c3039ff9ce202d6b98a16a157f405d7a6f1ce3", + "chksum_sha256": "9c1d667ff016afc0e8e5dcfdf781ca4c5b871ce011ed3ae461133caee4fef0d9", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_acls/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7aa25fcb776c99a3453c4929c00250575ca72bce253914a95fd21d769fb1f21", + "chksum_sha256": "4aa123dc7a38645f48ca983339b0a43702f527b615514715a05689ddda18f592", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/vars", + "name": "tests/integration/targets/ios_acls/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_address_family/vars/main.yaml", + "name": "tests/integration/targets/ios_acls/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "98104bf0b72b20bb2d54f132858264e8c8aa8ee26d19ec82834d92367f5e0654", + "chksum_sha256": "a35279615971415b54c2877e35c58f430c4b5ecf79ab75cf8b1145408aa2f1c8", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_acls/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tasks", + "name": "tests/integration/targets/ios_bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c8f9dc60a371baf0f3c770c2818e2feae840331bbf85a9c23ba3d2cfdfe13547", + "name": "tests/integration/targets/ios_bgp_address_family/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/meta", + "name": "tests/integration/targets/ios_bgp_address_family/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/meta/main.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "98104bf0b72b20bb2d54f132858264e8c8aa8ee26d19ec82834d92367f5e0654", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/defaults", + "name": "tests/integration/targets/ios_bgp_address_family/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests", + "name": "tests/integration/targets/ios_bgp_address_family/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d6150da669c91be1f6470c7441e2bbac682c7b78c59eb2bccd837230b68e2d8", + "chksum_sha256": "4d452abe349d6f966fb7db5133c3039ff9ce202d6b98a16a157f405d7a6f1ce3", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8de2097894aadebd181dd7ae7d0f5dec4cb017ff95010899b37d3bcad6bd0860", + "chksum_sha256": "6a2278af99b3d7b657b496333d700467810c0298ddaa567040b56c173f473182", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37d322a0d70e5051c2f54be098c6cb7261c5cba19d030d69c87c9a25d05b3a2e", + "chksum_sha256": "e7aa25fcb776c99a3453c4929c00250575ca72bce253914a95fd21d769fb1f21", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "191fc3bbaf3d78756bb2ce23765cebb199b569f0f7b88689063d00ee049db9ec", + "chksum_sha256": "537c4819a15fc7842de8cad0e8b74745f2c5b57d98db904078c9d8316b71ba12", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "53f65521e577ff3599a2a4d6e42bf504cf799976492d828573ca6239e9d41238", + "chksum_sha256": "f3c31ce095304e438dfe658c12a1f429d9ff8764217ab52bd3dba99e0dbb8e99", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/_initial_vrf_setup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5f19e8e25cc5e2704ded61eb61d7ee0095acc136e1380809cdf47f12d8bbf17", + "chksum_sha256": "f7bfcd11a8eba0c26e564d5b5600060584998da25484e8e92443c602067f72db", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/_ospf_proc_setup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3830de884a4d8a13874f4bb664a6dfe92240148a26f2414fd430051e40752b1f", + "chksum_sha256": "a4b82d41f2e4894c7d11e847a8e436b9e29fee5159acc72269f651697a7f62da", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef6bdcebaf77721c230b529ea6d8930afd19840ad644b09d7a9d9e8b08042a64", + "chksum_sha256": "d6cba5ef4746373c30e85d18fdf83be09ad50d9ee4c312a64422d34cb325e4a8", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49b157678ba5cc812ab3a5344bc492003e8cb6b1f849ae168b81f48ebba8ff83", + "chksum_sha256": "8dc8ef4a203fd9de24d4afe860f25acd653f1f3512c445be6aec069b6bf4b22a", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c3aa08c205d7535bccd127dd4f2561e51a2ec026d151af29a27161cce05fc3fb", + "chksum_sha256": "46c2410786bf0f78b7645d8a6bf4dda5825d8949e13851505d83e30277257877", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9f8c4f20831746975e125b2813af5a924c6ec65692e3b373b62cca70e07bac7", + "chksum_sha256": "6447bcd80411c1d8f04d26582c2ab5dfef6ced7cd2be9a0681e609601bfe27e1", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "109f26ef884c25ffda307c25bf4180ebbb0c6a18b73e2509ade840be68f641c6", "format": 1 }, { - "name": "tests/integration/targets/ios_interfaces/vars/main.yaml", + "name": "tests/integration/targets/ios_bgp_address_family/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8580c8328ba4d89ff30e52f044cc1c5c813a55e9234c9f722f655cc3f06fe56", + "chksum_sha256": "ed4186a91d1cb41e8d7d24196821f6a055801eba77fc72c59af07eabb43f25b4", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists", + "name": "tests/integration/targets/ios_bgp_address_family/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tasks", + "name": "tests/integration/targets/ios_bgp_address_family/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "af949d2e120137280e403535d60cb3485ba4baa88a48d465d066d2151defacff", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_bgp_address_family/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8fe724448a906aa2a584f11792118430e87edaab920e85f9f8042786edd08daa", + "name": "tests/integration/targets/ios_l2_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tasks/cli.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/meta", + "name": "tests/integration/targets/ios_l2_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/meta/main.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "c39e3586ef18b985c228717ae7eac1e306f5e77a15d450a24628cf72e2d7e0ab", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/defaults", + "name": "tests/integration/targets/ios_l2_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/defaults/main.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests", + "name": "tests/integration/targets/ios_l2_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "db20920f776718e96e3c251c29423c0a28ac5000c6454f49943f65ac20fae7d8", + "chksum_sha256": "aa8e71b9953a2d70da7fac058ba031f21cfb5bfb71df81285552b5aedb16328b", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/_populate_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "557b6eac4dd1d40678d52e9f59e84d8f9cddaf70a6be82787d43785fae35539a", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "05a8a3246332f26b13525220bfb3ae2df1369eafe66f255ee76dc5d7d801fbd8", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0c4dfbbfd610bc72cc634465a0668fa3daabd76ab0771a293c38e366a32a6842", + "chksum_sha256": "ae60010ce6b859e677cd2fe0443293d0cbbfb6059f00416c2827998f8dba96c1", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "93cc5c3bd91b11ab509b884e143d023a851d0046e2118d1fc2eb22ae074d2d58", + "chksum_sha256": "2df68349950dac68eddcf5f1560371ca7d58868b3d5c978bb2047ec1d37a908e", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/_remove_vlan_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1baa1acb44f8c05b1081b7d2d49d7d679a694b1eef20d63cf8b7eb33df4a441d", + "chksum_sha256": "89eb56e9a96ba32ab65009fc09ebf8bbbeb74843839557a70f1c76c3ba2f2c58", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1842105d82cd689ea4cea57e9f151bca2e845204e00c78142b60cdac10b401f", + "chksum_sha256": "18a86eba9dd5b79bedad92815399beb362a10c96e402b18fc70884852a2c502e", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3718ece1e147c8f7a40932aeea280095591c481deeb46038cd3b070377d5f66f", + "chksum_sha256": "b04564f5e0e3b1f5527f25e60a42766131d47c8f14e5704c558156a2d901654c", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc8a935708bb8e0b18381fb2cbd56f7bd389aa02255d0b5cbfe36a5b633b1bf1", + "chksum_sha256": "e5c3d3a3d316de8d72b101a3200a8e81785710ef1f1386c0ea3dbf5da45eacda", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f1b300e29142c3cb1fa9e84e476577e0909a1f5e13c9f6bae1036eb2f021402f", + "chksum_sha256": "8b4e94db711765525756701212c456abfea84fb4c38cb4cd45c9010dbad93927", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97081ebf559f11a3701d87bc521f3d05be7a8a62a454d7f37194f651ccb053ab", + "chksum_sha256": "205a1557e675e86da5aa68c11e65648bc868852e81d2d483ffdacbd72e058181", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "10d8202df57a09927329626e4b89a45038167e54d9e9fbc4c6c6ade64129fff5", + "chksum_sha256": "91412f73bc4b57376bf22ae459899b858383999655c2365958695393758ff1ae", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92341a0e0de58ed85e0e12651de37e00217256797d83723f5bf31f5a62ed8b10", + "chksum_sha256": "094afbbdd9097ab670c41df21b081705791bd7efa1ff26a741ccd2f9a21ed2a5", "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/vars", + "name": "tests/integration/targets/ios_l2_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_prefix_lists/vars/main.yaml", + "name": "tests/integration/targets/ios_l2_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54b02bf40251a3fd868d5c54f4cfa4eab85e5990b956a037f336c6814eeb19ea", + "chksum_sha256": "0c72f070fd187ae7c13c368647de220f6b254ab856db38328f952f012461f480", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_l2_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2f113e17755cf29780c0366eea077fbf7d12d9332c0d31df993556813c20a9bf", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tasks", + "name": "tests/integration/targets/ios_ntp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "daa688f229d7e8db61d23cc61ebc79ccff40a6e9af6de742f4cf5fde2fab74be", + "name": "tests/integration/targets/ios_ntp_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/ios_ntp_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/meta", + "name": "tests/integration/targets/ios_ntp_global/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/meta/main.yaml", + "name": "tests/integration/targets/ios_ntp_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "99f97d7709529ad5a370ef88ca759dd566abc45940443dbe28762778ab40c544", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/defaults", + "name": "tests/integration/targets/ios_ntp_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/ios_ntp_global/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests", + "name": "tests/integration/targets/ios_ntp_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli", + "name": "tests/integration/targets/ios_ntp_global/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4ed4649e2c9b10b71a7ae63117d06ec134eae6b2182f26bb8b04eb911e609707", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "77cc14435d04e3f72f0ab9457713fca28de7a508c865c08df619ce999d7ace03", + "chksum_sha256": "b633b4d6ccef76001f6764713b498278bf30e1dd964673e556fab42166480786", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "030195c5574fcaa46ade5d2d9f640d1b1668c41025f0c78032cdebd9ebc4ef86", + "chksum_sha256": "8cc9ea8d4a47459ec32d942855702c789ba3347e0693f57313003f45020d8a7a", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c065775b6484b284e03beb65d1e250361c09fa4fc20e5006058f69e7c4eebc5", + "chksum_sha256": "9080f77ada9c677a1f4f275d42ed6bb0123286aa0ce5462bd2c580f47dda0d07", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3ccde47cab8fd1f7d6eb91c8a1744831097c27bebbf655e15d71fd2456db7f2", + "chksum_sha256": "a6b0345d271e15e951a9a150a43aa0906c3c91a5290b27ae942ab9ece89cbeb4", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4ce15cb1c54d6ba216f276f2622dca7eddceeda339ae1b775c4e82ed0eca5ae6", + "chksum_sha256": "d80307c7fbf6fc328ebf0395601768f230c08d052cba3e459e4b1755635a2a21", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2a2840acaf208fa439d00dd3be862789bb3e249ca568c9e3a0f958ce4c92987", + "chksum_sha256": "e350806f21caa0181d510feb9cb4e70185286e62aa3b52719b59d55172f2126a", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "74906256718324f2c376a9dcb3be7bbadb2487067b1617e6d90c16f0a109cfcd", + "chksum_sha256": "2b3bef8e48a4ebef6e417c5e919751cd9bd526308fdacd16395203eb4feb9f82", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5a8e64e20ebea7d3a898216c6e256a3c0dccfcfb68a0671e3bf160e1f6c1b935", + "chksum_sha256": "bcff8a20978c31e6c69a155803657b695a5f65a32c494c6d83d65d008e8020d6", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ecda90386ebc75e0cb6e8a820a5c4bf172d4ca7bd4dbe399a4733aa6c08d07e", + "chksum_sha256": "306dedea01d094347dc69f10f2e68ed7787372ed087fa1c5ee2d5953a8767016", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bfc3c984e0da8a8065696a6a4801d945bfaed1f84146f7c3c9745ba4468d0e1d", + "chksum_sha256": "d9b1ee000ffc164233351430bc0f5f3c9d3a336fd09ef670bfa40a7e2eebafc3", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_ntp_global/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ade890c5c428f4f2ada261b01e89f9149d27d8add293430df56161249cf0f6b2", + "chksum_sha256": "f41a107502fd7e4be2baf717aafa72bbafc34125fa229ec2e123f7dd7225176e", "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/vars", + "name": "tests/integration/targets/ios_ntp_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_l3_interfaces/vars/main.yaml", + "name": "tests/integration/targets/ios_ntp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e225d3253a22e2f0eba465f6fff8324396a02ace3d628e848b7a909af026064", + "chksum_sha256": "7fc06936d093493791466cc5b227ef05b6a0175615a5ce00453f6effb74f9532", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_ntp_global/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tasks", + "name": "tests/integration/targets/ios_ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d8347b048452c2aaf4b7f2315982f603d6955161adbd96ae61527b9fc9b4fcd2", + "name": "tests/integration/targets/ios_ospfv2/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tasks/cli.yaml", + "name": "tests/integration/targets/ios_ospfv2/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/meta", + "name": "tests/integration/targets/ios_ospfv2/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/meta/main.yaml", + "name": "tests/integration/targets/ios_ospfv2/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "8649ac5af985e516bc0be12ea860f9ada7a4454ab14ecf2d056dc16565a95e55", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/defaults", + "name": "tests/integration/targets/ios_ospfv2/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/defaults/main.yaml", + "name": "tests/integration/targets/ios_ospfv2/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tests", + "name": "tests/integration/targets/ios_ospfv2/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tests/cli", + "name": "tests/integration/targets/ios_ospfv2/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f87546f50552f4a1138c7e95bdabd94215875db8393b6b709fac6727aaf5ad34", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_lldp_global/tests/cli/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8216a30d2b32742967f308a76000f8399ecd0578dd3117815dbb787313fec7bb", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_lldp_global/tests/cli/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "67a19cc6b13772b6ef2c936eb3557dd877975467984a5d0532d83c6bd0c1a3c8", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_lldp_global/tests/cli/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5495fe14050f0ab0b992284137587d261bb57260ba22d2570f2e180b52fa644a", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_lldp_global/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "676cecaa97263ace6d06824911abc2333a5ed828c5309a4333652f820ad1b28e", + "chksum_sha256": "e36682d7d591a6ebd1311a1b34bfbeb402c35f98f14f9d9521a9839f1a5fc081", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fa62f56bdeb326038faf1749f87ace988044890f29ab9c65865c4c54537a9517", + "chksum_sha256": "e1995543982bd7f2a4aee73e5a9fce445b21af1d6ffb5f410d34b372dcd904ae", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d38b25ae4e94caa126b9d4f02ffabb4adc05c8c73a3b58b0ae9ae4622ac28b4", + "chksum_sha256": "3c2988c367bd38b6fc431b3184c661086ae4bab311882e80c941cae6db04344c", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "823669670f811bb65eb885121e0081a4072bcb061616296e3898a2f6ade10672", + "chksum_sha256": "8554a710fa447dcbe0f7f0097a0f81b7129deecd19b5f4f6caafaf80bef690f8", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4ad1680c84aa5f112a608b29bdf2d1191092b3ad2648bb23ed9e30abe4cac8e", + "chksum_sha256": "b2013ced0c8268e36db6925558607e68fddb5887092aa3d520a2b6e1318fc7fb", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/_initial_vrf_setup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "511dd52c567ab5523749431d68ff8477640d6163210157e3a369ecb806e22ee9", + "chksum_sha256": "c35a0a936bc8f7a82cefc3c831cfed82f738026c5b5cf5832c06ed42f7098309", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/aliases", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b121bba6a0892e8ff599846aa1ea5c388ae3c8a9e6a85192f43b89cf992719f", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_lldp_global/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "030a148d0e9b7d4e89581f3b82aeb06ce828a2a494fcebecac6a99a5fd9be893", "format": 1 }, { - "name": "tests/integration/targets/ios_lldp_global/vars/main.yaml", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ec7b6b36ce360d258939c3b6b1e6679713dd2ffacd4bf6565d5c1b5391179dd", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_config", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "fcfa39efe63ec56350bd75b0b4ded134aa99c4f1a810039fcf0744eed952a0fd", "format": 1 }, - { - "name": "tests/integration/targets/ios_config/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + { + "name": "tests/integration/targets/ios_ospfv2/tests/cli/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "be91779003c353db09835a7ade40aa7e16311e93c3a111335d4caea13b27c3a4", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tasks/main.yaml", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7011b000e1a4b28787b459b2a05c625052f68b10a1f108068ec805bb7a0875f4", + "chksum_sha256": "be6663b98bbde670ccf5f4c019cc50bcf3461c7f1df79d59206e0dec1f9c87de", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tasks/cli.yaml", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "100c25aa8e342471c45f4ced56d10739c8a7f50ffaf83531800819f0911615ac", + "chksum_sha256": "71aad36583afacee1f2d50726b8a99cffc3e17566f1297f8c06cda6cdb9483c5", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tasks/cli_config.yaml", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5f583eec9d6129fbfe6d2b800c2013f2dff80308e21b59c9da1fa7382b6a401d", + "chksum_sha256": "c2c2d35e0efc547f71effa33a8e7de17a8c8447b28d79a00d0ad56fe4a29d130", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tasks/redirection.yaml", + "name": "tests/integration/targets/ios_ospfv2/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c45a3649d432bb34bfcde5f3557848f294212fdd78da9b1c0f9b98176f462ce", + "chksum_sha256": "3e11b9f26e0eb1e022969d8091b88bd0c02cb8e4e12649c63d2f526009bd6ec7", "format": 1 }, { - "name": "tests/integration/targets/ios_config/meta", + "name": "tests/integration/targets/ios_ospfv2/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/meta/main.yml", + "name": "tests/integration/targets/ios_ospfv2/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_config/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "bf9e0e41402b83f7506fedba9515bd73a0fef00d77e63f09f9b2eda0ee5c3754", "format": 1 }, { - "name": "tests/integration/targets/ios_config/defaults/main.yaml", + "name": "tests/integration/targets/ios_ospfv2/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests", + "name": "tests/integration/targets/ios_lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli", + "name": "tests/integration/targets/ios_lldp_global/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/toplevel_before.yaml", + "name": "tests/integration/targets/ios_lldp_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "289b05fea7a7180ab37fb5e04220fa7c387634fbfe67e997d39ea44e53b6b03d", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/toplevel_after.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c80fc079cc0294cc808809f7524cd26dce8746cb3cbceccae5947c26a53bba77", + "name": "tests/integration/targets/ios_lldp_global/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/replace_config.yaml", + "name": "tests/integration/targets/ios_lldp_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7cbde273238be56ec3dc2174913de0c2933067aa634987a04dd7fb72fefeac3f", + "chksum_sha256": "1ec7b6b36ce360d258939c3b6b1e6679713dd2ffacd4bf6565d5c1b5391179dd", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/diff.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c4223635f760bffc17141049ab0cb3e09c3e9b2a53398754c740569c1244a548", + "name": "tests/integration/targets/ios_lldp_global/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/sublevel_strict.yaml", + "name": "tests/integration/targets/ios_lldp_global/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ce6faa181c1fb7ab5ba44db51d418b0120a7d110a3f4373e91ce02987a76fefa", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/src_match_none.yaml", + "name": "tests/integration/targets/ios_lldp_global/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_lldp_global/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_lldp_global/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b6ae94a3a40d6baa6400753b0273af9e1f0c693c0b9d02a216b4d16c9afad67", + "chksum_sha256": "a4ad1680c84aa5f112a608b29bdf2d1191092b3ad2648bb23ed9e30abe4cac8e", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/sublevel_block.yaml", + "name": "tests/integration/targets/ios_lldp_global/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91c95c35263639fde90b44f93f0612c0a7b3c510f325285afe281d9fc121e58b", + "chksum_sha256": "7d38b25ae4e94caa126b9d4f02ffabb4adc05c8c73a3b58b0ae9ae4622ac28b4", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/toplevel_nonidempotent.yaml", + "name": "tests/integration/targets/ios_lldp_global/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25ef9f513a03aa86771b90bd0d22940459f94fa3b2257ae7498b9217a405bb9a", + "chksum_sha256": "511dd52c567ab5523749431d68ff8477640d6163210157e3a369ecb806e22ee9", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/toplevel.yaml", + "name": "tests/integration/targets/ios_lldp_global/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f45a6bb9f23763b221df958302548d88734cedb25ee2edc0fe1ec86be00b4e8b", + "chksum_sha256": "67a19cc6b13772b6ef2c936eb3557dd877975467984a5d0532d83c6bd0c1a3c8", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/sublevel_strict_mul_parents.yaml", + "name": "tests/integration/targets/ios_lldp_global/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ca18a9f33f955ba25c6df6be5108b58cb0b159406b531931d7886b65ec1a0316", + "chksum_sha256": "5495fe14050f0ab0b992284137587d261bb57260ba22d2570f2e180b52fa644a", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/sublevel_exact.yaml", + "name": "tests/integration/targets/ios_lldp_global/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8ff88256789e8892cc5604826818b4a694faa8dd37d8de6f37a06535724dedd2", + "chksum_sha256": "fa62f56bdeb326038faf1749f87ace988044890f29ab9c65865c4c54537a9517", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/src_basic.yaml", + "name": "tests/integration/targets/ios_lldp_global/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2544e95d1ed36fd4c73cad6dd719051035205bfd414ef4d6bbb73fe7e592b981", + "chksum_sha256": "8216a30d2b32742967f308a76000f8399ecd0578dd3117815dbb787313fec7bb", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/defaults.yaml", + "name": "tests/integration/targets/ios_lldp_global/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f299c02b02d7c454dd2eaa7eca83f4306f99b64430892077955f5159b3009031", + "chksum_sha256": "f87546f50552f4a1138c7e95bdabd94215875db8393b6b709fac6727aaf5ad34", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/macro.yaml", + "name": "tests/integration/targets/ios_lldp_global/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c50af815c1122d68ec8aa76f0738a923e3100ffbdce96ec9f6eeda091001ff12", + "chksum_sha256": "676cecaa97263ace6d06824911abc2333a5ed828c5309a4333652f820ad1b28e", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/backup.yaml", + "name": "tests/integration/targets/ios_lldp_global/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e567e119083aae3e8dd3739d64db3927cb554387079640fbff99b1d6b79f267e", + "chksum_sha256": "823669670f811bb65eb885121e0081a4072bcb061616296e3898a2f6ade10672", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/src_invalid.yaml", + "name": "tests/integration/targets/ios_lldp_global/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/ios_lldp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e37382eede72ae657893c3933a8e6731db78596f46d5fede249d4d050e8f12b6", + "chksum_sha256": "d8347b048452c2aaf4b7f2315982f603d6955161adbd96ae61527b9fc9b4fcd2", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/save.yaml", + "name": "tests/integration/targets/ios_lldp_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2fbcbac7be1a2444b9866a0312ebd7f30691de74f434b693b301e1b667efbc34", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli/sublevel.yaml", + "name": "tests/integration/targets/ios_lldp_global/aliases", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "81e93d0c4240f0c189dcc3db9d2887404f6f79ccc22a7ae9d8c2c616a823ae23", + "chksum_sha256": "9b121bba6a0892e8ff599846aa1ea5c388ae3c8a9e6a85192f43b89cf992719f", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/redirection", + "name": "tests/integration/targets/ios_ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/redirection/shortname.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a9d8f38448bbc15b4db9520e986758afbb1e4332917cfa4e676c4726ecb1324c", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_config/tests/cli_config", + "name": "tests/integration/targets/ios_ospf_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli_config/cli_exact_match.yaml", + "name": "tests/integration/targets/ios_ospf_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3445b7155b0702ea632d8e846e514af4e58679edf35a1b00034c1f33611c7bcb", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli_config/cli_strict_match.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "faee234111770cb64085b9a25509c53fbd3fcc6d783bebff7592a0cf5ee4e317", + "name": "tests/integration/targets/ios_ospf_interfaces/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli_config/cli_backup.yaml", + "name": "tests/integration/targets/ios_ospf_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c6e65aa217139078a0e172b54fc00eb2cfe51f2079cb7d9b0a5d9c5d2a74ca6", + "chksum_sha256": "d904ba1b1ee67876b5c1db5e8a2c063c500c99af83e05fd36d7584745f906957", "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli_config/cli_block_replace.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b9b16a4833c6d7626d43f1c1e90a106af469adc1f3a032875e78e13c6b563e5f", + "name": "tests/integration/targets/ios_ospf_interfaces/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/tests/cli_config/cli_basic.yaml", + "name": "tests/integration/targets/ios_ospf_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28f51d7f60e5fcd45a211c50797cc4142a3e4784cf8619ed41eadf1a630e4629", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates", + "name": "tests/integration/targets/ios_ospf_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/setupblock.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7e470728246324f9d35d7d1f36e53f10a1d424cb9b14aea8ebd22ae03384985", + "chksum_sha256": "ff7d15cb956c6a22c1687aee06920653392f08ff0e53223afbab89ad7c7c98a9", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/configstrict1.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7019ec0a3b0c34ed351eed7b9ea2979114804e6aac94b9433bd42789bec5b0c", + "chksum_sha256": "e822477d57a3e430f8e379be1528039e6e4ee5eff278141cdc2c3f5c4ea4ad1b", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/setupexact.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "78abef2216f92c74b21c0a935660fa35625c923e4d3b5d6eaa014a2f7b9d5182", + "chksum_sha256": "f097e25e0459371162a4d0d2b645ae9ca361ad5d7fce778cab8793d7bcd2f433", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/setupstrict.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "78abef2216f92c74b21c0a935660fa35625c923e4d3b5d6eaa014a2f7b9d5182", + "chksum_sha256": "4395e95e40e7a0dfcf80e05ade1c443c37cfe70fe80fc4fdcfc0ee48ca7bca7b", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/acl_config.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "819000cad7a1b4e27b8b206fe04b2d18c0bbba7876801d9f2786c94f76482050", + "chksum_sha256": "fd72a9b920445f668d61b31646621e0f9587851e61eaaa071f8034468e3fab43", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/macro.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/_initial_ipv6_setup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "240ea6bffb5f8140b8fb61c0e4505e89f76ea5c0ade1103b63b25c6024e57892", + "chksum_sha256": "8a2472a61a85371edf42157eb38de6446a90882922de4471337054194b698dff", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/intended_running_config", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0c8e4ffd5cb273c2c92fe0690fce9249386fbd72ac0e77872e8fa2cb1c256138", + "chksum_sha256": "adda4ccbcef419623366dff6fd814799b732583587c8b71b9a49638079cf4c7d", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/base_running_config", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7385f5112a2ea15a4ca3f480bf6830bf91439a67073d846367170819b02692c6", + "chksum_sha256": "338693405501e01ca57d2ddeb40f482891c029a986864fc98946fc266265bf13", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/configblock.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7019ec0a3b0c34ed351eed7b9ea2979114804e6aac94b9433bd42789bec5b0c", + "chksum_sha256": "c6645517abeb9ff0bea3331bc844b12c1382b0eea4178be0dfa523a3a38c5a97", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/configexact1.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a112244df64f4360549463724af9ae4c598c3f39c22310a4d0a98c44cf034408", + "chksum_sha256": "3d05e7ad3cd69bd4b423def7c76b0200ec3daff4ce28f945cf1b53a001c52d95", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/configexact2.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7019ec0a3b0c34ed351eed7b9ea2979114804e6aac94b9433bd42789bec5b0c", + "chksum_sha256": "7ef2eb2c6dd20e38ac7f6058ced2a4902a838cfb902e8a32e33fc83bc8ffca5a", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/basic/config.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fed860520ec0b19850744af6be1c77939335d4a09539bf563d0c15aa6afc84ef", + "chksum_sha256": "843a2bd9f2693a11e665a5f552e9de54fcc379ca3e06ee80ba2530f9077acede", "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/defaults", + "name": "tests/integration/targets/ios_ospf_interfaces/tests/cli/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c0c23c50849c89a60cce7588ee594c9f12fc89ae710516e3371d9cdf23bbdfbc", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_ospf_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_config/templates/defaults/config.j2", + "name": "tests/integration/targets/ios_ospf_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c67459067166baed6059b02907fb2692e34868270185b09fcd9f5d7c3ec013d0", + "chksum_sha256": "3ca85e538cabf8bda1ebd32dee2b5803e8e171ce955d7affe2f1417283cd92d6", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global", + "name": "tests/integration/targets/ios_ospf_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tasks", + "name": "tests/integration/targets/ios_lag_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3c1978dc1393f0ddade54f4568fbe2a213f323e71e9aa334266bad4fd016ea95", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_bgp_global/tasks/cli.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/meta", + "name": "tests/integration/targets/ios_lag_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/meta/main.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "7548cef68905ad34af6e5c02e932c61e8eadc317b15831fca6346a128b89f7bb", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/defaults", + "name": "tests/integration/targets/ios_lag_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/defaults/main.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests", + "name": "tests/integration/targets/ios_lag_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c6b76253c2d8e53a0df8c1f620ad1b90d537912cb81877fff08d39689a1537f", + "chksum_sha256": "523ce08d67e26a55d5ae1004bdf73f5f785348437c918d98179f5bb01e403839", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/deleted.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c08349fdc001cdd463151f85c7bf4a5973c2dff048f27ef2ced9c769535edfc", + "chksum_sha256": "af7be4e062acefec5cf61c6cc7ad3cb369db2b641ae00f229621ee62a47fe90e", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/gathered.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "22e70effcb2a1b4e95a65356aeb5851b46cc61d518aa81ce133b7934eb8c6d83", + "chksum_sha256": "0ce0f4b8f4ff19ca8202594612bfff8bbe94ce65867e3db6e3e9bde4354c4c16", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6479de2654937093427d57930e46c699ad3265ee6f67624b7414d03cd9888eb", + "chksum_sha256": "4a3bf0d0d675271115fbfcb01d220b647d351ba511dff0d16d9f8d7468ce8ac6", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/rtt.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cca6983e388a8e06b3b72325026c23d5794b130d45a74adb6d2156525ff8335d", + "chksum_sha256": "41fc0f1077783f0157b1bdae02da05009bd55cf31cfffdce93f25490569c7eaa", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/merged.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/_populate_port_channel.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5cbe172d53fbd26d8dc675b06a513f8e815008c6f263c8bfae14600cef46f964", + "chksum_sha256": "18e91e2791fb6dd738d3042718436ae3244dbd0a90b5f1886ed5a5daf1d46ceb", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/_parsed.cfg", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "87c9833d471a6b80a6c2cd0a14d29ef5b983fe7d8e9e61e6f43a8c0e1e8a89f6", + "chksum_sha256": "c30f577272b1c7bdc04fc0cf9a016b5c004a93f0e7d09cdb4bca3fa5aafeea8e", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac9b0f35b9607c4dcd6ee6fe8c4c5a3a890eb3ffef2606e5d9935648df7d5b7e", + "chksum_sha256": "9ae384d2d361bfec3e5ec8d4521923a328fd0a6b06ee0fad2dc813650f4867af", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/replaced.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cfa79d338f05e3971ce8a30e951a60e8a3898786fecbf125898bfc20275377a4", + "chksum_sha256": "d11cd0691705a44a06275d2438229562d70cb6eeafdfd7823c306fae55ab7974", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/parsed.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/_add_port_channels.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b28f32004005582bc80fbc2a9c8db6728687c25d87f74a365e61e7a20ec853d5", + "chksum_sha256": "37e0850a33908a4856f7167d6e488cbf3b6060950a032aae1f1006dae560d2aa", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/purged.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "440e31a2f87615c703a8a25d436bebf5e076b729ab0316294b1aea01585fb9ae", + "chksum_sha256": "dae7f6e33417854fdb686dc22ab25acf7ccd05b1cd088087f4b6777012ecd7c4", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/tests/cli/rendered.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75c019721cd809896e681cc3826abf70eb2a7d0616bc09817577e99c02ef7070", + "chksum_sha256": "a9ef52fd6e4d52c3bdf173bf2d2c13f4ad7515dfd508f93e70d00f951cebc8d5", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "59d406ceef4165fcae86490c8251a719575a113ebe80cce578c1e4b67c974225", "format": 1 }, { - "name": "tests/integration/targets/ios_bgp_global/vars/main.yaml", + "name": "tests/integration/targets/ios_lag_interfaces/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9748f49b5ce9a99a9ebc47bf062708794d4c7cc7ca1fa2f887b8220f2f45bc52", + "chksum_sha256": "45de9b52c7ab6864f1abd09fe743ffafdc10eb084285f98755c9ec21137e9bb0", "format": 1 }, { - "name": "tests/integration/targets/ios_command", + "name": "tests/integration/targets/ios_lag_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_command/tasks", + "name": "tests/integration/targets/ios_lag_interfaces/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "79c7a4587c7a00a2c7a91a5eab3b092671c730ab0c82458102614e087ae32030", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_lag_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2f113e17755cf29780c0366eea077fbf7d12d9332c0d31df993556813c20a9bf", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_command/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cbea343b9422e831a52eac293e12796cebaba8432a2a7c3ea24f3d7cfde98a01", + "name": "tests/integration/targets/ios_prefix_lists/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_command/tasks/cli.yaml", + "name": "tests/integration/targets/ios_prefix_lists/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_command/meta", + "name": "tests/integration/targets/ios_prefix_lists/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_command/meta/main.yml", + "name": "tests/integration/targets/ios_prefix_lists/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "chksum_sha256": "54b02bf40251a3fd868d5c54f4cfa4eab85e5990b956a037f336c6814eeb19ea", "format": 1 }, { - "name": "tests/integration/targets/ios_command/defaults", + "name": "tests/integration/targets/ios_prefix_lists/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_command/defaults/main.yaml", + "name": "tests/integration/targets/ios_prefix_lists/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/ios_command/tests", + "name": "tests/integration/targets/ios_prefix_lists/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_command/tests/cli", + "name": "tests/integration/targets/ios_prefix_lists/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_command/tests/cli/invalid.yaml", + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5de37d3a4e9c0a0deb381515d7aad38814e2573570881499c2f37d01c33148", + "chksum_sha256": "10d8202df57a09927329626e4b89a45038167e54d9e9fbc4c6c6ade64129fff5", "format": 1 }, { - "name": "tests/integration/targets/ios_command/tests/cli/contains.yaml", + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac41c0332715a477675065b303c059029f452524c9613bfa6837221b3c8a4748", + "chksum_sha256": "f1b300e29142c3cb1fa9e84e476577e0909a1f5e13c9f6bae1036eb2f021402f", "format": 1 }, { - "name": "tests/integration/targets/ios_command/tests/cli/bad_operator.yaml", + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "114c1244968981a22617d661fe4e9de4734037af8970bce9b0c5b79102f8ae6e", + "chksum_sha256": "92341a0e0de58ed85e0e12651de37e00217256797d83723f5bf31f5a62ed8b10", "format": 1 }, { - "name": "tests/integration/targets/ios_command/tests/cli/error_regex.yaml", + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d8673ef0e332533bc520e1fc69282244014b33fe4fd67c9df97fb0c45389b35", + "chksum_sha256": "93cc5c3bd91b11ab509b884e143d023a851d0046e2118d1fc2eb22ae074d2d58", "format": 1 }, { - "name": "tests/integration/targets/ios_command/tests/cli/output.yaml", + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "90067084bae011b7afc19fc1569700cf0007d29ae86d423be0111fbdb7d9bf8d", + "chksum_sha256": "1baa1acb44f8c05b1081b7d2d49d7d679a694b1eef20d63cf8b7eb33df4a441d", "format": 1 }, { - "name": "tests/integration/targets/ios_command/tests/cli/timeout.yaml", + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "99999a86b0c912cd067669a525d1e0032db4e19aac5fedec7593bfc8868ae37b", + "chksum_sha256": "dc8a935708bb8e0b18381fb2cbd56f7bd389aa02255d0b5cbfe36a5b633b1bf1", "format": 1 }, { - "name": "tests/integration/targets/ios_command/tests/cli/cli_command.yaml", + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "765a06846e98c1bc59b769855ba3c28f6ed2b7f8301b1aef0b8f0a9a4aef4863", + "chksum_sha256": "0c4dfbbfd610bc72cc634465a0668fa3daabd76ab0771a293c38e366a32a6842", "format": 1 }, { - "name": "tests/integration/targets/ios_ping", + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "db20920f776718e96e3c251c29423c0a28ac5000c6454f49943f65ac20fae7d8", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3718ece1e147c8f7a40932aeea280095591c481deeb46038cd3b070377d5f66f", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1842105d82cd689ea4cea57e9f151bca2e845204e00c78142b60cdac10b401f", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_prefix_lists/tests/cli/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "97081ebf559f11a3701d87bc521f3d05be7a8a62a454d7f37194f651ccb053ab", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_prefix_lists/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ping/tasks", + "name": "tests/integration/targets/ios_prefix_lists/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8fe724448a906aa2a584f11792118430e87edaab920e85f9f8042786edd08daa", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_prefix_lists/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_cliconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ping/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d4fb9eae8dce0d7933579bdf2d3f8795995a4058621bb90be902cecbb7fda0da", + "name": "tests/integration/targets/ios_cliconf/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ping/tasks/cli.yaml", + "name": "tests/integration/targets/ios_cliconf/defaults/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/ios_ping/meta", + "name": "tests/integration/targets/ios_cliconf/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ping/meta/main.yaml", + "name": "tests/integration/targets/ios_cliconf/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "chksum_sha256": "3de9b3530a2bce1c236f2ddc4b95f4282226d88b6212be4d1ff1fbc85d5c131f", "format": 1 }, { - "name": "tests/integration/targets/ios_ping/defaults", + "name": "tests/integration/targets/ios_cliconf/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ping/defaults/main.yaml", + "name": "tests/integration/targets/ios_cliconf/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_ping/tests", + "name": "tests/integration/targets/ios_cliconf/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ping/tests/cli", + "name": "tests/integration/targets/ios_cliconf/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ping/tests/cli/ping.yaml", + "name": "tests/integration/targets/ios_cliconf/tests/common/commit_conf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "beb45b19b88ea64c61e0d67d7769275c18e3c12a0c572bea86d171bada913956", + "chksum_sha256": "86cde52806aad9c78253ffdb74022af60cb99ff51c80e04adbbfde1af72254cd", "format": 1 }, { - "name": "tests/integration/targets/ios_cliconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/ios_cliconf/tests/common/_test_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c48a21095f6edaea997c25042855b8628c0ca7181366ee8488069286ab350873", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_cliconf/tests/common/_enable_archiving.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "63ff50f1f1f57a709881dd26a33223c2316775239e9fc21dfeff23adbaea7ebc", + "format": 1 + }, + { + "name": "tests/integration/targets/ios_cliconf/tests/common/_cleanup.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5386a829c04704371984f8ce25e2c63213c131dd62775410cb26568d37e923a6", "format": 1 }, { @@ -9150,1228 +8807,1249 @@ "format": 1 }, { - "name": "tests/integration/targets/ios_cliconf/meta", + "name": "tests/sanity", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_cliconf/meta/main.yml", + "name": "tests/sanity/ignore-2.15.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_cliconf/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", "format": 1 }, { - "name": "tests/integration/targets/ios_cliconf/defaults/main.yml", + "name": "tests/sanity/ignore-2.14.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_cliconf/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/ios_cliconf/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", "format": 1 }, { - "name": "tests/integration/targets/ios_cliconf/tests/common/_test_config.yaml", + "name": "tests/sanity/ignore-2.18.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c48a21095f6edaea997c25042855b8628c0ca7181366ee8488069286ab350873", + "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", "format": 1 }, { - "name": "tests/integration/targets/ios_cliconf/tests/common/_enable_archiving.yaml", + "name": "tests/sanity/ignore-2.17.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63ff50f1f1f57a709881dd26a33223c2316775239e9fc21dfeff23adbaea7ebc", + "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", "format": 1 }, { - "name": "tests/integration/targets/ios_cliconf/tests/common/commit_conf.yaml", + "name": "tests/sanity/ignore-2.16.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "86cde52806aad9c78253ffdb74022af60cb99ff51c80e04adbbfde1af72254cd", + "chksum_sha256": "4d5b86543c5d0e71325edbf6019f42e4999f5ef2b9121a0c2e30bd0eae3d0fb1", "format": 1 }, { - "name": "tests/integration/targets/ios_cliconf/tests/common/_cleanup.yaml", + "name": "tests/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5386a829c04704371984f8ce25e2c63213c131dd62775410cb26568d37e923a6", - "format": 1 - }, - { - "name": "tests/integration/targets/ios_cliconf/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_cliconf/vars/main.yaml", + "name": "tests/config.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3de9b3530a2bce1c236f2ddc4b95f4282226d88b6212be4d1ff1fbc85d5c131f", + "chksum_sha256": "4129945061440c8d8c281590b8054b194f5958833c722aa40e878b09038c380e", "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg", + "name": "tests/unit", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg/tasks", + "name": "tests/unit/mock", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg/tasks/main.yaml", + "name": "tests/unit/mock/loader.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8171ce9eb1bd2474dcb5e0f86eeb142567bac349514708f53c24829283fd382e", + "chksum_sha256": "2343d1f644250d4b616f0bf0a826fdee8fe306243d8412d44dd0e033352b262b", "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg/tasks/cli.yaml", + "name": "tests/unit/mock/yaml_helper.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "chksum_sha256": "fa89194ba60856f51500efdd1f802c5ca3b2e4ded9461d7b88847c427a43a958", "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/mock/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg/meta/main.yaml", + "name": "tests/unit/mock/vault_helper.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "chksum_sha256": "3bf7834d18bd34473d0f4b898253177229a131f14364874efba584ff985e4a41", "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/mock/procenv.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3ff983479d7aa4b90efe73337f723c14224edabcdfde4efe49f24cd905f45f1a", "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg/defaults/main.yaml", + "name": "tests/unit/mock/path.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "110552d5ab0ffabe2bc6b6c57e9f389be3920da2e0f37ea5b628795d1b426bfd", "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg/tests", + "name": "tests/unit/plugins", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/plugins/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_linkagg/tests/cli/basic.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "01543795b9d0559974aa6eb2e501541a442c6d8a61361ab6ce30eb7d7a0610e3", + "name": "tests/unit/plugins/cliconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces", + "name": "tests/unit/plugins/cliconf/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tasks", + "name": "tests/unit/plugins/cliconf/fixtures/nos", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tasks/main.yaml", + "name": "tests/unit/plugins/cliconf/fixtures/nos/show_running-config", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "42f682d0706bde5cedd3667110b289d169b29ca20a1692b85c51bbe5f1e3131e", + "chksum_sha256": "42f2e50d84821d1ce5c9ddfa082e7a6086254ef9908166a0d4523a3dc5b6b2df", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tasks/cli.yaml", + "name": "tests/unit/plugins/cliconf/fixtures/nos/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f113e17755cf29780c0366eea077fbf7d12d9332c0d31df993556813c20a9bf", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/plugins/cliconf/fixtures/nos/show_version", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a21600440d1fbd2208fd81eeeaa632cfdf6b69c060bcff46e5a3f4a5f5c26f68", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/defaults/main.yaml", + "name": "tests/unit/plugins/cliconf/fixtures/nos/show_chassis", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "a2890b7a8db9c1e8954a186fa311c8a2b44477b1d04bff9c32bf75b7797b4533", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/plugins/cliconf/fixtures/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli", + "name": "tests/unit/plugins/cliconf/fixtures/slxos", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/unit/plugins/cliconf/fixtures/slxos/show_running-config", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "337f2c06ea2b0c31adfc06bd0684edb480b1a333dc4d82fd36e74e6efad7d6ba", + "chksum_sha256": "d1a135373ce559af818475189bbfc8ff838f5891869b62e159e38ac4c30b3284", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/deleted.yaml", + "name": "tests/unit/plugins/cliconf/fixtures/slxos/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6b15190694a3230175825f662ffc5be36c207a5508f8dd03e34d0f16dba801c3", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/gathered.yaml", + "name": "tests/unit/plugins/cliconf/fixtures/slxos/show_version", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5bb10615fc266a5079e9adaf3307602bdefac54f4e8c9fda96954eb59ddc1485", + "chksum_sha256": "e18e1a4f1640ca226a2f0d067a422af58218fa7f191a8b71394432a56177c7fd", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/empty_config.yaml", + "name": "tests/unit/plugins/cliconf/fixtures/slxos/show_chassis", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "200cc72937b5aab4388efc5e85b4f590dfae9bbbfd9668c2c8390d42c73cb1a3", + "chksum_sha256": "1ab5008e1e19a8b1995b8c284856ae37ae5d242975b81057a3f0127fafa0f7a2", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/_add_port_channels.yml", + "name": "tests/unit/plugins/cliconf/fixtures/slxos/show_startup-config", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37e0850a33908a4856f7167d6e488cbf3b6060950a032aae1f1006dae560d2aa", + "chksum_sha256": "d1a135373ce559af818475189bbfc8ff838f5891869b62e159e38ac4c30b3284", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/rtt.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3de8041d6d7c288d7f421fc629c2bbcfd5b1faf29d3785fb1f8c39b6b5f36775", + "name": "tests/unit/plugins/cliconf/fixtures/ios", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/merged.yaml", + "name": "tests/unit/plugins/cliconf/fixtures/ios/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a4d9930854480ec68685dfce6a5ca53170d519fa93b8b10ff89d84c2fef906d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/overridden.yaml", + "name": "tests/unit/plugins/cliconf/fixtures/ios/show_version", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "83acc10766bff99eaf1085cfc2fab4b54e4101edfc70d06c19f65eb5f90f0478", + "chksum_sha256": "28896cfd7a101f137f8433db1efdb33343aa43425aaedc2d4f7eebec7e71204d", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/_parsed.cfg", + "name": "tests/unit/plugins/cliconf/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05d13aca3673ed53547e84c3a96b852f6c6b21e31b250ccae1a3c9dc8a455415", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/unit/plugins/cliconf/test_ios.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac8361b624da0372fb79c80bd147c5b9bfed4d4140d0be7fe9957b75e414c61b", + "chksum_sha256": "976f42e2eb2d4bc2ca64724d7361549f46d0d1b56ed30a988a39b22d928c886e", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6fd2582bf431113cefd8a863baf6d1b6908f5cd142dccde32ef536feb29d0702", + "name": "tests/unit/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/parsed.yaml", + "name": "tests/unit/modules/conftest.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc43ad13fcf0465249c1941a418f61f36fba08a55afaef2aa8a7949ed028a7fe", + "chksum_sha256": "354440d86f684a9641f329807a687fe71fc66ab901207f7a166ecfa648935488", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/tests/cli/rendered.yaml", + "name": "tests/unit/modules/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e87a35985502b9c92eb9c60ed83fdefcc11a17e26b421e067dcf7be3624c8503", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/vars", + "name": "tests/unit/modules/network", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_lacp_interfaces/vars/main.yaml", + "name": "tests/unit/modules/network/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "866d49b9fb83bafefee3c2ed7ba79d894e2b28af83b4fed56ad48982c364a894", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp", + "name": "tests/unit/modules/network/ios", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ntp/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/test_ios_lacp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8c4a18f73cdb869f9b4951700395f4fc97dd6d7849222c22ec9568fa65f0c2a2", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp/tasks/main.yaml", + "name": "tests/unit/modules/network/ios/test_ios_evpn_evi.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ea10fd1166a91f0a0c747a5be6a85f313c52f5f3d9f33cdc68e9424f3cc56a42", + "chksum_sha256": "8f30fe112c1b85b2b857971b8327404c2ecbc86a164181203d4361f642e54b3e", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp/tasks/cli.yaml", + "name": "tests/unit/modules/network/ios/test_ios_hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "427740e10c11b97e4353bc00c47b3a0d25b23479e67ba0373d932f5d25c23b95", + "chksum_sha256": "47fda50478f19ef45ac929d8622ed877fa426bf5cf25d3184261a8c0f3898ef1", + "format": 1 + }, + { + "name": "tests/unit/modules/network/ios/test_ios_service.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cdb28578a9734cdaa4aa74d2418a41f03960d462e068f8b0c9e4c69d9805a805", + "format": 1 + }, + { + "name": "tests/unit/modules/network/ios/test_ios_lag_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7724ac0aadb681867d7356a4ee4f4d141f4189731a5dc01d72e751f500f9e9d7", + "format": 1 + }, + { + "name": "tests/unit/modules/network/ios/test_ios_lldp_inteface.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0fb33dee7e350597f8b9a6891467929a616cec88859af63feae411a69c237ca0", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp/meta", + "name": "tests/unit/modules/network/ios/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/ios_ntp/meta/main.yml", + "name": "tests/unit/modules/network/ios/fixtures/ios_ping_ping_8.8.8.8_repeat_2", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4962134fb2b2230a111b5b94f904ba094c12d0e0775e22c50b3db6599dbfcb36", + "format": 1 + }, + { + "name": "tests/unit/modules/network/ios/fixtures/ios_vlans_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9e3b415848259747054d6586d9a85787a48f2a5d3fd5866c41f8b050eadfae90", + "format": 1 + }, + { + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_memory_statistics", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "38375b22d4c94dad4289ad32a3360980e0e8f30d69c4a0c2ab1d8181d4fb811b", + "format": 1 + }, + { + "name": "tests/unit/modules/network/ios/fixtures/ios_ospfv2.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a5282279957f89f8930b279d9672664a1f7887d3996df2fcff9c0f08e9829d2", + "chksum_sha256": "f557ec41733d7040f5585b79e18b88623ace43d899ac80edc055e01c469240c1", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_switch_virtual", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "db1b7ead274089538a05952a47f1e7800560ca1a552adc345c34dc2ab4c4f9de", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp/defaults/main.yaml", + "name": "tests/unit/modules/network/ios/fixtures/configure_terminal", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_vrf_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9ee43d746654712aed9c1163d6130a7b6de350a3efef3e6e228355378b20be50", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_l3_interfaces.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2836ef546936bc7b3ff57cd557f54d5c5024ecbf64451cbb4f0d9c937cdb71c6", "format": 1 }, { - "name": "tests/integration/targets/ios_ntp/tests/cli/ntp_configuration.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_config_src.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "11d03d940194a739c19346b9e626e425de69706b572ff7a178b90cc21a6f36d0", + "chksum_sha256": "57d42d2e8e8b7a4b6cae566115ee42fecea077b525cace10cefc3b7dbd85f033", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_cdp", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5abf76b46295216c079870fba8c70f8f6064ccd667e80d91e31b47ab84f6fd70", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_vlan_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "73a0c5b62bea4279d25deae4c2e04bf12c53fc3784297675a92eb98c911696fc", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tasks/main.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_ntp_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2ee4493aa601f74dca37f18dfebff80578f8ad47283d1921825a9036bae468ad", + "chksum_sha256": "2dc4f5c356e2ba9f40ec1ad94b5bc4e597c39657662156764465f156ab6cd7cd", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tasks/cli.yaml", + "name": "tests/unit/modules/network/ios/fixtures/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_banner_show_banner.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fcbd9e21fbc41c072eed699ebf08ba9fc0e86b9084e4e54eb701cc12d4c764d0", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/meta/main.yaml", + "name": "tests/unit/modules/network/ios/fixtures/show_version", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "dc71e5e1dc8e16c64ad26477c7b0dc0d0278a20be9dc4a6d53224328f239f79b", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_ping_ping_8.8.8.8_size_1400", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "825819c8953b25588aadeb8264ebc23a52d06537049b7e3f4f0b9edfda1b7e45", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/defaults/main.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_inventory", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "695c97917cde02fca97d816d92429a12142d6400180388630847a6938513829f", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_ospfv3.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b45b7eafd03c14cb0a9737561ddd60b86b708aabe1223697376c56066fabb29c", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_cdp_neighbors_detail", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6e29939eafbbdcd5d64d8558cf6f5fe9d7fa1b806e62b5f19b65b0401c9c9c44", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/_remove_config.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_system_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "238918c44b8752332fe7ee6df2e293a51da17252fdf2362b337e6a897cc224cc", + "chksum_sha256": "ecb0f88d690961592ffec4c1dbeebb4b6883ed2fee08fd60117a3b7937b37949", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/deleted.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_logging_global.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "844b1f73132324bcee3f3390fce22388df69b69e4266ffebbdd4c5d6a8a4c2e8", + "chksum_sha256": "89a3006dad756d356d14bf9704c493b1ebac4267dca6344c6af536d53dd1bbf4", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/gathered.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_l2_interfaces.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72297b557d1b34d29b999d26e00a0b28d813fd1e458338acd1cd3b24b0a35aab", + "chksum_sha256": "743adf2fb8dcad62933e91c19b47b2b0437868c7e50db9a4e556431ed696f2f5", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/empty_config.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_dir", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2bfc27b217fab25508ee8dedb4819c40bdb98b3352c464065f8ef169622f4384", + "chksum_sha256": "bf4241a7402fd70614b668b90da04f80c7430f8f4535a1eb0a40e989a1d9d48b", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/_initial_vrf_setup.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_config_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fb8dc743143aa6677f024b7333e02bb1f52f1a9c434cd86e1617b442dcc8a0b", + "chksum_sha256": "6fe81e446733fef4e3643a80042ab4111b9b0c927599c4b5972ecea4c18b4ffd", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/rtt.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_processes_cpu", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a735801dc4fc0769f2773722caa333ada8c5c41daad731c271c185ff1d6a040", + "chksum_sha256": "e8edd6276089ec830cb2978305dcff0f77cbe3a39f393eb0969c671a981d8d89", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/merged.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_version", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c70156e646606c78e8221d3f09140d0be29bfc307756e6f0993b02b78b8fe9e9", + "chksum_sha256": "a6290b0be0cd8622c90617eace7c4c8bb1508a77d33c2b0e7bb9d6f7f8967282", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/overridden.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_ipv6_interface", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8f73d52be036135d76b6157719db5f9bd4f7761ebeae5618e48a339ed14ae4e", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/_parsed.cfg", + "name": "tests/unit/modules/network/ios/fixtures/ios_route_maps.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75178f12ee6688bc6635aafb6d83adddbed9b5a0d12fb9d39c819afa14adba64", + "chksum_sha256": "a2764456add35e41e5109cefb0694cd6a708bcf77239259b47ed60d86fa06856", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/_populate_config.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_banner_show_running_config_ios12.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d825c44ce8c9cec4e8b41ce23a867b76e766c6e6a3491d6621585bce8bdd57c3", + "chksum_sha256": "ed9d617788c3a95226fda5a0dfa4271afe77626709937b27a3af70ffde7af53a", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/replaced.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_interfaces", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "23df18165ce662f9a6837926a752e92d9c0500334a68492ae8607c2385b4cb29", + "chksum_sha256": "b70d617a3d7b66351dd189740638da0a7558380e1edac4b74e43eeb54b4cf7c6", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/parsed.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_lldp", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "616e7d9e3cc11d85aa6f6948a80ba8ad080df33b6fa2574e58ea96dda1b8b4d7", + "chksum_sha256": "ad64c29374175a8d737d01ae856c16364c442fca9ea7b9447ab8f22d9ed78dad", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/tests/cli/rendered.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_logging_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21aabfd4dd00cabd0670087c3f46d8f3cf0dac51e013d14790546ec52612579c", + "chksum_sha256": "547917e90b62a4ef7eb05c6a2527019acf8e3790d7d5a0c9f6b24af6a82a2fb3", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_logging_config_ios12.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2923b7e2af16ca384a4c44c7fc1c9944367fffc1769b9ee6c41d73a9e0a2c1fb", "format": 1 }, { - "name": "tests/integration/targets/ios_ospfv3/vars/main.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_ping_ping_10.255.255.250_repeat_2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d9a640abfe561027b4afaadcf0306d9f52437a9ca11c8c6bd33aa39668cfc2b", + "chksum_sha256": "f6102ec8eb37947bb6892dbb4c1252c794ef52376540c9d8ce2b9753aa613685", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_ip_interface", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_lldp_neighbors_detail", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "11544c73f3e88ab5384140abf1bedd0c2501f4ed13132ab56bd22a53909183b0", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tasks/main.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_user_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e463dfec9973774a7a87d75f8e492a829e08a207f7330616a23032087174429", + "chksum_sha256": "92081628d201c43cc40e2022f0ebac80f1ee5c1e78e19479d0b94780945a9657", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tasks/cli.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_bgp_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "8e1448b74254646dea1644addbebf552013bc999c32b8a90f3141fadfd2e045c", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_facts_show_virtual_switch", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a3c3bbfb2fdcb11e3f9721d7596800690969e51e7fc66ee2e5adae3b524f7177", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/meta/main.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_config_defaults.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "114e89387a2b3cb37c475ed22f287f83dd93bd16a51845286b27f8355d1ae0e5", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/fixtures/ios_ping_ping_8.8.8.8_size_1400_df-bit", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c8452a768d797ca829ff18314236a7275cf03a14f751c6f53c8b6711bc8a1d7f", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/defaults/main.yaml", + "name": "tests/unit/modules/network/ios/fixtures/ios_prefix_lists.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "dc8a935708bb8e0b18381fb2cbd56f7bd389aa02255d0b5cbfe36a5b633b1bf1", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/test_ios_vrf.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c8111b8105a96afc7e81b96808cda91611643dc49d0bdc5d5945d8a719b3c31e", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/test_ios_snmp_server.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cd5d0b6244b77c60fdf0bce2e1bb4e4da5efd31f213ef35546355a7165494c4c", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests/cli/_remove_config.yaml", + "name": "tests/unit/modules/network/ios/ios_module.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "070883e8b78940daa953461fd32520d1bef4bdf4cf98664b3e82c7d0fae842b6", + "chksum_sha256": "8a08cf8bab33ef88408880ffc6f8034be5e532945ca4f79d82b213426104876c", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests/cli/deleted.yaml", + "name": "tests/unit/modules/network/ios/test_ios_ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5b7529ae69029b3e22b4dec95b722595deebe267cb2f2735a85fd53a4c82bac8", + "chksum_sha256": "4005f2c067beeb07ad752d35b4cf08c2641f28400006a638d63d5d758bec3a92", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests/cli/gathered.yaml", + "name": "tests/unit/modules/network/ios/test_ios_ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a18425a89f8e85573729e8c29b8c45e491dd6814b221f9d42a0acf0960689e8", + "chksum_sha256": "518695ae331bd17c5635aca39e6af516e7a11473236412a9707eb12d5c7cb10f", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests/cli/empty_config.yaml", + "name": "tests/unit/modules/network/ios/test_ios_ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9313132bb4ea08fdfebbd76b6376eda299d1e61fef0b62973309894399193613", + "chksum_sha256": "784a79cd607c99396e7040a04dc142534261d39b04f5c3bfc5a8957a21879054", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests/cli/merged.yaml", + "name": "tests/unit/modules/network/ios/test_ios_route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8f0c8602b6863de3c09c0f29fb3fbe83fc0afa94d1358db7cb974628c616ebc4", + "chksum_sha256": "e520d761dedc8ab970293d2a725ee892518f7480bb2e97f0a3e2684460e443d4", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests/cli/_parsed.cfg", + "name": "tests/unit/modules/network/ios/test_ios_evpn_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "334a751e168137370f8d5baaae2c017e63cd9870191a2476633bdb33f5aec915", + "chksum_sha256": "b5bee6ad68b90176a467d9f7c0d348cf07e27b1995f085c64db9cbdb8a088929", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests/cli/_populate_config.yaml", + "name": "tests/unit/modules/network/ios/test_ios_l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "909ad0ac69441e0c20405814bade15872ccc23e5b736632efcfd2880d863c6d7", + "chksum_sha256": "d6716032d5b53020ccd29f08960acbd1ae9fe41a3c175339deb61a4b56f4dcf5", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests/cli/parsed.yaml", + "name": "tests/unit/modules/network/ios/test_ios_acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e42472783ff99e3351a0a581b2ddcdaca689eb9cb8044af829d580473e17ac35", + "chksum_sha256": "d39c73e566e5696e0f6c153aca54de2bee9085dff7156bde3fe128861d69aab2", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/tests/cli/rendered.yaml", + "name": "tests/unit/modules/network/ios/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6cd846336af90bbf055ebce81f350f2187733b3580f5c227b07ad766e6c4bf9f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/test_ios_vxlan_vtep.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3a17f4db78edf67416a900d929d29f3384c5bf1c3df4ade474fb821703ffbe56", "format": 1 }, { - "name": "tests/integration/targets/ios_hostname/vars/main.yaml", + "name": "tests/unit/modules/network/ios/test_ios_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "febb64d561f5a456e89d59fb77210502df86daa4eca07014b96993b76d0bc5ba", + "chksum_sha256": "41c9b2cac8e769dabfee1b1bb0605b20518dd345f91f1e3522287c5040cb6a78", "format": 1 }, { - "name": "tests/integration/target-prefixes.network", + "name": "tests/unit/modules/network/ios/test_ios_bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "39053a91dac30879cf24512c4234e519681a1e88be8af8b18415df87fa4b9006", + "chksum_sha256": "6df2c02c70db2b5b94e8f1d57d17ca522e868e63726a5d440147898bafa6a90b", "format": 1 }, { - "name": "tests/integration/network-integration.cfg", + "name": "tests/unit/modules/network/ios/test_ios_static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d67b11263a8f50b30bf43c7c2b4bdd8dc4f173f0b5dd22761311360dfbd56a1d", + "chksum_sha256": "cf947c20e29837dbf0e3a749e34e7039686d4fdc680dbedea6eaa84b9aff6394", "format": 1 }, { - "name": "tests/.gitignore", + "name": "tests/unit/modules/network/ios/test_ios_prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600", + "chksum_sha256": "3b81d60b1aa8a42360235888b69fb75cf5c68a6232dba1df3d3e85726a85e01c", "format": 1 }, { - "name": "docs", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/ios/test_ios_facts.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1fda5506769c35be3d3d6db871c80807c9ed052c7d74701da7b1b9ee0c03058a", "format": 1 }, { - "name": "docs/cisco.ios.ios_vxlan_vtep_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aa7c5614fed7ad1558e45d3d74eb3188cbe0958515593ce2c437d017406ee842", + "chksum_sha256": "4e00ef84b911124b4a4accd43340c7ecc9f23b59ae92801d4b1e44e14be30128", "format": 1 }, { - "name": "docs/cisco.ios.ios_lacp_interfaces_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7bf92f7c407a17daa5b09137112c2d2764968e812b549b74cd7a8e8a45e255c5", + "chksum_sha256": "789efea07aeca73695ac6318b8efa84135fd9bb01ab01287ad4f1caaaa2fac45", "format": 1 }, { - "name": "docs/cisco.ios.ios_acl_interfaces_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cd05ed9845d1fc11685c746e9a9652f6bbd2670ec0a1d9ca39c5922ae46a64ba", + "chksum_sha256": "b0f11b5fdfc4778112633dbe23e79fcda458799d5a8fb31b2d8b2a79194aab60", "format": 1 }, { - "name": "docs/cisco.ios.ios_acls_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1aa35d1812bbb92f7b8ba18d3601df03851c682fde01e671f37ddc4c89ff7977", + "chksum_sha256": "53a89a15a20ad61a015b720b548f4cbd379e0d14bcdbe1d29b8a52816294be6b", "format": 1 }, { - "name": "docs/cisco.ios.ios_bgp_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3613c63ea42c85758bc78c1f2f5c970489a96411c41cc0ba7bf216994df8bdc1", + "chksum_sha256": "ec27ba6f7ff75fbb7089e3a8da2d02ef6ae88af4d46875802ae6a93db6d5f9c0", "format": 1 }, { - "name": "docs/cisco.ios.ios_config_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3240939a84f27d689eacaf2ce4c89da3c03ee5a2a2739a127d196cb2691784b5", + "chksum_sha256": "422ff5d9c0a8cc3ee7a6d94eb7bdfc035982af02dc1fcb1cbe970195e60e0490", "format": 1 }, { - "name": "docs/cisco.ios.ios_static_routes_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af3d82a1af37c9549d096096f205882d772383bb5c2535ad29efa8424cd413d4", + "chksum_sha256": "617c226e92222fce590330664bc61fc898650e9f0a769a270cbb91aa7ced6ec3", "format": 1 }, { - "name": "docs/cisco.ios.ios_ospfv3_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_system.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e832b1aef91fbd553177805605dd98df5f00f78c63be2a607b631d826e11e086", + "chksum_sha256": "173cc0ea9b86c0a3672110ccf67e37bc9353519dfe556b22f969ee4a15e991cc", "format": 1 }, { - "name": "docs/cisco.ios.ios_ospfv2_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1cda4e6568a61d285a6a2de4dffcfa476d33b65ab1b41565d981af4d3bee587b", + "chksum_sha256": "f1d485573e2b2ea1ec54e44a085cb811501bb513294a6b8a497c9bdad942b0a7", "format": 1 }, { - "name": "docs/cisco.ios.ios_bgp_address_family_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef1f1c1bce1238a8e1c30e174c361edb41440f8a4ca5892a51651d687e885b9a", + "chksum_sha256": "e659d95939b8e1e6dea3800b689a53b4df377ef1d4ddece5a738764eb5135b99", "format": 1 }, { - "name": "docs/cisco.ios.ios_l3_interfaces_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51ba7650c179e3da62a417f92608431f7d46cf9fb6206772ecd3d5f703d856ee", + "chksum_sha256": "d375c857fee27d16d1553b33bf5398356bb2563b924c4c1e30ce9b4da21289d9", "format": 1 }, { - "name": "docs/cisco.ios.ios_user_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3e0e3e1d9ad718db52097b1754064e310a3a434709203a7905f6e1a72fb71722", + "chksum_sha256": "a3009a93056257774086045d682f2a979ae5d99b0e469c80b050d4bc4e10e662", "format": 1 }, { - "name": "docs/cisco.ios.ios_facts_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "827c48cf4385cff2d361bfc60df1d6678cbb046f3ed39ff42426057448cdba1a", + "chksum_sha256": "977da72df67bef7c5c2a6a0af6ce67292634f3f3b76bc4533bb4f9684302ac31", "format": 1 }, { - "name": "docs/cisco.ios.ios_logging_global_module.rst", + "name": "tests/unit/modules/network/ios/test_ios_banner.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ec4443978907eee51ca4b9f1dc2ffe6534b3c3479e7555aacfdb82895d45594", + "chksum_sha256": "82953a03a9f12f373907684cb7fd0838e83e61619ea7861e8664ba2608b52ef9", "format": 1 }, { - "name": "docs/cisco.ios.ios_ntp_global_module.rst", + "name": "tests/unit/modules/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aac96eeacf4a0b344b25dca00c91f780a8b9233e9ceed3a71e0fbd339739a1b5", + "chksum_sha256": "414c272e9a403bb6009460ec9502c5acfaa9c80b2159c742f6cb2e225938be3e", "format": 1 }, { - "name": "docs/cisco.ios.ios_vlans_module.rst", + "name": "tests/unit/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "913875bef455036cf1ee302748251aa802719e0ef415a6599df62f4afaaf843d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "docs/cisco.ios.ios_snmp_server_module.rst", + "name": "tests/unit/requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd2156ed69609eb4271746660a9b338a4a1b2e5d7fbf9533ac350f1a5d84a407", + "chksum_sha256": "49ba996dc4735c3463e9af561344346dfae14bcc1a68096ce78364b377f0df1f", "format": 1 }, { - "name": "docs/cisco.ios.ios_prefix_lists_module.rst", + "name": "tests/.gitignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6d0a0fe60c76d6c91776efcc420942c78f5ccbdc3e0f413e4ca3e7ead839506", + "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600", "format": 1 }, { - "name": "docs/cisco.ios.ios_lag_interfaces_module.rst", + "name": "codecov.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97da1f7af33eae5e26a4537ddd3cbf0fc4fd811da0609dea6db3af82af8f53bd", + "chksum_sha256": "4aa7e485dd4db6f8a55b046088c745def2b3145d9499ccda4e9a3336467dcea2", "format": 1 }, { - "name": "docs/__init__.py", + "name": "tox-ansible.ini", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "da802bfc2dc2671ca7caba028e8a635b459b131874041d119b698717333a7a49", "format": 1 }, { - "name": "docs/cisco.ios.ios_evpn_evi_module.rst", + "name": ".gitignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "10749ddf85943d2fe186d9ba9bf1fef8326bd267408ee21e9497e7b751f09e9a", + "chksum_sha256": "179a6d0780422c32653a71b9395a3ecb8b3859346ffa3e38ca3c8d90f8063fd2", "format": 1 }, { - "name": "docs/cisco.ios.ios_linkagg_module.rst", + "name": "cspell.config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b123e1380c285f81d808170a79e2e82972af3c1b2e438cfb698a5d373c6be3cf", + "chksum_sha256": "e1079e6d02ed34033bf83913e7b66ff7bd042e6d8ed4c113aea31123f557deb5", "format": 1 }, { - "name": "docs/cisco.ios.ios_service_module.rst", + "name": "LICENSE", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "339ca54b72e461c16788f0a63bdf71786b9a45a4d848251916811ecfe9254a4b", + "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", "format": 1 }, { - "name": "docs/cisco.ios.ios_route_maps_module.rst", + "name": "mypy.ini", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af30dade8c6261c751142d983650af7a4c8c2e142f2fceaaf3bb604e88d9beb4", + "chksum_sha256": "5cc01a9c3e2a80b779ca004be5e4df814eebd494db650387b1bde98267a0b317", "format": 1 }, { - "name": "docs/cisco.ios.ios_ntp_module.rst", + "name": ".flake8", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ddbf43a41134d7100e58365a10c02a60674a1b37152d4bb07a2dd42b2e54d97", + "chksum_sha256": "7214cfc0a1b4e8b89190e868962196874d9396503f77e47d7dfa342bd29b2a74", "format": 1 }, { - "name": "docs/cisco.ios.ios_lldp_module.rst", + "name": "CHANGELOG.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f499f07239788d95c91a8413b7324e5370a88992e41ded149aeb130412e4f3b5", + "chksum_sha256": "22c466a51fb52639d7668078c84f1bb384fcd9c4a8b2522999f698edef8d061c", "format": 1 }, { - "name": "docs/cisco.ios.ios_interfaces_module.rst", + "name": "requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2081011b7cdb08c36dea3476b69ae849614273cd5e800e374edc9123fc04d71", + "chksum_sha256": "47d9fe78273fd64c750e78a317b1a59a6f87ebb93d8d4cf9ae6d98a0f2fc9f9e", "format": 1 }, { - "name": "docs/cisco.ios.ios_system_module.rst", + "name": "docs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "docs/cisco.ios.ios_config_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d9c9ff70523a1f9db7b5d860607252a06b799c12ea8e001944075338f0c32c7", + "chksum_sha256": "3240939a84f27d689eacaf2ce4c89da3c03ee5a2a2739a127d196cb2691784b5", "format": 1 }, { - "name": "docs/cisco.ios.ios_vrf_module.rst", + "name": "docs/cisco.ios.ios_command_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ffdd6a11d84d30baee6bf9a10859470627b4ba0521d3d3eb85def9758078a4d", + "chksum_sha256": "8b4546a6a039b29fb5919487fe5b8339d5cb34464e23cf1b07b2d82baf55bbed", "format": 1 }, { - "name": "docs/cisco.ios.ios_lacp_module.rst", + "name": "docs/cisco.ios.ios_linkagg_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3bac07e44bfe117813c4d65c786470b2acbeb128b0261b02f027d4424ffcc746", + "chksum_sha256": "b123e1380c285f81d808170a79e2e82972af3c1b2e438cfb698a5d373c6be3cf", "format": 1 }, { - "name": "docs/cisco.ios.ios_l2_interfaces_module.rst", + "name": "docs/cisco.ios.ios_ping_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a4f000d638f6ee2223d344c7b3c260cfcead1d04793e33c84da4cbbd30b1358", + "chksum_sha256": "2cc3e7247773d272c66efe02e9791b27bd7ae28afb28a26d597d80741042467f", "format": 1 }, { - "name": "docs/cisco.ios.ios_lldp_global_module.rst", + "name": "docs/cisco.ios.ios_lacp_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "12967941c3851fa6f982162e20ce5a0a3c4eeec8f948b367b8ba680af7c50202", + "chksum_sha256": "3bac07e44bfe117813c4d65c786470b2acbeb128b0261b02f027d4424ffcc746", "format": 1 }, { - "name": "docs/cisco.ios.ios_ping_module.rst", + "name": "docs/cisco.ios.ios_lldp_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2cc3e7247773d272c66efe02e9791b27bd7ae28afb28a26d597d80741042467f", + "chksum_sha256": "f499f07239788d95c91a8413b7324e5370a88992e41ded149aeb130412e4f3b5", "format": 1 }, { - "name": "docs/cisco.ios.ios_bgp_global_module.rst", + "name": "docs/cisco.ios.ios_logging_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "89a09f8b1c1900b6dba84033c17963299db060d02fc6b79b1c252c5605765aea", + "chksum_sha256": "6ec4443978907eee51ca4b9f1dc2ffe6534b3c3479e7555aacfdb82895d45594", "format": 1 }, { - "name": "docs/cisco.ios.ios_ospf_interfaces_module.rst", + "name": "docs/cisco.ios.ios_ospfv3_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "736695017ca633989a5ce8d1e661fee1cf6d545cf98f975a8ecc42897e352dcb", + "chksum_sha256": "e832b1aef91fbd553177805605dd98df5f00f78c63be2a607b631d826e11e086", "format": 1 }, { - "name": "docs/cisco.ios.ios_banner_module.rst", + "name": "docs/cisco.ios.ios_l3_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "347f291cfde6d03ea4e5d58a4e81b565cb29450c980cb453d41807836ec60c1f", + "chksum_sha256": "bc4a295c5de44164ad073994aea4eb7a7b38b51e503848e11312e354fe567a7d", "format": 1 }, { - "name": "docs/cisco.ios.ios_hostname_module.rst", + "name": "docs/cisco.ios.ios_vxlan_vtep_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c17247e2b97de9179680bdd136c547b0b8a4b15d8f6faf22d79543f6e9800246", + "chksum_sha256": "fe7e11d2742a5c657e48ca08d56b4eee718e65518eae65f3df640c611275eadd", "format": 1 }, { - "name": "docs/cisco.ios.ios_evpn_global_module.rst", + "name": "docs/cisco.ios.ios_ospfv2_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ea291a372120106d38f214b7e0585cc40768c3459232a46d717042872c3ed18d", + "chksum_sha256": "1cda4e6568a61d285a6a2de4dffcfa476d33b65ab1b41565d981af4d3bee587b", "format": 1 }, { - "name": "docs/cisco.ios.ios_command_module.rst", + "name": "docs/cisco.ios.ios_vlans_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8b4546a6a039b29fb5919487fe5b8339d5cb34464e23cf1b07b2d82baf55bbed", + "chksum_sha256": "1929d51d16b155395fe24200115859d3107378a420162bf57889a9931d1f1861", "format": 1 }, { - "name": "docs/cisco.ios.ios_cliconf.rst", + "name": "docs/cisco.ios.ios_facts_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a17502a2fd8ed08d762ce2e747b95c2b5dfe106d69afbaf97b8e141ac0597668", + "chksum_sha256": "827c48cf4385cff2d361bfc60df1d6678cbb046f3ed39ff42426057448cdba1a", "format": 1 }, { - "name": "docs/cisco.ios.ios_lldp_interfaces_module.rst", + "name": "docs/cisco.ios.ios_route_maps_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "619db6d298ab8b20cac142e84d3b24258ae70d3b5c092605a4c6ae2fa7d49e12", + "chksum_sha256": "af30dade8c6261c751142d983650af7a4c8c2e142f2fceaaf3bb604e88d9beb4", "format": 1 }, { - "name": ".isort.cfg", + "name": "docs/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f287de31c528e7d37475770952855fb25ec053d0bcaedd577091d13807b4c5dc", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "pyproject.toml", + "name": "docs/cisco.ios.ios_user_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1cb6a45dfa2625123890b93ad7fdc156b063c16e8ae6dba11511a1d1986b0fcc", + "chksum_sha256": "f96397bba27708b066076c0a259766a30ffa86a6711ff56f35201477bec8b28b", "format": 1 }, { - "name": ".flake8", + "name": "docs/cisco.ios.ios_bgp_address_family_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c3619890addbe81b337523c7d31461089055b267a3665f5f5c93d47fa0dbee96", + "chksum_sha256": "fd627997ec9ae45c6c26bde87fde2ac21ce4b0b47bf5f2431037e95751dd48b1", "format": 1 }, { - "name": ".darglint", + "name": "docs/cisco.ios.ios_cliconf.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "954a7045c6fa17fddfe80995f7f8251efb6df1a2b05eaf479afca6bbc6dfd4f2", + "chksum_sha256": "a17502a2fd8ed08d762ce2e747b95c2b5dfe106d69afbaf97b8e141ac0597668", "format": 1 }, { - "name": "bindep.txt", + "name": "docs/cisco.ios.ios_static_routes_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "80645079eb025b3a905b4775ac545d080a3d7d35d537c31e04f7197c94315ab5", + "chksum_sha256": "af3d82a1af37c9549d096096f205882d772383bb5c2535ad29efa8424cd413d4", "format": 1 }, { - "name": "changelogs", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.ios.ios_lag_interfaces_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "97da1f7af33eae5e26a4537ddd3cbf0fc4fd811da0609dea6db3af82af8f53bd", "format": 1 }, { - "name": "changelogs/fragments", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.ios.ios_banner_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "347f291cfde6d03ea4e5d58a4e81b565cb29450c980cb453d41807836ec60c1f", "format": 1 }, { - "name": "changelogs/fragments/.keep", + "name": "docs/cisco.ios.ios_evpn_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "f3554b673098af0468b7f528d0c68480648620c96205934c883787352120d7f6", "format": 1 }, { - "name": "changelogs/config.yaml", + "name": "docs/cisco.ios.ios_evpn_evi_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1bb849048d65cc2f9361aa278e580f629a47e0aca570fdb0f34cf4ef55dd332c", + "chksum_sha256": "1f5131a6c1ff51286735287d453712af785c8e417afb47deab8767fa44a3dccd", "format": 1 }, { - "name": "changelogs/changelog.yaml", + "name": "docs/cisco.ios.ios_system_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c85e91411a1533ae69219589ad751c388129bcd0059e5b0b49b30fe659317353", + "chksum_sha256": "2d9c9ff70523a1f9db7b5d860607252a06b799c12ea8e001944075338f0c32c7", "format": 1 }, { - "name": "tox.ini", + "name": "docs/cisco.ios.ios_ntp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "beb3313789623e5570d0871f6115ba563a0d92ea75e8e89cbd9f79045b4fe279", + "chksum_sha256": "aac96eeacf4a0b344b25dca00c91f780a8b9233e9ceed3a71e0fbd339739a1b5", "format": 1 }, { - "name": "CHANGELOG.rst", + "name": "docs/cisco.ios.ios_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "90fe1b08554e8c1a683f663f7d7bcf69a6395e4cbf63ae1917a6dd7ca9fdd3cd", + "chksum_sha256": "f2081011b7cdb08c36dea3476b69ae849614273cd5e800e374edc9123fc04d71", "format": 1 }, { - "name": ".gitignore", + "name": "docs/cisco.ios.ios_snmp_server_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "179a6d0780422c32653a71b9395a3ecb8b3859346ffa3e38ca3c8d90f8063fd2", + "chksum_sha256": "fd2156ed69609eb4271746660a9b338a4a1b2e5d7fbf9533ac350f1a5d84a407", "format": 1 }, { - "name": ".pre-commit-config.yaml", + "name": "docs/cisco.ios.ios_service_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08940a10222925e0f47d36e2457f1b3e7045ed20b4e72989208b83cda88a2c25", + "chksum_sha256": "339ca54b72e461c16788f0a63bdf71786b9a45a4d848251916811ecfe9254a4b", "format": 1 }, { - "name": ".prettierignore", + "name": "docs/cisco.ios.ios_lldp_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "87f689e56b912f78012677dba2e0237a65f7b3c1f903006cddefab21bf0689f2", + "chksum_sha256": "619db6d298ab8b20cac142e84d3b24258ae70d3b5c092605a4c6ae2fa7d49e12", "format": 1 }, { - "name": ".github", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.ios.ios_bgp_global_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f40e9c7282d17d9d0714e8078d2fff25c1afed77183c44b61f68fc5955a94b1e", "format": 1 }, { - "name": ".github/dependabot.yml", + "name": "docs/cisco.ios.ios_prefix_lists_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "11ceee3c57116e9fd08bc423414b1095ff002aa012d6fb325b1a7e24d7e28461", + "chksum_sha256": "c6d0a0fe60c76d6c91776efcc420942c78f5ccbdc3e0f413e4ca3e7ead839506", "format": 1 }, { - "name": ".github/CODEOWNERS", + "name": "docs/cisco.ios.ios_acl_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "cd05ed9845d1fc11685c746e9a9652f6bbd2670ec0a1d9ca39c5922ae46a64ba", "format": 1 }, { - "name": ".github/workflows", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.ios.ios_ospf_interfaces_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "736695017ca633989a5ce8d1e661fee1cf6d545cf98f975a8ecc42897e352dcb", "format": 1 }, { - "name": ".github/workflows/codecoverage.yml", + "name": "docs/cisco.ios.ios_l2_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8bbcae622f5e51798b577df290135e846244399c2a6ccbfedac523b38a8330a3", + "chksum_sha256": "0a4f000d638f6ee2223d344c7b3c260cfcead1d04793e33c84da4cbbd30b1358", "format": 1 }, { - "name": ".github/workflows/lint.yml", + "name": "docs/cisco.ios.ios_lldp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4aeac57f14d48d82a859c822f84a0573419958bc70708f19caa6daac5c771ff9", + "chksum_sha256": "12967941c3851fa6f982162e20ce5a0a3c4eeec8f948b367b8ba680af7c50202", "format": 1 }, { - "name": ".github/workflows/ack.yml", + "name": "docs/cisco.ios.ios_vrf_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24c6fbafaa69e3e3ee696f2cefa5120794b62cef7e870553dddce8b8af0a127c", + "chksum_sha256": "45ccaff681470c3ed5a60bf5932c14eaef7106ad08fd075d3a093db856b4829d", "format": 1 }, { - "name": ".github/workflows/release.yml", + "name": "docs/cisco.ios.ios_lacp_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9b7dba505905600bbb9f0d8e9956b7cc20f80edfa742dfdae9395542f417aa1", + "chksum_sha256": "7bf92f7c407a17daa5b09137112c2d2764968e812b549b74cd7a8e8a45e255c5", "format": 1 }, { - "name": ".github/workflows/push.yml", + "name": "docs/cisco.ios.ios_hostname_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "345f246b1e078aa3929a09eca7eb37ed4391f0a92c6446f6d6c507a15b45a1a7", + "chksum_sha256": "c17247e2b97de9179680bdd136c547b0b8a4b15d8f6faf22d79543f6e9800246", "format": 1 }, { - "name": ".github/workflows/tests.yml", + "name": "docs/cisco.ios.ios_acls_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "345e7bd3d711ba8194fc11c32bc1935fe6d7916869c7d6908c9e95807f8b1c47", + "chksum_sha256": "9d7f27e505c82c628489be78ca29cc4daa711aa7e3f4d3a40985e768ec2060cb", "format": 1 }, { - "name": ".github/release-drafter.yml", + "name": "bindep.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", + "chksum_sha256": "80645079eb025b3a905b4775ac545d080a3d7d35d537c31e04f7197c94315ab5", "format": 1 }, { - "name": "cspell.config.yaml", + "name": "platform_guide.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e1079e6d02ed34033bf83913e7b66ff7bd042e6d8ed4c113aea31123f557deb5", + "chksum_sha256": "b554e3c11718d6ac890f5f861e5996a7c12348766263a10fb34b315da899c58d", "format": 1 } ], diff --git a/ansible_collections/cisco/ios/MANIFEST.json b/ansible_collections/cisco/ios/MANIFEST.json index 99e11f380..5d60df311 100644 --- a/ansible_collections/cisco/ios/MANIFEST.json +++ b/ansible_collections/cisco/ios/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "cisco", "name": "ios", - "version": "5.3.0", + "version": "8.0.0", "authors": [ "Ansible Network Community (ansible-network)" ], @@ -17,7 +17,7 @@ "license": [], "license_file": "LICENSE", "dependencies": { - "ansible.netcommon": ">=2.5.1" + "ansible.netcommon": ">=6.1.0" }, "repository": "https://github.com/ansible-collections/cisco.ios", "documentation": null, @@ -28,7 +28,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1004e08946bf844b562ad6b5101fdf12a9c2338c282804e88f8a909b30d948c", + "chksum_sha256": "4adbe8b0c73c340e1c6bf6a6fabd848c98b04f047780987f22e6573f13477dfd", "format": 1 }, "format": 1 diff --git a/ansible_collections/cisco/ios/README.md b/ansible_collections/cisco/ios/README.md index da89549a1..8d8456157 100644 --- a/ansible_collections/cisco/ios/README.md +++ b/ansible_collections/cisco/ios/README.md @@ -11,7 +11,7 @@ This collection has been tested against Cisco IOS XE Version 17.3 on CML. ## Ansible version compatibility -This collection has been tested against following Ansible versions: **>=2.9.10**. +This collection has been tested against following Ansible versions: **>=2.14.0**. For collections that support Ansible 2.9, please ensure you update your `network_os` to use the fully qualified collection name (for example, `cisco.ios.ios`). @@ -22,7 +22,7 @@ PEP440 is the schema used to describe the versions of Ansible. ### Supported connections -The Cisco IOS collection supports `network_cli` connections. +The Cisco IOS collection supports `network_cli` connections. A detailed platform guide can be found [here](https://github.com/ansible-collections/cisco.ios/blob/main/platform_guide.rst). ## Included content @@ -38,7 +38,6 @@ Name | Description [cisco.ios.ios_acl_interfaces](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_acl_interfaces_module.rst)|Resource module to configure ACL interfaces. [cisco.ios.ios_acls](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_acls_module.rst)|Resource module to configure ACLs. [cisco.ios.ios_banner](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_banner_module.rst)|Module to configure multiline banners. -[cisco.ios.ios_bgp](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_bgp_module.rst)|Module to configure BGP protocol settings. [cisco.ios.ios_bgp_address_family](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_bgp_address_family_module.rst)|Resource module to configure BGP Address family. [cisco.ios.ios_bgp_global](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_bgp_global_module.rst)|Resource module to configure BGP. [cisco.ios.ios_command](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_command_module.rst)|Module to run commands on remote devices. @@ -58,7 +57,6 @@ Name | Description [cisco.ios.ios_lldp_global](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_lldp_global_module.rst)|Resource module to configure LLDP. [cisco.ios.ios_lldp_interfaces](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_lldp_interfaces_module.rst)|Resource module to configure LLDP interfaces. [cisco.ios.ios_logging_global](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_logging_global_module.rst)|Resource module to configure logging. -[cisco.ios.ios_ntp](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_ntp_module.rst)|(deprecated, removed after 2024-01-01) Manages core NTP configuration. [cisco.ios.ios_ntp_global](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_ntp_global_module.rst)|Resource module to configure NTP. [cisco.ios.ios_ospf_interfaces](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_ospf_interfaces_module.rst)|Resource module to configure OSPF interfaces. [cisco.ios.ios_ospfv2](https://github.com/ansible-collections/cisco.ios/blob/main/docs/cisco.ios.ios_ospfv2_module.rst)|Resource module to configure OSPFv2. diff --git a/ansible_collections/cisco/ios/changelogs/changelog.yaml b/ansible_collections/cisco/ios/changelogs/changelog.yaml index 510f6b809..e57571cd7 100644 --- a/ansible_collections/cisco/ios/changelogs/changelog.yaml +++ b/ansible_collections/cisco/ios/changelogs/changelog.yaml @@ -2,107 +2,75 @@ ancestor: null releases: 1.0.0: modules: - - description: ACL interfaces resource module + - description: Resource module to configure ACL interfaces. name: ios_acl_interfaces namespace: "" - - description: ACLs resource module + - description: Resource module to configure ACLs. name: ios_acls namespace: "" - - description: Manage multiline banners on Cisco IOS devices + - description: Module to configure multiline banners. name: ios_banner namespace: "" - - description: Configure global BGP protocol settings on Cisco IOS. - name: ios_bgp - namespace: "" - - description: Run commands on remote devices running Cisco IOS + - description: Module to run commands on remote devices. name: ios_command namespace: "" - - description: Manage Cisco IOS configuration sections + - description: Module to manage configuration sections. name: ios_config namespace: "" - - description: Collect facts from remote devices running Cisco IOS + - description: Module to collect facts from remote devices. name: ios_facts namespace: "" - - description: - (deprecated, removed after 2022-06-01) Manage Interface on Cisco - IOS network devices - name: ios_interface - namespace: "" - - description: Interfaces resource module + - description: Resource module to configure interfaces. name: ios_interfaces namespace: "" - - description: - (deprecated, removed after 2022-06-01) Manage Layer-2 interface - on Cisco IOS devices. - name: ios_l2_interface - namespace: "" - - description: L2 interfaces resource module + - description: Resource module to configure L2 interfaces. name: ios_l2_interfaces namespace: "" - - description: - (deprecated, removed after 2022-06-01) Manage Layer-3 interfaces - on Cisco IOS network devices. - name: ios_l3_interface - namespace: "" - - description: L3 interfaces resource module + - description: Resource module to configure L3 interfaces. name: ios_l3_interfaces namespace: "" - - description: LACP resource module + - description: Resource module to configure LACP. name: ios_lacp namespace: "" - - description: LACP interfaces resource module + - description: Resource module to configure LACP interfaces. name: ios_lacp_interfaces namespace: "" - - description: LAG interfaces resource module + - description: Resource module to configure LAG interfaces. name: ios_lag_interfaces namespace: "" - - description: Manage link aggregation groups on Cisco IOS network devices + - description: Module to configure link aggregation groups. name: ios_linkagg namespace: "" - - description: Manage LLDP configuration on Cisco IOS network devices. + - description: + (deprecated, removed after 2024-06-01) Manage LLDP configuration + on Cisco IOS network devices. name: ios_lldp namespace: "" - - description: LLDP resource module + - description: Resource module to configure LLDP. name: ios_lldp_global namespace: "" - - description: LLDP interfaces resource module + - description: Resource module to configure LLDP interfaces. name: ios_lldp_interfaces namespace: "" - - description: Manage logging on network devices - name: ios_logging - namespace: "" - - description: Manages core NTP configuration. - name: ios_ntp - namespace: "" - - description: OSPFv2 resource module + - description: Resource module to configure OSPFv2. name: ios_ospfv2 namespace: "" - - description: Tests reachability using ping from Cisco IOS network devices + - description: Tests reachability using ping from IOS switch. name: ios_ping namespace: "" - - description: - (deprecated, removed after 2022-06-01) Manage static IP routes - on Cisco IOS network devices - name: ios_static_route - namespace: "" - - description: Static routes resource module + - description: Resource module to configure static routes. name: ios_static_routes namespace: "" - - description: Manage the system attributes on Cisco IOS devices + - description: Module to manage the system attributes. name: ios_system namespace: "" - - description: Manage the aggregate of local users on Cisco IOS device + - description: Module to manage the aggregates of local users. name: ios_user namespace: "" - - description: - (deprecated, removed after 2022-06-01) Manage VLANs on IOS network - devices - name: ios_vlan - namespace: "" - - description: VLANs resource module + - description: Resource module to configure VLANs. name: ios_vlans namespace: "" - - description: Manage the collection of VRF definitions on Cisco IOS devices + - description: Module to configure VRF definitions. name: ios_vrf namespace: "" plugins: @@ -153,7 +121,7 @@ releases: minor_changes: - Add ios_ospfv3 module. modules: - - description: OSPFv3 resource module + - description: Resource module to configure OSPFv3. name: ios_ospfv3 namespace: "" release_date: "2020-10-01" @@ -172,7 +140,7 @@ releases: minor_changes: - Add ios_ospf_interfaces module. modules: - - description: OSPF Interfaces resource module + - description: Resource module to configure OSPF interfaces. name: ios_ospf_interfaces namespace: "" release_date: "2020-11-01" @@ -196,7 +164,7 @@ releases: minor_changes: - Add ios_bgp_global module. modules: - - description: BGP Global resource module + - description: Resource module to configure BGP. name: ios_bgp_global namespace: "" release_date: "2021-01-29" @@ -214,7 +182,7 @@ releases: - Add ios_bgp_address_family Resource Module. (https://github.com/ansible-collections/cisco.ios/pull/219). - Adds support for single_user_mode command output caching. (https://github.com/ansible-collections/cisco.ios/pull/204). modules: - - description: BGP Address Family resource module. + - description: Resource module to configure BGP Address family. name: ios_bgp_address_family namespace: "" release_date: "2021-02-25" @@ -246,7 +214,7 @@ releases: security_fixes: - To fix Cisco IOS no log issue and add ignore txt for 2.12 (https://github.com/ansible-collections/cisco.ios/pull/304). modules: - - description: Route Maps resource module. + - description: Resource module to configure route maps. name: ios_route_maps namespace: "" release_date: "2021-04-27" @@ -265,10 +233,10 @@ releases: - Add ios_logging_global module. - IOS Prefix list resource module. modules: - - description: Logging resource module. + - description: Resource module to configure logging. name: ios_logging_global namespace: "" - - description: Prefix Lists resource module. + - description: Resource module to configure prefix lists. name: ios_prefix_lists namespace: "" release_date: "2021-05-18" @@ -377,7 +345,7 @@ releases: - sd_wan_support.yaml - set_allow_duplicates.yaml modules: - - description: ntp_global resource module + - description: Resource module to configure NTP. name: ios_ntp_global namespace: "" release_date: "2021-09-24" @@ -409,7 +377,7 @@ releases: - sanity-213.yaml - snmp_server_resource_module.yaml modules: - - description: snmp_server resource module + - description: Resource module to configure snmp server. name: ios_snmp_server namespace: "" release_date: "2021-12-07" @@ -452,7 +420,7 @@ releases: - snmp_server_feature_user.yaml - static_route_interface_issue.yaml modules: - - description: hostname resource module + - description: Resource module to configure hostname. name: ios_hostname namespace: "" release_date: "2022-01-31" @@ -1065,3 +1033,130 @@ releases: name: ios_vxlan_vtep namespace: "" release_date: "2023-11-29" + 6.0.0: + changes: + major_changes: + - Bumping `requires_ansible` to `>=2.14.0`, since previous ansible-core versions + are EoL now. + release_summary: + Starting from this release, the minimum `ansible-core` version + this collection requires is `2.14.0`. The last known version compatible with + ansible-core<2.14 is `v5.3.0`. + removed_features: + - Removed previously deprecated ios_bgp module in favor of ios_bgp_global and + ios_bgp_address_family. + fragments: + - bgp_dep_rem.yml + - major_600.yml + release_date: "2023-11-30" + 6.1.0: + changes: + bugfixes: + - ios_bgp_global - fix template attribute to generate configuration commands. + - ios_l3_interfaces - remove validation from ipv6 address parameter. + - ios_snmp_server - fix group and user IPv6 ACL commands. + - ios_user - fix configuration of user with hashed password. + - ios_user - fixed configuration removal of ssh users using purge. + - ios_vlans - Make behaviour of the action states consistent. + - ios_vlans - Top level configuration attribute is not required, the module + works with vlan and vlan configuration both. + minor_changes: + - ios_bgp_global - added 'bgp.default.ipv4_unicast' and 'bgp.default.route_target.filter' + key + - ios_l3_interfaces - added 'autostate', 'mac_address', 'ipv4.source_interface', + and 'ipv6.enable' key + - ios_vlans - Add purged state to deal with toplevel vlan and vlan configuration + config. + fragments: + - fix_ios_bgp_global_20231204173037.yaml + - fix_ios_l3_interfacel_20231207172506.yaml + - ios_facts_tests.yml + - ios_l3_ipv6.yml + - ios_user_fix.yml + - ios_vlans_revert.yml + - snmp_server_ipv6_acl.yml + - template_revoke_bgp.yaml + release_date: "2024-01-11" + 6.1.1: + changes: + bugfixes: + - Prevents module_defaults from were being incorrectly applied to the platform + action, instead of the concerned module. + - ios_vlans - fixes behaviour of shutdown attribute with action states. + fragments: + - module_defaults.yaml + - vlan_shutdown_fix.yaml + release_date: "2024-01-30" + 6.1.2: + changes: + bugfixes: + - ios_acls - Fix replaced state to consider remarks and ace entries while comparing + configuration. + - ios_acls - correctly match the different line for ACL without sequence number + - ios_acls - take correctly in case where we want to push an ACL from a different + type + - ios_ospfv2 - Fix improper rendering of admin_distance attribute. + - ios_snmp_server - fixed config issue with snmp user password update being + idempotent on consecutive runs. + - ios_user - Fix configuration of hashed passwords and secrets. + fragments: + - ios_acls_changes.yml + - ios_acls_replaced_state.yml + - ios_user_bug.yml + - ospfv2_admin_distance_fix.yml + - snmp_idempotancy_fix.yml + release_date: "2024-02-14" + 6.1.3: + changes: + bugfixes: + - ios_acls - Adds back existing remarks for an ace entry when updated with replaced + or overridden state, as all remarks for a specific sequence gets removed when + ace entry is updated. + - ios_bgp_global - Shutdown attributes generates negate command on set as false. + - ios_vrf - Update and add missing argspec keys that define the attributes. + doc_changes: + - ios_vrf - Update and add missing documentation for ios_vrf module. + fragments: + - bgp_global_shutdown.yml + - ios_acls_sticky.yml + - ios_vrf_docfix.yml + release_date: "2024-03-08" + 6.1.4: + changes: + bugfixes: + - ios_acls - update module to apply remarks entry with sequence numbers. + - ios_bgp_address_family - description attribute, evalutated as complex object + casted to string. + - ios_bgp_global - description attribute, evalutated as complex object casted + to string. + - ios_interfaces - description attribute, evalutated as complex object casted + to string. + - ios_prefix_lists - description attribute, evalutated as complex object casted + to string. + - ios_route_maps - description attribute, evalutated as complex object casted + to string. + fragments: + - acl_refactor.yaml + - json_serializable_issue.yaml + release_date: "2024-03-27" + 7.0.0: + changes: + major_changes: + - ios_ntp - Remove deprecated ntp legacy module + removed_features: + - Deprecated ios_ntp module in favor of ios_ntp_global. + fragments: + - remove_deprecated.yml + release_date: "2024-04-01" + 8.0.0: + changes: + major_changes: + - Update the netcommon base version 6.1.0 to support cli_restore plugin. + minor_changes: + - Add support for cli_restore functionality. + - Please refer the PR to know more about core changes (https://github.com/ansible-collections/ansible.netcommon/pull/618). + - cli_restore module is part of netcommon. + fragments: + - add_restore_support.yaml + - sanityfix.yml + release_date: "2024-04-12" diff --git a/ansible_collections/cisco/ios/changelogs/config.yaml b/ansible_collections/cisco/ios/changelogs/config.yaml index e7a09b4e5..f18533f71 100644 --- a/ansible_collections/cisco/ios/changelogs/config.yaml +++ b/ansible_collections/cisco/ios/changelogs/config.yaml @@ -1,3 +1,4 @@ +--- changelog_filename_template: ../CHANGELOG.rst changelog_filename_version_depth: 0 changes_file: changelog.yaml diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_acls_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_acls_module.rst index a76156dd6..bb0328d87 100644 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_acls_module.rst +++ b/ansible_collections/cisco/ios/docs/cisco.ios.ios_acls_module.rst @@ -3145,6 +3145,8 @@ Parameters
The remarks/description of the ACL.
The remarks attribute used within an ace with or without a sequence number will produce remarks that are pushed before the ace entry.
Remarks entry used as the only key in as the list option will produce non ace specific remarks, these remarks would be pushed at the end of all the aces for an acl.
+
Remarks is treated a block, for every single remarks updated for an ace all the remarks are negated and added back to maintain the order of remarks mentioned.
+
As the appliance deletes all the remarks once the ace is updated, the set of remarks would be re-applied that is an expected behavior.
@@ -5195,6 +5197,347 @@ Examples # ip access-list extended 150 # 10 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10 + # Using overridden - example remarks specific on multiple sequence + + # Before state: + # ------------- + # + # vios#show running-config | section access-list + # ip access-list extended TEST + # 10 remark FIRST REMARK BEFORE SEQUENCE 10 + # 10 remark ============ + # 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE + # 20 remark FIRST REMARK BEFORE SEQUENCE 20 + # 20 remark ============ + # 20 remark ALLOW HOST FROM SEQUENCE 20 + # 20 permit ip host 1.1.1.1 any + # 30 remark FIRST REMARK BEFORE SEQUENCE 30 + # 30 remark ============ + # 30 remark ALLOW HOST FROM SEQUENCE 30 + # 30 permit ip host 2.2.2.2 any + # 40 remark FIRST REMARK BEFORE SEQUENCE 40 + # 40 remark ============ + # 40 remark ALLOW NEW HOST FROM SEQUENCE 40 + # 40 permit ip host 3.3.3.3 any + # remark Remark not specific to sequence + # remark ============ + # remark End Remarks + # ip access-list extended test_acl + # 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10 + # ip access-list extended 110 + # 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 echo dscp ef ttl eq 10 + # ip access-list extended 123 + # 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12 + # 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20 + # ipv6 access-list R1_TRAFFIC + # sequence 10 deny tcp any eq www any eq telnet ack dscp af11 + + - name: Override remarks and ace configurations + cisco.ios.ios_acls: + config: + - afi: ipv4 + acls: + - name: TEST + acl_type: extended + aces: + - sequence: 10 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 10" + - "============" + - "REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE" + grant: permit + protocol: ip + source: + host: 1.1.1.1 + destination: + any: true + - sequence: 20 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 20" + - "============" + - "ALLOW HOST FROM SEQUENCE 20" + grant: permit + protocol: ip + source: + host: 192.168.0.1 + destination: + any: true + - sequence: 30 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 30" + - "============" + - "ALLOW HOST FROM SEQUENCE 30 updated" + grant: permit + protocol: ip + source: + host: 2.2.2.2 + destination: + any: true + - sequence: 40 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 40" + - "============" + - "ALLOW NEW HOST FROM SEQUENCE 40" + grant: permit + protocol: ip + source: + host: 3.3.3.3 + destination: + any: true + - remarks: + - "Remark not specific to sequence" + - "============" + - "End Remarks 1" + state: overridden + + # Task Output + # ----------- + # + # before: + # - acls: + # - aces: + # - destination: + # address: 192.0.3.0 + # wildcard_bits: 0.0.0.255 + # dscp: ef + # grant: deny + # protocol: icmp + # protocol_options: + # icmp: + # echo: true + # sequence: 10 + # source: + # address: 192.0.2.0 + # wildcard_bits: 0.0.0.255 + # ttl: + # eq: 10 + # acl_type: extended + # name: '110' + # - aces: + # - destination: + # address: 198.51.101.0 + # port_protocol: + # eq: telnet + # wildcard_bits: 0.0.0.255 + # grant: deny + # protocol: tcp + # protocol_options: + # tcp: + # ack: true + # sequence: 10 + # source: + # address: 198.51.100.0 + # wildcard_bits: 0.0.0.255 + # tos: + # service_value: 12 + # - destination: + # address: 192.0.4.0 + # port_protocol: + # eq: www + # wildcard_bits: 0.0.0.255 + # dscp: ef + # grant: deny + # protocol: tcp + # protocol_options: + # tcp: + # ack: true + # sequence: 20 + # source: + # address: 192.0.3.0 + # wildcard_bits: 0.0.0.255 + # ttl: + # lt: 20 + # acl_type: extended + # name: '123' + # - aces: + # - destination: + # any: true + # grant: permit + # protocol: ip + # remarks: + # - FIRST REMARK BEFORE SEQUENCE 20 + # - ============ + # - ALLOW HOST FROM SEQUENCE 20 + # sequence: 20 + # source: + # host: 1.1.1.1 + # - destination: + # any: true + # grant: permit + # protocol: ip + # remarks: + # - FIRST REMARK BEFORE SEQUENCE 30 + # - ============ + # - ALLOW HOST FROM SEQUENCE 30 + # sequence: 30 + # source: + # host: 2.2.2.2 + # - destination: + # any: true + # grant: permit + # protocol: ip + # remarks: + # - FIRST REMARK BEFORE SEQUENCE 40 + # - ============ + # - ALLOW NEW HOST FROM SEQUENCE 40 + # sequence: 40 + # source: + # host: 3.3.3.3 + # - remarks: + # - FIRST REMARK BEFORE SEQUENCE 10 + # - ============ + # - REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE + # sequence: 10 + # - remarks: + # - Remark not specific to sequence + # - ============ + # - End Remarks + # acl_type: extended + # name: TEST + # - aces: + # - destination: + # address: 192.0.3.0 + # port_protocol: + # eq: www + # wildcard_bits: 0.0.0.255 + # grant: deny + # option: + # traceroute: true + # protocol: tcp + # protocol_options: + # tcp: + # fin: true + # sequence: 10 + # source: + # address: 192.0.2.0 + # wildcard_bits: 0.0.0.255 + # ttl: + # eq: 10 + # acl_type: extended + # name: test_acl + # afi: ipv4 + # - acls: + # - aces: + # - destination: + # any: true + # port_protocol: + # eq: telnet + # dscp: af11 + # grant: deny + # protocol: tcp + # protocol_options: + # tcp: + # ack: true + # sequence: 10 + # source: + # any: true + # port_protocol: + # eq: www + # name: R1_TRAFFIC + # afi: ipv6 + # commands: + # - no ipv6 access-list R1_TRAFFIC + # - ip access-list extended TEST + # - no 10 # removes all remarks and ace entry for sequence 10 + # - no 20 permit ip host 1.1.1.1 any # removing the ace automatically removes the remarks + # - no 30 remark # just remove remarks for sequence 30 + # - no remark # remove all remarks at end of acl, that has no sequence + # - 10 remark FIRST REMARK BEFORE SEQUENCE 10 + # - 10 remark ============ + # - 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE + # - 10 permit ip host 1.1.1.1 any + # - 20 remark FIRST REMARK BEFORE SEQUENCE 20 + # - 20 remark ============ + # - 20 remark ALLOW HOST FROM SEQUENCE 20 + # - 20 permit ip host 192.168.0.1 any + # - 30 remark FIRST REMARK BEFORE SEQUENCE 30 + # - 30 remark ============ + # - 30 remark ALLOW HOST FROM SEQUENCE 30 updated + # - remark Remark not specific to sequence + # - remark ============ + # - remark End Remarks 1 + # - no ip access-list extended 110 + # - no ip access-list extended 123 + # - no ip access-list extended test_acl + # after: + # - acls: + # - aces: + # - destination: + # any: true + # grant: permit + # protocol: ip + # remarks: + # - FIRST REMARK BEFORE SEQUENCE 10 + # - ============ + # - REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE + # sequence: 10 + # source: + # host: 1.1.1.1 + # - destination: + # any: true + # grant: permit + # protocol: ip + # remarks: + # - FIRST REMARK BEFORE SEQUENCE 20 + # - ============ + # - ALLOW HOST FROM SEQUENCE 20 + # sequence: 20 + # source: + # host: 192.168.0.1 + # - destination: + # any: true + # grant: permit + # protocol: ip + # remarks: + # - FIRST REMARK BEFORE SEQUENCE 30 + # - ============ + # - ALLOW HOST FROM SEQUENCE 30 updated + # sequence: 30 + # source: + # host: 2.2.2.2 + # - destination: + # any: true + # grant: permit + # protocol: ip + # remarks: + # - FIRST REMARK BEFORE SEQUENCE 40 + # - ============ + # - ALLOW NEW HOST FROM SEQUENCE 40 + # sequence: 40 + # source: + # host: 3.3.3.3 + # - remarks: + # - Remark not specific to sequence + # - ============ + # - End Remarks 1 + # acl_type: extended + # name: TEST + # afi: ipv4 + + # After state: + # ------------- + # + # foo#show running-config | section access-list + # ip access-list extended TEST + # 10 remark FIRST REMARK BEFORE SEQUENCE 10 + # 10 remark ============ + # 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE + # 10 permit ip host 1.1.1.1 any + # 20 remark FIRST REMARK BEFORE SEQUENCE 20 + # 20 remark ============ + # 20 remark ALLOW HOST FROM SEQUENCE 20 + # 20 permit ip host 192.168.0.1 any + # 30 remark FIRST REMARK BEFORE SEQUENCE 30 + # 30 remark ============ + # 30 remark ALLOW HOST FROM SEQUENCE 30 updated + # 30 permit ip host 2.2.2.2 any + # 40 remark FIRST REMARK BEFORE SEQUENCE 40 + # 40 remark ============ + # 40 remark ALLOW NEW HOST FROM SEQUENCE 40 + # 40 permit ip host 3.3.3.3 any + # remark Remark not specific to sequence + # remark ============ + # remark End Remarks 1 # Using deleted - delete ACL(s) diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_address_family_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_address_family_module.rst index 25fb233ac..268217811 100644 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_address_family_module.rst +++ b/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_address_family_module.rst @@ -8060,7 +8060,7 @@ Notes ----- .. note:: - - Tested against Cisco IOSXE Version 17.3 on CML. + - Tested against Cisco IOS-XE Version 17.3 on CML. - This module works with connection ``network_cli``. See https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html - The module examples uses callback plugin (stdout_callback = yaml) to generate task output in yaml format. diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_global_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_global_module.rst index ad461f776..77eb908c5 100644 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_global_module.rst +++ b/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_global_module.rst @@ -1462,6 +1462,88 @@ Parameters + + + + +
+ default + +
+ dictionary +
+ + + + +
Configure BGP defaults
+ + + + + + + +
+ ipv4_unicast + +
+ boolean +
+ + +
    Choices: +
  • no
  • +
  • yes ←
  • +
+ + +
Activate ipv4-unicast for a peer by default
+ + + + + + + +
+ route_target + +
+ dictionary +
+ + + + +
Control behavior based on Route-Target attributes
+ + + + + + + + +
+ filter + +
+ boolean +
+ + +
    Choices: +
  • no
  • +
  • yes ←
  • +
+ + +
Control automatic VPN Route-Target filtering
+ + + + @@ -9269,7 +9351,6 @@ Parameters
Enter template command mode
-
This option is DEPRECATED as is not valid within the scope of module, this attribute will be removed after 2024-06-01.
@@ -9432,7 +9513,7 @@ Notes ----- .. note:: - - Tested against Cisco IOSXE Version 17.3 on CML. + - Tested against Cisco IOS-XE Version 17.3 on CML. - This module works with connection ``network_cli``. See https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html - The module examples uses callback plugin (stdout_callback = yaml) to generate task output in yaml format. @@ -9463,6 +9544,10 @@ Examples reuse_route_val: 1 suppress_route_val: 1 max_suppress: 1 + default: + ipv4_unicast: false + route_target: + filter: true graceful_shutdown: neighbors: time: 50 @@ -9506,6 +9591,7 @@ Examples # - timers bgp 100 200 150 # - bgp advertise-best-external # - bgp bestpath compare-routerid + # - no bgp default ipv4-unicast # - bgp dampening 1 1 1 1 # - bgp graceful-shutdown all neighbors 50 local-preference 100 community 100 # - bgp log-neighbor-changes @@ -9528,6 +9614,10 @@ Examples # penalty_half_time: 1 # reuse_route_val: 1 # suppress_route_val: 1 + # default: + # ipv4_unicast: false + # route_target: + # filter: true # graceful_shutdown: # community: '100' # local_preference: 100 @@ -9567,6 +9657,7 @@ Examples # # vios#sh running-config | section ^router bgp # router bgp 65000 + # no bgp default ipv4-unicast # bgp log-neighbor-changes # bgp nopeerup-delay post-boot 10 # bgp graceful-shutdown all neighbors 50 local-preference 100 community 100 @@ -9639,6 +9730,10 @@ Examples # penalty_half_time: 1 # reuse_route_val: 1 # suppress_route_val: 1 + # default: + # ipv4_unicast: true + # route_target: + # filter: true # graceful_shutdown: # community: '100' # local_preference: 100 @@ -9686,6 +9781,10 @@ Examples # bestpath_options: # med: # confed: true + # default: + # ipv4_unicast: true + # route_target: + # filter: true # log_neighbor_changes: true # nopeerup_delay_options: # cold_boot: 20 @@ -9752,6 +9851,10 @@ Examples # penalty_half_time: 1 # reuse_route_val: 1 # suppress_route_val: 1 + # default: + # ipv4_unicast: true + # route_target: + # filter: true # graceful_shutdown: # community: '100' # local_preference: 100 @@ -9827,6 +9930,10 @@ Examples # penalty_half_time: 1 # reuse_route_val: 1 # suppress_route_val: 1 + # default: + # ipv4_unicast: true + # route_target: + # filter: true # graceful_shutdown: # community: '100' # local_preference: 100 @@ -9898,6 +10005,10 @@ Examples # advertise_best_external: true # bestpath_options: # compare_routerid: true + # default: + # ipv4_unicast: true + # route_target: + # filter: true # dampening: # max_suppress: 1 # penalty_half_time: 1 @@ -9974,6 +10085,10 @@ Examples # penalty_half_time: 1 # reuse_route_val: 1 # suppress_route_val: 1 + # default: + # ipv4_unicast: true + # route_target: + # filter: true # graceful_shutdown: # community: '100' # local_preference: 100 diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_module.rst deleted file mode 100644 index c8aa774b0..000000000 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_bgp_module.rst +++ /dev/null @@ -1,1142 +0,0 @@ -.. _cisco.ios.ios_bgp_module: - - -***************** -cisco.ios.ios_bgp -***************** - -**Module to configure BGP protocol settings.** - - -Version added: 1.0.0 - -.. contents:: - :local: - :depth: 1 - -DEPRECATED ----------- -:Removed in collection release after 2023-08-24 -:Why: Newer and updated modules released with more functionality -:Alternative: ios_bgp_global - - - -Synopsis --------- -- This module provides configuration management of global BGP parameters on devices running Cisco IOS - - - - -Parameters ----------- - -.. raw:: html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterChoices/DefaultsComments
-
- config - -
- dictionary -
-
- -
Specifies the BGP related configuration.
-
-
- address_family - -
- list - / elements=dictionary -
-
- -
Specifies BGP address family related configurations.
-
-
- afi - -
- string - / required -
-
-
    Choices: -
  • ipv4
  • -
  • ipv6
  • -
-
-
Type of address family to configure.
-
-
- auto_summary - -
- boolean -
-
-
    Choices: -
  • no
  • -
  • yes
  • -
-
-
Enable/disable automatic network number summarization.
-
-
- neighbors - -
- list - / elements=dictionary -
-
- -
Specifies BGP neighbor related configurations in Address Family configuration mode.
-
-
- activate - -
- boolean -
-
-
    Choices: -
  • no
  • -
  • yes
  • -
-
-
Enable the Address Family for this Neighbor.
-
-
- advertisement_interval - -
- integer -
-
- -
Minimum interval between sending BGP routing updates for this neighbor.
-
-
- maximum_prefix - -
- integer -
-
- -
Maximum number of prefixes to accept from this peer.
-
The range is from 1 to 2147483647.
-
-
- neighbor - -
- string - / required -
-
- -
Neighbor router address.
-
-
- next_hop_self - -
- boolean -
-
-
    Choices: -
  • no
  • -
  • yes
  • -
-
-
Enable/disable the next hop calculation for this neighbor.
-
-
- next_hop_unchanged - -
- boolean -
-
-
    Choices: -
  • no
  • -
  • yes
  • -
-
-
Propagate next hop unchanged for iBGP paths to this neighbor.
-
-
- prefix_list_in - -
- string -
-
- -
Name of ip prefix-list to apply to incoming prefixes.
-
-
- prefix_list_out - -
- string -
-
- -
Name of ip prefix-list to apply to outgoing prefixes.
-
-
- remove_private_as - -
- boolean -
-
-
    Choices: -
  • no
  • -
  • yes
  • -
-
-
Remove the private AS number from outbound updates.
-
-
- route_reflector_client - -
- boolean -
-
-
    Choices: -
  • no
  • -
  • yes
  • -
-
-
Specify a neighbor as a route reflector client.
-
-
- route_server_client - -
- boolean -
-
-
    Choices: -
  • no
  • -
  • yes
  • -
-
-
Specify a neighbor as a route server client.
-
-
- networks - -
- list - / elements=dictionary -
-
- -
Specify Networks to announce via BGP.
-
For operation replace, this option is mutually exclusive with root level networks option.
-
-
- masklen - -
- integer -
-
- -
Subnet mask length for the Network to announce(e.g, 8, 16, 24, etc.).
-
-
- prefix - -
- string - / required -
-
- -
Network ID to announce via BGP.
-
-
- route_map - -
- string -
-
- -
Route map to modify the attributes.
-
-
- redistribute - -
- list - / elements=dictionary -
-
- -
Specifies the redistribute information from another routing protocol.
-
-
- id - -
- string -
-
- -
Identifier for the routing protocol for configuring redistribute information.
-
Valid for protocols 'ospf', 'ospfv3' and 'eigrp'.
-
-
- metric - -
- integer -
-
- -
Specifies the metric for redistributed routes.
-
-
- protocol - -
- string - / required -
-
-
    Choices: -
  • ospf
  • -
  • ospfv3
  • -
  • eigrp
  • -
  • isis
  • -
  • static
  • -
  • connected
  • -
  • odr
  • -
  • lisp
  • -
  • mobile
  • -
  • rip
  • -
-
-
Specifies the protocol for configuring redistribute information.
-
-
- route_map - -
- string -
-
- -
Specifies the route map reference.
-
-
- safi - -
- string -
-
-
    Choices: -
  • flowspec
  • -
  • unicast ←
  • -
  • multicast
  • -
  • labeled-unicast
  • -
-
-
Specifies the type of cast for the address family.
-
-
- synchronization - -
- boolean -
-
-
    Choices: -
  • no
  • -
  • yes
  • -
-
-
Enable/disable IGP synchronization.
-
-
- bgp_as - -
- integer - / required -
-
- -
Specifies the BGP Autonomous System (AS) number to configure on the device.
-
-
- log_neighbor_changes - -
- boolean -
-
-
    Choices: -
  • no
  • -
  • yes
  • -
-
-
Enable/disable logging neighbor up/down and reset reason.
-
-
- neighbors - -
- list - / elements=dictionary -
-
- -
Specifies BGP neighbor related configurations.
-
-
- description - -
- string -
-
- -
Neighbor specific description.
-
-
- ebgp_multihop - -
- integer -
-
- -
Specifies the maximum hop count for EBGP neighbors not on directly connected networks.
-
The range is from 1 to 255.
-
-
- enabled - -
- boolean -
-
-
    Choices: -
  • no
  • -
  • yes
  • -
-
-
Administratively shutdown or enable a neighbor.
-
-
- local_as - -
- integer -
-
- -
The local AS number for the neighbor.
-
-
- neighbor - -
- string - / required -
-
- -
Neighbor router address.
-
-
- password - -
- string -
-
- -
Password to authenticate the BGP peer connection.
-
-
- peer_group - -
- string -
-
- -
Name of the peer group that the neighbor is a member of.
-
-
- remote_as - -
- integer - / required -
-
- -
Remote AS of the BGP neighbor to configure.
-
-
- timers - -
- dictionary -
-
- -
Specifies BGP neighbor timer related configurations.
-
-
- holdtime - -
- integer - / required -
-
- -
Interval (in seconds) after not receiving a keepalive message that IOS declares a peer dead.
-
The range is from 0 to 65535.
-
-
- keepalive - -
- integer - / required -
-
- -
Frequency (in seconds) with which the device sends keepalive messages to its peer.
-
The range is from 0 to 65535.
-
-
- min_neighbor_holdtime - -
- integer -
-
- -
Interval (in seconds) specifying the minimum acceptable hold-time from a BGP neighbor.
-
The minimum acceptable hold-time must be less than, or equal to, the interval specified in the holdtime argument.
-
The range is from 0 to 65535.
-
-
- update_source - -
- string -
-
- -
Source of the routing updates.
-
-
- networks - -
- list - / elements=dictionary -
-
- -
Specify Networks to announce via BGP.
-
For operation replace, this option is mutually exclusive with networks option under address_family.
-
For operation replace, if the device already has an address family activated, this option is not allowed.
-
-
- masklen - -
- integer -
-
- -
Subnet mask length for the Network to announce(e.g, 8, 16, 24, etc.).
-
-
- prefix - -
- string - / required -
-
- -
Network ID to announce via BGP.
-
-
- route_map - -
- string -
-
- -
Route map to modify the attributes.
-
-
- router_id - -
- string -
-
- Default:
null
-
-
Configures the BGP routing process router-id value.
-
-
- operation - -
- string -
-
-
    Choices: -
  • merge ←
  • -
  • replace
  • -
  • override
  • -
  • delete
  • -
-
-
Specifies the operation to be performed on the BGP process configured on the device.
-
In case of merge, the input configuration will be merged with the existing BGP configuration on the device.
-
In case of replace, if there is a diff between the existing configuration and the input configuration, the existing configuration will be replaced by the input configuration for every option that has the diff.
-
In case of override, all the existing BGP configuration will be removed from the device and replaced with the input configuration.
-
In case of delete the existing BGP configuration will be removed from the device.
-
-
- - -Notes ------ - -.. note:: - - Tested against Cisco IOS Version 15.6(3)M2 - - - -Examples --------- - -.. code-block:: yaml - - - name: Configure global bgp as 64496 - cisco.ios.ios_bgp: - config: - bgp_as: 64496 - router_id: 192.0.2.1 - log_neighbor_changes: true - neighbors: - - neighbor: 203.0.113.5 - remote_as: 64511 - timers: - keepalive: 300 - holdtime: 360 - min_neighbor_holdtime: 360 - - neighbor: 198.51.100.2 - remote_as: 64498 - networks: - - prefix: 198.51.100.0 - route_map: RMAP_1 - - prefix: 192.0.2.0 - masklen: 23 - address_family: - - afi: ipv4 - safi: unicast - redistribute: - - protocol: ospf - id: 223 - metric: 10 - operation: merge - - - name: Configure BGP neighbors - cisco.ios.ios_bgp: - config: - bgp_as: 64496 - neighbors: - - neighbor: 192.0.2.10 - remote_as: 64496 - password: ansible - description: IBGP_NBR_1 - ebgp_multihop: 100 - timers: - keepalive: 300 - holdtime: 360 - min_neighbor_holdtime: 360 - - neighbor: 192.0.2.15 - remote_as: 64496 - description: IBGP_NBR_2 - ebgp_multihop: 150 - operation: merge - - - name: Configure root-level networks for BGP - cisco.ios.ios_bgp: - config: - bgp_as: 64496 - networks: - - prefix: 203.0.113.0 - masklen: 27 - route_map: RMAP_1 - - prefix: 203.0.113.32 - masklen: 27 - route_map: RMAP_2 - operation: merge - - - name: Configure BGP neighbors under address family mode - cisco.ios.ios_bgp: - config: - bgp_as: 64496 - address_family: - - afi: ipv4 - safi: unicast - neighbors: - - neighbor: 203.0.113.10 - activate: true - maximum_prefix: 250 - advertisement_interval: 120 - - neighbor: 192.0.2.15 - activate: true - route_reflector_client: true - operation: merge - - - name: Remove bgp as 64496 from config - cisco.ios.ios_bgp: - config: - bgp_as: 64496 - operation: delete - - - -Return Values -------------- -Common return values are documented `here `_, the following are the fields unique to this module: - -.. raw:: html - - - - - - - - - - - - -
KeyReturnedDescription
-
- commands - -
- list -
-
always -
The list of configuration mode commands to send to the device
-
-
Sample:
-
['router bgp 64496', 'bgp router-id 192.0.2.1', 'bgp log-neighbor-changes', 'neighbor 203.0.113.5 remote-as 64511', 'neighbor 203.0.113.5 timers 300 360 360', 'neighbor 198.51.100.2 remote-as 64498', 'network 198.51.100.0 route-map RMAP_1', 'network 192.0.2.0 mask 255.255.254.0', 'address-family ipv4', 'redistribute ospf 223 metric 70', 'exit-address-family']
-
-

- - -Status ------- - - -- This module will be removed in a release after 2023-08-24. *[deprecated]* -- For more information see `DEPRECATED`_. - - -Authors -~~~~~~~ - -- Nilashish Chakraborty (@NilashishC) diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_evpn_evi_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_evpn_evi_module.rst index 9c19c8cdf..777fafa72 100644 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_evpn_evi_module.rst +++ b/ansible_collections/cisco/ios/docs/cisco.ios.ios_evpn_evi_module.rst @@ -329,7 +329,7 @@ Notes ----- .. note:: - - Tested against Cisco IOS device with Version 17.13.01 on Cat9k on CML. + - Tested against Cisco IOS-XE device with Version 17.13.01 on Cat9k on CML. - This module works with connection ``network_cli``. See https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_evpn_global_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_evpn_global_module.rst index e9b71bbbd..4ee7194b6 100644 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_evpn_global_module.rst +++ b/ansible_collections/cisco/ios/docs/cisco.ios.ios_evpn_global_module.rst @@ -343,7 +343,7 @@ Notes ----- .. note:: - - Tested against Cisco IOS device with Version 17.13.01 on Cat9k on CML. + - Tested against Cisco IOS-XE device with Version 17.13.01 on Cat9k on CML. - This module works with connection ``network_cli``. See https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_l3_interfaces_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_l3_interfaces_module.rst index f75d03be8..c9195fc50 100644 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_l3_interfaces_module.rst +++ b/ansible_collections/cisco/ios/docs/cisco.ios.ios_l3_interfaces_module.rst @@ -51,6 +51,26 @@ Parameters + +
+ autostate + +
+ boolean +
+ + +
    Choices: +
  • no
  • +
  • yes
  • +
+ + +
Enable autostate determination for VLAN.
+ + + +
ipv4 @@ -234,6 +254,86 @@ Parameters
Configures the IP address as a secondary address.
+ + + + +
+ source_interface + +
+ dictionary +
+ + + + +
Enable IP processing without an explicit address
+ + + + + + + +
+ name + +
+ string +
+ + + + +
Interface name
+ + + + + + + +
+ point_to_point + +
+ boolean +
+ + +
    Choices: +
  • no
  • +
  • yes
  • +
+ + +
Enable point-to-point connection
+ + + + + + + +
+ poll + +
+ boolean +
+ + +
    Choices: +
  • no
  • +
  • yes
  • +
+ + +
Enable IP connected host polling
+ + + @@ -436,6 +536,27 @@ Parameters + + + + +
+ enable + +
+ boolean +
+ + +
    Choices: +
  • no
  • +
  • yes
  • +
+ + +
Enable IPv6 on interface
+ + @@ -563,6 +684,22 @@ Parameters + + + +
+ mac_address + +
+ string +
+ + + + +
Manually set interface MAC address.
+ + @@ -691,6 +828,13 @@ Examples - name: GigabitEthernet3.100 ipv4: - address: 192.168.0.3/24 + - name: Vlan901 + autostate: false + ipv4: + - source_interface: + name: Loopback1 + ipv6: + - enable: true state: merged # Task Output @@ -715,6 +859,10 @@ Examples # - ipv6 address fd5d:12c9:2201:1::1/64 # - interface GigabitEthernet3.100 # - ip address 192.168.0.3 255.255.255.0 + # - interface Vlan901 + # - ip unnumbered Loopback1 + # - ipv6 enable + # - no autostate # after: # - ipv4: # - dhcp: @@ -731,6 +879,13 @@ Examples # - address: 192.168.0.3/24 # - name: GigabitEthernet4 # - name: Loopback999 + # ipv4: + # - source_interface: + # name: Loopback1 + # ipv6: + # - enable: true + # autostate: false + # - name: Vlan901 # After state: # ------------ @@ -761,6 +916,11 @@ Examples # no ip address # shutdown # negotiation auto + # interface Vlan901 + # ip unnumbered Loopback1 + # ipv6 enable + # no autostate + # Using replaced diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_ntp_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_ntp_module.rst deleted file mode 100644 index 9979a45ae..000000000 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_ntp_module.rst +++ /dev/null @@ -1,291 +0,0 @@ -.. _cisco.ios.ios_ntp_module: - - -***************** -cisco.ios.ios_ntp -***************** - -**(deprecated, removed after 2024-01-01) Manages core NTP configuration.** - - -Version added: 1.0.0 - -.. contents:: - :local: - :depth: 1 - -DEPRECATED ----------- -:Removed in collection release after 2024-01-01 -:Why: Updated module released with more functionality. -:Alternative: ios_ntp_global - - - -Synopsis --------- -- Manages core NTP configuration. - - - - -Parameters ----------- - -.. raw:: html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterChoices/DefaultsComments
-
- acl - -
- string -
-
- -
ACL for peer/server access restricition.
-
-
- auth - -
- boolean -
-
-
    Choices: -
  • no ←
  • -
  • yes
  • -
-
-
Enable NTP authentication. Data type boolean.
-
-
- auth_key - -
- string -
-
- -
md5 NTP authentication key of tye 7.
-
-
- key_id - -
- string -
-
- -
auth_key id. Data type string
-
-
- logging - -
- boolean -
-
-
    Choices: -
  • no ←
  • -
  • yes
  • -
-
-
Enable NTP logs. Data type boolean.
-
-
- server - -
- string -
-
- -
Network address of NTP server.
-
-
- source_int - -
- string -
-
- -
Source interface for NTP packets.
-
-
- state - -
- string -
-
-
    Choices: -
  • present ←
  • -
  • absent
  • -
-
-
Manage the state of the resource.
-
-
- vrf - -
- string -
-
- -
VRF configuration for NTP servers
-
-
- - -Notes ------ - -.. note:: - - For more information on using Ansible to manage network devices see the :ref:`Ansible Network Guide ` - - For more information on using Ansible to manage Cisco devices see the `Cisco integration page `_. - - - -Examples --------- - -.. code-block:: yaml - - # Set new NTP server and source interface - - name: Example ntp play - cisco.ios.ios_ntp: - server: 10.0.255.10 - source_int: Loopback0 - logging: false - state: present - - # Remove NTP ACL and logging - - name: Example ntp play absent - cisco.ios.ios_ntp: - acl: NTP_ACL - logging: true - state: absent - - # Set NTP authentication - - name: Example ntp play auth - cisco.ios.ios_ntp: - key_id: 10 - auth_key: 15435A030726242723273C21181319000A - auth: true - state: present - - # Set new NTP configuration - - name: Example ntp play auth - cisco.ios.ios_ntp: - server: 10.0.255.10 - source_int: Loopback0 - acl: NTP_ACL - logging: true - vrf: mgmt - key_id: 10 - auth_key: 15435A030726242723273C21181319000A - auth: true - state: present - - - -Return Values -------------- -Common return values are documented `here `_, the following are the fields unique to this module: - -.. raw:: html - - - - - - - - - - - - -
KeyReturnedDescription
-
- commands - -
- list -
-
always -
command sent to the device
-
-
Sample:
-
['no ntp server 10.0.255.10', 'no ntp source Loopback0']
-
-

- - -Status ------- - - -- This module will be removed in a release after 2024-01-01. *[deprecated]* -- For more information see `DEPRECATED`_. - - -Authors -~~~~~~~ - -- Federico Olivieri (@Federico87) -- Joanie Sylvain (@JoanieAda) diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_user_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_user_module.rst index e06ea5631..b4b3957d8 100644 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_user_module.rst +++ b/ansible_collections/cisco/ios/docs/cisco.ios.ios_user_module.rst @@ -513,6 +513,17 @@ Examples .. code-block:: yaml + # Using state: present + + # Before state: + # ------------- + + # router-ios#show running-config | section ^username + # username testuser privilege 15 password 0 password + + # Present state create a new user play: + # ------------------------------------- + - name: Create a new user cisco.ios.ios_user: name: ansible @@ -520,6 +531,37 @@ Examples sshkey: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}" state: present + # Task Output + # ----------- + + # commands: + # - ip ssh pubkey-chain + # - username ansible + # - key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora + # - exit + # - exit + # - username ansible nopassword + + # After state: + # ------------ + + # router-ios#show running-config | section username + # username testuser privilege 15 password 0 password + # username ansible nopassword + # username ansible + # key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora + + # Using state: present + + # Before state: + # ------------- + + # router-ios#show running-config | section ^username + # username testuser privilege 15 password 0 password + + # Present state create a new user with multiple keys play: + # -------------------------------------------------------- + - name: Create a new user with multiple keys cisco.ios.ios_user: name: ansible @@ -528,18 +570,109 @@ Examples - "{{ lookup('file', '~/path/to/public_key') }}" state: present + # Task Output + # ----------- + + # commands: + # - ip ssh pubkey-chain + # - username ansible + # - key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora + # - key-hash ssh-rsa 1985673DCF7FA9A0F374BB97DC2ABB27 test@fedora + # - exit + # - exit + + # After state: + # ------------ + + # router-ios#show running-config | section username + # username testuser privilege 15 password 0 password + # username ansible + # key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora + # key-hash ssh-rsa 1985673DCF7FA9A0F374BB97DC2ABB27 test@fedora + + # Using Purge: true + + # Before state: + # ------------- + + # router-ios#show running-config | section ^username + # username admin privilege 15 password 0 password + # username testuser privilege 15 password 0 password + # username ansible nopassword + # username ansible + # key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora + + # Purge all users except admin play: + # ---------------------------------- + - name: Remove all users except admin cisco.ios.ios_user: purge: true + # Task Output + # ----------- + + # commands: + # - no username testuser + # - no username ansible + # - ip ssh pubkey-chain + # - no username ansible + # - exit + + # After state: + # ------------ + + # router-ios#show running-config | section username + # username admin privilege 15 password 0 password + + # Using Purge: true + + # Before state: + # ------------- + + # router-ios#show running-config | section ^username + # username admin privilege 15 password 0 password + # username testuser privilege 15 password 0 password1 + # username testuser1 privilege 15 password 0 password2 + # username ansible nopassword + + # Purge all users except admin and these listed users play: + # --------------------------------------------------------- + - name: Remove all users except admin and these listed users cisco.ios.ios_user: aggregate: + - name: testuser - name: testuser1 - - name: testuser2 - - name: testuser3 purge: true + # Task Output + # ----------- + + # commands: + # - no username ansible + + # After state: + # ------------ + + # router-ios#show running-config | section username + # username admin privilege 15 password 0 password + # username testuser privilege 15 password 0 password1 + # username testuser1 privilege 15 password 0 password2 + + # Using state: present + + # Before state: + # ------------- + + # router-ios#show running-config | section ^username + # username admin privilege 15 password 0 password + # username netop password 0 password1 + # username netend password 0 password2 + + # Present state set multiple users to privilege level 15 play: + # ------------------------------------------------------------ + - name: Set multiple users to privilege level 15 cisco.ios.ios_user: aggregate: @@ -548,38 +681,135 @@ Examples privilege: 15 state: present - - name: Set user view/role - cisco.ios.ios_user: - name: netop - view: network-operator - state: present + # Task Output + # ----------- + + # commands: + # - username netop privilege 15 + # - username netend privilege 15 + + # After state: + # ------------ + + # router-ios#show running-config | section username + # username admin privilege 15 password 0 password + # username netop privilege 15 password 0 password1 + # username netend privilege 15 password 0 password2 + + # Using state: present + + # Before state: + # ------------- + + # router-ios#show running-config | section ^username + # username admin privilege 15 password 0 password + # username netop privilege 15 password 0 oldpassword + + # Present state Change Password for User netop play: + # -------------------------------------------- - name: Change Password for User netop cisco.ios.ios_user: name: netop - configured_password: "{{ new_password }}" + configured_password: "newpassword" + password_type: password update_password: always state: present - - name: Aggregate of users + # Task Output + # ----------- + + # commands: + # - username netop password newpassword + + # After state: + # ------------ + + # router-ios#show running-config | section username + # username admin privilege 15 password 0 password + # username netop privilege 15 password 0 newpassword + + # Using state: present + + # Before state: + # ------------- + + # router-ios#show running-config | section ^username + # username admin privilege 15 password 0 password + # username netop privilege 15 password 0 password + # username netend privilege 15 password 0 password + + # Present state set user view/role for users play: + # -------------------------------------------- + + - name: Set user view/role for users cisco.ios.ios_user: aggregate: - - name: ansibletest2 - - name: ansibletest3 + - name: netop + - name: netend view: network-admin + state: present - - name: Add a user specifying password type - cisco.ios.ios_user: - name: ansibletest4 - configured_password: "{{ new_password }}" - password_type: password + # Task Output + # ----------- - - name: Add a user with MD5 hashed password + # commands: + # - username netop view network-admin + # - username netend view network-admin + + # After state: + # ------------ + + # router-ios#show running-config | section username + # username admin privilege 15 password 0 password + # username netop privilege 15 view network-admin password 0 password + # username netend privilege 15 view network-admin password 0 password + + # Using state: present + + # Before state: + # ------------- + + # router-ios#show running-config | section ^username + # username admin privilege 15 password 0 password + + # Present state create a new user with hashed password play: + # -------------------------------------------------------------- + + - name: Create a new user with hashed password cisco.ios.ios_user: name: ansibletest5 hashed_password: - type: 5 - value: $3$8JcDilcYgFZi.yz4ApaqkHG2.8/ + type: 9 + value: "thiswillbereplacedwithhashedpassword" + state: present + + # Task Output + # ----------- + + # commands: + # - username ansibletest5 secret 9 thiswillbereplacedwithhashedpassword + + # After state: + # ------------ + + # router-ios#show running-config | section username + # username admin privilege 15 password 0 password + # username ansibletest5 secret 9 thiswillbereplacedwithhashedpassword + + # Using state: absent + + # Before state: + # ------------- + + # router-ios#show running-config | section ^username + # username admin privilege 15 password 0 password + # username ansibletest1 password 0 password + # username ansibletest2 secret 9 thiswillbereplacedwithhashedpassword + # username ansibletest3 password 5 thistoowillbereplacedwithhashedpassword + + # Absent state remove multiple users play: + # ---------------------------------------- - name: Delete users with aggregate cisco.ios.ios_user: @@ -589,6 +819,20 @@ Examples - name: ansibletest3 state: absent + # Task Output + # ----------- + + # commands: + # - no username ansibletest1 + # - no username ansibletest2 + # - no username ansibletest3 + + # After state: + # ------------ + + # router-ios#show running-config | section username + # username admin privilege 15 password 0 password + Return Values diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_vlans_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_vlans_module.rst index 598486c57..78fa5ec97 100644 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_vlans_module.rst +++ b/ansible_collections/cisco/ios/docs/cisco.ios.ios_vlans_module.rst @@ -270,25 +270,6 @@ Parameters - - -
- configuration - -
- boolean -
- - -
    Choices: -
  • no
  • -
  • yes
  • -
- - -
When set to true, deals with vlan configuration CLIs
- -
@@ -323,6 +304,7 @@ Parameters
  • deleted
  • rendered
  • gathered
  • +
  • purged
  • parsed
  • @@ -331,7 +313,7 @@ Parameters
    The states rendered, gathered and parsed does not perform any change on the device.
    The state rendered will transform the configuration in config option to platform specific CLI commands which will be returned in the rendered key within the result. For state rendered active connection to remote host is not required.
    The state gathered will fetch the running configuration from device and transform it into structured data in the format as per the resource module argspec and the value is returned in the gathered key within the result.
    -
    The state parsed reads the configuration from running_config option and transforms it into JSON format as per the resource module parameters and the value is returned in the parsed key within the result. The value of running_config option should be the same format as the output of command show running-config | include ip route|ipv6 route executed on device. For state parsed active connection to remote host is not required.
    +
    The state parsed reads the configuration from running_config option and transforms it into JSON format as per the resource module parameters and the value is returned in the parsed key within the result. The value of running_config option should be the same format as the output of commands show vlan and show running-config | sec ^vlan configuration .+ executed on device. For state parsed active connection to remote host is not required.
    @@ -342,7 +324,7 @@ Notes ----- .. note:: - - Tested against Cisco IOSl2 device with Version 15.2 on VIRL. + - Tested against Cisco IOS-XE device with Version 17.13.01 on Cat9k on CML. - Starting from v2.5.0, this module will fail when run against Cisco IOS devices that do not support VLANs. The offline states (``rendered`` and ``parsed``) will work as expected. - This module works with connection ``network_cli``. See https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html @@ -424,7 +406,7 @@ Examples # ------------------------------------------------------------------------------ # 10 - # Using merged (configuration: True) + # Using merged # Before state: # ------------- @@ -446,7 +428,6 @@ Examples - vlan_id: 901 member: vni: 50901 - configuration: true state: merged # After state: @@ -525,7 +506,7 @@ Examples # 1005 trnet 101005 1500 - - - ibm - 0 0 - # Using overridden (configuration: True) + # Using overridden # Before state: # ------------- @@ -551,7 +532,6 @@ Examples member: vni: 10101 evi: 101 - configuration: true state: overridden # After state: @@ -723,7 +703,7 @@ Examples # 1004 fdnet 101004 1500 - - - ieee - 0 0 # 1005 trnet 101005 1500 - - - ibm - 0 0 - # Using deleted (configuration: True) + # Using deleted # Before state: # ------------- @@ -742,13 +722,13 @@ Examples cisco.ios.ios_vlans: config: - vlan_id: 101 - configuration: true state: deleted # After state: # ------------- # # Leaf-01#show run nve | sec ^vlan configuration + # vlan configuration 101 # vlan configuration 102 # member evpn-instance 102 vni 10102 # vlan configuration 201 @@ -813,7 +793,7 @@ Examples # 1004 fdnet 101004 1500 - - - ieee - 0 0 # 1005 trnet 101005 1500 - - - ibm - 0 0 - # Using Deleted without any config passed (configuration: True) + # Using Deleted without any config passed # "(NOTE: This will delete all of configured vlans attributes)" # Before state: @@ -833,7 +813,6 @@ Examples - name: Delete attributes of ALL VLANs cisco.ios.ios_vlans: - configuration: true state: deleted # After state: @@ -847,7 +826,7 @@ Examples # no vlan configuration 901 # no vlan configuration 902 - # Using Gathered (configuration: True) + # Using gathered, vlan configuration only # Before state: # ------------- @@ -866,8 +845,6 @@ Examples - name: Gather listed vlans with provided configurations cisco.ios.ios_vlans: - config: - configuration: true state: gathered # Module Execution Result: @@ -957,9 +934,9 @@ Examples # "shutdown" # ] - # Using Rendered (configuration: True) + # Using Rendered - - name: Render the commands for provided configuration + - name: Render the commands for provided configuration cisco.ios.ios_vlans: config: - vlan_id: 101 @@ -1076,7 +1053,7 @@ Examples # } # ] - # Using Parsed (configuration: True) + # Using Parsed Vlan configuration only # File: parsed.cfg # ---------------- @@ -1091,7 +1068,6 @@ Examples - name: Parse the commands for provided configuration cisco.ios.ios_vlans: running_config: "{{ lookup('file', './parsed.cfg') }}" - configuration: true state: parsed # Module Execution Result: @@ -1120,6 +1096,128 @@ Examples # } # ] + # Using Parsed, Vlan and vlan configuration + + # File: parsed.cfg + # ---------------- + # + # VLAN Name Status Ports + # ---- -------------------------------- --------- ------------------------------- + # 1 default active Gi0/1, Gi0/2 + # 101 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + # Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + # Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + # Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + # Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + # 150 VLAN0150 active + # 888 a_very_long_vlan_name_a_very_long_vlan_name + # active + # 1002 fddi-default act/unsup + # 1003 trcrf-default act/unsup + # 1004 fddinet-default act/unsup + # 1005 trbrf-default act/unsup + # + # VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + # ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + # 1 enet 100001 1500 - - - - - 0 0 + # 101 enet 100101 610 - - - - - 0 0 + # 150 enet 100150 1500 - - - - - 0 0 + # 888 enet 100888 1500 - - - - - 0 0 + # 1002 fddi 101002 1500 - - - - - 0 0 + # 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + # 1004 fdnet 101004 1500 - - - ieee - 0 0 + # 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + # + # + # VLAN AREHops STEHops Backup CRF + # ---- ------- ------- ---------- + # 1003 7 7 off + # + # Remote SPAN VLANs + # ------------------------------------------------------------------------------ + # 150 + # + # Primary Secondary Type Ports + # ------- --------- ----------------- ------------------------------------------ + # + # vlan configuration 101 + # member evpn-instance 101 vni 10101 + # vlan configuration 102 + # member evpn-instance 102 vni 10102 + # vlan configuration 901 + # member vni 50901 + + - name: Parse the commands for provided configuration + cisco.ios.ios_vlans: + running_config: "{{ lookup('file', './parsed.cfg') }}" + state: parsed + + # Module Execution Result: + # ------------------------ + # + # "parsed": [ + # { + # "name": "default", + # "vlan_id": 1, + # "state": "active", + # "shutdown": "disabled", + # "mtu": 1500, + # }, + # { + # "name": "RemoteIsInMyName", + # "vlan_id": 101, + # "state": "active", + # "shutdown": "enabled", + # "mtu": 610, + # "member": {"evi": 101, "vni": 10101}, + # }, + # { + # "name": "VLAN0150", + # "vlan_id": 150, + # "state": "active", + # "shutdown": "disabled", + # "mtu": 1500, + # "remote_span": True, + # }, + # { + # "name": "a_very_long_vlan_name_a_very_long_vlan_name", + # "vlan_id": 888, + # "state": "active", + # "shutdown": "disabled", + # "mtu": 1500, + # }, + # { + # "name": "fddi-default", + # "vlan_id": 1002, + # "state": "active", + # "shutdown": "enabled", + # "mtu": 1500, + # }, + # { + # "name": "trcrf-default", + # "vlan_id": 1003, + # "state": "active", + # "shutdown": "enabled", + # "mtu": 4472, + # }, + # { + # "name": "fddinet-default", + # "vlan_id": 1004, + # "state": "active", + # "shutdown": "enabled", + # "mtu": 1500, + # }, + # { + # "name": "trbrf-default", + # "vlan_id": 1005, + # "state": "active", + # "shutdown": "enabled", + # "mtu": 4472, + # }, + # {"vlan_id": 102, "member": {"evi": 102, "vni": 10102}}, + # {"vlan_id": 901, "member": {"vni": 50901}}, + # ] + Return Values @@ -1140,16 +1238,15 @@ Common return values are documented `here after
    - list + dictionary
    when changed -
    The configuration as structured data after module completion.
    +
    The resulting configuration after module execution.

    Sample:
    -
    The configuration returned will always be in the same format - of the parameters above.
    +
    This output will always be in the same format as the module argspec.
    @@ -1158,16 +1255,15 @@ Common return values are documented `here before
    - list + dictionary
    - always + when state is merged, replaced, overridden, deleted or purged -
    The configuration as structured data prior to module invocation.
    +
    The configuration prior to the module execution.

    Sample:
    -
    The configuration returned will always be in the same format - of the parameters above.
    +
    This output will always be in the same format as the module argspec.
    @@ -1179,12 +1275,63 @@ Common return values are documented `here list - always + when state is merged, replaced, overridden, deleted or purged
    The set of commands pushed to the remote device.

    Sample:
    -
    ['vlan 20', 'name vlan_20', 'mtu 600', 'remote-span']
    +
    ['vlan configuration 202', 'state active', 'remote-span']
    + + + + +
    + gathered + +
    + list +
    + + when state is gathered + +
    Facts about the network resource gathered from the remote device as structured data.
    +
    +
    Sample:
    +
    This output will always be in the same format as the module argspec.
    + + + + +
    + parsed + +
    + list +
    + + when state is parsed + +
    The device native config provided in running_config option parsed into structured data as per module argspec.
    +
    +
    Sample:
    +
    This output will always be in the same format as the module argspec.
    + + + + +
    + rendered + +
    + list +
    + + when state is rendered + +
    The provided configuration in the task rendered in device-native format (offline).
    +
    +
    Sample:
    +
    ['vlan configuration 202', 'member evpn-instance 202 vni 10202', 'vlan 200']
    @@ -1199,3 +1346,5 @@ Authors ~~~~~~~ - Sumit Jaiswal (@justjais) +- Sagar Paul (@KB-perByte) +- Padmini Priyadarshini Sivaraj (@PadminiSivaraj) diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_vrf_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_vrf_module.rst index 9223586e0..799399597 100644 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_vrf_module.rst +++ b/ansible_collections/cisco/ios/docs/cisco.ios.ios_vrf_module.rst @@ -29,12 +29,12 @@ Parameters - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - diff --git a/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_logging_module.rst b/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_logging_module.rst deleted file mode 100644 index c75f0dc7d..000000000 --- a/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_logging_module.rst +++ /dev/null @@ -1,538 +0,0 @@ -.. _cisco.iosxr.iosxr_logging_module: - - -************************* -cisco.iosxr.iosxr_logging -************************* - -**(deprecated, removed after 2023-08-01) Configuration management of system logging services on network devices** - - -Version added: 1.0.0 - -.. contents:: - :local: - :depth: 1 - -DEPRECATED ----------- -:Removed in collection release after 2023-08-01 -:Why: Updated module released with more functionality. -:Alternative: iosxr_logging_global - - - -Synopsis --------- -- This module provides declarative management configuration of system logging (syslog) on Cisco IOS XR devices. - - - -Requirements ------------- -The below requirements are needed on the host that executes this module. - -- ncclient >= 0.5.3 when using netconf -- lxml >= 4.1.1 when using netconf - - -Parameters ----------- - -.. raw:: html - -
    ParameterParameter Choices/Defaults Comments
    +
    address_family @@ -48,9 +48,303 @@ Parameters
    The list of address families with MDT parameters to be configured on the remote IOS device.
    +
    + afi + +
    + string +
    +
    +
      Choices: +
    • ipv4
    • +
    • ipv6
    • +
    +
    +
    Address family identifier.
    +
    +
    + mdt + +
    + dictionary +
    +
    + +
    MDT parameters.
    +
    +
    + auto_discovery + +
    + dictionary +
    +
    + +
    Auto-discovery parameters.
    +
    +
    + vxlan + +
    + dictionary +
    +
    + +
    Vxlan parameters.
    +
    +
    + enable + +
    + boolean +
    +
    +
      Choices: +
    • no
    • +
    • yes
    • +
    +
    +
    Enable VXLAN.
    +
    +
    + inter_as + +
    + boolean +
    +
    +
      Choices: +
    • no
    • +
    • yes
    • +
    +
    +
    Enable inter-as.
    +
    +
    + data + +
    + dictionary +
    +
    + +
    Parameters for data option.
    +
    +
    + threshold + +
    + integer +
    +
    + +
    Threshold value.
    +
    +
    + vxlan_mcast_group + +
    + string +
    +
    + +
    VXLAN multicast group value.
    +
    +
    + default + +
    + dictionary +
    +
    + +
    Parameters for default option.
    +
    +
    + vxlan_mcast_group + +
    + string +
    +
    + +
    VXLAN multicast group value.
    +
    +
    + overlay + +
    + dictionary +
    +
    + +
    Parameters for overlay option.
    +
    +
    + use_bgp + +
    + dictionary +
    +
    + +
    parameters for BGP option.
    +
    +
    + enable + +
    + boolean +
    +
    +
      Choices: +
    • no
    • +
    • yes
    • +
    +
    +
    Enable use BGP.
    +
    +
    + spt_only + +
    + boolean +
    +
    +
      Choices: +
    • no
    • +
    • yes
    • +
    +
    +
    Enable SPT only.
    +
    associated_interfaces @@ -66,7 +360,7 @@ Parameters
    +
    delay @@ -82,7 +376,7 @@ Parameters
    +
    description @@ -97,7 +391,7 @@ Parameters
    +
    interfaces @@ -113,7 +407,7 @@ Parameters
    +
    name @@ -128,7 +422,7 @@ Parameters
    +
    purge @@ -147,7 +441,7 @@ Parameters
    +
    rd @@ -162,7 +456,7 @@ Parameters
    +
    route_both @@ -178,7 +472,7 @@ Parameters
    +
    route_both_ipv4 @@ -194,7 +488,7 @@ Parameters
    +
    route_both_ipv6 @@ -210,7 +504,7 @@ Parameters
    +
    route_export @@ -226,7 +520,7 @@ Parameters
    +
    route_export_ipv4 @@ -242,7 +536,7 @@ Parameters
    +
    route_export_ipv6 @@ -258,7 +552,7 @@ Parameters
    +
    route_import @@ -274,7 +568,7 @@ Parameters
    +
    route_import_ipv4 @@ -290,7 +584,7 @@ Parameters
    +
    route_import_ipv6 @@ -306,7 +600,7 @@ Parameters
    +
    state @@ -325,7 +619,7 @@ Parameters
    +
    vrfs diff --git a/ansible_collections/cisco/ios/docs/cisco.ios.ios_vxlan_vtep_module.rst b/ansible_collections/cisco/ios/docs/cisco.ios.ios_vxlan_vtep_module.rst index 3f1abc5f5..6359a2afa 100644 --- a/ansible_collections/cisco/ios/docs/cisco.ios.ios_vxlan_vtep_module.rst +++ b/ansible_collections/cisco/ios/docs/cisco.ios.ios_vxlan_vtep_module.rst @@ -391,7 +391,7 @@ Notes ----- .. note:: - - Tested against Cisco IOS device with Version 17.13.01 on Cat9k on CML. + - Tested against Cisco IOS-XE device with Version 17.13.01 on Cat9k on CML. - This module works with connection ``network_cli``. See https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html diff --git a/ansible_collections/cisco/ios/meta/runtime.yml b/ansible_collections/cisco/ios/meta/runtime.yml index 4a4bd852d..c7d437cb8 100644 --- a/ansible_collections/cisco/ios/meta/runtime.yml +++ b/ansible_collections/cisco/ios/meta/runtime.yml @@ -1,128 +1,5 @@ --- plugin_routing: - action: - acl_interfaces: - redirect: cisco.ios.ios - acls: - redirect: cisco.ios.ios - banner: - redirect: cisco.ios.ios - bgp: - redirect: cisco.ios.ios - bgp_global: - redirect: cisco.ios.ios - command: - redirect: cisco.ios.ios - config: - redirect: cisco.ios.ios - evpn_global: - redirect: cisco.ios.ios - evpn_evi: - redirect: cisco.ios.ios - facts: - redirect: cisco.ios.ios - hostname: - redirect: cisco.ios.ios - interfaces: - redirect: cisco.ios.ios - ios_acl_interfaces: - redirect: cisco.ios.ios - ios_acls: - redirect: cisco.ios.ios - ios_banner: - redirect: cisco.ios.ios - ios_bgp: - redirect: cisco.ios.ios - ios_bgp_global: - redirect: cisco.ios.ios - ios_command: - redirect: cisco.ios.ios - ios_config: - redirect: cisco.ios.ios - ios_evpn_global: - redirect: cisco.ios.ios - ios_evpn_evi: - redirect: cisco.ios.ios - ios_facts: - redirect: cisco.ios.ios - ios_hostname: - redirect: cisco.ios.ios - ios_linkagg: - redirect: cisco.ios.ios - ios_lldp: - redirect: cisco.ios.ios - ios_logging_global: - redirect: cisco.ios.ios - ios_ntp: - redirect: cisco.ios.ios - ios_ntp_global: - redirect: cisco.ios.ios - ios_ospfv2: - redirect: cisco.ios.ios - ios_ping: - redirect: cisco.ios.ios - ios_prefix_lists: - redirect: cisco.ios.ios - ios_route_maps: - redirect: cisco.ios.ios - ios_snmp_server: - redirect: cisco.ios.ios - ios_static_routes: - redirect: cisco.ios.ios - ios_system: - redirect: cisco.ios.ios - ios_vxlan_vtep: - redirect: cisco.ios.ios - l2_interfaces: - redirect: cisco.ios.ios - l3_interfaces: - redirect: cisco.ios.ios - lacp: - redirect: cisco.ios.ios - lacp_interfaces: - redirect: cisco.ios.ios - lag_interfaces: - redirect: cisco.ios.ios - linkagg: - redirect: cisco.ios.ios - lldp: - redirect: cisco.ios.ios - lldp_global: - redirect: cisco.ios.ios - lldp_interfaces: - redirect: cisco.ios.ios - logging: - redirect: cisco.ios.ios - logging_global: - redirect: cisco.ios.ios - ntp: - redirect: cisco.ios.ios - ntp_global: - redirect: cisco.ios.ios - ospfv2: - redirect: cisco.ios.ios - ping: - redirect: cisco.ios.ios - prefix_lists: - redirect: cisco.ios.ios - route_maps: - redirect: cisco.ios.ios - service: - redirect: cisco.ios.ios - snmp_server: - redirect: cisco.ios.ios - static_routes: - redirect: cisco.ios.ios - system: - redirect: cisco.ios.ios - user: - redirect: cisco.ios.ios - vlans: - redirect: cisco.ios.ios - vrf: - redirect: cisco.ios.ios - vxlan_vtep: - redirect: cisco.ios.ios modules: acl_interfaces: redirect: cisco.ios.ios_acl_interfaces @@ -130,11 +7,6 @@ plugin_routing: redirect: cisco.ios.ios_acls banner: redirect: cisco.ios.ios_banner - bgp: - deprecation: - removal_date: "2023-08-24" - warning_text: See the plugin documentation for more details - redirect: cisco.ios.ios_bgp bgp_global: redirect: cisco.ios.ios_bgp_global command: @@ -151,10 +23,6 @@ plugin_routing: redirect: cisco.ios.ios_hostname interfaces: redirect: cisco.ios.ios_interfaces - ios_bgp: - deprecation: - removal_date: "2023-08-24" - warning_text: See the plugin documentation for more details ios_linkagg: deprecation: removal_date: "2024-06-01" @@ -163,10 +31,6 @@ plugin_routing: deprecation: removal_date: "2024-06-01" warning_text: See the plugin documentation for more details - ios_ntp: - deprecation: - removal_date: "2024-01-01" - warning_text: See the plugin documentation for more details l2_interfaces: redirect: cisco.ios.ios_l2_interfaces l3_interfaces: @@ -193,11 +57,6 @@ plugin_routing: redirect: cisco.ios.ios_lldp_interfaces logging_global: redirect: cisco.ios.ios_logging_global - ntp: - deprecation: - removal_date: "2024-01-01" - warning_text: See the plugin documentation for more details - redirect: cisco.ios.ios_ntp ntp_global: redirect: cisco.ios.ios_ntp_global ospfv2: @@ -224,4 +83,4 @@ plugin_routing: redirect: cisco.ios.ios_vrf vxlan_vtep: redirect: cisco.ios.ios_vxlan_vtep -requires_ansible: ">=2.9.10" +requires_ansible: ">=2.14.0" diff --git a/ansible_collections/cisco/ios/platform_guide.rst b/ansible_collections/cisco/ios/platform_guide.rst new file mode 100644 index 000000000..036804a04 --- /dev/null +++ b/ansible_collections/cisco/ios/platform_guide.rst @@ -0,0 +1,94 @@ +.. _ios_platform_options: + +*************************************** +IOS Platform Options +*************************************** + +The `Cisco IOS `_ collection supports Enable Mode (Privilege Escalation). This page offers details on how to use Enable Mode on IOS in Ansible. + +.. contents:: + :local: + +Connections available +================================================================================ + +.. table:: + :class: documentation-table + + ==================== ========================================== + .. CLI + ==================== ========================================== + Protocol SSH + + Credentials uses SSH keys / SSH-agent if present + + accepts ``-u myuser -k`` if using password + + Indirect Access by a bastion (jump host) + + Connection Settings ``ansible_connection: ansible.netcommon.network_cli`` + + Enable_mode supported: use ``ansible_become: true`` with + ``ansible_become_method: enable`` and ``ansible_become_password:`` + + Returned Data Format ``stdout[0].`` + ==================== ========================================== + +The ``ansible_connection: local`` has been deprecated. Please use ``ansible_connection: ansible.netcommon.network_cli`` instead. + +Using CLI in Ansible +==================== + +Example CLI ``group_vars/ios.yml`` +---------------------------------- + +.. code-block:: yaml + + ansible_connection: ansible.netcommon.network_cli + ansible_network_os: cisco.ios.ios + ansible_user: myuser + ansible_password: !vault... + ansible_become: true + ansible_become_method: enable + ansible_become_password: !vault... + ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q bastion01"' + + +- If you are using SSH keys (including an ssh-agent) you can remove the ``ansible_password`` configuration. +- If you are accessing your host directly (not through a bastion/jump host) you can remove the ``ansible_ssh_common_args`` configuration. +- If you are accessing your host through a bastion/jump host, you cannot include your SSH password in the ``ProxyCommand`` directive. To prevent secrets from leaking out (for example in ``ps`` output), SSH does not support providing passwords through environment variables. + +Example CLI task +---------------- + +.. code-block:: yaml + + - name: Backup current switch config (ios) + cisco.ios.ios_config: + backup: yes + register: backup_ios_location + when: ansible_network_os == 'cisco.ios.ios' + +Warning +-------- +Never store passwords in plain text. We recommend using SSH keys to authenticate SSH connections. Ansible supports ssh-agent to manage your SSH keys. If you must use passwords to authenticate SSH connections, we recommend encrypting them with Ansible Vault. + +Cisco IOS-XE platform support matrix +=================================== + +The following platforms and software versions have been certified by Cisco to work with this version of Ansible. + +.. table:: Platform / Software Minimum Requirements + :align: center + + =================== ===================== + Supported Platforms Minimum IOS-XE Version + =================== ===================== + Cisco IOS-XE 9000 17.03.2 and later + Cisco IOS-XE 8000 17.03.6 and later + =================== ===================== + +Notes +----- + +`Setting Timeout Option `_ diff --git a/ansible_collections/cisco/ios/plugins/action/ntp.py b/ansible_collections/cisco/ios/plugins/action/ntp.py deleted file mode 100644 index 38c0ed229..000000000 --- a/ansible_collections/cisco/ios/plugins/action/ntp.py +++ /dev/null @@ -1,56 +0,0 @@ -# -# (c) 2016 Red Hat Inc. -# -# 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 . -# -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - - -from ansible.utils.display import Display -from ansible_collections.ansible.netcommon.plugins.action.network import ( - ActionModule as ActionNetworkModule, -) - - -display = Display() - - -class ActionModule(ActionNetworkModule): - def run(self, tmp=None, task_vars=None): - del tmp # tmp no longer has any effect - - module_name = self._task.action.split(".")[-1] - self._config_module = True if module_name in ["ios_config", "config"] else False - persistent_connection = self._play_context.connection.split(".")[-1] - warnings = [] - - if persistent_connection != "network_cli": - return { - "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, - } - - result = super(ActionModule, self).run(task_vars=task_vars) - if warnings: - if "warnings" in result: - result["warnings"].extend(warnings) - else: - result["warnings"] = warnings - return result diff --git a/ansible_collections/cisco/ios/plugins/cliconf/ios.py b/ansible_collections/cisco/ios/plugins/cliconf/ios.py index be62c3724..324b7f000 100644 --- a/ansible_collections/cisco/ios/plugins/cliconf/ios.py +++ b/ansible_collections/cisco/ios/plugins/cliconf/ios.py @@ -180,6 +180,13 @@ class Cliconf(CliconfBase): return self.send_command(cmd) + @enable_mode + def restore(self, filename=None, path=""): + if not filename: + raise ValueError("'file_name' value is required for restore") + cmd = f"configure replace {path}{filename} force" + return self.send_command(cmd) + def get_diff( self, candidate=None, diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/bgp_global/bgp_global.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/bgp_global/bgp_global.py index 21bb051c3..6e82c99c2 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/bgp_global/bgp_global.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/bgp_global/bgp_global.py @@ -163,6 +163,20 @@ class Bgp_globalArgs(object): # pylint: disable=R0903 "route_map": {"type": "str"}, }, }, + "default": { + "type": "dict", + "apply_defaults": True, + "options": { + "ipv4_unicast": {"type": "bool", "default": True}, + "route_target": { + "type": "dict", + "apply_defaults": True, + "options": { + "filter": {"type": "bool", "default": True}, + }, + }, + }, + }, "deterministic_med": {"type": "bool"}, "dmzlink_bw": {"type": "bool"}, "enforce_first_as": {"type": "bool"}, diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/l3_interfaces/l3_interfaces.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/l3_interfaces/l3_interfaces.py index 455261409..82ae98ee6 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/l3_interfaces/l3_interfaces.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/l3_interfaces/l3_interfaces.py @@ -36,6 +36,8 @@ class L3_interfacesArgs(object): # pylint: disable=R0903 "type": "list", "elements": "dict", "options": { + "autostate": {"type": "bool"}, + "mac_address": {"type": "str"}, "name": {"type": "str", "required": True}, "ipv4": { "type": "list", @@ -54,6 +56,14 @@ class L3_interfacesArgs(object): # pylint: disable=R0903 }, }, "pool": {"type": "str"}, + "source_interface": { + "type": "dict", + "options": { + "name": {"type": "str"}, + "poll": {"type": "bool"}, + "point_to_point": {"type": "bool"}, + }, + }, }, }, "ipv6": { @@ -72,6 +82,7 @@ class L3_interfacesArgs(object): # pylint: disable=R0903 "rapid_commit": {"type": "bool"}, }, }, + "enable": {"type": "bool"}, "anycast": {"type": "bool"}, "cga": {"type": "bool"}, "eui": {"type": "bool"}, diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/vlans/vlans.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/vlans/vlans.py index 9db593dcc..65e631817 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/vlans/vlans.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/argspec/vlans/vlans.py @@ -51,7 +51,10 @@ class VlansArgs(object): "private_vlan": { "type": "dict", "options": { - "type": {"type": "str", "choices": ["primary", "community", "isolated"]}, + "type": { + "type": "str", + "choices": ["primary", "community", "isolated"], + }, "associated": {"type": "list", "elements": "int"}, }, }, @@ -65,7 +68,6 @@ class VlansArgs(object): }, "type": "list", }, - "configuration": {"type": "bool"}, "running_config": {"type": "str"}, "state": { "choices": [ @@ -75,6 +77,7 @@ class VlansArgs(object): "deleted", "rendered", "parsed", + "purged", "gathered", ], "default": "merged", diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/acls/acls.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/acls/acls.py index 164c75c40..f604e4360 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/acls/acls.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/acls/acls.py @@ -119,6 +119,16 @@ class Acls(ResourceModule): for wname, wentry in iteritems(wplists): hentry = hplists.pop(wname, {}) acl_type = wentry["acl_type"] if wentry.get("acl_type") else hentry.get("acl_type") + # If ACLs type is different between existing and wanted ACL, we need first remove it + if acl_type != hentry.get("acl_type", acl_type): + self.commands.append( + "no " + self.acl_name_cmd(wname, afi, hentry.get("acl_type", "")), + ) + hentry.pop( + "aces", + {}, + ) # We remove ACEs because we have previously add a command to suppress completely the ACL + begin = len(self.commands) # to determine the index for acl command self._compare_aces( wentry.pop("aces", {}), @@ -159,20 +169,22 @@ class Acls(ResourceModule): else: return {} + # case 1 - loop on want and compare with have data here for wseq, wentry in iteritems(want): hentry = have.pop(wseq, {}) rem_hentry, rem_wentry = {}, {} - if hentry: + if hentry: # if there is have information with same sequence + # the protocol options are processed here hentry = self.sanitize_protocol_options(wentry, hentry) - if hentry != wentry: # will let in if ace is same but remarks is not same - if hentry: + if hentry != wentry: # if want and have is different + if hentry: # separate remarks from have in an ace entry rem_hentry["remarks"] = pop_remark(hentry, afi) - if wentry: + if wentry: # separate remarks from want in an ace entry rem_wentry["remarks"] = pop_remark(wentry, afi) - if hentry: + if hentry: # have aces processing starts here if self.state == "merged": self._module.fail_json( msg="Cannot update existing sequence {0} of ACLs {1} with state merged." @@ -180,55 +192,78 @@ class Acls(ResourceModule): hentry.get("sequence", ""), name, ), - ) - else: # other action states - if rem_hentry.get("remarks"): # remove remark if not in want - for k_hrems, hrems in rem_hentry.get("remarks").items(): - if k_hrems not in rem_wentry.get("remarks", {}).keys(): - if self.state in ["replaced", "overridden"]: - self.addcmd( - { - "remarks": hrems, - "sequence": hentry.get("sequence", ""), - }, - "remarks_no_data", - negate=True, - ) - break - else: - self.addcmd( - { - "remarks": hrems, - "sequence": hentry.get("sequence", ""), - }, - "remarks", - negate=True, - ) - # remove ace if not in want - if hentry != wentry: - self.addcmd(add_afi(hentry, afi), "aces", negate=True) + ) # if merged then don't update anything and fail + + # i.e if not merged + if rem_hentry.get("remarks") != rem_wentry.get("remarks"): + self.addcmd( + { + "sequence": hentry.get("sequence", None), + }, + "remarks_no_data", + negate=True, + ) # remove all remarks for a ace if want and have don't match + # as if we randomly add aces we cannot maintain order we have to + # add all of them again, for that ace + rem_hentry["remarks"] = {} + # and me empty our have as we would add back + # all our remarks for that ace anyways + + # remove ace if not in want + # we might think why not update it directly, + # if we try to update without negating the entry appliance + # reports % Duplicate sequence number + if hentry != wentry: + self.addcmd(add_afi(hentry, afi), "aces", negate=True) + # once an ace is negated intentionally emptying out have so that + # the remarks are repopulated, as the remarks and ace behavior is sticky + # if an ace is taken out all the remarks is removed automatically. + rem_hentry["remarks"] = {} + if rem_wentry.get("remarks"): # add remark if not in have + if rem_hentry.get("remarks"): + self.addcmd( + { + "sequence": hentry.get("sequence", None), + }, + "remarks_no_data", + negate=True, + ) # but delete all remarks before to protect order for k_wrems, wrems in rem_wentry.get("remarks").items(): - if k_wrems not in rem_hentry.get("remarks", {}).keys(): - self.addcmd( - {"remarks": wrems, "sequence": hentry.get("sequence", "")}, - "remarks", - ) + self.addcmd( + { + "remarks": wrems, + "sequence": wentry.get("sequence", ""), + }, + "remarks", + ) + # add ace if not in have if hentry != wentry: - self.addcmd(add_afi(wentry, afi), "aces") - - # remove remaining entries from have aces list + if len(wentry) == 1 and wentry.get( + "sequence", + ): # if the ace entry just has sequence then do nothing + continue + else: # add normal ace entries from want + self.addcmd(add_afi(wentry, afi), "aces") + + # case 2 - loop over remaining have and remove them for hseq in have.values(): - if hseq.get("remarks"): # remove remarks that are extra in have - for krems, rems in hseq.get("remarks").items(): - self.addcmd( - {"remarks": rems, "sequence": hseq.get("sequence", "")}, - "remarks", - negate=True, - ) - else: # remove extra aces - self.addcmd(add_afi(hseq, afi), "aces", negate=True) + if hseq.get("remarks"): # remove all remarks in that + self.addcmd( + { + "sequence": hseq.get("sequence", None), + }, + "remarks_no_data", + negate=True, + ) + hseq.pop("remarks") + # deal with the rest of ace entry + self.addcmd( + add_afi(hseq, afi), + "aces", + negate=True, + ) def sanitize_protocol_options(self, wace, hace): """handles protocol and protocol options as optional attribute""" @@ -262,7 +297,7 @@ class Acls(ResourceModule): def list_to_dict(self, param): """converts list attributes to dict""" - temp, count = dict(), 0 + temp = dict() if param: for each in param: # ipv4 and ipv6 acl temp_acls = {} @@ -271,7 +306,9 @@ class Acls(ResourceModule): temp_aces = {} if acl.get("aces"): rem_idx = 0 # remarks if defined in an ace - for ace in acl.get("aces"): # each ace turned to dict + for count, ace in enumerate( + acl.get("aces"), + ): # each ace turned to dict if ( ace.get("destination") and ace.get("destination", {}).get( @@ -285,9 +322,9 @@ class Acls(ResourceModule): for k, v in ( ace.get("destination", {}).get("port_protocol", {}).items() ): - ace["destination"]["port_protocol"][ - k - ] = self.port_protocl_no_to_protocol(v) + ace["destination"]["port_protocol"][k] = ( + self.port_protocl_no_to_protocol(v) + ) if acl.get("acl_type") == "standard": for ks in list(ace.keys()): if ks not in [ @@ -311,13 +348,14 @@ class Acls(ResourceModule): # temp_rem.extend(ace.pop("remarks")) for remks in ace.get("remarks"): rem_ace[remks.replace(" ", "_")] = remks - rem_idx += 1 ace["remarks"] = rem_ace if ace.get("sequence"): temp_aces.update({ace.get("sequence"): ace}) + elif ace.get("remarks"): + temp_aces.update({"__{0}".format(rem_idx): ace}) + rem_idx += 1 elif ace: - count += 1 temp_aces.update({"_" + to_text(count): ace}) # if temp_rem: # add remarks to the temp ace @@ -325,7 +363,12 @@ class Acls(ResourceModule): if acl.get("acl_type"): # update acl dict with req info temp_acls.update( - {acl.get("name"): {"aces": temp_aces, "acl_type": acl["acl_type"]}}, + { + acl.get("name"): { + "aces": temp_aces, + "acl_type": acl["acl_type"], + }, + }, ) else: # if no acl type then here eg: ipv6 temp_acls.update({acl.get("name"): {"aces": temp_aces}}) diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/bgp_global/bgp_global.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/bgp_global/bgp_global.py index c48cac946..77112ffa2 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/bgp_global/bgp_global.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/bgp_global/bgp_global.py @@ -61,6 +61,8 @@ class Bgp_global(ResourceModule): "route_server_context.description", "synchronization", "table_map", + "template.peer_policy", + "template.peer_session", "timers", "bgp.additional_paths", "bgp.advertise_best_external", @@ -79,6 +81,8 @@ class Bgp_global(ResourceModule): "bgp.consistency_checker.auto_repair", "bgp.consistency_checker.error_message", "bgp.dampening", + "bgp.default.ipv4_unicast", + "bgp.default.route_target.filter", "bgp.deterministic_med", "bgp.dmzlink_bw", "bgp.enforce_first_as", @@ -168,7 +172,10 @@ class Bgp_global(ResourceModule): if self.state == "deleted": # deleted, clean up global params if not self.want or (self.have.get("as_number") == self.want.get("as_number")): - self._compare(want={}, have=self.have) + if "as_number" not in self.want: + self.want["as_number"] = self.have.get("as_number") + self._set_bgp_defaults(self.want) + self._compare(self.want, have=self.have) elif self.state == "purged": # delete as_number takes down whole bgp config @@ -190,10 +197,16 @@ class Bgp_global(ResourceModule): for the Bgp_global network resource. """ self.generic_list_parsers = ["distributes", "aggregate_addresses", "networks"] + if self._has_bgp_inject_maps(want): self.generic_list_parsers.insert(0, "inject_maps") cmd_len = len(self.commands) # holds command length to add as_number + + # for clean bgp global setup + if not have.get("bgp", {}).get("default"): + self._set_bgp_defaults(have) + # for dict type attributes self.compare(parsers=self.parsers, want=want, have=have) @@ -206,17 +219,40 @@ class Bgp_global(ResourceModule): _parse, ) else: - self._compare_generic_lists(want.get(_parse, {}), have.get(_parse, {}), _parse) + self._compare_generic_lists( + want.get(_parse, {}), + have.get(_parse, {}), + _parse, + ) # for neighbors - self._compare_neighbor_lists(want.get("neighbors", {}), have.get("neighbors", {})) + self._compare_neighbor_lists( + want.get("neighbors", {}), + have.get("neighbors", {}), + ) # for redistribute - self._compare_redistribute_lists(want.get("redistribute", {}), have.get("redistribute", {})) + self._compare_redistribute_lists( + want.get("redistribute", {}), + have.get("redistribute", {}), + ) - # add as_number in the begining fo command set if commands generated + # add as_number in the beginning of commands set if commands generated if len(self.commands) != cmd_len or (not have and want): - self.commands.insert(0, self._tmplt.render(want or have, "as_number", False)) + self.commands.insert( + 0, + self._tmplt.render(want or have, "as_number", False), + ) + + def _set_bgp_defaults(self, bgp_dict): + bgp_dict.setdefault("bgp", {}).setdefault("default", {}).setdefault( + "ipv4_unicast", + True, + ) + bgp_dict.setdefault("bgp", {}).setdefault("default", {}).setdefault( + "route_target", + {}, + ).setdefault("filter", True) def _has_bgp_inject_maps(self, want): if want.get("bgp", {}).get("inject_maps", {}): @@ -324,10 +360,21 @@ class Bgp_global(ResourceModule): ] for name, w_neighbor in want.items(): + handle_shutdown_default = False have_nbr = have.pop(name, {}) want_route = w_neighbor.pop("route_maps", {}) have_route = have_nbr.pop("route_maps", {}) + if ( + not w_neighbor.get("shutdown", {}).get("set") + and have_nbr.get("shutdown", {}).get("set") + and self.state in ["merged", "replaced", "overridden"] + ): + neig_parses.remove("shutdown") + handle_shutdown_default = True self.compare(parsers=neig_parses, want=w_neighbor, have=have_nbr) + if handle_shutdown_default: + self.addcmd(have_nbr, "shutdown", True) + if want_route: for k_rmps, w_rmps in want_route.items(): have_rmps = have_route.pop(k_rmps, {}) diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/l3_interfaces/l3_interfaces.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/l3_interfaces/l3_interfaces.py index b4b874d6e..b862ac466 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/l3_interfaces/l3_interfaces.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/l3_interfaces/l3_interfaces.py @@ -29,7 +29,6 @@ from ansible_collections.cisco.ios.plugins.module_utils.network.ios.rm_templates ) from ansible_collections.cisco.ios.plugins.module_utils.network.ios.utils.utils import ( normalize_interface, - validate_ipv6, validate_n_expand_ipv4, ) @@ -48,12 +47,18 @@ class L3_interfaces(ResourceModule): tmplt=L3_interfacesTemplate(), ) self.parsers = [ + "mac_address", "ipv4.address", "ipv4.pool", "ipv4.dhcp", + "ipv4.source_interface", "ipv6.address", "ipv6.autoconfig", "ipv6.dhcp", + "ipv6.enable", + ] + self.gen_parsers = [ + "autostate", ] def execute_module(self): @@ -101,10 +106,16 @@ class L3_interfaces(ResourceModule): self._compare(want={}, have=have) for k, want in wantd.items(): - self._compare(want=want, have=haved.pop(k, {})) + have = haved.pop(k, {}) + # New interface (doesn't use fact file) + if k[:4] == "Vlan": + have.setdefault("autostate", True) + want.setdefault("autostate", True) + self._compare(want=want, have=have) def _compare(self, want, have): begin = len(self.commands) + self.compare(parsers=self.gen_parsers, want=want, have=have) self._compare_lists(want=want, have=have) if len(self.commands) != begin: self.commands.insert(begin, self._tmplt.render(want or have, "name", False)) @@ -141,7 +152,12 @@ class L3_interfaces(ResourceModule): # hacl is set as primary, if wacls has no other primary entry we must keep # this entry as primary (so we'll compare entry to hacl and not # generate commands) - if list(filter(lambda w: w.get("secondary", False) is False, wacls.values())): + if list( + filter( + lambda w: w.get("secondary", False) is False, + wacls.values(), + ), + ): # another primary is in wacls hacl = {} self.validate_ips(afi, want=entry, have=hacl) @@ -168,17 +184,11 @@ class L3_interfaces(ResourceModule): v4_addr = validate_n_expand_ipv4(self._module, want) if want.get("address") else {} if v4_addr: want["address"] = v4_addr - elif afi == "ipv6" and want: - if want.get("address"): - validate_ipv6(want["address"], self._module) if afi == "ipv4" and have: v4_addr_h = validate_n_expand_ipv4(self._module, have) if have.get("address") else {} if v4_addr_h: have["address"] = v4_addr_h - elif afi == "ipv6" and have: - if have.get("address"): - validate_ipv6(have["address"], self._module) def list_to_dict(self, param): if param: diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/route_maps/route_maps.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/route_maps/route_maps.py index d8a1bec9f..f02fbfdfb 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/route_maps/route_maps.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/route_maps/route_maps.py @@ -304,11 +304,11 @@ class Route_maps(ResourceModule): "acl", ) elif match["ip"][each_ip_param].get("prefix_lists"): - match["ip"][each_ip_param][ - "prefix_lists" - ] = convert_to_dict( - match["ip"][each_ip_param]["prefix_lists"], - "prefix_list", + match["ip"][each_ip_param]["prefix_lists"] = ( + convert_to_dict( + match["ip"][each_ip_param]["prefix_lists"], + "prefix_list", + ) ) if match.get("local_preference") and match.get("local_preference").get( "value", diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/snmp_server/snmp_server.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/snmp_server/snmp_server.py index 187d0779d..d61a70a10 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/snmp_server/snmp_server.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/snmp_server/snmp_server.py @@ -237,39 +237,20 @@ class Snmp_server(ResourceModule): def _compare_lists_attrs(self, want, have): """Compare list of dict""" for _parser in self.list_parsers: - if _parser == "users": - i_want = want.get(_parser, {}) - i_have = have.get(_parser, {}) - for key, wanting in iteritems(i_want): - wanting_compare = deepcopy(wanting) - if ( - "authentication" in wanting_compare - and "password" in wanting_compare["authentication"] - ): - wanting_compare["authentication"].pop("password") - if ( - "encryption" in wanting_compare - and "password" in wanting_compare["encryption"] - ): - wanting_compare["encryption"].pop("password") - haveing = i_have.pop(key, {}) - if wanting_compare != haveing: - if haveing and self.state in ["overridden", "replaced"]: + i_want = want.get(_parser, {}) + i_have = have.get(_parser, {}) + for key, wanting in iteritems(i_want): + haveing = i_have.pop(key, {}) + if wanting != haveing: + if haveing and self.state in ["overridden", "replaced"]: + if not ( + _parser == "users" + and wanting.get("username") == haveing.get("username") + ): self.addcmd(haveing, _parser, negate=True) - self.addcmd(wanting, _parser) - for key, haveing in iteritems(i_have): - self.addcmd(haveing, _parser, negate=True) - else: - i_want = want.get(_parser, {}) - i_have = have.get(_parser, {}) - for key, wanting in iteritems(i_want): - haveing = i_have.pop(key, {}) - if wanting != haveing: - if haveing and self.state in ["overridden", "replaced"]: - self.addcmd(haveing, _parser, negate=True) - self.addcmd(wanting, _parser) - for key, haveing in iteritems(i_have): - self.addcmd(haveing, _parser, negate=True) + self.addcmd(wanting, _parser) + for key, haveing in iteritems(i_have): + self.addcmd(haveing, _parser, negate=True) def _snmp_list_to_dict(self, data): """Convert all list of dicts to dicts of dicts""" diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/vlans/vlans.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/vlans/vlans.py index ad95b680a..d195c317e 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/vlans/vlans.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/config/vlans/vlans.py @@ -1,62 +1,60 @@ # # -*- coding: utf-8 -*- -# Copyright 2019 Red Hat +# Copyright 2024 Red Hat # GNU General Public License v3.0+ # (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -""" -The ios_vlans class -It is in this file where the current configuration (as dict) -is compared to the provided configuration (as dict) and the command set -necessary to bring the current configuration to it's desired end-state is -created -""" +# from __future__ import absolute_import, division, print_function __metaclass__ = type +""" +The ios_vlans config file. +It is in this file where the current configuration (as dict) +is compared to the provided configuration (as dict) and the command set +necessary to bring the current configuration to its desired end-state is +created. +""" + -from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.cfg.base import ( - ConfigBase, +from ansible.module_utils.six import iteritems +from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.rm_base.resource_module import ( + ResourceModule, ) from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import ( - remove_empties, - to_list, + dict_merge, ) from ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.facts import Facts -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.utils.utils import dict_to_set +from ansible_collections.cisco.ios.plugins.module_utils.network.ios.rm_templates.vlans import ( + VlansTemplate, +) -class Vlans(ConfigBase): +class Vlans(ResourceModule): """ - The ios_vlans class + The ios_vlans config class """ - gather_subset = ["!all", "!min"] - - gather_network_resources = ["vlans"] - def __init__(self, module): - super(Vlans, self).__init__(module) - - def get_vlans_facts(self, data=None): - """Get the 'facts' (the current configuration) - - :rtype: A dictionary - :returns: The current configuration as a dictionary - """ - - facts, _warnings = Facts(self._module).get_facts( - self.gather_subset, - self.gather_network_resources, - data=data, + super(Vlans, self).__init__( + empty_fact_val={}, + facts_module=Facts(module), + module=module, + resource="vlans", + tmplt=VlansTemplate(), ) - vlans_facts = facts["ansible_network_resources"].get("vlans") - if not vlans_facts: - return [] - return vlans_facts + self.parsers = [ + "name", + "state", + "mtu", + "remote_span", + "private_vlan.type", + "private_vlan.associated", + "member", + ] def execute_module(self): """Execute the module @@ -64,394 +62,106 @@ class Vlans(ConfigBase): :rtype: A dictionary :returns: The result from module execution """ - result = {"changed": False} - commands = list() - warnings = list() - self.have_now = list() - self.configuration = self._module.params["configuration"] - if not self.configuration: - self.vlan_parent = "vlan {0}" - else: - self.vlan_parent = "vlan configuration {0}" - if self.state in self.ACTION_STATES: - existing_vlans_facts = self.get_vlans_facts() - else: - existing_vlans_facts = [] - - if self.state in self.ACTION_STATES or self.state == "rendered": - commands.extend(self.set_config(existing_vlans_facts)) - if commands and self.state in self.ACTION_STATES: - if not self._module.check_mode: - self._connection.edit_config(commands) - result["changed"] = True - if self.state in self.ACTION_STATES: - result["commands"] = commands - - if self.state in self.ACTION_STATES or self.state == "gathered": - changed_vlans_facts = self.get_vlans_facts() - elif self.state == "rendered": - result["rendered"] = commands - elif self.state == "parsed": - running_config = self._module.params["running_config"] - if not running_config: - self._module.fail_json( - msg="value of running_config parameter must not be empty for state parsed", + if self.state not in ["parsed", "gathered"]: + self.segregate_resource() + self.run_commands() + return self.result + + def segregate_resource(self): + self.want_vlan_config = [] + self.have_vlan_config = [] + for vlan_data in self.want: + if vlan_data.get("member"): + self.want_vlan_config.append( + { + "vlan_id": vlan_data.get("vlan_id"), + "member": vlan_data.pop("member"), + }, ) - result["parsed"] = self.get_vlans_facts(data=running_config) - else: - changed_vlans_facts = [] - - if self.state in self.ACTION_STATES: - result["before"] = existing_vlans_facts - if result["changed"]: - result["after"] = changed_vlans_facts - elif self.state == "gathered": - result["gathered"] = changed_vlans_facts - - result["warnings"] = warnings - return result - - def set_config(self, existing_vlans_facts): - """Collect the configuration from the args passed to the module, - collect the current configuration (as a dict from facts) - - :rtype: A list - :returns: the commands necessary to migrate the current configuration - to the desired configuration - """ - want = [] - if self._module.params.get("config"): - for cfg in self._module.params["config"]: - want.append(remove_empties(cfg)) - have = existing_vlans_facts - resp = self.set_state(want, have) - return to_list(resp) - - def set_state(self, want, have): - """Select the appropriate function based on the state provided - - :param want: the desired configuration as a dictionary - :param have: the current configuration as a dictionary - :rtype: A list - :returns: the commands necessary to migrate the current configuration - to the desired configuration - """ - - if self.state in ("overridden", "merged", "replaced", "rendered") and not want: - self._module.fail_json( - msg="value of config parameter must not be empty for state {0}".format(self.state), - ) - - if self.state == "overridden": - commands = self._state_overridden(want, have) - elif self.state == "deleted": - commands = self._state_deleted(want, have) - elif self.state in ("merged", "rendered"): - commands = self._state_merged(want, have) - elif self.state == "replaced": - commands = self._state_replaced(want, have) - return commands - - def _state_replaced(self, want, have): - """The command generator when state is replaced - - :rtype: A list - :returns: the commands necessary to migrate the current configuration - to the desired configuration - """ - commands = [] - - check = False - for each in want: - for every in have: - if every["vlan_id"] == each["vlan_id"]: - check = True - break - continue - if check: - commands.extend(self._set_config(each, every)) - else: - commands.extend(self._set_config(each, dict())) - - return commands - - def _state_overridden(self, want, have): - """The command generator when state is overridden - - :rtype: A list - :returns: the commands necessary to migrate the current configuration - to the desired configuration - """ - commands = [] - - want_local = want - self.have_now = have.copy() - for each in have: - count = 0 - for every in want_local: - if each["vlan_id"] == every["vlan_id"]: - break - count += 1 else: - # We didn't find a matching desired state, which means we can - # pretend we received an empty desired state. - commands.extend(self._clear_config(every, each)) - continue - commands.extend(self._set_config(every, each)) - # as the pre-existing VLAN are now configured by - # above set_config call, deleting the respective - # VLAN entry from the want_local list - del want_local[count] - - # Iterating through want_local list which now only have new VLANs to be - # configured - for each in want_local: - commands.extend(self._set_config(each, dict())) - - return commands - - def _state_merged(self, want, have): - """The command generator when state is merged - - :rtype: A list - :returns: the commands necessary to merge the provided into - the current configuration - """ - commands = [] - - check = False - for each in want: - for every in have: - if each.get("vlan_id") == every.get("vlan_id"): - check = True - break - continue - if check: - commands.extend(self._set_config(each, every)) + self.want_vlan_config.append( + {"vlan_id": vlan_data.get("vlan_id")}, + ) + for vlan_data in self.have: + if vlan_data.get("member"): + self.have_vlan_config.append( + { + "vlan_id": vlan_data.get("vlan_id"), + "member": vlan_data.pop("member"), + }, + ) else: - commands.extend(self._set_config(each, dict())) - - return commands - - def _state_deleted(self, want, have): - """The command generator when state is deleted + self.have_vlan_config.append( + {"vlan_id": vlan_data.get("vlan_id")}, + ) + if self.want or self.have: + self.generate_commands(self.want, self.have, "vlans") + if self.want_vlan_config or self.have_vlan_config: + self.generate_commands( + self.want_vlan_config, + self.have_vlan_config, + "vlan_configuration", + ) - :rtype: A list - :returns: the commands necessary to remove the current configuration - of the provided objects + def generate_commands(self, conf_want, conf_have, resource=None): + """Generate configuration commands to send based on + want, have and desired state. """ - commands = [] - - if want: - check = False - for each in want: - for every in have: - if each.get("vlan_id") == every.get("vlan_id"): - check = True - break - check = False - continue - if check: - commands.extend(self._clear_config(each, every)) + wantd = {entry["vlan_id"]: entry for entry in conf_want} + haved = {entry["vlan_id"]: entry for entry in conf_have} + + # if state is merged, merge want onto have and then compare + if self.state == "merged": + wantd = dict_merge(haved, wantd) + + # if state is deleted, empty out wantd and set haved to wantd + if self.state == "deleted": + haved = {k: v for k, v in iteritems(haved) if k in wantd or not wantd} + wantd = {} + + # if state is deleted, empty out wantd and set haved to wantd + if self.state in ["deleted", "purged"]: + haved = {k: v for k, v in iteritems(haved) if k in wantd or not wantd} + wantd = {} + + # remove superfluous config for overridden and deleted + if self.state in ["overridden", "deleted"]: + for k, have in iteritems(haved): + if k not in wantd: + self._compare(want={}, have=have, resource=resource) + + if self.state == "purged": + for k, have in iteritems(haved): + self.purge(have, resource) else: - for each in have: - commands.extend(self._clear_config(dict(), each)) - - return commands - - def remove_command_from_config_list(self, vlan_id, cmd, commands): - if vlan_id not in commands and cmd != "vlan": - commands.insert(0, vlan_id) - elif cmd == "vlan": - commands.append("no %s" % vlan_id) - return commands - commands.append("no %s" % cmd) - return commands - - def add_command_to_config_list(self, vlan_id, cmd, commands): - if vlan_id not in commands: - commands.insert(0, vlan_id) - if cmd not in commands: - commands.append(cmd) - - def _set_config(self, want, have): - # Set the interface config based on the want and have config - commands = [] - - vlan = self.vlan_parent.format(want.get("vlan_id")) - - def negate_have_config(want_diff, have_diff, vlan, commands): - name = dict(have_diff).get("name") - if name and not dict(want_diff).get("name"): - self.remove_command_from_config_list(vlan, "name {0}".format(name), commands) - state = dict(have_diff).get("state") - if state and not dict(want_diff).get("state"): - self.remove_command_from_config_list(vlan, "state {0}".format(state), commands) - shutdown = dict(have_diff).get("shutdown") - if shutdown and not dict(want_diff).get("shutdown"): - self.remove_command_from_config_list(vlan, "shutdown", commands) - mtu = dict(have_diff).get("mtu") - if mtu and not dict(want_diff).get("mtu"): - self.remove_command_from_config_list(vlan, "mtu {0}".format(mtu), commands) - remote_span = dict(have_diff).get("remote_span") - if remote_span and not dict(want_diff).get("remote_span"): - self.remove_command_from_config_list(vlan, "remote-span", commands) - private_vlan = dict(have_diff).get("private_vlan") - if private_vlan and not dict(want_diff).get("private_vlan"): - private_vlan_type = dict(private_vlan).get("type") - self.remove_command_from_config_list( - vlan, - "private-vlan {0}".format(private_vlan_type), - commands, - ) - if private_vlan_type == "primary" and dict(private_vlan).get("associated"): - self.remove_command_from_config_list(vlan, "private-vlan association", commands) - - # Get the diff b/w want n have - - want_dict = dict_to_set(want, sort_dictionary=True) - have_dict = dict_to_set(have, sort_dictionary=True) - diff = want_dict - have_dict - have_diff = have_dict - want_dict - - if diff: - if have_diff and (self.state == "replaced" or self.state == "overridden"): - negate_have_config(diff, have_diff, vlan, commands) - - if not self.configuration: - name = dict(diff).get("name") - state = dict(diff).get("state") - shutdown = dict(diff).get("shutdown") - mtu = dict(diff).get("mtu") - remote_span = dict(diff).get("remote_span") - private_vlan = dict(diff).get("private_vlan") - - if name: - self.add_command_to_config_list(vlan, "name {0}".format(name), commands) - if state: - self.add_command_to_config_list(vlan, "state {0}".format(state), commands) - if mtu: - self.add_command_to_config_list(vlan, "mtu {0}".format(mtu), commands) - if remote_span: - self.add_command_to_config_list(vlan, "remote-span", commands) - - if private_vlan: - private_vlan_type = dict(private_vlan).get("type") - private_vlan_associated = dict(private_vlan).get("associated") - if private_vlan_type: - self.add_command_to_config_list( - vlan, - "private-vlan {0}".format(private_vlan_type), - commands, - ) - if private_vlan_associated: - associated_list = ",".join( - str(e) for e in private_vlan_associated - ) # Convert python list to string with elements separated by a comma - self.add_command_to_config_list( - vlan, - "private-vlan association {0}".format(associated_list), - commands, - ) - if shutdown == "enabled": - self.add_command_to_config_list(vlan, "shutdown", commands) - elif shutdown == "disabled": - self.add_command_to_config_list(vlan, "no shutdown", commands) + for k, want in iteritems(wantd): + self._compare(want=want, have=haved.pop(k, {}), resource=resource) + + def _compare(self, want, have, resource=None): + """Leverages the base class `compare()` method and + populates the list of commands to be run by comparing + the `want` and `have` data with the `parsers` defined + for the Vlans network resource. + """ + begin = len(self.commands) + self.compare(parsers=self.parsers, want=want, have=have) + if want.get("shutdown") != have.get("shutdown"): + if want.get("shutdown"): + self.addcmd(want, "shutdown", True) else: - member_dict = dict(diff).get("member") - if member_dict: - member_dict = dict(member_dict) - member_vni = member_dict.get("vni") - member_evi = member_dict.get("evi") - commands.extend( - self._remove_vlan_vni_evi_mapping( - want, - ), - ) - commands.extend( - [ - vlan, - self._get_member_cmds(member_dict), - ], - ) - - elif have_diff and (self.state == "replaced" or self.state == "overridden"): - negate_have_config(diff, have_diff, vlan, commands) - return commands - - def _clear_config(self, want, have): - # Delete the interface config based on the want and have config - commands = [] - vlan = self.vlan_parent.format(have.get("vlan_id")) - - if ( - have.get("vlan_id") - and "default" not in have.get("name", "") - and (have.get("vlan_id") != want.get("vlan_id") or self.state == "deleted") - ): - self.remove_command_from_config_list(vlan, "vlan", commands) - if self.configuration and self.state == "overridden": - self.have_now.remove(have) - elif "default" not in have.get("name", ""): - if not self.configuration: - if have.get("mtu") != want.get("mtu"): - self.remove_command_from_config_list(vlan, "mtu", commands) - if have.get("remote_span") != want.get("remote_span") and want.get("remote_span"): - self.remove_command_from_config_list(vlan, "remote-span", commands) - if have.get("shutdown") != want.get("shutdown") and want.get("shutdown"): - self.remove_command_from_config_list(vlan, "shutdown", commands) - if have.get("state") != want.get("state") and want.get("state"): - self.remove_command_from_config_list(vlan, "state", commands) - return commands - - def _remove_vlan_vni_evi_mapping(self, want_dict): - commands = [] - have_copy = self.have_now.copy() - vlan = want_dict["vlan_id"] - for vlan_dict in have_copy: - if vlan_dict["vlan_id"] == vlan: - if "member" in vlan_dict: - commands.extend( - [ - self.vlan_parent.format(vlan), - self._get_member_cmds( - vlan_dict.get("member", {}), - prefix="no", - ), - ], - ) - vlan_dict.pop("member") - if vlan_dict["vlan_id"] != vlan: - delete_member = False - have_vni = vlan_dict.get("member", {}).get("vni") - have_evi = vlan_dict.get("member", {}).get("evi") - if have_vni and (have_vni == want_dict["member"].get("vni")): - delete_member = True - if have_evi and (have_evi == want_dict["member"].get("evi")): - delete_member = True - if delete_member: - commands.extend( - [ - self.vlan_parent.format(vlan_dict["vlan_id"]), - self._get_member_cmds( - vlan_dict.get("member", {}), - prefix="no", - ), - ], - ) - self.have_now.remove(vlan_dict) - return commands - - def _get_member_cmds(self, member_dict, prefix=""): - cmd = "" - if prefix: - prefix = prefix + " " - member_vni = member_dict.get("vni") - member_evi = member_dict.get("evi") - - if member_evi: - cmd = prefix + "member evpn-instance {0} vni {1}".format(member_evi, member_vni) - elif member_vni: - cmd = prefix + "member vni {0}".format(member_vni) + if want: + self.addcmd(want, "shutdown", False) + elif have.get("shutdown"): + # handles deleted as want be blank and only + # negates if no shutdown + self.addcmd(have, "shutdown", False) + if len(self.commands) != begin: + self.commands.insert( + begin, + self._tmplt.render(want or have, resource, False), + ) - return cmd + def purge(self, have, resource): + """Handle operation for purged state""" + if resource == "vlan_configuration": + self.commands.append(self._tmplt.render(have, resource, True)) diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/acls/acls.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/acls/acls.py index 2be369a7a..341491f2e 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/acls/acls.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/acls/acls.py @@ -105,7 +105,10 @@ class AclsFacts(object): if namedata: # parse just names to update empty acls - templateObjName = NetworkTemplate(lines=namedata.splitlines(), tmplt=AclsTemplate()) + templateObjName = NetworkTemplate( + lines=namedata.splitlines(), + tmplt=AclsTemplate(), + ) raw_acl_names = templateObjName.parse() raw_acls = self.populate_empty_acls(raw_acls, raw_acl_names) @@ -114,7 +117,10 @@ class AclsFacts(object): if raw_acls.get("acls"): for k, v in iteritems(raw_acls.get("acls")): - if v.get("afi") == "ipv4" and v.get("acl_type") in ["standard", "extended"]: + if v.get("afi") == "ipv4" and v.get("acl_type") in [ + "standard", + "extended", + ]: del v["afi"] temp_v4.append(v) elif v.get("afi") == "ipv6": @@ -142,10 +148,15 @@ class AclsFacts(object): def process_protocol_options(each): for each_ace in each.get("aces"): if each.get("acl_type") == "standard": - if len(each_ace.get("source", {})) == 1 and each_ace.get("source", {}).get( + if len(each_ace.get("source", {})) == 1 and each_ace.get( + "source", + {}, + ).get( "address", ): - each_ace["source"]["host"] = each_ace["source"].pop("address") + each_ace["source"]["host"] = each_ace["source"].pop( + "address", + ) if each_ace.get("source", {}).get("address"): addr = each_ace.get("source", {}).get("address") if addr[-1] == ",": @@ -159,7 +170,10 @@ class AclsFacts(object): if each_ace.get("icmp_igmp_tcp_protocol"): each_ace["protocol_options"] = { each_ace["protocol"]: { - each_ace.pop("icmp_igmp_tcp_protocol").replace("-", "_"): True, + each_ace.pop("icmp_igmp_tcp_protocol").replace( + "-", + "_", + ): True, }, } if each_ace.get("protocol_number"): @@ -172,13 +186,21 @@ class AclsFacts(object): ace_entry = [] ace_rem = [] rem = {} + # every remarks is one list item which has a sequence number + # every ace remark is preserved and ordered + # at the end of each sequence it is flushed to a ace entry for i in aces: + # i here denotes an ace, which would be populated with remarks entries if i.get("is_remark_for"): if not rem.get(i.get("is_remark_for")): rem[i.get("is_remark_for")] = {"remarks": []} - rem[i.get("is_remark_for")]["remarks"].append(i.get("the_remark")) + rem[i.get("is_remark_for")]["remarks"].append( + i.get("the_remark"), + ) else: - rem[i.get("is_remark_for")]["remarks"].append(i.get("the_remark")) + rem[i.get("is_remark_for")]["remarks"].append( + i.get("the_remark"), + ) else: if rem: if rem.get(i.get("sequence")): @@ -187,12 +209,27 @@ class AclsFacts(object): ace_entry.append(i) if rem: # pending remarks - pending_rem = rem.get("remark") - ace_entry.append({"remarks": pending_rem.get("remarks")}) + for pending_rem_seq, pending_rem_val in rem.items(): + # there can be ace entry with just a remarks and no ace actually + # 10 remarks I am a remarks + # 20 ..... so onn + if pending_rem_seq != "remark": + ace_entry.append( + { + "sequence": pending_rem_seq, + "remarks": pending_rem_val.get("remarks"), + }, + ) + else: + # this handles the classic set of remarks at the end, which is not tied to + # any sequence number + pending_rem = rem.get("remark", {}) + ace_entry.append({"remarks": pending_rem.get("remarks")}) return ace_entry for each in temp_v4: if each.get("aces"): + # handling remarks for each ace entry each["aces"] = collect_remarks(each.get("aces")) process_protocol_options(each) diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/bgp_global/bgp_global.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/bgp_global/bgp_global.py index 37bbfabfd..c5b90d9e7 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/bgp_global/bgp_global.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/bgp_global/bgp_global.py @@ -35,6 +35,17 @@ class Bgp_globalFacts(object): def get_bgp_global_data(self, connection): return connection.get("show running-config | section ^router bgp") + def _set_defaults(self, objs): + """makes data as per the facts after data obtained from parsers""" + + if objs.get("as_number"): + objs.setdefault("bgp", {}).setdefault("default", {}).setdefault("ipv4_unicast", True) + objs.setdefault("bgp", {}).setdefault("default", {}).setdefault( + "route_target", + {}, + ).setdefault("filter", True) + return objs + def populate_facts(self, connection, ansible_facts, data=None): """Populate the facts for Bgp_global network resource @@ -56,6 +67,9 @@ class Bgp_globalFacts(object): module=self._module, ) objs = bgp_global_parser.parse() + if objs: + objs = self._set_defaults(objs) + neighbor_list = objs.get("neighbors", {}) if neighbor_list: objs["neighbors"] = sorted( diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/facts.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/facts.py index 7718b474d..583c86b51 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/facts.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/facts.py @@ -104,7 +104,12 @@ from ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.vxlan_ ) -FACT_LEGACY_SUBSETS = dict(default=Default, hardware=Hardware, interfaces=Interfaces, config=Config) +FACT_LEGACY_SUBSETS = dict( + default=Default, + hardware=Hardware, + interfaces=Interfaces, + config=Config, +) FACT_RESOURCE_SUBSETS = dict( interfaces=InterfacesFacts, @@ -155,7 +160,11 @@ class Facts(FactsBase): :return: the facts gathered """ if self.VALID_RESOURCE_SUBSETS: - self.get_network_resources_facts(FACT_RESOURCE_SUBSETS, resource_facts_type, data) + self.get_network_resources_facts( + FACT_RESOURCE_SUBSETS, + resource_facts_type, + data, + ) if self.VALID_LEGACY_GATHER_SUBSETS: self.get_network_legacy_facts(FACT_LEGACY_SUBSETS, legacy_facts_type) diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/l3_interfaces/l3_interfaces.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/l3_interfaces/l3_interfaces.py index bea49159b..1b36db57a 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/l3_interfaces/l3_interfaces.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/l3_interfaces/l3_interfaces.py @@ -40,6 +40,14 @@ class L3_InterfacesFacts(object): def get_l3_interfaces_data(self, connection): return connection.get("show running-config | section ^interface") + def _set_defaults(self, objs): + """Set default parameters""" + + for intf in objs: + if intf.get("name") and intf["name"][:4] == "Vlan": + intf.setdefault("autostate", True) + return objs + def populate_facts(self, connection, ansible_facts, data=None): """Populate the facts for l3 interfaces :param connection: the device connection @@ -71,6 +79,10 @@ class L3_InterfacesFacts(object): temp = sorted(temp, key=lambda k, sk="name": k[sk]) objs = temp + + if objs: + objs = self._set_defaults(objs) + facts = {} if objs: facts["l3_interfaces"] = [] diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/vlans/vlans.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/vlans/vlans.py index 9b506fa90..7bfed68d5 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/vlans/vlans.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/facts/vlans/vlans.py @@ -16,8 +16,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -import re - from copy import deepcopy from ansible_collections.ansible.netcommon.plugins.module_utils.network.common import utils @@ -25,6 +23,9 @@ from ansible_collections.ansible.netcommon.plugins.module_utils.network.common i from ansible_collections.cisco.ios.plugins.module_utils.network.ios.argspec.vlans.vlans import ( VlansArgs, ) +from ansible_collections.cisco.ios.plugins.module_utils.network.ios.rm_templates.vlans import ( + VlansTemplate, +) class VlansFacts(object): @@ -44,154 +45,60 @@ class VlansFacts(object): self.generated_spec = utils.generate_dict(facts_argument_spec) - def get_vlans_data(self, connection, configuration): + def get_vlans_data(self, connection): """Checks device is L2/L3 and returns facts gracefully. Does not fail module. """ - if configuration: - cmd = "show running-config | sec ^vlan configuration .+" - else: - cmd = "show vlan" check_os_type = connection.get_device_info() if check_os_type.get("network_os_type") == "L3": return "" - return connection.get(cmd) + return connection.get("show vlan") + + def get_vlan_conf_data(self, connection): + return connection.get("show running-config | section ^vlan configuration .+") + + def populate_vlans_config_facts(self, connection, data=None): + """Process config for Vlans Configurations - def populate_facts(self, connection, ansible_facts, data=None): - """Populate the facts for vlans :param connection: the device connection :param ansible_facts: Facts dictionary :param data: previously collected conf + :rtype: dictionary :returns: facts """ - configuration = self._module.params["configuration"] - objs = [] if not data: - data = self.get_vlans_data(connection, configuration) - if not configuration: - objs = self.parse_vlan(data) - else: - objs = self.parse_vlan_config(data) + data = self.get_vlan_conf_data(connection) - facts = {} - if objs: - facts["vlans"] = [] - params = utils.validate_config(self.argument_spec, {"config": objs}) - - for cfg in params["config"]: - facts["vlans"].append(utils.remove_empties(cfg)) - ansible_facts["ansible_network_resources"].update(facts) - return ansible_facts + # parse native config using the Vlan_configurations template + vlan_configurations_parser = VlansTemplate( + lines=data.splitlines(), + module=self._module, + ) + return vlan_configurations_parser.parse() - def render_config(self, spec, conf, vlan_info): - """ - Render config as dictionary structure and delete keys - from spec for null values - - :param spec: The facts tree, generated from the argspec - :param conf: The configuration + def populate_facts(self, connection, ansible_facts, data=None): + """Populate the facts for vlans + :param connection: the device connection + :param ansible_facts: Facts dictionary + :param data: previously collected conf :rtype: dictionary - :returns: The generated config + :returns: facts """ - config = deepcopy(spec) - - if vlan_info == "Name" and "VLAN Name" not in conf: - conf = list(filter(None, conf.split(" "))) - config["vlan_id"] = int(conf[0]) - config["name"] = conf[1] - state_idx = 2 - for i in range(2, len(conf)): # check for index where state starts - if conf[i] in ["suspended", "active"]: - state_idx = i - break - elif conf[i].split("/")[0] in ["sus", "act"]: - state_idx = i - break - config["name"] += " " + conf[i] - try: - if len(conf[state_idx].split("/")) > 1: - _state = conf[state_idx].split("/")[0] - if _state == "sus": - config["state"] = "suspend" - elif _state == "act": - config["state"] = "active" - config["shutdown"] = "enabled" - else: - if conf[state_idx] == "suspended": - config["state"] = "suspend" - elif conf[state_idx] == "active": - config["state"] = "active" - config["shutdown"] = "disabled" - except IndexError: - pass - elif vlan_info == "Type" and "VLAN Type" not in conf: - conf = list(filter(None, conf.split(" "))) - config["mtu"] = int(conf[3]) - elif vlan_info == "Remote": - if len(conf.split(",")) > 1 or conf.isdigit(): - remote_span_vlan = [] - if len(conf.split(",")) > 1: - remote_span_vlan = conf.split(",") - else: - remote_span_vlan.append(conf) - remote_span = [] - for each in remote_span_vlan: - split_sp_list = each.split("-") - if len(split_sp_list) > 1: # break range - for r_sp in range(int(split_sp_list[0]), int(split_sp_list[1]) + 1): - remote_span.append(r_sp) - else: - remote_span.append(int(each)) - config["remote_span"] = remote_span - - elif vlan_info == "Private" and "Primary Secondary" not in conf: - conf = list(filter(None, conf.split(" "))) - - pri_idx = 0 - sec_idx = 1 - priv_type_idx = 2 - - config["tmp_pvlans"] = { - "primary": conf[pri_idx], - "secondary": conf[sec_idx], - "sec_type": conf[priv_type_idx], - } - return utils.remove_empties(config) - - def parse_vlan_config(self, vlan_conf): - vlan_list = list() - - re1 = re.compile(r"^vlan configuration +(?P\d+)$") - re2 = re.compile(r"^member +(evpn\-instance +(?P\d+) )?vni (?P[\d\-]+)$") - - for line in vlan_conf.splitlines(): - line = line.strip() - m = re1.match(line) - if m: - vlan = m.groupdict()["vlan"] - vlan_dict = {"vlan_id": vlan} - continue - - m = re2.match(line) - if m: - group = m.groupdict() - vlan_dict.update({"member": {}}) - vlan_dict["member"].update({"vni": group["vni"]}) - if group["evi"]: - vlan_dict["member"].update({"evi": group["evi"]}) - vlan_list.append(vlan_dict) - - return vlan_list - - def parse_vlan(self, data): objs = [] mtu_objs = [] remote_objs = [] final_objs = [] pvlan_objs = [] + conf_data = {} + + if not data: + data = self.get_vlans_data(connection) + + # deals with vlan configuration config only + conf_data = self.populate_vlans_config_facts(connection, data) # operate on a collection of resource x config = data.split("\n") @@ -199,6 +106,7 @@ class VlansFacts(object): vlan_info = "" temp = "" vlan_name = True + for conf in config: if len(list(filter(None, conf.split(" ")))) <= 2 and vlan_name: temp = temp + conf @@ -231,6 +139,7 @@ class VlansFacts(object): pvlan_objs.append(obj) elif obj: objs.append(obj) + # Appending MTU value to the retrieved dictionary for o, m in zip(objs, mtu_objs): o.update(m) @@ -250,7 +159,6 @@ class VlansFacts(object): pvlan_final = {} if len(pvlan_objs) > 0: # Sanitize and structure everything - for data in pvlan_objs: pvdata = data.get("tmp_pvlans") privlan = pvdata.get("primary") @@ -270,7 +178,9 @@ class VlansFacts(object): "private_vlan": {"type": "primary", "associated": []}, } if secvlan and (isinstance(secvlan, int) or secvlan.isnumeric()): - pvlan_final[privlan]["private_vlan"]["associated"].append(int(secvlan)) + pvlan_final[privlan]["private_vlan"]["associated"].append( + int(secvlan), + ) # Associate with the proper VLAN in final_objs for vlan_id, data in pvlan_final.items(): @@ -278,7 +188,103 @@ class VlansFacts(object): if vlan_id == every.get("vlan_id"): every.update(data) - if final_objs: - return objs - else: - return {} + facts = {} + + if conf_data: + for vlan in objs: + if conf_data.get(vlan.get("vlan_id")): + member_data = conf_data.pop(vlan.get("vlan_id")) + vlan.update(member_data) + + if conf_data: # if any vlan configuration data is pending add it to facts + for vlanid, conf in conf_data.items(): + objs.append(conf) + + if objs: + facts["vlans"] = [] + params = utils.validate_config(self.argument_spec, {"config": objs}) + + for cfg in params["config"]: + facts["vlans"].append(utils.remove_empties(cfg)) + ansible_facts["ansible_network_resources"].update(facts) + + return ansible_facts + + def render_config(self, spec, conf, vlan_info): + """ + Render config as dictionary structure and delete keys + from spec for null values + + :param spec: The facts tree, generated from the argspec + :param conf: The configuration + :rtype: dictionary + :returns: The generated config + """ + config = deepcopy(spec) + + if vlan_info == "Name" and "VLAN Name" not in conf: + conf = list(filter(None, conf.split(" "))) + config["vlan_id"] = int(conf[0]) + config["name"] = conf[1] + state_idx = 2 + for i in range(2, len(conf)): # check for index where state starts + if conf[i] in ["suspended", "active"]: + state_idx = i + break + elif conf[i].split("/")[0] in ["sus", "act"]: + state_idx = i + break + config["name"] += " " + conf[i] + try: + if len(conf[state_idx].split("/")) > 1: + _state = conf[state_idx].split("/")[0] + if _state == "sus": + config["state"] = "suspend" + elif _state == "act": + config["state"] = "active" + config["shutdown"] = "enabled" + else: + if conf[state_idx] == "suspended": + config["state"] = "suspend" + elif conf[state_idx] == "active": + config["state"] = "active" + config["shutdown"] = "disabled" + except IndexError: + pass + elif vlan_info == "Type" and "VLAN Type" not in conf: + conf = list(filter(None, conf.split(" "))) + config["mtu"] = int(conf[3]) + elif vlan_info == "Remote": + if len(conf.split(",")) > 1 or conf.isdigit(): + remote_span_vlan = [] + if len(conf.split(",")) > 1: + remote_span_vlan = conf.split(",") + else: + remote_span_vlan.append(conf) + remote_span = [] + for each in remote_span_vlan: + split_sp_list = each.split("-") + if len(split_sp_list) > 1: # break range + for r_sp in range( + int(split_sp_list[0]), + int(split_sp_list[1]) + 1, + ): + remote_span.append(r_sp) + else: + remote_span.append(int(each)) + config["remote_span"] = remote_span + + elif vlan_info == "Private" and "Primary Secondary" not in conf: + conf = list(filter(None, conf.split(" "))) + + pri_idx = 0 + sec_idx = 1 + priv_type_idx = 2 + + config["tmp_pvlans"] = { + "primary": conf[pri_idx], + "secondary": conf[sec_idx], + "sec_type": conf[priv_type_idx], + } + + return utils.remove_empties(config) diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/__init__.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/__init__.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/base.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/base.py deleted file mode 100644 index f1b9cdb90..000000000 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/base.py +++ /dev/null @@ -1,82 +0,0 @@ -# -# (c) 2019, Ansible by Red Hat, inc -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type -from ansible.module_utils.six import iteritems -from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.config import ( - NetworkConfig, -) -from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import to_list - - -class ConfigBase(object): - argument_spec = {} - - mutually_exclusive = [] - - identifier = () - - def __init__(self, **kwargs): - self.values = {} - self._rendered_configuration = {} - self.active_configuration = None - - for item in self.identifier: - self.values[item] = kwargs.pop(item) - - for key, value in iteritems(kwargs): - if key in self.argument_spec: - setattr(self, key, value) - - for key, value in iteritems(self.argument_spec): - if value.get("default"): - if not getattr(self, key, None): - setattr(self, key, value.get("default")) - - def __getattr__(self, key): - if key in self.argument_spec: - return self.values.get(key) - - def __setattr__(self, key, value): - if key in self.argument_spec: - if key in self.identifier: - raise TypeError("cannot set value") - elif value is not None: - self.values[key] = value - else: - super(ConfigBase, self).__setattr__(key, value) - - def context_config(self, cmd): - if "context" not in self._rendered_configuration: - self._rendered_configuration["context"] = list() - self._rendered_configuration["context"].extend(to_list(cmd)) - - def global_config(self, cmd): - if "global" not in self._rendered_configuration: - self._rendered_configuration["global"] = list() - self._rendered_configuration["global"].extend(to_list(cmd)) - - def get_rendered_configuration(self): - config = list() - for section in ("context", "global"): - config.extend(self._rendered_configuration.get(section, [])) - return config - - def set_active_configuration(self, config): - self.active_configuration = config - - def render(self, config=None): - raise NotImplementedError - - def get_section(self, config, section): - if config is not None: - netcfg = NetworkConfig(indent=1, contents=config) - try: - config = netcfg.get_block_config(to_list(section)) - except ValueError: - config = None - return config diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/__init__.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/address_family.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/address_family.py deleted file mode 100644 index e4c2bd803..000000000 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/address_family.py +++ /dev/null @@ -1,147 +0,0 @@ -# -# (c) 2019, Ansible by Red Hat, inc -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type -import re - -from ansible.module_utils.common.network import to_netmask -from ansible.module_utils.six import iteritems -from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import to_list - -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers.cli.config.bgp.neighbors import ( - AFNeighbors, -) -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers.providers import ( - CliProvider, -) - - -class AddressFamily(CliProvider): - def render(self, config=None): - commands = list() - safe_list = list() - - router_context = "router bgp %s" % self.get_value("config.bgp_as") - context_config = None - - for item in self.get_value("config.address_family"): - context = "address-family %s" % item["afi"] - if item["safi"] != "unicast": - context += " %s" % item["safi"] - context_commands = list() - - if config: - context_path = [router_context, context] - context_config = self.get_config_context(config, context_path, indent=1) - - for key, value in iteritems(item): - if value is not None: - meth = getattr(self, "_render_%s" % key, None) - if meth: - resp = meth(item, context_config) - if resp: - context_commands.extend(to_list(resp)) - - if context_commands: - commands.append(context) - commands.extend(context_commands) - commands.append("exit-address-family") - - safe_list.append(context) - - if self.params["operation"] == "replace": - if config: - resp = self._negate_config(config, safe_list) - commands.extend(resp) - - return commands - - def _negate_config(self, config, safe_list=None): - commands = list() - matches = re.findall(r"(address-family .+)$", config, re.M) - for item in set(matches).difference(safe_list): - commands.append("no %s" % item) - return commands - - def _render_auto_summary(self, item, config=None): - cmd = "auto-summary" - if item["auto_summary"] is False: - cmd = "no %s" % cmd - if not config or cmd not in config: - return cmd - - def _render_synchronization(self, item, config=None): - cmd = "synchronization" - if item["synchronization"] is False: - cmd = "no %s" % cmd - if not config or cmd not in config: - return cmd - - def _render_networks(self, item, config=None): - commands = list() - safe_list = list() - - for entry in item["networks"]: - network = entry["prefix"] - cmd = "network %s" % network - if entry["masklen"]: - cmd += " mask %s" % to_netmask(entry["masklen"]) - network += " mask %s" % to_netmask(entry["masklen"]) - if entry["route_map"]: - cmd += " route-map %s" % entry["route_map"] - network += " route-map %s" % entry["route_map"] - - safe_list.append(network) - - if not config or cmd not in config: - commands.append(cmd) - - if self.params["operation"] == "replace": - if config: - matches = re.findall(r"network (.*)", config, re.M) - for entry in set(matches).difference(safe_list): - commands.append("no network %s" % entry) - - return commands - - def _render_redistribute(self, item, config=None): - commands = list() - safe_list = list() - - for entry in item["redistribute"]: - option = entry["protocol"] - - cmd = "redistribute %s" % entry["protocol"] - - if entry["id"] and entry["protocol"] in ("ospf", "ospfv3", "eigrp"): - cmd += " %s" % entry["id"] - option += " %s" % entry["id"] - - if entry["metric"]: - cmd += " metric %s" % entry["metric"] - - if entry["route_map"]: - cmd += " route-map %s" % entry["route_map"] - - if not config or cmd not in config: - commands.append(cmd) - - safe_list.append(option) - - if self.params["operation"] == "replace": - if config: - matches = re.findall(r"redistribute (\S+)(?:\s*)(\d*)", config, re.M) - for i in range(0, len(matches)): - matches[i] = " ".join(matches[i]).strip() - for entry in set(matches).difference(safe_list): - commands.append("no redistribute %s" % entry) - - return commands - - def _render_neighbors(self, item, config): - """generate bgp neighbor configuration""" - return AFNeighbors(self.params).render(config, nbr_list=item["neighbors"]) diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/neighbors.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/neighbors.py deleted file mode 100644 index 4ee337b00..000000000 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/neighbors.py +++ /dev/null @@ -1,203 +0,0 @@ -# -# (c) 2019, Ansible by Red Hat, inc -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type -import re - -from ansible.module_utils.six import iteritems -from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import to_list - -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers.providers import ( - CliProvider, -) - - -class Neighbors(CliProvider): - def render(self, config=None, nbr_list=None): - commands = list() - safe_list = list() - if not nbr_list: - nbr_list = self.get_value("config.neighbors") - - for item in nbr_list: - neighbor_commands = list() - context = "neighbor %s" % item["neighbor"] - cmd = "%s remote-as %s" % (context, item["remote_as"]) - - if not config or cmd not in config: - neighbor_commands.append(cmd) - - for key, value in iteritems(item): - if value is not None: - meth = getattr(self, "_render_%s" % key, None) - if meth: - resp = meth(item, config) - if resp: - neighbor_commands.extend(to_list(resp)) - - commands.extend(neighbor_commands) - safe_list.append(context) - - if self.params["operation"] == "replace": - if config and safe_list: - commands.extend(self._negate_config(config, safe_list)) - - return commands - - def _negate_config(self, config, safe_list=None): - commands = list() - matches = re.findall(r"(neighbor \S+)", config, re.M) - for item in set(matches).difference(safe_list): - commands.append("no %s" % item) - return commands - - def _render_local_as(self, item, config=None): - cmd = "neighbor %s local-as %s" % (item["neighbor"], item["local_as"]) - if not config or cmd not in config: - return cmd - - def _render_port(self, item, config=None): - cmd = "neighbor %s port %s" % (item["neighbor"], item["port"]) - if not config or cmd not in config: - return cmd - - def _render_description(self, item, config=None): - cmd = "neighbor %s description %s" % (item["neighbor"], item["description"]) - if not config or cmd not in config: - return cmd - - def _render_enabled(self, item, config=None): - cmd = "neighbor %s shutdown" % item["neighbor"] - if item["enabled"] is True: - if not config or cmd in config: - cmd = "no %s" % cmd - return cmd - elif not config or cmd not in config: - return cmd - - def _render_update_source(self, item, config=None): - cmd = "neighbor %s update-source %s" % (item["neighbor"], item["update_source"]) - if not config or cmd not in config: - return cmd - - def _render_password(self, item, config=None): - cmd = "neighbor %s password %s" % (item["neighbor"], item["password"]) - if not config or cmd not in config: - return cmd - - def _render_ebgp_multihop(self, item, config=None): - cmd = "neighbor %s ebgp-multihop %s" % (item["neighbor"], item["ebgp_multihop"]) - if not config or cmd not in config: - return cmd - - def _render_peer_group(self, item, config=None): - cmd = "neighbor %s peer-group %s" % (item["neighbor"], item["peer_group"]) - if not config or cmd not in config: - return cmd - - def _render_timers(self, item, config): - """generate bgp timer related configuration""" - keepalive = item["timers"]["keepalive"] - holdtime = item["timers"]["holdtime"] - min_neighbor_holdtime = item["timers"]["min_neighbor_holdtime"] - neighbor = item["neighbor"] - - if keepalive and holdtime: - cmd = "neighbor %s timers %s %s" % (neighbor, keepalive, holdtime) - if min_neighbor_holdtime: - cmd += " %s" % min_neighbor_holdtime - if not config or cmd not in config: - return cmd - - -class AFNeighbors(CliProvider): - def render(self, config=None, nbr_list=None): - commands = list() - if not nbr_list: - return - - for item in nbr_list: - neighbor_commands = list() - for key, value in iteritems(item): - if value is not None: - meth = getattr(self, "_render_%s" % key, None) - if meth: - resp = meth(item, config) - if resp: - neighbor_commands.extend(to_list(resp)) - - commands.extend(neighbor_commands) - - return commands - - def _render_advertisement_interval(self, item, config=None): - cmd = "neighbor %s advertisement-interval %s" % ( - item["neighbor"], - item["advertisement_interval"], - ) - if not config or cmd not in config: - return cmd - - def _render_route_reflector_client(self, item, config=None): - cmd = "neighbor %s route-reflector-client" % item["neighbor"] - if item["route_reflector_client"] is False: - if not config or cmd in config: - cmd = "no %s" % cmd - return cmd - elif not config or cmd not in config: - return cmd - - def _render_route_server_client(self, item, config=None): - cmd = "neighbor %s route-server-client" % item["neighbor"] - if item["route_server_client"] is False: - if not config or cmd in config: - cmd = "no %s" % cmd - return cmd - elif not config or cmd not in config: - return cmd - - def _render_remove_private_as(self, item, config=None): - cmd = "neighbor %s remove-private-as" % item["neighbor"] - if item["remove_private_as"] is False: - if not config or cmd in config: - cmd = "no %s" % cmd - return cmd - elif not config or cmd not in config: - return cmd - - def _render_next_hop_self(self, item, config=None): - cmd = "neighbor %s next-hop-self" % item["neighbor"] - if item["next_hop_self"] is False: - if not config or cmd in config: - cmd = "no %s" % cmd - return cmd - elif not config or cmd not in config: - return cmd - - def _render_activate(self, item, config=None): - cmd = "neighbor %s activate" % item["neighbor"] - if item["activate"] is False: - if not config or cmd in config: - cmd = "no %s" % cmd - return cmd - elif not config or cmd not in config: - return cmd - - def _render_maximum_prefix(self, item, config=None): - cmd = "neighbor %s maximum-prefix %s" % (item["neighbor"], item["maximum_prefix"]) - if not config or cmd not in config: - return cmd - - def _render_prefix_list_in(self, item, config=None): - cmd = "neighbor %s prefix-list %s in" % (item["neighbor"], item["prefix_list_in"]) - if not config or cmd not in config: - return cmd - - def _render_prefix_list_out(self, item, config=None): - cmd = "neighbor %s prefix-list %s out" % (item["neighbor"], item["prefix_list_out"]) - if not config or cmd not in config: - return cmd diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/process.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/process.py deleted file mode 100644 index 2b54daa35..000000000 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/cli/config/bgp/process.py +++ /dev/null @@ -1,163 +0,0 @@ -# -# (c) 2019, Ansible by Red Hat, inc -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type -import re - -from ansible.module_utils.common.network import to_netmask -from ansible.module_utils.six import iteritems -from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import to_list - -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers.cli.config.bgp.address_family import ( - AddressFamily, -) -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers.cli.config.bgp.neighbors import ( - Neighbors, -) -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers.providers import ( - CliProvider, - register_provider, -) - - -REDISTRIBUTE_PROTOCOLS = [ - "ospf", - "ospfv3", - "eigrp", - "isis", - "static", - "connected", - "odr", - "lisp", - "mobile", - "rip", -] - - -@register_provider("ios", "ios_bgp") -class Provider(CliProvider): - def render(self, config=None): - commands = list() - - existing_as = None - if config: - match = re.search(r"router bgp (\d+)", config, re.M) - if match: - existing_as = match.group(1) - - operation = self.params["operation"] - - context = None - if self.params["config"]: - context = "router bgp %s" % self.get_value("config.bgp_as") - - if operation == "delete": - if existing_as: - commands.append("no router bgp %s" % existing_as) - elif context: - commands.append("no %s" % context) - - else: - self._validate_input(config) - if operation == "replace": - if existing_as and int(existing_as) != self.get_value("config.bgp_as"): - commands.append("no router bgp %s" % existing_as) - config = None - - elif operation == "override": - if existing_as: - commands.append("no router bgp %s" % existing_as) - config = None - - context_commands = list() - - for key, value in iteritems(self.get_value("config")): - if value is not None: - meth = getattr(self, "_render_%s" % key, None) - if meth: - resp = meth(config) - if resp: - context_commands.extend(to_list(resp)) - - if context and context_commands: - commands.append(context) - commands.extend(context_commands) - commands.append("exit") - return commands - - def _render_router_id(self, config=None): - cmd = "bgp router-id %s" % self.get_value("config.router_id") - if not config or cmd not in config: - return cmd - - def _render_log_neighbor_changes(self, config=None): - cmd = "bgp log-neighbor-changes" - log_neighbor_changes = self.get_value("config.log_neighbor_changes") - if log_neighbor_changes is True: - if not config or cmd not in config: - return cmd - elif log_neighbor_changes is False: - if config and cmd in config: - return "no %s" % cmd - - def _render_networks(self, config=None): - commands = list() - safe_list = list() - - for entry in self.get_value("config.networks"): - network = entry["prefix"] - cmd = "network %s" % network - if entry["masklen"] and entry["masklen"] not in (24, 16, 8): - cmd += " mask %s" % to_netmask(entry["masklen"]) - network += " mask %s" % to_netmask(entry["masklen"]) - - if entry["route_map"]: - cmd += " route-map %s" % entry["route_map"] - network += " route-map %s" % entry["route_map"] - - safe_list.append(network) - - if not config or cmd not in config: - commands.append(cmd) - - if self.params["operation"] == "replace": - if config: - matches = re.findall(r"network (.*)", config, re.M) - for entry in set(matches).difference(safe_list): - commands.append("no network %s" % entry) - - return commands - - def _render_neighbors(self, config): - """generate bgp neighbor configuration""" - return Neighbors(self.params).render(config) - - def _render_address_family(self, config): - """generate address-family configuration""" - return AddressFamily(self.params).render(config) - - def _validate_input(self, config=None): - def device_has_AF(config): - return re.search(r"address-family (?:.*)", config) - - address_family = self.get_value("config.address_family") - root_networks = self.get_value("config.networks") - operation = self.params["operation"] - - if operation == "replace": - if address_family and root_networks: - for item in address_family: - if item["networks"]: - raise ValueError( - "operation is replace but provided both root level network(s) and network(s) under %s %s address family" - % (item["afi"], item["safi"]), - ) - - if root_networks and config and device_has_AF(config): - raise ValueError( - "operation is replace and device has one or more address family activated but root level network(s) provided", - ) diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/module.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/module.py deleted file mode 100644 index 4de464795..000000000 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/providers/module.py +++ /dev/null @@ -1,66 +0,0 @@ -# -# (c) 2019, Ansible by Red Hat, inc -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type -from ansible.module_utils._text import to_text -from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.connection import Connection - -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers import providers - - -class NetworkModule(AnsibleModule): - fail_on_missing_provider = True - - def __init__(self, connection=None, *args, **kwargs): - super(NetworkModule, self).__init__(*args, **kwargs) - - if connection is None: - connection = Connection(self._socket_path) - - self.connection = connection - - @property - def provider(self): - if not hasattr(self, "_provider"): - capabilities = self.from_json(self.connection.get_capabilities()) - - network_os = capabilities["device_info"]["network_os"] - network_api = capabilities["network_api"] - - if network_api == "cliconf": - connection_type = "network_cli" - - cls = providers.get(network_os, self._name.split(".")[-1], connection_type) - - if not cls: - msg = "unable to find suitable provider for network os %s" % network_os - if self.fail_on_missing_provider: - self.fail_json(msg=msg) - else: - self.warn(msg) - - obj = cls(self.params, self.connection, self.check_mode) - - setattr(self, "_provider", obj) - - return getattr(self, "_provider") - - def get_facts(self, subset=None): - try: - self.provider.get_facts(subset) - except Exception as exc: - self.fail_json(msg=to_text(exc)) - - def edit_config(self, config_filter=None): - current_config = self.connection.get_config(flags=config_filter) - try: - commands = self.provider.edit_config(current_config) - changed = bool(commands) - return {"commands": commands, "changed": changed} - except Exception as exc: - self.fail_json(msg=to_text(exc)) diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/acls.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/acls.py index b3afd65f9..54d082c2e 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/acls.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/acls.py @@ -23,9 +23,9 @@ from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.r def remarks_with_sequence(remarks_data): - cmd = "remark " + cmd = "remark" if remarks_data.get("remarks"): - cmd += remarks_data.get("remarks") + cmd += " " + remarks_data.get("remarks") if remarks_data.get("sequence"): cmd = to_text(remarks_data.get("sequence")) + " " + cmd return cmd @@ -191,7 +191,7 @@ class AclsTemplate(NetworkTemplate): "name": "{{ acl_name }}", "aces": [ { - "the_remark": "{{ remarks }}", + "the_remark": "'{{ remarks }}'", "order": "{{ order }}", "is_remark_for": "{{ sequence }}", }, @@ -206,14 +206,14 @@ class AclsTemplate(NetworkTemplate): r"""(?P^\d+)\s*remark\s(?P.+)$""", re.VERBOSE, ), - "setval": "{{ sequence }} remark", + "setval": remarks_with_sequence, "result": { "acls": { "{{ acl_name|d() }}": { "name": "{{ acl_name }}", "aces": [ { - "the_remark": "{{ remarks }}", + "the_remark": "'{{ remarks }}'", "order": "{{ order }}", "is_remark_for": "remark", }, @@ -238,7 +238,7 @@ class AclsTemplate(NetworkTemplate): "aces": [ { "sequence": "{{ sequence }}", - "remarks": ["{{ remarks }}"], + "remarks": ["'{{ remarks }}'"], }, ], }, @@ -248,7 +248,7 @@ class AclsTemplate(NetworkTemplate): { "name": "aces_ipv4_standard", "getval": re.compile( - r"""(\s*(?P\d+))? + r"""^\s*((?P\d+))? (\s(?Pdeny|permit)) (\s+(?P
    ((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))? (\s(?P((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))? @@ -281,17 +281,17 @@ class AclsTemplate(NetworkTemplate): { "name": "aces", "getval": re.compile( - r"""(\s*(?P\d+))? - (\s*sequence\s(?P\d+))? - (\s*(?Pdeny|permit)) + r"""^\s*((?P\d+))? + (\ssequence\s(?P\d+))? + (\s(?Pdeny|permit)) (\sevaluate\s(?P\S+))? - (\s(?P\d+))? + (\s(?P\d+)\s)? (\s*(?Pahp|eigrp|esp|gre|icmp|igmp|ipinip|ipv6|ip|nos|ospf|pcp|pim|sctp|tcp|ip|udp))? - ((\s(?Pany))| - (\sobject-group\s(?P\S+))| - (\shost\s(?P\S+))| - (\s(?P\S+/\d+))| - (\s(?P(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\s\S+)))? + ((\s*(?Pany))| + (\s*object-group\s(?P\S+))| + (\s*host\s(?P\S+))| + (\s*(?P\S+/\d+))| + (\s*(?P(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\s\S+)))? (\seq\s(?P(\S+|\d+)))? (\sgt\s(?P(\S+|\d+)))? (\slt\s(?P(\S+|\d+)))? diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/bgp_address_family.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/bgp_address_family.py index ca85440b2..eb5a08a37 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/bgp_address_family.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/bgp_address_family.py @@ -28,7 +28,11 @@ UNIQUE_NEIB_ADD = "{{ neighbor_address }}" class Bgp_address_familyTemplate(NetworkTemplate): def __init__(self, lines=None, module=None): - super(Bgp_address_familyTemplate, self).__init__(lines=lines, tmplt=self, module=module) + super(Bgp_address_familyTemplate, self).__init__( + lines=lines, + tmplt=self, + module=module, + ) PARSERS = [ { @@ -61,7 +65,11 @@ class Bgp_address_familyTemplate(NetworkTemplate): "{{ (' vrf ' + vrf) if vrf is defined else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"afi": "{{ afi }}", "safi": "{{ safi }}", "vrf": "{{ vrf }}"}, + UNIQUE_AFI: { + "afi": "{{ afi }}", + "safi": "{{ safi }}", + "vrf": "{{ vrf }}", + }, }, }, "shared": True, @@ -136,7 +144,10 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "table_map": {"name": "{{ name }}", "filter": "{{ not not filter }}"}, + "table_map": { + "name": "{{ name }}", + "filter": "{{ not not filter }}", + }, }, }, }, @@ -149,7 +160,10 @@ class Bgp_address_familyTemplate(NetworkTemplate): }, { "name": "default_information", - "getval": re.compile(r"""\s\sdefault-information\soriginate$""", re.VERBOSE), + "getval": re.compile( + r"""\s\sdefault-information\soriginate$""", + re.VERBOSE, + ), "setval": "default-information originate", "result": {"address_family": {UNIQUE_AFI: {"default_information": True}}}, }, @@ -162,7 +176,11 @@ class Bgp_address_familyTemplate(NetworkTemplate): re.VERBOSE, ), "setval": "default-metric {{ default_metric|string }}", - "result": {"address_family": {UNIQUE_AFI: {"default_metric": "{{ default_metric }}"}}}, + "result": { + "address_family": { + UNIQUE_AFI: {"default_metric": "{{ default_metric }}"}, + }, + }, }, { "name": "distance", @@ -234,7 +252,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): ), "setval": "bgp additional-paths select install", "result": { - "address_family": {UNIQUE_AFI: {"bgp": {"additional_paths": {"install": True}}}}, + "address_family": { + UNIQUE_AFI: {"bgp": {"additional_paths": {"install": True}}}, + }, }, }, { @@ -246,7 +266,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): ), "setval": "bgp additional-paths select receive", "result": { - "address_family": {UNIQUE_AFI: {"bgp": {"additional_paths": {"receive": True}}}}, + "address_family": { + UNIQUE_AFI: {"bgp": {"additional_paths": {"receive": True}}}, + }, }, }, { @@ -258,7 +280,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): ), "setval": "bgp additional-paths select send", "result": { - "address_family": {UNIQUE_AFI: {"bgp": {"additional_paths": {"send": True}}}}, + "address_family": { + UNIQUE_AFI: {"bgp": {"additional_paths": {"send": True}}}, + }, }, }, { @@ -316,7 +340,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "setval": "bgp nexthop trigger delay {{ bgp.nexthop.trigger.delay|string }}", "result": { "address_family": { - UNIQUE_AFI: {"bgp": {"nexthop": {"trigger": {"delay": "{{ delay }}"}}}}, + UNIQUE_AFI: { + "bgp": {"nexthop": {"trigger": {"delay": "{{ delay }}"}}}, + }, }, }, }, @@ -330,7 +356,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): ), "setval": "bgp nexthop trigger delay enable", "result": { - "address_family": {UNIQUE_AFI: {"bgp": {"nexthop": {"trigger": {"enable": True}}}}}, + "address_family": { + UNIQUE_AFI: {"bgp": {"nexthop": {"trigger": {"enable": True}}}}, + }, }, }, { @@ -342,7 +370,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): re.VERBOSE, ), "setval": "bgp redistribute-internal", - "result": {"address_family": {UNIQUE_AFI: {"bgp": {"redistribute_internal": True}}}}, + "result": { + "address_family": {UNIQUE_AFI: {"bgp": {"redistribute_internal": True}}}, + }, }, { "name": "bgp.route_map", @@ -365,7 +395,11 @@ class Bgp_address_familyTemplate(NetworkTemplate): re.VERBOSE, ), "setval": "bgp scan-time {{ bgp.scan_time }}", - "result": {"address_family": {UNIQUE_AFI: {"bgp": {"scan_time": "{{ scan_time }}"}}}}, + "result": { + "address_family": { + UNIQUE_AFI: {"bgp": {"scan_time": "{{ scan_time }}"}}, + }, + }, }, { "name": "bgp.soft_reconfig_backup", @@ -376,7 +410,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): re.VERBOSE, ), "setval": "bgp soft-reconfig-backup", - "result": {"address_family": {UNIQUE_AFI: {"bgp": {"soft_reconfig_backup": True}}}}, + "result": { + "address_family": {UNIQUE_AFI: {"bgp": {"soft_reconfig_backup": True}}}, + }, }, { "name": "bgp.update_group", @@ -429,7 +465,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "setval": "bgp slow-peer detection", "result": { "address_family": { - UNIQUE_AFI: {"bgp": {"slow_peer_options": {"detection": {"enable": True}}}}, + UNIQUE_AFI: { + "bgp": {"slow_peer_options": {"detection": {"enable": True}}}, + }, }, }, }, @@ -447,7 +485,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "address_family": { UNIQUE_AFI: { "bgp": { - "slow_peer_options": {"detection": {"threshold": "{{ threshold }}"}}, + "slow_peer_options": { + "detection": {"threshold": "{{ threshold }}"}, + }, }, }, }, @@ -464,7 +504,11 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "bgp": {"slow_peer_options": {"split_update_group": {"dynamic": True}}}, + "bgp": { + "slow_peer_options": { + "split_update_group": {"dynamic": True}, + }, + }, }, }, }, @@ -480,7 +524,11 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "bgp": {"slow_peer_options": {"split_update_group": {"permanent": True}}}, + "bgp": { + "slow_peer_options": { + "split_update_group": {"permanent": True}, + }, + }, }, }, }, @@ -543,7 +591,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "{{ (' ' + remote_as|string) if remote_as is defined else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"remote_as": "{{ number }}"}}}, + UNIQUE_AFI: { + "neighbors": {UNIQUE_NEIB_ADD: {"remote_as": "{{ number }}"}}, + }, }, }, }, @@ -692,7 +742,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"advertises": {"best-external": True}}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"advertises": {"best-external": True}}, + }, }, }, }, @@ -792,7 +844,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "setval": "{{ ('neighbor ' + neighbor_address + ' aigp') if aigp.enable|d(False) else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"aigp": {"enable": True}}}}, + UNIQUE_AFI: { + "neighbors": {UNIQUE_NEIB_ADD: {"aigp": {"enable": True}}}, + }, }, }, }, @@ -848,7 +902,11 @@ class Bgp_address_familyTemplate(NetworkTemplate): "{{ (' aigp send med') if aigp.send.med|d(False) else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"aigp": {"send": {"med": True}}}}}, + UNIQUE_AFI: { + "neighbors": { + UNIQUE_NEIB_ADD: {"aigp": {"send": {"med": True}}}, + }, + }, }, }, }, @@ -863,7 +921,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "setval": "{{ ('neighbor ' + neighbor_address + ' allow-policy') if allow_policy|d(False) else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"allow_policy": True}}}, + UNIQUE_AFI: { + "neighbors": {UNIQUE_NEIB_ADD: {"allow_policy": True}}, + }, }, }, }, @@ -881,7 +941,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"allowas_in": "{{ allowas_in }}"}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"allowas_in": "{{ allowas_in }}"}, + }, }, }, }, @@ -973,7 +1035,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"cluster_id": "{{ cluster_id }}"}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"cluster_id": "{{ cluster_id }}"}, + }, }, }, }, @@ -989,7 +1053,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"default_originate": {"set": True}}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"default_originate": {"set": True}}, + }, }, }, }, @@ -1031,7 +1097,7 @@ class Bgp_address_familyTemplate(NetworkTemplate): "neighbors": { UNIQUE_NEIB_ADD: { "neighbor_address": UNIQUE_NEIB_ADD, - "description": "{{ description }}", + "description": "'{{ description }}'", }, }, }, @@ -1260,7 +1326,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "{{ (' ' + inherit) if inherit is defined else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"inherit": "{{ inherit }}"}}}, + UNIQUE_AFI: { + "neighbors": {UNIQUE_NEIB_ADD: {"inherit": "{{ inherit }}"}}, + }, }, }, }, @@ -1276,7 +1344,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "setval": "neighbor {{ neighbor_address }} internal-vpn-client", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"internal_vpn_client": True}}}, + UNIQUE_AFI: { + "neighbors": {UNIQUE_NEIB_ADD: {"internal_vpn_client": True}}, + }, }, }, }, @@ -1354,7 +1424,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "setval": "{{ ('neighbor ' + neighbor_address + ' next-hop-self') if nexthop_self.set|d(False) else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"nexthop_self": {"set": True}}}}, + UNIQUE_AFI: { + "neighbors": {UNIQUE_NEIB_ADD: {"nexthop_self": {"set": True}}}, + }, }, }, }, @@ -1369,7 +1441,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "setval": "{{ ('neighbor ' + neighbor_address + ' next-hop-self all') if nexthop_self.all|d(False) else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"nexthop_self": {"all": True}}}}, + UNIQUE_AFI: { + "neighbors": {UNIQUE_NEIB_ADD: {"nexthop_self": {"all": True}}}, + }, }, }, }, @@ -1385,7 +1459,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"next_hop_unchanged": {"set": True}}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"next_hop_unchanged": {"set": True}}, + }, }, }, }, @@ -1402,7 +1478,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"next_hop_unchanged": {"allpaths": True}}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"next_hop_unchanged": {"allpaths": True}}, + }, }, }, }, @@ -1460,7 +1538,10 @@ class Bgp_address_familyTemplate(NetworkTemplate): "path_attribute": { "discard": { "type": "{{ type }}", - "range": {"start": "{{ start }}", "end": "{{ end }}"}, + "range": { + "start": "{{ start }}", + "end": "{{ end }}", + }, "in": "{{ not not in }}", }, }, @@ -1493,7 +1574,10 @@ class Bgp_address_familyTemplate(NetworkTemplate): "path_attribute": { "treat_as_withdraw": { "type": "{{ type }}", - "range": {"start": "{{ start }}", "end": "{{ end }}"}, + "range": { + "start": "{{ start }}", + "end": "{{ end }}", + }, "in": "{{ not not in }}", }, }, @@ -1581,7 +1665,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"remove_private_as": {"set": True}}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"remove_private_as": {"set": True}}, + }, }, }, }, @@ -1598,7 +1684,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"remove_private_as": {"all": True}}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"remove_private_as": {"all": True}}, + }, }, }, }, @@ -1615,7 +1703,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"remove_private_as": {"replace_as": True}}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"remove_private_as": {"replace_as": True}}, + }, }, }, }, @@ -1675,7 +1765,11 @@ class Bgp_address_familyTemplate(NetworkTemplate): "setval": "{{ ('neighbor ' + neighbor_address + ' send-community') if send_community.set|d(False) else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"send_community": {"set": True}}}}, + UNIQUE_AFI: { + "neighbors": { + UNIQUE_NEIB_ADD: {"send_community": {"set": True}}, + }, + }, }, }, }, @@ -1692,7 +1786,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"send_community": {"both": True}}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"send_community": {"both": True}}, + }, }, }, }, @@ -1710,7 +1806,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"send_community": {"extended": True}}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"send_community": {"extended": True}}, + }, }, }, }, @@ -1728,7 +1826,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"send_community": {"standard": True}}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"send_community": {"standard": True}}, + }, }, }, }, @@ -1840,7 +1940,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "{{ (' soft-reconfiguration inbound') if soft_reconfiguration|d(False) else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"soft_reconfiguration": True}}}, + UNIQUE_AFI: { + "neighbors": {UNIQUE_NEIB_ADD: {"soft_reconfiguration": True}}, + }, }, }, }, @@ -1986,7 +2088,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"ttl_security": "{{ ttl_security }}"}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"ttl_security": "{{ ttl_security }}"}, + }, }, }, }, @@ -2005,7 +2109,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "result": { "address_family": { UNIQUE_AFI: { - "neighbors": {UNIQUE_NEIB_ADD: {"unsuppress_map": "{{ unsuppress_map }}"}}, + "neighbors": { + UNIQUE_NEIB_ADD: {"unsuppress_map": "{{ unsuppress_map }}"}, + }, }, }, }, @@ -2047,7 +2153,9 @@ class Bgp_address_familyTemplate(NetworkTemplate): "{{ (' ' + weight|string) if weight is defined else '' }}", "result": { "address_family": { - UNIQUE_AFI: {"neighbors": {UNIQUE_NEIB_ADD: {"weight": "{{ weight }}"}}}, + UNIQUE_AFI: { + "neighbors": {UNIQUE_NEIB_ADD: {"weight": "{{ weight }}"}}, + }, }, }, }, @@ -2130,7 +2238,10 @@ class Bgp_address_familyTemplate(NetworkTemplate): "name": "{{ context }}", "user": { "name": "{{ user }}", - "access": {"acl": "{{ acl }}", "ipv6": "{{ aclv6 }}"}, + "access": { + "acl": "{{ acl }}", + "ipv6": "{{ aclv6 }}", + }, "auth": {"md5": "{{ md5 }}", "sha": "{{ sha }}"}, "priv": { "des56": "{{ des56 }}", @@ -2663,7 +2774,12 @@ class Bgp_address_familyTemplate(NetworkTemplate): "address_family": { UNIQUE_AFI: { "redistribute": [ - {"vrf": {"name": "{{ name }}", "global": "{{ not not global }}"}}, + { + "vrf": { + "name": "{{ name }}", + "global": "{{ not not global }}", + }, + }, ], }, }, diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/bgp_global.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/bgp_global.py index 39fd548bc..2ce959fcd 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/bgp_global.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/bgp_global.py @@ -447,7 +447,7 @@ class Bgp_globalTemplate(NetworkTemplate): re.VERBOSE, ), "setval": "description {{ route_server_context.description }}", - "result": {"route_server_context": {"description": "{{ description }}"}}, + "result": {"route_server_context": {"description": "'{{ description }}'"}}, }, { "name": "synchronization", @@ -475,6 +475,36 @@ class Bgp_globalTemplate(NetworkTemplate): "table_map": {"name": "{{ name }}", "filter": "{{ not not filter }}"}, }, }, + { + "name": "template.peer_policy", + "getval": re.compile( + r""" + \stemplate\speer-policy + (\s(?P\S+)) + $""", + re.VERBOSE, + ), + "setval": "template peer-policy" + "{{ (' ' + template.peer_policy) if template.peer_policy is defined else '' }}", + "result": { + "template": {"peer_policy": "{{ peer_policy }}"}, + }, + }, + { + "name": "template.peer_session", + "getval": re.compile( + r""" + \stemplate\speer-session + (\s(?P\S+)) + $""", + re.VERBOSE, + ), + "setval": "template peer-session" + "{{ (' ' + template.peer_session) if template.peer_session is defined else '' }}", + "result": { + "template": {"peer_session": "{{ peer_session }}"}, + }, + }, { "name": "timers", "getval": re.compile( @@ -744,6 +774,21 @@ class Bgp_globalTemplate(NetworkTemplate): }, }, }, + { + "name": "bgp.default.ipv4_unicast", + "getval": re.compile(r"""\sno\sbgp\sdefault\sipv4\-unicast""", re.VERBOSE), + "setval": "bgp default ipv4-unicast", + "result": {"bgp": {"default": {"ipv4_unicast": False}}}, + }, + { + "name": "bgp.default.route_target.filter", + "getval": re.compile( + r"""\sno\sbgp\sdefault\sroute\-target\sfilter""", + re.VERBOSE, + ), + "setval": "bgp default route-target filter", + "result": {"bgp": {"default": {"route_target": {"filter": False}}}}, + }, { "name": "bgp.deterministic_med", "getval": re.compile(r"""\s(bgp\sdeterministic-med)""", re.VERBOSE), @@ -1064,7 +1109,9 @@ class Bgp_globalTemplate(NetworkTemplate): "setval": "bgp nopeerup-delay nsf-switchover {{ bgp.nopeerup_delay_options.nsf_switchover|string }}", "result": { "bgp": { - "nopeerup_delay_options": {"nsf_switchover": "{{ nsf_switchover }}"}, + "nopeerup_delay_options": { + "nsf_switchover": "{{ nsf_switchover }}", + }, }, }, }, @@ -1080,7 +1127,9 @@ class Bgp_globalTemplate(NetworkTemplate): "setval": "bgp nopeerup-delay user-initiated {{ bgp.nopeerup_delay_options.user_initiated|string }}", "result": { "bgp": { - "nopeerup_delay_options": {"user_initiated": "{{ user_initiated }}"}, + "nopeerup_delay_options": { + "user_initiated": "{{ user_initiated }}", + }, }, }, }, @@ -1433,7 +1482,7 @@ class Bgp_globalTemplate(NetworkTemplate): "neighbors": { "{{ neighbor_address }}": { "neighbor_address": "{{ neighbor_address }}", - "description": "{{ description }}", + "description": "'{{ description }}'", }, }, }, diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/interfaces.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/interfaces.py index 084945143..6cd1eb84c 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/interfaces.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/interfaces.py @@ -53,7 +53,7 @@ class InterfacesTemplate(NetworkTemplate): "setval": "description {{ description }}", "result": { '{{ name }}': { - 'description': '{{ description }}', + 'description': "'{{ description }}'", }, }, }, diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/l3_interfaces.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/l3_interfaces.py index d57a8ded8..bd337befa 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/l3_interfaces.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/l3_interfaces.py @@ -65,6 +65,23 @@ class L3_interfacesTemplate(NetworkTemplate): # fmt: off PARSERS = [ + { + "name": "autostate", + "getval": re.compile(r"""\s+no\s+autostate$""", re.VERBOSE), + "setval": "autostate", + "result": {"{{ name }}": {"autostate": False}}, + }, + { + "name": "mac_address", + "getval": re.compile( + r"""^mac-address + (\s(?P\S+)) + $""", + re.VERBOSE, + ), + "setval": "mac-address {{ mac_address }}", + "result": {"{{ name }}": {"mac_address": "{{ mac_address }}"}}, + }, { "name": "name", "getval": re.compile( @@ -145,6 +162,33 @@ class L3_interfacesTemplate(NetworkTemplate): }, }, }, + { + "name": "ipv4.source_interface", + "getval": re.compile( + r"""\s+ip\sunnumbered + (\s(?P\S+)) + (\s(?Ppoll))? + (\s(?Ppoint-to-point))? + $""", + re.VERBOSE, + ), + "setval": "ip unnumbered {{ ipv4.source_interface.name }}" + "{{ ' poll' if ipv4.source_interface.poll|d(False) else ''}}" + "{{ ' point-to-point' if ipv4.source_interface.point_to_point|d(False) else ''}}", + "result": { + "{{ name }}": { + "ipv4": [ + { + "source_interface": { + "name": "{{ True if name is defined }}", + "poll": "{{ True if poll is defined }}", + "point_to_point": "{{ True if point_to_point is defined }}", + }, + }, + ], + }, + }, + }, { "name": "ipv6.address", "getval": re.compile( @@ -227,5 +271,17 @@ class L3_interfacesTemplate(NetworkTemplate): }, }, }, + { + "name": "ipv6.enable", + "getval": re.compile(r"""\s+ipv6\s+enable$""", re.VERBOSE), + "setval": "ipv6 enable", + "result": { + "{{ name }}": { + "ipv6": [ + {"enable": True}, + ], + }, + }, + }, ] # fmt: on diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/ospfv2.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/ospfv2.py index 74b380cc5..80548254e 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/ospfv2.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/ospfv2.py @@ -721,9 +721,9 @@ class Ospfv2Template(NetworkTemplate): $""", re.VERBOSE, ), - "setval": "distance {{ admin_distance.distance }} " - "{{ ( admin_distance.address + ' ' + admin_distance.wildcard_bits ) if admin_distance.address is defined else '' }}" - "{{ ' ' + admin_distance.acl if admin_distance.acl is defined else '' }}", + "setval": "distance {{ distance.admin_distance.distance }} " + "{{ ( distance.admin_distance.address + ' ' + distance.admin_distance.wildcard_bits ) if distance.admin_distance.address is defined else '' }}" + "{{ ' ' + distance.admin_distance.acl if distance.admin_distance.acl is defined else '' }}", "result": { "processes": { "{{ pid }}": { diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/prefix_lists.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/prefix_lists.py index 43d163c5d..f19e58e27 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/prefix_lists.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/prefix_lists.py @@ -80,7 +80,7 @@ class Prefix_listsTemplate(NetworkTemplate): "{{ afi + name }}": { "name": "{{ name }}", "afi": "{{ 'ipv4' if afi is defined and afi=='ip' else 'ipv6' }}", - "description": "{{ description }}", + "description": "'{{ description }}'", }, }, }, diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/route_maps.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/route_maps.py index 1e569ccca..580987069 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/route_maps.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/route_maps.py @@ -39,11 +39,15 @@ def _tmplt_route_map_match(config_data): cmd += " best {best}".format(**config_data["match"]["additional_paths"]) if config_data["match"]["additional_paths"].get("best_range"): cmd += " best-range" - if config_data["match"]["additional_paths"]["best_range"].get("lower_limit"): + if config_data["match"]["additional_paths"]["best_range"].get( + "lower_limit", + ): cmd += " lower-limit {lower_limit}".format( **config_data["match"]["additional_paths"]["best_range"], ) - if config_data["match"]["additional_paths"]["best_range"].get("upper_limit"): + if config_data["match"]["additional_paths"]["best_range"].get( + "upper_limit", + ): cmd += " upper-limit {upper_limit}".format( **config_data["match"]["additional_paths"]["best_range"], ) @@ -231,7 +235,10 @@ def _tmplt_route_map_match_ip(config_data): config_data["match"]["ip"]["address"]["prefix_lists"], ) elif config_data["match"]["ip"]["address"].get("acls"): - cmd = construct_cmd_from_list(cmd, config_data["match"]["ip"]["address"]["acls"]) + cmd = construct_cmd_from_list( + cmd, + config_data["match"]["ip"]["address"]["acls"], + ) if config_data["match"]["ip"].get("flowspec"): cmd += " flowspec" if config_data["match"]["ip"]["flowspec"].get("dest_pfx"): @@ -245,7 +252,10 @@ def _tmplt_route_map_match_ip(config_data): config_data["match"]["ip"]["flowspec"]["prefix_lists"], ) elif config_data["match"]["ip"]["flowspec"].get("acls"): - cmd = construct_cmd_from_list(cmd, config_data["match"]["ip"]["flowspec"]["acls"]) + cmd = construct_cmd_from_list( + cmd, + config_data["match"]["ip"]["flowspec"]["acls"], + ) if config_data["match"]["ip"].get("next_hop"): cmd += " next-hop" if config_data["match"]["ip"]["next_hop"].get("prefix_lists"): @@ -255,7 +265,10 @@ def _tmplt_route_map_match_ip(config_data): config_data["match"]["ip"]["next_hop"]["prefix_lists"], ) elif config_data["match"]["ip"]["next_hop"].get("acls"): - cmd = construct_cmd_from_list(cmd, config_data["match"]["ip"]["next_hop"]["acls"]) + cmd = construct_cmd_from_list( + cmd, + config_data["match"]["ip"]["next_hop"]["acls"], + ) if config_data["match"]["ip"].get("redistribution_source"): cmd += " redistribution-source" if config_data["match"]["ip"]["redistribution_source"].get("prefix_lists"): @@ -411,7 +424,9 @@ def _tmplt_route_map_set(config_data): cmd += " additive" command.append(cmd) if set["extcommunity"].get("soo"): - command.append("set extcommunity soo {soo}".format(**set["extcommunity"])) + command.append( + "set extcommunity soo {soo}".format(**set["extcommunity"]), + ) if set["extcommunity"].get("vpn_distinguisher"): cmd = "set extcommunity vpn-distinguisher" if set["extcommunity"]["vpn_distinguisher"].get("range"): @@ -419,7 +434,9 @@ def _tmplt_route_map_set(config_data): **set["extcommunity"]["vpn_distinguisher"]["range"], ) elif set["extcommunity"]["vpn_distinguisher"].get("address"): - cmd += " {address}".format(**set["extcommunity"]["vpn_distinguisher"]) + cmd += " {address}".format( + **set["extcommunity"]["vpn_distinguisher"], + ) if set["extcommunity"]["vpn_distinguisher"].get("additive"): cmd += " additive" command.append(cmd) @@ -525,7 +542,10 @@ def _tmplt_route_map_set_ip(config_data): command.append("{0} dynamic dhcp".format(cmd)) if set_ip["next_hop"].get("encapsulate"): command.append( - "{0} encapsulate l3vpn {encapsulate}".format(cmd, **set_ip["next_hop"]), + "{0} encapsulate l3vpn {encapsulate}".format( + cmd, + **set_ip["next_hop"], + ), ) if set_ip["next_hop"].get("peer_address"): command.append("{0} peer-address".format(cmd)) @@ -649,7 +669,10 @@ class Route_mapsTemplate(NetworkTemplate): "{{ route_map }}": { "route_map": "{{ route_map }}", "{{ action|d() + '_' + sequence|d() }}": { - "entries": {"action": "{{ action }}", "sequence": "{{ sequence }}"}, + "entries": { + "action": "{{ action }}", + "sequence": "{{ sequence }}", + }, }, }, }, @@ -691,7 +714,7 @@ class Route_mapsTemplate(NetworkTemplate): "result": { "{{ route_map }}": { "{{ action|d() + '_' + sequence|d() }}": { - "entries": {"description": "{{ description }}"}, + "entries": {"description": "'{{ description }}'"}, }, }, }, diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/snmp_server.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/snmp_server.py index 5107612eb..45cabaae9 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/snmp_server.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/snmp_server.py @@ -283,8 +283,7 @@ class Snmp_serverTemplate(NetworkTemplate): (\sread\s(?P\S+))? (\swrite\s(?P\S+))? (\snotify\s(?P\S+))? - (\saccess\s(?P\S+))? - (\saccess\sipv6\s(?P\S+))? + (\saccess(\sipv6\s(?P\S+))?(\s(?P\S+|\d+))?)? """, re.VERBOSE, ), "setval": "snmp-server group " @@ -296,8 +295,9 @@ class Snmp_serverTemplate(NetworkTemplate): "{{ (' read ' + read) if read is defined else '' }}" "{{ (' write ' + write) if write is defined else '' }}" "{{ (' notify ' + notify) if notify is defined else '' }}" - "{{ (' access ' + acl_v4) if acl_v4 is defined else '' }}" - "{{ (' access ipv6 ' + acl_v6) if acl_v6 is defined else '' }}", + "{{ (' access') if acl_v6 is defined or acl_v4 is defined else '' }}" + "{{ (' ipv6 ' + acl_v6) if acl_v6 is defined else '' }}" + "{{ (' ' + acl_v4|string) if acl_v4 is defined else '' }}", "result": { "groups": [ { @@ -398,8 +398,7 @@ class Snmp_serverTemplate(NetworkTemplate): (\sudp-port\s(?P\d+))? (\s(?Pv1|v3|v2c))? (\s(?Pencrypted))? - (\saccess\sipv6\s(?P\S+))? - (\saccess\s(?P\S+|\d+))? + (\saccess(\sipv6\s(?P\S+))?(\s(?P\S+|\d+))?)? (\svrf\s(?P\S+))? """, re.VERBOSE, ), diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/vlans.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/vlans.py new file mode 100644 index 000000000..24907c868 --- /dev/null +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/rm_templates/vlans.py @@ -0,0 +1,131 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Red Hat +# GNU General Public License v3.0+ +# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + + +__metaclass__ = type + +""" +The Vlans parser templates file. This contains +a list of parser definitions and associated functions that +facilitates both facts gathering and native command generation for +the given network resource. +""" + +import re + +from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.rm_base.network_template import ( + NetworkTemplate, +) + + +def vlan_associated_config(config): + cmd = "" + if len(config.get("private_vlan", {}).get("associated")) > 1: + for vlan in config.get("private_vlan", {}).get("associated"): + cmd += str(vlan) + "," + cmd = cmd[:-1] + else: + cmd = config.get("private_vlan", {}).get("associated")[0] + return "private-vlan association " + cmd + + +class VlansTemplate(NetworkTemplate): + def __init__(self, lines=None, module=None): + super(VlansTemplate, self).__init__( + lines=lines, + tmplt=self, + module=module, + ) + + # fmt: off + PARSERS = [ + { + "name": "vlan_configuration", + "getval": re.compile( + r""" + ^vlan\sconfiguration\s(?P\d+) + $""", re.VERBOSE, + ), + "setval": "vlan configuration {{ vlan_id|string }}", + "result": { + "{{ vlan_id }}": { + "vlan_id": "{{ vlan_id }}", + }, + }, + "shared": True, + }, + { + "name": "member", + "getval": re.compile( + r""" + \s*member + (\sevpn-instance\s(?P\d+))? + (\svni\s(?P\d+))? + $""", re.VERBOSE, + ), + "setval": "member" + "{{ (' evpn-instance ' + member.evi|string) if member.evi is defined else '' }}" + "{{ (' vni ' + member.vni|string) if member.vni is defined else '' }}", + "result": { + "{{ vlan_id }}": { + "member": { + "evi": "{{ inst_vlan_id }}", + "vni": "{{ vni }}", + }, + }, + }, + }, + { + "name": "vlans", + "getval": "", + "setval": "vlan {{ vlan_id|string }}", + "result": {}, + }, + { + "name": "name", + "getval": "", + "setval": "name {{ name|string }}", + "result": {}, + }, + { + "name": "state", + "getval": "", + "setval": "state {{ state }}", + "result": {}, + }, + { + "name": "mtu", + "getval": "", + "setval": "mtu {{ mtu|string }}", + "result": {}, + }, + { + "name": "remote_span", + "getval": "", + "setval": "remote-span", + "result": {}, + }, + { + "name": "private_vlan.type", + "getval": "", + "setval": "private-vlan {{ private_vlan.type if private_vlan.type is defined }}", + "result": {}, + }, + { + "name": "private_vlan.associated", + "getval": "", + "setval": vlan_associated_config, + "result": {}, + }, + { + "name": "shutdown", + "getval": "", + "setval": "shutdown", + "result": {}, + }, + ] + # fmt: on diff --git a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/utils/utils.py b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/utils/utils.py index f3038f7f2..1deea535b 100644 --- a/ansible_collections/cisco/ios/plugins/module_utils/network/ios/utils/utils.py +++ b/ansible_collections/cisco/ios/plugins/module_utils/network/ios/utils/utils.py @@ -219,31 +219,19 @@ def validate_ipv4(value, module): address = value.split("/") if len(address) != 2: module.fail_json( - msg="address format is /, got invalid format {0}".format(value), + msg="address format is /, got invalid format {0}".format( + value, + ), ) if not is_masklen(address[1]): module.fail_json( - msg="invalid value for mask: {0}, mask should be in range 0-32".format(address[1]), + msg="invalid value for mask: {0}, mask should be in range 0-32".format( + address[1], + ), ) -def validate_ipv6(value, module): - if value: - address = value.split("/") - if len(address) != 2: - module.fail_json( - msg="address format is /, got invalid format {0}".format(value), - ) - else: - if not 0 <= int(address[1]) <= 128: - module.fail_json( - msg="invalid value for mask: {0}, mask should be in range 0-128".format( - address[1], - ), - ) - - def validate_n_expand_ipv4(module, want): # Check if input IPV4 is valid IP and expand IPV4 with its subnet mask ip_addr_want = want.get("address") diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_acls.py b/ansible_collections/cisco/ios/plugins/modules/ios_acls.py index f81e0e7ab..4636ecb5d 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_acls.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_acls.py @@ -471,6 +471,11 @@ options: - Remarks entry used as the only key in as the list option will produce non ace specific remarks, these remarks would be pushed at the end of all the aces for an acl. + - Remarks is treated a block, for every single remarks updated for + an ace all the remarks are negated and added back to maintain the + order of remarks mentioned. + - As the appliance deletes all the remarks once the ace is updated, + the set of remarks would be re-applied that is an expected behavior. elements: str type: list sequence: @@ -1944,6 +1949,347 @@ EXAMPLES = """ # ip access-list extended 150 # 10 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10 +# Using overridden - example remarks specific on multiple sequence + +# Before state: +# ------------- +# +# vios#show running-config | section access-list +# ip access-list extended TEST +# 10 remark FIRST REMARK BEFORE SEQUENCE 10 +# 10 remark ============ +# 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE +# 20 remark FIRST REMARK BEFORE SEQUENCE 20 +# 20 remark ============ +# 20 remark ALLOW HOST FROM SEQUENCE 20 +# 20 permit ip host 1.1.1.1 any +# 30 remark FIRST REMARK BEFORE SEQUENCE 30 +# 30 remark ============ +# 30 remark ALLOW HOST FROM SEQUENCE 30 +# 30 permit ip host 2.2.2.2 any +# 40 remark FIRST REMARK BEFORE SEQUENCE 40 +# 40 remark ============ +# 40 remark ALLOW NEW HOST FROM SEQUENCE 40 +# 40 permit ip host 3.3.3.3 any +# remark Remark not specific to sequence +# remark ============ +# remark End Remarks +# ip access-list extended test_acl +# 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10 +# ip access-list extended 110 +# 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 echo dscp ef ttl eq 10 +# ip access-list extended 123 +# 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12 +# 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20 +# ipv6 access-list R1_TRAFFIC +# sequence 10 deny tcp any eq www any eq telnet ack dscp af11 + +- name: Override remarks and ace configurations + cisco.ios.ios_acls: + config: + - afi: ipv4 + acls: + - name: TEST + acl_type: extended + aces: + - sequence: 10 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 10" + - "============" + - "REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE" + grant: permit + protocol: ip + source: + host: 1.1.1.1 + destination: + any: true + - sequence: 20 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 20" + - "============" + - "ALLOW HOST FROM SEQUENCE 20" + grant: permit + protocol: ip + source: + host: 192.168.0.1 + destination: + any: true + - sequence: 30 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 30" + - "============" + - "ALLOW HOST FROM SEQUENCE 30 updated" + grant: permit + protocol: ip + source: + host: 2.2.2.2 + destination: + any: true + - sequence: 40 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 40" + - "============" + - "ALLOW NEW HOST FROM SEQUENCE 40" + grant: permit + protocol: ip + source: + host: 3.3.3.3 + destination: + any: true + - remarks: + - "Remark not specific to sequence" + - "============" + - "End Remarks 1" + state: overridden + +# Task Output +# ----------- +# +# before: +# - acls: +# - aces: +# - destination: +# address: 192.0.3.0 +# wildcard_bits: 0.0.0.255 +# dscp: ef +# grant: deny +# protocol: icmp +# protocol_options: +# icmp: +# echo: true +# sequence: 10 +# source: +# address: 192.0.2.0 +# wildcard_bits: 0.0.0.255 +# ttl: +# eq: 10 +# acl_type: extended +# name: '110' +# - aces: +# - destination: +# address: 198.51.101.0 +# port_protocol: +# eq: telnet +# wildcard_bits: 0.0.0.255 +# grant: deny +# protocol: tcp +# protocol_options: +# tcp: +# ack: true +# sequence: 10 +# source: +# address: 198.51.100.0 +# wildcard_bits: 0.0.0.255 +# tos: +# service_value: 12 +# - destination: +# address: 192.0.4.0 +# port_protocol: +# eq: www +# wildcard_bits: 0.0.0.255 +# dscp: ef +# grant: deny +# protocol: tcp +# protocol_options: +# tcp: +# ack: true +# sequence: 20 +# source: +# address: 192.0.3.0 +# wildcard_bits: 0.0.0.255 +# ttl: +# lt: 20 +# acl_type: extended +# name: '123' +# - aces: +# - destination: +# any: true +# grant: permit +# protocol: ip +# remarks: +# - FIRST REMARK BEFORE SEQUENCE 20 +# - ============ +# - ALLOW HOST FROM SEQUENCE 20 +# sequence: 20 +# source: +# host: 1.1.1.1 +# - destination: +# any: true +# grant: permit +# protocol: ip +# remarks: +# - FIRST REMARK BEFORE SEQUENCE 30 +# - ============ +# - ALLOW HOST FROM SEQUENCE 30 +# sequence: 30 +# source: +# host: 2.2.2.2 +# - destination: +# any: true +# grant: permit +# protocol: ip +# remarks: +# - FIRST REMARK BEFORE SEQUENCE 40 +# - ============ +# - ALLOW NEW HOST FROM SEQUENCE 40 +# sequence: 40 +# source: +# host: 3.3.3.3 +# - remarks: +# - FIRST REMARK BEFORE SEQUENCE 10 +# - ============ +# - REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE +# sequence: 10 +# - remarks: +# - Remark not specific to sequence +# - ============ +# - End Remarks +# acl_type: extended +# name: TEST +# - aces: +# - destination: +# address: 192.0.3.0 +# port_protocol: +# eq: www +# wildcard_bits: 0.0.0.255 +# grant: deny +# option: +# traceroute: true +# protocol: tcp +# protocol_options: +# tcp: +# fin: true +# sequence: 10 +# source: +# address: 192.0.2.0 +# wildcard_bits: 0.0.0.255 +# ttl: +# eq: 10 +# acl_type: extended +# name: test_acl +# afi: ipv4 +# - acls: +# - aces: +# - destination: +# any: true +# port_protocol: +# eq: telnet +# dscp: af11 +# grant: deny +# protocol: tcp +# protocol_options: +# tcp: +# ack: true +# sequence: 10 +# source: +# any: true +# port_protocol: +# eq: www +# name: R1_TRAFFIC +# afi: ipv6 +# commands: +# - no ipv6 access-list R1_TRAFFIC +# - ip access-list extended TEST +# - no 10 # removes all remarks and ace entry for sequence 10 +# - no 20 permit ip host 1.1.1.1 any # removing the ace automatically removes the remarks +# - no 30 remark # just remove remarks for sequence 30 +# - no remark # remove all remarks at end of acl, that has no sequence +# - 10 remark FIRST REMARK BEFORE SEQUENCE 10 +# - 10 remark ============ +# - 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE +# - 10 permit ip host 1.1.1.1 any +# - 20 remark FIRST REMARK BEFORE SEQUENCE 20 +# - 20 remark ============ +# - 20 remark ALLOW HOST FROM SEQUENCE 20 +# - 20 permit ip host 192.168.0.1 any +# - 30 remark FIRST REMARK BEFORE SEQUENCE 30 +# - 30 remark ============ +# - 30 remark ALLOW HOST FROM SEQUENCE 30 updated +# - remark Remark not specific to sequence +# - remark ============ +# - remark End Remarks 1 +# - no ip access-list extended 110 +# - no ip access-list extended 123 +# - no ip access-list extended test_acl +# after: +# - acls: +# - aces: +# - destination: +# any: true +# grant: permit +# protocol: ip +# remarks: +# - FIRST REMARK BEFORE SEQUENCE 10 +# - ============ +# - REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE +# sequence: 10 +# source: +# host: 1.1.1.1 +# - destination: +# any: true +# grant: permit +# protocol: ip +# remarks: +# - FIRST REMARK BEFORE SEQUENCE 20 +# - ============ +# - ALLOW HOST FROM SEQUENCE 20 +# sequence: 20 +# source: +# host: 192.168.0.1 +# - destination: +# any: true +# grant: permit +# protocol: ip +# remarks: +# - FIRST REMARK BEFORE SEQUENCE 30 +# - ============ +# - ALLOW HOST FROM SEQUENCE 30 updated +# sequence: 30 +# source: +# host: 2.2.2.2 +# - destination: +# any: true +# grant: permit +# protocol: ip +# remarks: +# - FIRST REMARK BEFORE SEQUENCE 40 +# - ============ +# - ALLOW NEW HOST FROM SEQUENCE 40 +# sequence: 40 +# source: +# host: 3.3.3.3 +# - remarks: +# - Remark not specific to sequence +# - ============ +# - End Remarks 1 +# acl_type: extended +# name: TEST +# afi: ipv4 + +# After state: +# ------------- +# +# foo#show running-config | section access-list +# ip access-list extended TEST +# 10 remark FIRST REMARK BEFORE SEQUENCE 10 +# 10 remark ============ +# 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE +# 10 permit ip host 1.1.1.1 any +# 20 remark FIRST REMARK BEFORE SEQUENCE 20 +# 20 remark ============ +# 20 remark ALLOW HOST FROM SEQUENCE 20 +# 20 permit ip host 192.168.0.1 any +# 30 remark FIRST REMARK BEFORE SEQUENCE 30 +# 30 remark ============ +# 30 remark ALLOW HOST FROM SEQUENCE 30 updated +# 30 permit ip host 2.2.2.2 any +# 40 remark FIRST REMARK BEFORE SEQUENCE 40 +# 40 remark ============ +# 40 remark ALLOW NEW HOST FROM SEQUENCE 40 +# 40 permit ip host 3.3.3.3 any +# remark Remark not specific to sequence +# remark ============ +# remark End Remarks 1 # Using deleted - delete ACL(s) diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_bgp.py b/ansible_collections/cisco/ios/plugins/modules/ios_bgp.py deleted file mode 100644 index b01f99428..000000000 --- a/ansible_collections/cisco/ios/plugins/modules/ios_bgp.py +++ /dev/null @@ -1,504 +0,0 @@ -#!/usr/bin/python -# -# 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 . -# -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -DOCUMENTATION = """ -module: ios_bgp -author: Nilashish Chakraborty (@NilashishC) -short_description: Module to configure BGP protocol settings. -description: - - This module provides configuration management of global BGP parameters on devices - running Cisco IOS -version_added: 1.0.0 -deprecated: - alternative: ios_bgp_global - why: Newer and updated modules released with more functionality - removed_at_date: "2023-08-24" -notes: - - Tested against Cisco IOS Version 15.6(3)M2 -options: - config: - description: - - Specifies the BGP related configuration. - type: dict - suboptions: - bgp_as: - description: - - Specifies the BGP Autonomous System (AS) number to configure on the device. - type: int - required: true - router_id: - description: - - Configures the BGP routing process router-id value. - type: str - default: - log_neighbor_changes: - description: - - Enable/disable logging neighbor up/down and reset reason. - type: bool - neighbors: - description: - - Specifies BGP neighbor related configurations. - type: list - elements: dict - suboptions: - neighbor: - description: - - Neighbor router address. - required: true - type: str - remote_as: - description: - - Remote AS of the BGP neighbor to configure. - type: int - required: true - update_source: - description: - - Source of the routing updates. - type: str - password: - description: - - Password to authenticate the BGP peer connection. - type: str - enabled: - description: - - Administratively shutdown or enable a neighbor. - type: bool - description: - description: - - Neighbor specific description. - type: str - ebgp_multihop: - description: - - Specifies the maximum hop count for EBGP neighbors not on directly connected - networks. - - The range is from 1 to 255. - type: int - peer_group: - description: - - Name of the peer group that the neighbor is a member of. - type: str - timers: - description: - - Specifies BGP neighbor timer related configurations. - type: dict - suboptions: - keepalive: - description: - - Frequency (in seconds) with which the device sends keepalive messages - to its peer. - - The range is from 0 to 65535. - type: int - required: true - holdtime: - description: - - Interval (in seconds) after not receiving a keepalive message that - IOS declares a peer dead. - - The range is from 0 to 65535. - type: int - required: true - min_neighbor_holdtime: - description: - - Interval (in seconds) specifying the minimum acceptable hold-time - from a BGP neighbor. - - The minimum acceptable hold-time must be less than, or equal to, - the interval specified in the holdtime argument. - - The range is from 0 to 65535. - type: int - local_as: - description: - - The local AS number for the neighbor. - type: int - networks: - description: - - Specify Networks to announce via BGP. - - For operation replace, this option is mutually exclusive with networks option - under address_family. - - For operation replace, if the device already has an address family activated, - this option is not allowed. - type: list - elements: dict - suboptions: - prefix: - description: - - Network ID to announce via BGP. - required: true - type: str - masklen: - description: - - Subnet mask length for the Network to announce(e.g, 8, 16, 24, etc.). - type: int - route_map: - description: - - Route map to modify the attributes. - type: str - address_family: - description: - - Specifies BGP address family related configurations. - type: list - elements: dict - suboptions: - afi: - description: - - Type of address family to configure. - choices: - - ipv4 - - ipv6 - required: true - type: str - safi: - description: - - Specifies the type of cast for the address family. - choices: - - flowspec - - unicast - - multicast - - labeled-unicast - default: unicast - type: str - synchronization: - description: - - Enable/disable IGP synchronization. - type: bool - auto_summary: - description: - - Enable/disable automatic network number summarization. - type: bool - redistribute: - description: - - Specifies the redistribute information from another routing protocol. - type: list - elements: dict - suboptions: - protocol: - description: - - Specifies the protocol for configuring redistribute information. - choices: - - ospf - - ospfv3 - - eigrp - - isis - - static - - connected - - odr - - lisp - - mobile - - rip - required: true - type: str - id: - description: - - Identifier for the routing protocol for configuring redistribute - information. - - Valid for protocols 'ospf', 'ospfv3' and 'eigrp'. - type: str - metric: - description: - - Specifies the metric for redistributed routes. - type: int - route_map: - description: - - Specifies the route map reference. - type: str - networks: - description: - - Specify Networks to announce via BGP. - - For operation replace, this option is mutually exclusive with root level - networks option. - type: list - elements: dict - suboptions: - prefix: - description: - - Network ID to announce via BGP. - required: true - type: str - masklen: - description: - - Subnet mask length for the Network to announce(e.g, 8, 16, 24, etc.). - type: int - route_map: - description: - - Route map to modify the attributes. - type: str - neighbors: - description: - - Specifies BGP neighbor related configurations in Address Family configuration - mode. - type: list - elements: dict - suboptions: - neighbor: - description: - - Neighbor router address. - required: true - type: str - advertisement_interval: - description: - - Minimum interval between sending BGP routing updates for this neighbor. - type: int - route_reflector_client: - description: - - Specify a neighbor as a route reflector client. - type: bool - route_server_client: - description: - - Specify a neighbor as a route server client. - type: bool - activate: - description: - - Enable the Address Family for this Neighbor. - type: bool - remove_private_as: - description: - - Remove the private AS number from outbound updates. - type: bool - next_hop_self: - description: - - Enable/disable the next hop calculation for this neighbor. - type: bool - next_hop_unchanged: - description: - - Propagate next hop unchanged for iBGP paths to this neighbor. - type: bool - maximum_prefix: - description: - - Maximum number of prefixes to accept from this peer. - - The range is from 1 to 2147483647. - type: int - prefix_list_in: - description: - - Name of ip prefix-list to apply to incoming prefixes. - type: str - prefix_list_out: - description: - - Name of ip prefix-list to apply to outgoing prefixes. - type: str - operation: - description: - - Specifies the operation to be performed on the BGP process configured on the - device. - - In case of merge, the input configuration will be merged with the existing BGP - configuration on the device. - - In case of replace, if there is a diff between the existing configuration and - the input configuration, the existing configuration will be replaced by the - input configuration for every option that has the diff. - - In case of override, all the existing BGP configuration will be removed from - the device and replaced with the input configuration. - - In case of delete the existing BGP configuration will be removed from the device. - default: merge - type: str - choices: - - merge - - replace - - override - - delete - -""" - -EXAMPLES = """ -- name: Configure global bgp as 64496 - cisco.ios.ios_bgp: - config: - bgp_as: 64496 - router_id: 192.0.2.1 - log_neighbor_changes: true - neighbors: - - neighbor: 203.0.113.5 - remote_as: 64511 - timers: - keepalive: 300 - holdtime: 360 - min_neighbor_holdtime: 360 - - neighbor: 198.51.100.2 - remote_as: 64498 - networks: - - prefix: 198.51.100.0 - route_map: RMAP_1 - - prefix: 192.0.2.0 - masklen: 23 - address_family: - - afi: ipv4 - safi: unicast - redistribute: - - protocol: ospf - id: 223 - metric: 10 - operation: merge - -- name: Configure BGP neighbors - cisco.ios.ios_bgp: - config: - bgp_as: 64496 - neighbors: - - neighbor: 192.0.2.10 - remote_as: 64496 - password: ansible - description: IBGP_NBR_1 - ebgp_multihop: 100 - timers: - keepalive: 300 - holdtime: 360 - min_neighbor_holdtime: 360 - - neighbor: 192.0.2.15 - remote_as: 64496 - description: IBGP_NBR_2 - ebgp_multihop: 150 - operation: merge - -- name: Configure root-level networks for BGP - cisco.ios.ios_bgp: - config: - bgp_as: 64496 - networks: - - prefix: 203.0.113.0 - masklen: 27 - route_map: RMAP_1 - - prefix: 203.0.113.32 - masklen: 27 - route_map: RMAP_2 - operation: merge - -- name: Configure BGP neighbors under address family mode - cisco.ios.ios_bgp: - config: - bgp_as: 64496 - address_family: - - afi: ipv4 - safi: unicast - neighbors: - - neighbor: 203.0.113.10 - activate: true - maximum_prefix: 250 - advertisement_interval: 120 - - neighbor: 192.0.2.15 - activate: true - route_reflector_client: true - operation: merge - -- name: Remove bgp as 64496 from config - cisco.ios.ios_bgp: - config: - bgp_as: 64496 - operation: delete -""" - -RETURN = """ -commands: - description: The list of configuration mode commands to send to the device - returned: always - type: list - sample: - - router bgp 64496 - - bgp router-id 192.0.2.1 - - bgp log-neighbor-changes - - neighbor 203.0.113.5 remote-as 64511 - - neighbor 203.0.113.5 timers 300 360 360 - - neighbor 198.51.100.2 remote-as 64498 - - network 198.51.100.0 route-map RMAP_1 - - network 192.0.2.0 mask 255.255.254.0 - - address-family ipv4 - - redistribute ospf 223 metric 70 - - exit-address-family -""" -from ansible.module_utils._text import to_text - -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers.cli.config.bgp.process import ( - REDISTRIBUTE_PROTOCOLS, -) -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers.module import ( - NetworkModule, -) - - -def main(): - """main entry point for module execution""" - network_spec = {"prefix": dict(required=True), "masklen": dict(type="int"), "route_map": dict()} - redistribute_spec = { - "protocol": dict(choices=REDISTRIBUTE_PROTOCOLS, required=True), - "id": dict(), - "metric": dict(type="int"), - "route_map": dict(), - } - timer_spec = { - "keepalive": dict(type="int", required=True), - "holdtime": dict(type="int", required=True), - "min_neighbor_holdtime": dict(type="int"), - } - neighbor_spec = { - "neighbor": dict(required=True), - "remote_as": dict(type="int", required=True), - "local_as": dict(type="int"), - "update_source": dict(), - "password": dict(no_log=True), - "enabled": dict(type="bool"), - "description": dict(), - "ebgp_multihop": dict(type="int"), - "timers": dict(type="dict", options=timer_spec), - "peer_group": dict(), - } - af_neighbor_spec = { - "neighbor": dict(required=True), - "activate": dict(type="bool"), - "advertisement_interval": dict(type="int"), - "remove_private_as": dict(type="bool"), - "next_hop_self": dict(type="bool"), - "next_hop_unchanged": dict(type="bool"), - "route_reflector_client": dict(type="bool"), - "route_server_client": dict(type="bool"), - "maximum_prefix": dict(type="int"), - "prefix_list_in": dict(), - "prefix_list_out": dict(), - } - address_family_spec = { - "afi": dict(choices=["ipv4", "ipv6"], required=True), - "safi": dict( - choices=["flowspec", "labeled-unicast", "multicast", "unicast"], - default="unicast", - ), - "auto_summary": dict(type="bool"), - "synchronization": dict(type="bool"), - "networks": dict(type="list", elements="dict", options=network_spec), - "redistribute": dict(type="list", elements="dict", options=redistribute_spec), - "neighbors": dict(type="list", elements="dict", options=af_neighbor_spec), - } - config_spec = { - "bgp_as": dict(type="int", required=True), - "router_id": dict(), - "log_neighbor_changes": dict(type="bool"), - "neighbors": dict(type="list", elements="dict", options=neighbor_spec), - "address_family": dict(type="list", elements="dict", options=address_family_spec), - "networks": dict(type="list", elements="dict", options=network_spec), - } - argument_spec = { - "config": dict(type="dict", options=config_spec), - "operation": dict(default="merge", choices=["merge", "replace", "override", "delete"]), - } - module = NetworkModule(argument_spec=argument_spec, supports_check_mode=True) - try: - result = module.edit_config(config_filter="| section ^router bgp") - except Exception as exc: - module.fail_json(msg=to_text(exc)) - module.exit_json(**result) - - -if __name__ == "__main__": - main() diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_bgp_address_family.py b/ansible_collections/cisco/ios/plugins/modules/ios_bgp_address_family.py index 14589f20f..e9f770631 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_bgp_address_family.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_bgp_address_family.py @@ -22,7 +22,7 @@ author: - Sagar Paul (@KB-perByte) - Sumit Jaiswal (@justjais) notes: - - Tested against Cisco IOSXE Version 17.3 on CML. + - Tested against Cisco IOS-XE Version 17.3 on CML. - This module works with connection C(network_cli). See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html) - The module examples uses callback plugin (stdout_callback = yaml) to generate task diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_bgp_global.py b/ansible_collections/cisco/ios/plugins/modules/ios_bgp_global.py index 9aa33c87c..55ab21341 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_bgp_global.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_bgp_global.py @@ -22,7 +22,7 @@ author: - Sumit Jaiswal (@justjais) - Sagar Paul (@KB-perByte) notes: - - Tested against Cisco IOSXE Version 17.3 on CML. + - Tested against Cisco IOS-XE Version 17.3 on CML. - This module works with connection C(network_cli). See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html) - The module examples uses callback plugin (stdout_callback = yaml) to generate task @@ -274,6 +274,22 @@ options: - Set the bgp consistency checker - Please refer vendor documentation for valid values type: int + default: + description: Configure BGP defaults + type: dict + suboptions: + ipv4_unicast: + description: Activate ipv4-unicast for a peer by default + type: bool + default: true + route_target: + description: Control behavior based on Route-Target attributes + type: dict + suboptions: + filter: + description: Control automatic VPN Route-Target filtering + type: bool + default: true dampening: description: Enable route-flap dampening type: dict @@ -1795,8 +1811,6 @@ options: template: description: - Enter template command mode - - This option is DEPRECATED as is not valid within the scope of module, - this attribute will be removed after 2024-06-01. type: dict suboptions: peer_policy: @@ -1883,6 +1897,10 @@ EXAMPLES = """ reuse_route_val: 1 suppress_route_val: 1 max_suppress: 1 + default: + ipv4_unicast: false + route_target: + filter: true graceful_shutdown: neighbors: time: 50 @@ -1926,6 +1944,7 @@ EXAMPLES = """ # - timers bgp 100 200 150 # - bgp advertise-best-external # - bgp bestpath compare-routerid +# - no bgp default ipv4-unicast # - bgp dampening 1 1 1 1 # - bgp graceful-shutdown all neighbors 50 local-preference 100 community 100 # - bgp log-neighbor-changes @@ -1948,6 +1967,10 @@ EXAMPLES = """ # penalty_half_time: 1 # reuse_route_val: 1 # suppress_route_val: 1 +# default: +# ipv4_unicast: false +# route_target: +# filter: true # graceful_shutdown: # community: '100' # local_preference: 100 @@ -1987,6 +2010,7 @@ EXAMPLES = """ # # vios#sh running-config | section ^router bgp # router bgp 65000 +# no bgp default ipv4-unicast # bgp log-neighbor-changes # bgp nopeerup-delay post-boot 10 # bgp graceful-shutdown all neighbors 50 local-preference 100 community 100 @@ -2059,6 +2083,10 @@ EXAMPLES = """ # penalty_half_time: 1 # reuse_route_val: 1 # suppress_route_val: 1 +# default: +# ipv4_unicast: true +# route_target: +# filter: true # graceful_shutdown: # community: '100' # local_preference: 100 @@ -2106,6 +2134,10 @@ EXAMPLES = """ # bestpath_options: # med: # confed: true +# default: +# ipv4_unicast: true +# route_target: +# filter: true # log_neighbor_changes: true # nopeerup_delay_options: # cold_boot: 20 @@ -2172,6 +2204,10 @@ EXAMPLES = """ # penalty_half_time: 1 # reuse_route_val: 1 # suppress_route_val: 1 +# default: +# ipv4_unicast: true +# route_target: +# filter: true # graceful_shutdown: # community: '100' # local_preference: 100 @@ -2247,6 +2283,10 @@ EXAMPLES = """ # penalty_half_time: 1 # reuse_route_val: 1 # suppress_route_val: 1 +# default: +# ipv4_unicast: true +# route_target: +# filter: true # graceful_shutdown: # community: '100' # local_preference: 100 @@ -2318,6 +2358,10 @@ EXAMPLES = """ # advertise_best_external: true # bestpath_options: # compare_routerid: true +# default: +# ipv4_unicast: true +# route_target: +# filter: true # dampening: # max_suppress: 1 # penalty_half_time: 1 @@ -2394,6 +2438,10 @@ EXAMPLES = """ # penalty_half_time: 1 # reuse_route_val: 1 # suppress_route_val: 1 +# default: +# ipv4_unicast: true +# route_target: +# filter: true # graceful_shutdown: # community: '100' # local_preference: 100 diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_evpn_evi.py b/ansible_collections/cisco/ios/plugins/modules/ios_evpn_evi.py index c2b8b330e..2b232e3f1 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_evpn_evi.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_evpn_evi.py @@ -21,7 +21,7 @@ description: This module provides declarative management of L2VPN EVPN EVI on Ci version_added: 5.3.0 author: Padmini Priyadarshini Sivaraj (@PadminiSivaraj) notes: - - Tested against Cisco IOS device with Version 17.13.01 on Cat9k on CML. + - Tested against Cisco IOS-XE device with Version 17.13.01 on Cat9k on CML. - This module works with connection C(network_cli). See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html) options: diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_evpn_global.py b/ansible_collections/cisco/ios/plugins/modules/ios_evpn_global.py index 0ffe52b90..9070df49d 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_evpn_global.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_evpn_global.py @@ -21,7 +21,7 @@ description: This module provides declarative management of L2VPN EVPN on Cisco version_added: 5.3.0 author: Padmini Priyadarshini Sivaraj (@PadminiSivaraj) notes: - - Tested against Cisco IOS device with Version 17.13.01 on Cat9k on CML. + - Tested against Cisco IOS-XE device with Version 17.13.01 on Cat9k on CML. - This module works with connection C(network_cli). See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html) options: diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_l3_interfaces.py b/ansible_collections/cisco/ios/plugins/modules/ios_l3_interfaces.py index 0f6924124..f8bf73f80 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_l3_interfaces.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_l3_interfaces.py @@ -40,6 +40,14 @@ options: - Full name of the interface excluding any logical unit number, i.e. GigabitEthernet0/1. type: str required: true + autostate: + description: + - Enable autostate determination for VLAN. + type: bool + mac_address: + description: + - Manually set interface MAC address. + type: str ipv4: description: - IPv4 address to be set for the Layer-3 interface mentioned in I(name) option. @@ -87,6 +95,19 @@ options: pool: description: IP Address auto-configured from a local DHCP pool. type: str + source_interface: + description: Enable IP processing without an explicit address + type: dict + suboptions: + name: + description: Interface name + type: str + poll: + description: Enable IP connected host polling + type: bool + point_to_point: + description: Enable point-to-point connection + type: bool ipv6: description: - IPv6 address to be set for the Layer-3 interface mentioned in I(name) option. @@ -119,6 +140,9 @@ options: rapid_commit: description: Enable Rapid-Commit. type: bool + enable: + description: Enable IPv6 on interface + type: bool anycast: description: Configure as an anycast type: bool @@ -229,6 +253,13 @@ EXAMPLES = """ - name: GigabitEthernet3.100 ipv4: - address: 192.168.0.3/24 + - name: Vlan901 + autostate: false + ipv4: + - source_interface: + name: Loopback1 + ipv6: + - enable: true state: merged # Task Output @@ -253,6 +284,10 @@ EXAMPLES = """ # - ipv6 address fd5d:12c9:2201:1::1/64 # - interface GigabitEthernet3.100 # - ip address 192.168.0.3 255.255.255.0 +# - interface Vlan901 +# - ip unnumbered Loopback1 +# - ipv6 enable +# - no autostate # after: # - ipv4: # - dhcp: @@ -269,6 +304,13 @@ EXAMPLES = """ # - address: 192.168.0.3/24 # - name: GigabitEthernet4 # - name: Loopback999 +# ipv4: +# - source_interface: +# name: Loopback1 +# ipv6: +# - enable: true +# autostate: false +# - name: Vlan901 # After state: # ------------ @@ -299,6 +341,11 @@ EXAMPLES = """ # no ip address # shutdown # negotiation auto +# interface Vlan901 +# ip unnumbered Loopback1 +# ipv6 enable +# no autostate + # Using replaced diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_linkagg.py b/ansible_collections/cisco/ios/plugins/modules/ios_linkagg.py index 4572afe42..01267865f 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_linkagg.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_linkagg.py @@ -265,11 +265,11 @@ def parse_mode(module, config, group, member): def parse_members(module, config, group): members = [] for line in config.strip().split("!"): - l = line.strip() - if l.startswith("interface"): - match_group = re.findall("channel-group {0} mode".format(group), l, re.M) + lineStrip = line.strip() + if lineStrip.startswith("interface"): + match_group = re.findall("channel-group {0} mode".format(group), lineStrip, re.M) if match_group: - match = re.search("interface (\\S+)", l, re.M) + match = re.search("interface (\\S+)", lineStrip, re.M) if match: members.append(match.group(1)) return members @@ -291,8 +291,8 @@ def map_config_to_obj(module): objs = list() config = get_config(module) for line in config.split("\n"): - l = line.strip() - match = re.search("interface Port-channel(\\S+)", l, re.M) + lStrip = line.strip() + match = re.search("interface Port-channel(\\S+)", lStrip, re.M) if match: obj = {} group = match.group(1) diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_ntp.py b/ansible_collections/cisco/ios/plugins/modules/ios_ntp.py deleted file mode 100644 index 065054411..000000000 --- a/ansible_collections/cisco/ios/plugins/modules/ios_ntp.py +++ /dev/null @@ -1,357 +0,0 @@ -#!/usr/bin/python -# -# 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 . -# -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -DOCUMENTATION = """ -module: ios_ntp -extends_documentation_fragment: - - cisco.ios.ios -short_description: (deprecated, removed after 2024-01-01) Manages core NTP configuration. -description: - - Manages core NTP configuration. -version_added: 1.0.0 -deprecated: - alternative: ios_ntp_global - why: Updated module released with more functionality. - removed_at_date: "2024-01-01" -author: - - Federico Olivieri (@Federico87) - - Joanie Sylvain (@JoanieAda) -options: - server: - description: - - Network address of NTP server. - type: str - source_int: - description: - - Source interface for NTP packets. - type: str - acl: - description: - - ACL for peer/server access restricition. - type: str - logging: - description: - - Enable NTP logs. Data type boolean. - type: bool - default: false - auth: - description: - - Enable NTP authentication. Data type boolean. - type: bool - default: false - auth_key: - description: - - md5 NTP authentication key of tye 7. - type: str - key_id: - description: - - auth_key id. Data type string - type: str - state: - description: - - Manage the state of the resource. - default: present - choices: - - present - - absent - type: str - vrf: - description: - - VRF configuration for NTP servers - type: str -""" - -EXAMPLES = """ -# Set new NTP server and source interface -- name: Example ntp play - cisco.ios.ios_ntp: - server: 10.0.255.10 - source_int: Loopback0 - logging: false - state: present - -# Remove NTP ACL and logging -- name: Example ntp play absent - cisco.ios.ios_ntp: - acl: NTP_ACL - logging: true - state: absent - -# Set NTP authentication -- name: Example ntp play auth - cisco.ios.ios_ntp: - key_id: 10 - auth_key: 15435A030726242723273C21181319000A - auth: true - state: present - -# Set new NTP configuration -- name: Example ntp play auth - cisco.ios.ios_ntp: - server: 10.0.255.10 - source_int: Loopback0 - acl: NTP_ACL - logging: true - vrf: mgmt - key_id: 10 - auth_key: 15435A030726242723273C21181319000A - auth: true - state: present -""" - -RETURN = """ -commands: - description: command sent to the device - returned: always - type: list - sample: ["no ntp server 10.0.255.10", "no ntp source Loopback0"] -""" - -import re - -from ansible.module_utils.basic import AnsibleModule - -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.ios import ( - get_config, - load_config, -) - - -def parse_server(line, dest): - if dest == "server": - vrf, server = None, None - match = re.search( - "(ntp\\sserver\\s)(vrf\\s\\w+\\s)?(\\d+\\.\\d+\\.\\d+\\.\\d+)", - line, - re.M, - ) - - if match and match.group(2) and match.group(3): - vrf = match.group(2) - server = match.group(3) - return vrf, server - - if match and match.group(3): - server = match.group(3) - return vrf, server - - -def parse_source_int(line, dest): - if dest == "source": - match = re.search("(ntp\\ssource\\s)(\\S+)", line, re.M) - if match: - source = match.group(2) - return source - - -def parse_acl(line, dest): - if dest == "access-group": - match = re.search("ntp\\saccess-group\\s(?:peer|serve)(?:\\s+)(\\S+)", line, re.M) - if match: - acl = match.group(1) - return acl - - -def parse_logging(line, dest): - if dest == "logging": - logging = dest - return logging - - -def parse_auth_key(line, dest): - if dest == "authentication-key": - match = re.search("(ntp\\sauthentication-key\\s\\d+\\smd5\\s)(\\w+)", line, re.M) - if match: - auth_key = match.group(2) - return auth_key - - -def parse_key_id(line, dest): - if dest == "trusted-key": - match = re.search("(ntp\\strusted-key\\s)(\\d+)", line, re.M) - if match: - auth_key = match.group(2) - return auth_key - - -def parse_auth(dest): - if dest == "authenticate": - return dest - - -def map_config_to_obj(module): - obj_dict = dict() - obj = list() - server_list = list() - config = get_config(module, flags=["| include ntp"]) - for line in config.splitlines(): - match = re.search("ntp\\s(\\S+)", line, re.M) - - if match: - dest = match.group(1) - server = parse_server(line, dest) - source_int = parse_source_int(line, dest) - acl = parse_acl(line, dest) - logging = parse_logging(line, dest) - auth = parse_auth(dest) - auth_key = parse_auth_key(line, dest) - key_id = parse_key_id(line, dest) - - if server: - if server[0] is None: - server_list.append((server[0], server[1])) - else: - server_list.append((server[0].split()[1], server[1])) - if source_int: - obj_dict["source_int"] = source_int - if acl: - obj_dict["acl"] = acl - if logging: - obj_dict["logging"] = True - if auth: - obj_dict["auth"] = True - if auth_key: - obj_dict["auth_key"] = auth_key - if key_id: - obj_dict["key_id"] = key_id - obj_dict["server"] = server_list - obj.append(obj_dict) - return obj - - -def map_params_to_obj(module): - obj = list() - - obj.append( - { - "state": module.params["state"], - "server": module.params["server"], - "source_int": module.params["source_int"], - "logging": module.params["logging"], - "acl": module.params["acl"], - "auth": module.params["auth"], - "auth_key": module.params["auth_key"], - "key_id": module.params["key_id"], - "vrf": module.params["vrf"], - }, - ) - - return obj - - -def map_obj_to_commands(want, have, module): - commands = list() - - server_have = have[0].get("server", None) - source_int_have = have[0].get("source_int", None) - acl_have = have[0].get("acl", None) - logging_have = have[0].get("logging", None) - auth_have = have[0].get("auth", None) - auth_key_have = have[0].get("auth_key", None) - key_id_have = have[0].get("key_id", None) - - for w in want: - server = w["server"] - source_int = w["source_int"] - acl = w["acl"] - logging = w["logging"] - state = w["state"] - auth = w["auth"] - auth_key = w["auth_key"] - key_id = w["key_id"] - vrf = w["vrf"] - if vrf == "": - vrf = None - - if state == "absent": - if server_have and (vrf, server) in server_have: - if vrf is not None: - commands.append("no ntp server vrf {0} {1}".format(vrf, server)) - else: - commands.append("no ntp server {0}".format(server)) - if source_int and source_int_have: - commands.append("no ntp source {0}".format(source_int)) - if acl and acl_have: - commands.append("no ntp access-group peer {0}".format(acl)) - if logging is True and logging_have: - commands.append("no ntp logging") - if auth is True and auth_have: - commands.append("no ntp authenticate") - if key_id and key_id_have: - commands.append("no ntp trusted-key {0}".format(key_id)) - if auth_key and auth_key_have: - if key_id and key_id_have: - commands.append( - "no ntp authentication-key {0} md5 {1} 7".format(key_id, auth_key), - ) - elif state == "present": - if server is not None and (vrf, server) not in server_have: - if vrf is not None: - commands.append("ntp server vrf {0} {1}".format(vrf, server)) - else: - commands.append("ntp server {0}".format(server)) - if source_int is not None and source_int != source_int_have: - commands.append("ntp source {0}".format(source_int)) - if acl is not None and acl != acl_have: - commands.append("ntp access-group peer {0}".format(acl)) - if logging is not None and logging != logging_have and logging is not False: - commands.append("ntp logging") - if auth is not None and auth != auth_have and auth is not False: - commands.append("ntp authenticate") - if key_id is not None and key_id != key_id_have: - commands.append("ntp trusted-key {0}".format(key_id)) - if auth_key is not None and auth_key != auth_key_have: - if key_id is not None: - commands.append("ntp authentication-key {0} md5 {1} 7".format(key_id, auth_key)) - return commands - - -def main(): - argument_spec = dict( - server=dict(), - source_int=dict(), - acl=dict(), - logging=dict(type="bool", default=False), - auth=dict(type="bool", default=False), - auth_key=dict(no_log=True), - key_id=dict(), - state=dict(choices=["absent", "present"], default="present"), - vrf=dict(), - ) - module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True) - result = {"changed": False} - warnings = list() - if warnings: - result["warnings"] = warnings - want = map_params_to_obj(module) - have = map_config_to_obj(module) - commands = map_obj_to_commands(want, have, module) - result["commands"] = commands - if commands: - if not module.check_mode: - load_config(module, commands) - result["changed"] = True - module.exit_json(**result) - - -if __name__ == "__main__": - main() diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_user.py b/ansible_collections/cisco/ios/plugins/modules/ios_user.py index 50f2f3455..931ed0e71 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_user.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_user.py @@ -220,6 +220,17 @@ extends_documentation_fragment: """ EXAMPLES = """ +# Using state: present + +# Before state: +# ------------- + +# router-ios#show running-config | section ^username +# username testuser privilege 15 password 0 password + +# Present state create a new user play: +# ------------------------------------- + - name: Create a new user cisco.ios.ios_user: name: ansible @@ -227,6 +238,37 @@ EXAMPLES = """ sshkey: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}" state: present +# Task Output +# ----------- + +# commands: +# - ip ssh pubkey-chain +# - username ansible +# - key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora +# - exit +# - exit +# - username ansible nopassword + +# After state: +# ------------ + +# router-ios#show running-config | section username +# username testuser privilege 15 password 0 password +# username ansible nopassword +# username ansible +# key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora + +# Using state: present + +# Before state: +# ------------- + +# router-ios#show running-config | section ^username +# username testuser privilege 15 password 0 password + +# Present state create a new user with multiple keys play: +# -------------------------------------------------------- + - name: Create a new user with multiple keys cisco.ios.ios_user: name: ansible @@ -235,18 +277,109 @@ EXAMPLES = """ - "{{ lookup('file', '~/path/to/public_key') }}" state: present +# Task Output +# ----------- + +# commands: +# - ip ssh pubkey-chain +# - username ansible +# - key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora +# - key-hash ssh-rsa 1985673DCF7FA9A0F374BB97DC2ABB27 test@fedora +# - exit +# - exit + +# After state: +# ------------ + +# router-ios#show running-config | section username +# username testuser privilege 15 password 0 password +# username ansible +# key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora +# key-hash ssh-rsa 1985673DCF7FA9A0F374BB97DC2ABB27 test@fedora + +# Using Purge: true + +# Before state: +# ------------- + +# router-ios#show running-config | section ^username +# username admin privilege 15 password 0 password +# username testuser privilege 15 password 0 password +# username ansible nopassword +# username ansible +# key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora + +# Purge all users except admin play: +# ---------------------------------- + - name: Remove all users except admin cisco.ios.ios_user: purge: true +# Task Output +# ----------- + +# commands: +# - no username testuser +# - no username ansible +# - ip ssh pubkey-chain +# - no username ansible +# - exit + +# After state: +# ------------ + +# router-ios#show running-config | section username +# username admin privilege 15 password 0 password + +# Using Purge: true + +# Before state: +# ------------- + +# router-ios#show running-config | section ^username +# username admin privilege 15 password 0 password +# username testuser privilege 15 password 0 password1 +# username testuser1 privilege 15 password 0 password2 +# username ansible nopassword + +# Purge all users except admin and these listed users play: +# --------------------------------------------------------- + - name: Remove all users except admin and these listed users cisco.ios.ios_user: aggregate: + - name: testuser - name: testuser1 - - name: testuser2 - - name: testuser3 purge: true +# Task Output +# ----------- + +# commands: +# - no username ansible + +# After state: +# ------------ + +# router-ios#show running-config | section username +# username admin privilege 15 password 0 password +# username testuser privilege 15 password 0 password1 +# username testuser1 privilege 15 password 0 password2 + +# Using state: present + +# Before state: +# ------------- + +# router-ios#show running-config | section ^username +# username admin privilege 15 password 0 password +# username netop password 0 password1 +# username netend password 0 password2 + +# Present state set multiple users to privilege level 15 play: +# ------------------------------------------------------------ + - name: Set multiple users to privilege level 15 cisco.ios.ios_user: aggregate: @@ -255,38 +388,135 @@ EXAMPLES = """ privilege: 15 state: present -- name: Set user view/role - cisco.ios.ios_user: - name: netop - view: network-operator - state: present +# Task Output +# ----------- + +# commands: +# - username netop privilege 15 +# - username netend privilege 15 + +# After state: +# ------------ + +# router-ios#show running-config | section username +# username admin privilege 15 password 0 password +# username netop privilege 15 password 0 password1 +# username netend privilege 15 password 0 password2 + +# Using state: present + +# Before state: +# ------------- + +# router-ios#show running-config | section ^username +# username admin privilege 15 password 0 password +# username netop privilege 15 password 0 oldpassword + +# Present state Change Password for User netop play: +# -------------------------------------------- - name: Change Password for User netop cisco.ios.ios_user: name: netop - configured_password: "{{ new_password }}" + configured_password: "newpassword" + password_type: password update_password: always state: present -- name: Aggregate of users +# Task Output +# ----------- + +# commands: +# - username netop password newpassword + +# After state: +# ------------ + +# router-ios#show running-config | section username +# username admin privilege 15 password 0 password +# username netop privilege 15 password 0 newpassword + +# Using state: present + +# Before state: +# ------------- + +# router-ios#show running-config | section ^username +# username admin privilege 15 password 0 password +# username netop privilege 15 password 0 password +# username netend privilege 15 password 0 password + +# Present state set user view/role for users play: +# -------------------------------------------- + +- name: Set user view/role for users cisco.ios.ios_user: aggregate: - - name: ansibletest2 - - name: ansibletest3 + - name: netop + - name: netend view: network-admin + state: present -- name: Add a user specifying password type - cisco.ios.ios_user: - name: ansibletest4 - configured_password: "{{ new_password }}" - password_type: password +# Task Output +# ----------- + +# commands: +# - username netop view network-admin +# - username netend view network-admin + +# After state: +# ------------ + +# router-ios#show running-config | section username +# username admin privilege 15 password 0 password +# username netop privilege 15 view network-admin password 0 password +# username netend privilege 15 view network-admin password 0 password + +# Using state: present + +# Before state: +# ------------- + +# router-ios#show running-config | section ^username +# username admin privilege 15 password 0 password + +# Present state create a new user with hashed password play: +# -------------------------------------------------------------- -- name: Add a user with MD5 hashed password +- name: Create a new user with hashed password cisco.ios.ios_user: name: ansibletest5 hashed_password: - type: 5 - value: $3$8JcDilcYgFZi.yz4ApaqkHG2.8/ + type: 9 + value: "thiswillbereplacedwithhashedpassword" + state: present + +# Task Output +# ----------- + +# commands: +# - username ansibletest5 secret 9 thiswillbereplacedwithhashedpassword + +# After state: +# ------------ + +# router-ios#show running-config | section username +# username admin privilege 15 password 0 password +# username ansibletest5 secret 9 thiswillbereplacedwithhashedpassword + +# Using state: absent + +# Before state: +# ------------- + +# router-ios#show running-config | section ^username +# username admin privilege 15 password 0 password +# username ansibletest1 password 0 password +# username ansibletest2 secret 9 thiswillbereplacedwithhashedpassword +# username ansibletest3 password 5 thistoowillbereplacedwithhashedpassword + +# Absent state remove multiple users play: +# ---------------------------------------- - name: Delete users with aggregate cisco.ios.ios_user: @@ -295,6 +525,20 @@ EXAMPLES = """ - name: ansibletest2 - name: ansibletest3 state: absent + +# Task Output +# ----------- + +# commands: +# - no username ansibletest1 +# - no username ansibletest2 +# - no username ansibletest3 + +# After state: +# ------------ + +# router-ios#show running-config | section username +# username admin privilege 15 password 0 password """ RETURN = """ @@ -339,6 +583,18 @@ def user_del_cmd(username): } +def add_ssh(command, want, x=None): + command.append("ip ssh pubkey-chain") + if x: + command.append("username %s" % want["name"]) + for item in x: + command.append("key-hash %s" % item) + command.append("exit") + else: + command.append("no username %s" % want["name"]) + command.append("exit") + + def sshkey_fingerprint(sshkey): # IOS will accept a MD5 fingerprint of the public key # and is easier to configure in a single line @@ -366,19 +622,10 @@ def map_obj_to_commands(updates, module): def add(command, want, x): command.append("username %s %s" % (want["name"], x)) - def add_hashed_password(command, want, x): - command.append("username %s secret %s %s" % (want["name"], x.get("type"), x.get("value"))) - - def add_ssh(command, want, x=None): - command.append("ip ssh pubkey-chain") - if x: - command.append("username %s" % want["name"]) - for item in x: - command.append("key-hash %s" % item) - command.append("exit") - else: - command.append("no username %s" % want["name"]) - command.append("exit") + def add_hashed_password(command, want, x, password_type): + command.append( + "username %s %s %s %s" % (want["name"], password_type, x.get("type"), x.get("value")), + ) for update in updates: want, have = update @@ -402,7 +649,7 @@ def map_obj_to_commands(updates, module): ) add(commands, want, "%s %s" % (password_type, want["configured_password"])) if needs_update(want, have, "hashed_password"): - add_hashed_password(commands, want, want["hashed_password"]) + add_hashed_password(commands, want, want["hashed_password"], password_type) if needs_update(want, have, "nopassword"): if want["nopassword"]: add(commands, want, "nopassword") @@ -451,6 +698,7 @@ def map_config_to_obj(module): regex = "username %s .+$" % user cfg = re.findall(regex, data, re.M) cfg = "\n".join(cfg) + ssh_key_list = parse_sshkey(data, user) obj = { "name": user, "state": "present", @@ -458,7 +706,9 @@ def map_config_to_obj(module): "configured_password": None, "hashed_password": None, "password_type": parse_password_type(cfg), - "sshkey": parse_sshkey(data, user), + "sshkey": ssh_key_list, + "is_only_ssh_user": False if cfg.strip() and ssh_key_list else True, + "is_only_normal_user": True if cfg.strip() and ssh_key_list == [] else False, "privilege": parse_privilege(cfg), "view": parse_view(cfg), } @@ -536,6 +786,14 @@ def update_objects(want, have): return updates +def find_set_difference(list1, list2, key): + want_users = [x[key] for x in list1] + have_users = [x[key] for x in list2] + setdifference = set(have_users).difference(want_users) + result = [item for item in list2 if item[key] in setdifference] + return result + + def main(): """main entry point for module execution""" hashed_password_spec = dict( @@ -581,13 +839,19 @@ def main(): result = {"changed": False, "warnings": warnings} want = map_params_to_obj(module) have = map_config_to_obj(module) + commands = map_obj_to_commands(update_objects(want, have), module) if module.params["purge"]: - want_users = [x["name"] for x in want] - have_users = [x["name"] for x in have] - for item in set(have_users).difference(want_users): - if item != "admin": - commands.append(user_del_cmd(item)) + setdifference = find_set_difference(want, have, "name") + for item in setdifference: + if item["name"] != "admin": + if item["is_only_ssh_user"]: + add_ssh(commands, item) + if item["is_only_normal_user"]: + commands.append(user_del_cmd(item["name"])) + if item["is_only_normal_user"] is False and item["is_only_ssh_user"] is False: + add_ssh(commands, item) + commands.append(user_del_cmd(item["name"])) result["commands"] = commands if commands: if not module.check_mode: diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_vlans.py b/ansible_collections/cisco/ios/plugins/modules/ios_vlans.py index 1dd3228ce..de9a0212a 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_vlans.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_vlans.py @@ -30,9 +30,12 @@ description: This module provides declarative management of VLANs on Cisco IOS network devices. version_added: 1.0.0 -author: Sumit Jaiswal (@justjais) +author: + - Sumit Jaiswal (@justjais) + - Sagar Paul (@KB-perByte) + - Padmini Priyadarshini Sivaraj (@PadminiSivaraj) notes: - - Tested against Cisco IOSl2 device with Version 15.2 on VIRL. + - Tested against Cisco IOS-XE device with Version 17.13.01 on Cat9k on CML. - Starting from v2.5.0, this module will fail when run against Cisco IOS devices that do not support VLANs. The offline states (C(rendered) and C(parsed)) will work as expected. - This module works with connection C(network_cli). @@ -118,10 +121,6 @@ options: 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. type: str - configuration: - description: - When set to true, deals with vlan configuration CLIs - type: bool state: description: - The state the configuration should be left in @@ -137,8 +136,8 @@ options: - The state I(parsed) reads the configuration from C(running_config) option and transforms it into JSON format as per the resource module parameters and the value is returned in the I(parsed) key within the result. The value of C(running_config) - option should be the same format as the output of command I(show running-config - | include ip route|ipv6 route) executed on device. For state I(parsed) active + option should be the same format as the output of commands I(show vlan) and I(show + running-config | sec ^vlan configuration .+) executed on device. For state I(parsed) active connection to remote host is not required. type: str choices: @@ -148,6 +147,7 @@ options: - deleted - rendered - gathered + - purged - parsed default: merged """ @@ -224,7 +224,7 @@ EXAMPLES = """ # ------------------------------------------------------------------------------ # 10 -# Using merged (configuration: True) +# Using merged # Before state: # ------------- @@ -246,7 +246,6 @@ EXAMPLES = """ - vlan_id: 901 member: vni: 50901 - configuration: true state: merged # After state: @@ -325,7 +324,7 @@ EXAMPLES = """ # 1005 trnet 101005 1500 - - - ibm - 0 0 -# Using overridden (configuration: True) +# Using overridden # Before state: # ------------- @@ -351,7 +350,6 @@ EXAMPLES = """ member: vni: 10101 evi: 101 - configuration: true state: overridden # After state: @@ -523,7 +521,7 @@ EXAMPLES = """ # 1004 fdnet 101004 1500 - - - ieee - 0 0 # 1005 trnet 101005 1500 - - - ibm - 0 0 -# Using deleted (configuration: True) +# Using deleted # Before state: # ------------- @@ -542,13 +540,13 @@ EXAMPLES = """ cisco.ios.ios_vlans: config: - vlan_id: 101 - configuration: true state: deleted # After state: # ------------- # # Leaf-01#show run nve | sec ^vlan configuration +# vlan configuration 101 # vlan configuration 102 # member evpn-instance 102 vni 10102 # vlan configuration 201 @@ -613,7 +611,7 @@ EXAMPLES = """ # 1004 fdnet 101004 1500 - - - ieee - 0 0 # 1005 trnet 101005 1500 - - - ibm - 0 0 -# Using Deleted without any config passed (configuration: True) +# Using Deleted without any config passed # "(NOTE: This will delete all of configured vlans attributes)" # Before state: @@ -633,7 +631,6 @@ EXAMPLES = """ - name: Delete attributes of ALL VLANs cisco.ios.ios_vlans: - configuration: true state: deleted # After state: @@ -647,7 +644,7 @@ EXAMPLES = """ # no vlan configuration 901 # no vlan configuration 902 -# Using Gathered (configuration: True) +# Using gathered, vlan configuration only # Before state: # ------------- @@ -666,8 +663,6 @@ EXAMPLES = """ - name: Gather listed vlans with provided configurations cisco.ios.ios_vlans: - config: - configuration: true state: gathered # Module Execution Result: @@ -757,9 +752,9 @@ EXAMPLES = """ # "shutdown" # ] -# Using Rendered (configuration: True) +# Using Rendered -- name: Render the commands for provided configuration +- name: Render the commands for provided configuration cisco.ios.ios_vlans: config: - vlan_id: 101 @@ -876,7 +871,7 @@ EXAMPLES = """ # } # ] -# Using Parsed (configuration: True) +# Using Parsed Vlan configuration only # File: parsed.cfg # ---------------- @@ -891,7 +886,6 @@ EXAMPLES = """ - name: Parse the commands for provided configuration cisco.ios.ios_vlans: running_config: "{{ lookup('file', './parsed.cfg') }}" - configuration: true state: parsed # Module Execution Result: @@ -919,29 +913,177 @@ EXAMPLES = """ # "vlan_id": 901 # } # ] + +# Using Parsed, Vlan and vlan configuration + +# File: parsed.cfg +# ---------------- +# +# VLAN Name Status Ports +# ---- -------------------------------- --------- ------------------------------- +# 1 default active Gi0/1, Gi0/2 +# 101 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 +# Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 +# Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 +# Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 +# Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 +# 150 VLAN0150 active +# 888 a_very_long_vlan_name_a_very_long_vlan_name +# active +# 1002 fddi-default act/unsup +# 1003 trcrf-default act/unsup +# 1004 fddinet-default act/unsup +# 1005 trbrf-default act/unsup +# +# VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 +# ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ +# 1 enet 100001 1500 - - - - - 0 0 +# 101 enet 100101 610 - - - - - 0 0 +# 150 enet 100150 1500 - - - - - 0 0 +# 888 enet 100888 1500 - - - - - 0 0 +# 1002 fddi 101002 1500 - - - - - 0 0 +# 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 +# 1004 fdnet 101004 1500 - - - ieee - 0 0 +# 1005 trbrf 101005 4472 - - 15 ibm - 0 0 +# +# +# VLAN AREHops STEHops Backup CRF +# ---- ------- ------- ---------- +# 1003 7 7 off +# +# Remote SPAN VLANs +# ------------------------------------------------------------------------------ +# 150 +# +# Primary Secondary Type Ports +# ------- --------- ----------------- ------------------------------------------ +# +# vlan configuration 101 +# member evpn-instance 101 vni 10101 +# vlan configuration 102 +# member evpn-instance 102 vni 10102 +# vlan configuration 901 +# member vni 50901 + +- name: Parse the commands for provided configuration + cisco.ios.ios_vlans: + running_config: "{{ lookup('file', './parsed.cfg') }}" + state: parsed + +# Module Execution Result: +# ------------------------ +# +# "parsed": [ +# { +# "name": "default", +# "vlan_id": 1, +# "state": "active", +# "shutdown": "disabled", +# "mtu": 1500, +# }, +# { +# "name": "RemoteIsInMyName", +# "vlan_id": 101, +# "state": "active", +# "shutdown": "enabled", +# "mtu": 610, +# "member": {"evi": 101, "vni": 10101}, +# }, +# { +# "name": "VLAN0150", +# "vlan_id": 150, +# "state": "active", +# "shutdown": "disabled", +# "mtu": 1500, +# "remote_span": True, +# }, +# { +# "name": "a_very_long_vlan_name_a_very_long_vlan_name", +# "vlan_id": 888, +# "state": "active", +# "shutdown": "disabled", +# "mtu": 1500, +# }, +# { +# "name": "fddi-default", +# "vlan_id": 1002, +# "state": "active", +# "shutdown": "enabled", +# "mtu": 1500, +# }, +# { +# "name": "trcrf-default", +# "vlan_id": 1003, +# "state": "active", +# "shutdown": "enabled", +# "mtu": 4472, +# }, +# { +# "name": "fddinet-default", +# "vlan_id": 1004, +# "state": "active", +# "shutdown": "enabled", +# "mtu": 1500, +# }, +# { +# "name": "trbrf-default", +# "vlan_id": 1005, +# "state": "active", +# "shutdown": "enabled", +# "mtu": 4472, +# }, +# {"vlan_id": 102, "member": {"evi": 102, "vni": 10102}}, +# {"vlan_id": 901, "member": {"vni": 50901}}, +# ] """ RETURN = """ before: - description: The configuration as structured data prior to module invocation. - returned: always - type: list + description: The configuration prior to the module execution. + returned: when I(state) is C(merged), C(replaced), C(overridden), C(deleted) or C(purged) + type: dict sample: > - The configuration returned will always be in the same format - of the parameters above. + This output will always be in the same format as the + module argspec. after: - description: The configuration as structured data after module completion. + description: The resulting configuration after module execution. returned: when changed - type: list + type: dict sample: > - The configuration returned will always be in the same format - of the parameters above. + This output will always be in the same format as the + module argspec. commands: description: The set of commands pushed to the remote device. - returned: always + returned: when I(state) is C(merged), C(replaced), C(overridden), C(deleted) or C(purged) + type: list + sample: + - vlan configuration 202 + - state active + - remote-span +rendered: + description: The provided configuration in the task rendered in device-native format (offline). + returned: when I(state) is C(rendered) type: list - sample: ['vlan 20', 'name vlan_20', 'mtu 600', 'remote-span'] + sample: + - vlan configuration 202 + - member evpn-instance 202 vni 10202 + - vlan 200 +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 from ansible_collections.cisco.ios.plugins.module_utils.network.ios.argspec.vlans.vlans import ( @@ -966,19 +1108,17 @@ def main(): :returns: the result form module invocation """ - required_if = [ - ("state", "merged", ("config",)), - ("state", "replaced", ("config",)), - ("state", "overridden", ("config",)), - ("state", "rendered", ("config",)), - ("state", "parsed", ("running_config",)), - ] - mutually_exclusive = [("config", "running_config")] - module = AnsibleModule( argument_spec=VlansArgs.argument_spec, - required_if=required_if, - mutually_exclusive=mutually_exclusive, + mutually_exclusive=[["config", "running_config"]], + required_if=[ + ["state", "merged", ["config"]], + ["state", "replaced", ["config"]], + ["state", "overridden", ["config"]], + ["state", "rendered", ["config"]], + ["state", "purged", ["config"]], + ["state", "parsed", ["running_config"]], + ], supports_check_mode=True, ) diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_vrf.py b/ansible_collections/cisco/ios/plugins/modules/ios_vrf.py index 27c6641eb..ff6814ba1 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_vrf.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_vrf.py @@ -58,6 +58,61 @@ options: description: - The list of address families with MDT parameters to be configured on the remote IOS device. type: list + suboptions: + afi: + description: Address family identifier. + type: str + choices: + ["ipv4", "ipv6"] + mdt: + description: MDT parameters. + type: dict + suboptions: + auto_discovery: + description: Auto-discovery parameters. + type: dict + suboptions: + vxlan: + description: Vxlan parameters. + type: dict + suboptions: + enable: + description: Enable VXLAN. + type: bool + inter_as: + description: Enable inter-as. + type: bool + default: + description: Parameters for default option. + type: dict + suboptions: + vxlan_mcast_group: + description: VXLAN multicast group value. + type: str + data: + description: Parameters for data option. + type: dict + suboptions: + vxlan_mcast_group: + description: VXLAN multicast group value. + type: str + threshold: + description: Threshold value. + type: int + overlay: + description: Parameters for overlay option. + type: dict + suboptions: + use_bgp: + description: parameters for BGP option. + type: dict + suboptions: + enable: + description: Enable use BGP. + type: bool + spt_only: + description: Enable SPT only. + type: bool elements: dict rd: description: @@ -832,12 +887,58 @@ def check_declarative_intent_params(want, module, result): def main(): """main entry point for module execution""" + address_family_spec = dict( + afi=dict(type="str", choices=["ipv4", "ipv6"]), + mdt=dict( + type="dict", + options=dict( + overlay=dict( + type="dict", + options=dict( + use_bgp=dict( + type="dict", + options=dict( + enable=dict(type="bool"), + spt_only=dict(type="bool"), + ), + ), + ), + ), + auto_discovery=dict( + type="dict", + options=dict( + vxlan=dict( + type="dict", + options=dict( + enable=dict(type="bool"), + inter_as=dict(type="bool"), + ), + ), + ), + ), + default=dict( + type="dict", + options=dict( + vxlan_mcast_group=dict(type="str"), + ), + ), + data=dict( + type="dict", + options=dict( + vxlan_mcast_group=dict(type="str"), + threshold=dict(type="int"), + ), + ), + ), + ), + ) + argument_spec = dict( vrfs=dict(type="list", elements="raw"), - name=dict(), - description=dict(), - address_family=dict(type="list", elements="dict"), - rd=dict(), + name=dict(type="str"), + description=dict(type="str"), + address_family=dict(type="list", elements="dict", options=address_family_spec), + rd=dict(type="str"), route_export=dict(type="list", elements="str"), route_import=dict(type="list", elements="str"), route_both=dict(type="list", elements="str"), diff --git a/ansible_collections/cisco/ios/plugins/modules/ios_vxlan_vtep.py b/ansible_collections/cisco/ios/plugins/modules/ios_vxlan_vtep.py index b2c5933e7..3cf933b13 100644 --- a/ansible_collections/cisco/ios/plugins/modules/ios_vxlan_vtep.py +++ b/ansible_collections/cisco/ios/plugins/modules/ios_vxlan_vtep.py @@ -21,7 +21,7 @@ description: This module provides declarative management of VXLAN VTEP interface version_added: 5.3.0 author: Padmini Priyadarshini Sivaraj (@PadminiSivaraj) notes: - - Tested against Cisco IOS device with Version 17.13.01 on Cat9k on CML. + - Tested against Cisco IOS-XE device with Version 17.13.01 on Cat9k on CML. - This module works with connection C(network_cli). See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html) options: diff --git a/ansible_collections/cisco/ios/plugins/terminal/ios.py b/ansible_collections/cisco/ios/plugins/terminal/ios.py index 3be46ebfa..2ef4f2d7c 100644 --- a/ansible_collections/cisco/ios/plugins/terminal/ios.py +++ b/ansible_collections/cisco/ios/plugins/terminal/ios.py @@ -41,6 +41,7 @@ class TerminalModule(TerminalBase): terminal_stderr_re = [ re.compile(rb"% ?Error"), # re.compile(rb"^% \w+", re.M), + re.compile(rb"ERROR:", re.IGNORECASE), re.compile(rb"% ?Bad secret"), re.compile(rb"[\r\n%] Bad passwords"), re.compile(rb"invalid input", re.I), diff --git a/ansible_collections/cisco/ios/test-requirements.txt b/ansible_collections/cisco/ios/test-requirements.txt index 94ff7c9e3..5a90586f2 100644 --- a/ansible_collections/cisco/ios/test-requirements.txt +++ b/ansible_collections/cisco/ios/test-requirements.txt @@ -1,9 +1,9 @@ # For ansible-tox-linters -black==23.3.0 ; python_version >= '3.7' +black==23.3.0 flake8 yamllint # Unit test runner -pytest-ansible ; python_version >= '3.9' -git+https://github.com/ansible-community/pytest-ansible-units.git ; python_version < '3.9' +pytest-ansible pytest-xdist +pytest-cov diff --git a/ansible_collections/cisco/ios/tests/config.yml b/ansible_collections/cisco/ios/tests/config.yml index 41f529264..c26ea5966 100644 --- a/ansible_collections/cisco/ios/tests/config.yml +++ b/ansible_collections/cisco/ios/tests/config.yml @@ -1,3 +1,3 @@ --- modules: - python_requires: ">=3.6" + python_requires: ">=3.9" diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/_populate_config.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/_populate_config.yaml index 7fd5aa1e3..16053c325 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/_populate_config.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/_populate_config.yaml @@ -1,10 +1,15 @@ --- - name: Populate configuration vars: - lines: - "ip access-list extended test_acl\ndeny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10\nip access-list extended 110\n\ - deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 echo dscp ef ttl eq 10\nip access-list extended 123\ndeny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255\ - \ eq telnet ack tos 12\ndeny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20\nipv6 access-list R1_TRAFFIC\ndeny tcp any eq www any\ - \ eq telnet ack dscp af11\n" + lines: | + ip access-list extended test_acl + deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10 + ip access-list extended 110 + deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 echo dscp ef ttl eq 10 + ip access-list extended 123 + deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12 + deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20 + ipv6 access-list R1_TRAFFIC + deny tcp any eq www any eq telnet ack dscp af11 ansible.netcommon.cli_config: config: "{{ lines }}" diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/remarks_states.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/remarks_states.yaml new file mode 100644 index 000000000..856b5e6ad --- /dev/null +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/remarks_states.yaml @@ -0,0 +1,134 @@ +--- +- ansible.builtin.debug: + msg: START ios_acls round trip integration tests on connection={{ ansible_connection }} + +- ansible.builtin.include_tasks: _remove_config.yaml + +- ansible.builtin.include_tasks: _populate_config.yaml + +- block: + - name: Apply the configuration with remarks + register: base_config + cisco.ios.ios_acls: + config: + - afi: ipv4 + acls: + - name: TEST + acl_type: extended + aces: + - sequence: 10 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 10" + - "============" + - "REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE" + - sequence: 20 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 20" + - "============" + - "ALLOW HOST FROM SEQUENCE 20" + grant: permit + protocol: ip + source: + host: 1.1.1.1 + destination: + any: true + - sequence: 30 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 30" + - "============" + - "ALLOW HOST FROM SEQUENCE 30" + grant: permit + protocol: ip + source: + host: 2.2.2.2 + destination: + any: true + - sequence: 40 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 40" + - "============" + - "ALLOW NEW HOST FROM SEQUENCE 40" + grant: permit + protocol: ip + source: + host: 3.3.3.3 + destination: + any: true + - remarks: + - "Remark not specific to sequence" + - "============" + - "End Remarks" + state: merged + + - ansible.builtin.assert: + that: + - base_config.changed == true + - base_config.commands|symmetric_difference(remarks_check.commands) == [] + - base_config.before|symmetric_difference(remarks_check.before) == [] + - base_config.after|symmetric_difference(remarks_check.after) == [] + + - name: Apply enhanced configuration + register: base_config_overridden + cisco.ios.ios_acls: + config: + - afi: ipv4 + acls: + - name: TEST + acl_type: extended + aces: + - sequence: 10 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 10" + - "============" + - "REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE" + grant: permit + protocol: ip + source: + host: 1.1.1.1 + destination: + any: true + - sequence: 20 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 20" + - "============" + - "ALLOW HOST FROM SEQUENCE 20" + grant: permit + protocol: ip + source: + host: 192.168.0.1 + destination: + any: true + - sequence: 30 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 30" + - "============" + - "ALLOW HOST FROM SEQUENCE 30 updated" + grant: permit + protocol: ip + source: + host: 2.2.2.2 + destination: + any: true + - sequence: 40 + remarks: + - "FIRST REMARK BEFORE SEQUENCE 40" + - "============" + - "ALLOW NEW HOST FROM SEQUENCE 40" + grant: permit + protocol: ip + source: + host: 3.3.3.3 + destination: + any: true + - remarks: + - "Remark not specific to sequence" + - "============" + - "End Remarks updated" + - "04j" + state: overridden + + - ansible.builtin.assert: + that: + - base_config_overridden.commands|symmetric_difference(remarks_check_override.commands) == [] + always: + - ansible.builtin.include_tasks: _remove_config.yaml diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/replaced.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/replaced.yaml index f4faca3ba..aae010b64 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/replaced.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/tests/cli/replaced.yaml @@ -87,5 +87,40 @@ that: - result.commands|length == 0 - result['changed'] == false + + - ansible.builtin.include_tasks: _remove_config.yaml + + - ansible.builtin.include_tasks: _populate_config.yaml + + - name: Replaces device configuration of ACL with provided configuration + register: result + cisco.ios.ios_acls: &id002 + config: + - afi: ipv4 + acls: + - name: test_acl + acl_type: standard + aces: + - grant: deny + sequence: 10 + source: + address: 198.51.100.0 + wildcard_bits: 0.0.0.255 + state: replaced + + - ansible.builtin.assert: + that: + - result.commands|length == 3 + - result.changed == true + - result.commands|symmetric_difference(replaced_changetype.commands) == [] + + - name: Replaces device configuration of ACL with provided configuration (idempotent) + register: result + cisco.ios.ios_acls: *id002 + - name: Assert that task was idempotent + ansible.builtin.assert: + that: + - result.commands|length == 0 + - result['changed'] == false always: - ansible.builtin.include_tasks: _remove_config.yaml diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/vars/main.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/vars/main.yaml index 2d324ebe1..8460ae2f5 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/vars/main.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_acls/vars/main.yaml @@ -36,6 +36,11 @@ replaced: - ip access-list extended 150 - 20 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10 +replaced_changetype: + commands: + - no ip access-list extended test_acl + - ip access-list standard test_acl + - 10 deny 198.51.100.0 0.0.0.255 overridden: commands: - no ipv6 access-list R1_TRAFFIC @@ -391,3 +396,289 @@ rtt: - no ip access-list extended 150 - ipv6 access-list R1_TRAFFIC - deny tcp any eq www any eq telnet ack dscp af11 sequence 10 +remarks_check: + commands: + - ip access-list extended TEST + - 10 remark FIRST REMARK BEFORE SEQUENCE 10 + - 10 remark ============ + - 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE + - 20 remark FIRST REMARK BEFORE SEQUENCE 20 + - 20 remark ============ + - 20 remark ALLOW HOST FROM SEQUENCE 20 + - 20 permit ip host 1.1.1.1 any + - 30 remark FIRST REMARK BEFORE SEQUENCE 30 + - 30 remark ============ + - 30 remark ALLOW HOST FROM SEQUENCE 30 + - 30 permit ip host 2.2.2.2 any + - 40 remark FIRST REMARK BEFORE SEQUENCE 40 + - 40 remark ============ + - 40 remark ALLOW NEW HOST FROM SEQUENCE 40 + - 40 permit ip host 3.3.3.3 any + - remark Remark not specific to sequence + - remark ============ + - remark End Remarks + before: + - acls: + - aces: + - destination: + address: 192.0.3.0 + wildcard_bits: 0.0.0.255 + dscp: ef + grant: deny + protocol: icmp + protocol_options: + icmp: + echo: true + sequence: 10 + source: + address: 192.0.2.0 + wildcard_bits: 0.0.0.255 + ttl: + eq: 10 + acl_type: extended + name: "110" + - aces: + - destination: + address: 198.51.101.0 + port_protocol: + eq: telnet + wildcard_bits: 0.0.0.255 + grant: deny + protocol: tcp + protocol_options: + tcp: + ack: true + sequence: 10 + source: + address: 198.51.100.0 + wildcard_bits: 0.0.0.255 + tos: + service_value: 12 + - destination: + address: 192.0.4.0 + port_protocol: + eq: www + wildcard_bits: 0.0.0.255 + dscp: ef + grant: deny + protocol: tcp + protocol_options: + tcp: + ack: true + sequence: 20 + source: + address: 192.0.3.0 + wildcard_bits: 0.0.0.255 + ttl: + lt: 20 + acl_type: extended + name: "123" + - aces: + - destination: + address: 192.0.3.0 + port_protocol: + eq: www + wildcard_bits: 0.0.0.255 + grant: deny + option: + traceroute: true + protocol: tcp + protocol_options: + tcp: + fin: true + sequence: 10 + source: + address: 192.0.2.0 + wildcard_bits: 0.0.0.255 + ttl: + eq: 10 + acl_type: extended + name: test_acl + afi: ipv4 + - acls: + - aces: + - destination: + any: true + port_protocol: + eq: telnet + dscp: af11 + grant: deny + protocol: tcp + protocol_options: + tcp: + ack: true + sequence: 10 + source: + any: true + port_protocol: + eq: www + name: R1_TRAFFIC + afi: ipv6 + after: + - acls: + - aces: + - destination: + address: 192.0.3.0 + wildcard_bits: 0.0.0.255 + dscp: ef + grant: deny + protocol: icmp + protocol_options: + icmp: + echo: true + sequence: 10 + source: + address: 192.0.2.0 + wildcard_bits: 0.0.0.255 + ttl: + eq: 10 + acl_type: extended + name: "110" + - aces: + - destination: + address: 198.51.101.0 + port_protocol: + eq: telnet + wildcard_bits: 0.0.0.255 + grant: deny + protocol: tcp + protocol_options: + tcp: + ack: true + sequence: 10 + source: + address: 198.51.100.0 + wildcard_bits: 0.0.0.255 + tos: + service_value: 12 + - destination: + address: 192.0.4.0 + port_protocol: + eq: www + wildcard_bits: 0.0.0.255 + dscp: ef + grant: deny + protocol: tcp + protocol_options: + tcp: + ack: true + sequence: 20 + source: + address: 192.0.3.0 + wildcard_bits: 0.0.0.255 + ttl: + lt: 20 + acl_type: extended + name: "123" + - aces: + - destination: + any: true + grant: permit + protocol: ip + remarks: + - FIRST REMARK BEFORE SEQUENCE 20 + - ============ + - ALLOW HOST FROM SEQUENCE 20 + sequence: 20 + source: + host: 1.1.1.1 + - destination: + any: true + grant: permit + protocol: ip + remarks: + - FIRST REMARK BEFORE SEQUENCE 30 + - ============ + - ALLOW HOST FROM SEQUENCE 30 + sequence: 30 + source: + host: 2.2.2.2 + - destination: + any: true + grant: permit + protocol: ip + remarks: + - FIRST REMARK BEFORE SEQUENCE 40 + - ============ + - ALLOW NEW HOST FROM SEQUENCE 40 + sequence: 40 + source: + host: 3.3.3.3 + - remarks: + - FIRST REMARK BEFORE SEQUENCE 10 + - ============ + - REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE + sequence: 10 + - remarks: + - Remark not specific to sequence + - ============ + - End Remarks + acl_type: extended + name: TEST + - aces: + - destination: + address: 192.0.3.0 + port_protocol: + eq: www + wildcard_bits: 0.0.0.255 + grant: deny + option: + traceroute: true + protocol: tcp + protocol_options: + tcp: + fin: true + sequence: 10 + source: + address: 192.0.2.0 + wildcard_bits: 0.0.0.255 + ttl: + eq: 10 + acl_type: extended + name: test_acl + afi: ipv4 + - acls: + - aces: + - destination: + any: true + port_protocol: + eq: telnet + dscp: af11 + grant: deny + protocol: tcp + protocol_options: + tcp: + ack: true + sequence: 10 + source: + any: true + port_protocol: + eq: www + name: R1_TRAFFIC + afi: ipv6 +remarks_check_override: + commands: + - no ipv6 access-list R1_TRAFFIC + - ip access-list extended TEST + - no 10 + - no 20 permit ip host 1.1.1.1 any + - no 30 remark + - no remark + - 10 remark FIRST REMARK BEFORE SEQUENCE 10 + - 10 remark ============ + - 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE + - 10 permit ip host 1.1.1.1 any + - 20 remark FIRST REMARK BEFORE SEQUENCE 20 + - 20 remark ============ + - 20 remark ALLOW HOST FROM SEQUENCE 20 + - 20 permit ip host 192.168.0.1 any + - 30 remark FIRST REMARK BEFORE SEQUENCE 30 + - 30 remark ============ + - 30 remark ALLOW HOST FROM SEQUENCE 30 updated + - remark Remark not specific to sequence + - remark ============ + - remark End Remarks updated + - remark 04j + - no ip access-list extended 110 + - no ip access-list extended 123 + - no ip access-list extended test_acl diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/defaults/main.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/defaults/main.yaml deleted file mode 100644 index 5f709c5aa..000000000 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/defaults/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -testcase: "*" diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/meta/main.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/meta/main.yaml deleted file mode 100644 index ab3ad91bc..000000000 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/meta/main.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - prepare_ios_tests diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tasks/cli.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tasks/cli.yaml deleted file mode 100644 index 2b6056023..000000000 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tasks/cli.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -- name: Collect all CLI test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/cli" - patterns: "{{ testcase }}.yaml" - register: test_cases - delegate_to: localhost - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test cases (connection=ansible.netcommon.network_cli) - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tasks/main.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tasks/main.yaml deleted file mode 100644 index 2269ecb54..000000000 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tasks/main.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- name: Main task for bgp module - ansible.builtin.include_tasks: cli.yaml - tags: - - network_cli diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tests/cli/basic.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tests/cli/basic.yaml deleted file mode 100644 index 752f9ff4f..000000000 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp/tests/cli/basic.yaml +++ /dev/null @@ -1,490 +0,0 @@ ---- -- ansible.builtin.debug: msg="START ios cli/ios_bgp.yaml on connection={{ ansible_connection }}" - -- name: Clear existing BGP configuration - ignore_errors: true - cisco.ios.ios_bgp: - operation: delete - -- block: - - name: Add fake configuration with 'bgp' string - cisco.ios.ios_config: - match: none - replace: block - lines: - - no ip access-list extended BGP_ACL - - ip access-list extended BGP_ACL - - permit tcp any any eq bgp - - - name: Try delete fake BGP configuration - register: result - cisco.ios.ios_bgp: - operation: delete - - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Clean fake configuration with 'bgp' string - cisco.ios.ios_config: - match: none - replace: block - lines: - - no ip access-list extended BGP_ACL - - - name: Add fake bgp-like configuration - cisco.ios.ios_config: - match: none - replace: block - lines: - - no ip access-list extended BGP_ACL_2 - - ip access-list extended BGP_ACL_2 - - remark router bgp 64496 - - remark neighbor 192.0.2.10 remote-as 64496 - - remark neighbor 192.0.2.10 shutdown - - remark address-family ipv4 - - remark neighbor 192.0.2.10 activate - - remark exit-address-family - - permit tcp any any eq bgp - - - name: Try delete fake bgp-like configuration - register: result - cisco.ios.ios_bgp: - operation: delete - - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Clean fake bgp-like configuration - cisco.ios.ios_config: - match: none - replace: block - lines: - - no ip access-list extended BGP_ACL_2 - - - name: Configure BGP with as 64496 and a router-id - register: result - cisco.ios.ios_bgp: &id001 - operation: merge - config: - bgp_as: 64496 - router_id: 192.0.2.2 - - - ansible.builtin.assert: - that: - - result.changed == true - - "'router bgp 64496' in result.commands" - - "'bgp router-id 192.0.2.2' in result.commands" - - - name: Configure BGP with as 64496 and a router-id (idempotent) - register: result - cisco.ios.ios_bgp: *id001 - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Configure BGP neighbors - register: result - cisco.ios.ios_bgp: &id002 - operation: merge - config: - bgp_as: 64496 - neighbors: - - neighbor: 192.0.2.10 - remote_as: 64496 - password: ansible - description: IBGP_NBR_1 - ebgp_multihop: 100 - timers: - keepalive: 300 - holdtime: 360 - min_neighbor_holdtime: 360 - - - neighbor: 192.0.2.15 - remote_as: 64496 - description: IBGP_NBR_2 - ebgp_multihop: 150 - - - ansible.builtin.assert: - that: - - result.changed == true - - "'router bgp 64496' in result.commands" - - "'neighbor 192.0.2.10 remote-as 64496' in result.commands" - - "'neighbor 192.0.2.10 description IBGP_NBR_1' in result.commands" - - "'neighbor 192.0.2.10 ebgp-multihop 100' in result.commands" - - "'neighbor 192.0.2.10 timers 300 360 360' in result.commands" - - "'neighbor 192.0.2.15 remote-as 64496' in result.commands" - - "'neighbor 192.0.2.15 description IBGP_NBR_2' in result.commands" - - "'neighbor 192.0.2.15 ebgp-multihop 150' in result.commands" - - - name: Configure BGP neighbors (idempotent) - register: result - cisco.ios.ios_bgp: *id002 - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Configure BGP neighbors with operation replace - register: result - cisco.ios.ios_bgp: &id003 - operation: replace - config: - bgp_as: 64496 - neighbors: - - neighbor: 192.0.2.15 - remote_as: 64496 - description: IBGP_NBR_2 - ebgp_multihop: 150 - - - neighbor: 203.0.113.10 - remote_as: 64511 - description: EBGP_NBR_1 - local_as: 64497 - - - neighbor: 10.10.20.20 - remote_as: 65012 - description: BGP_NBR_2 - ebgp_multihop: 100 - - - ansible.builtin.assert: - that: - - result.changed == true - - "'neighbor 203.0.113.10 remote-as 64511' in result.commands" - - "'neighbor 203.0.113.10 description EBGP_NBR_1' in result.commands" - - "'neighbor 203.0.113.10 local-as 64497' in result.commands" - - "'neighbor 10.10.20.20 remote-as 65012' in result.commands" - - "'neighbor 10.10.20.20 description BGP_NBR_2' in result.commands" - - "'no neighbor 192.0.2.10' in result.commands" - - - name: Configure BGP neighbors with operation replace (idempotent) - register: result - cisco.ios.ios_bgp: *id003 - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Configure root-level networks for BGP - register: result - cisco.ios.ios_bgp: &id004 - operation: merge - config: - bgp_as: 64496 - networks: - - prefix: 203.0.113.0 - masklen: 27 - route_map: RMAP_1 - - - prefix: 203.0.113.32 - masklen: 27 - route_map: RMAP_2 - - - ansible.builtin.assert: - that: - - result.changed == True - - "'router bgp 64496' in result.commands" - - "'network 203.0.113.0 mask 255.255.255.224 route-map RMAP_1' in result.commands" - - "'network 203.0.113.32 mask 255.255.255.224 route-map RMAP_2' in result.commands" - - - name: Configure root-level networks for BGP (idempotent) - register: result - cisco.ios.ios_bgp: *id004 - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Configure root-level networks for BGP with operation replace - register: result - cisco.ios.ios_bgp: &id005 - operation: replace - config: - bgp_as: 64496 - networks: - - prefix: 203.0.113.0 - masklen: 27 - route_map: RMAP_1 - - - prefix: 198.51.100.16 - masklen: 28 - - - ansible.builtin.assert: - that: - - result.changed == True - - "'router bgp 64496' in result.commands" - - "'network 198.51.100.16 mask 255.255.255.240' in result.commands" - - "'no network 203.0.113.32 mask 255.255.255.224 route-map RMAP_2' in result.commands" - - - name: Configure root-level networks for BGP with operation replace (idempotent) - register: result - cisco.ios.ios_bgp: *id005 - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Configure BGP neighbors under address family mode - register: result - cisco.ios.ios_bgp: &id006 - operation: merge - config: - bgp_as: 64496 - address_family: - - afi: ipv4 - safi: unicast - neighbors: - - neighbor: 203.0.113.10 - activate: true - maximum_prefix: 250 - advertisement_interval: 120 - - - neighbor: 192.0.2.15 - activate: true - route_reflector_client: true - - - neighbor: 10.10.20.20 - activate: true - prefix_list_in: incoming-prefixes - prefix_list_out: outgoing-prefixes - - - ansible.builtin.assert: - that: - - result.changed == true - - "'router bgp 64496' in result.commands" - - "'address-family ipv4' in result.commands" - - "'neighbor 203.0.113.10 activate' in result.commands" - - "'neighbor 203.0.113.10 maximum-prefix 250' in result.commands" - - "'neighbor 203.0.113.10 advertisement-interval 120' in result.commands" - - "'neighbor 192.0.2.15 activate' in result.commands" - - "'neighbor 192.0.2.15 route-reflector-client' in result.commands" - - "'neighbor 10.10.20.20 activate' in result.commands" - - "'neighbor 10.10.20.20 prefix-list incoming-prefixes in' in result.commands" - - "'neighbor 10.10.20.20 prefix-list outgoing-prefixes out' in result.commands" - - - name: Configure BGP neighbors under address family mode (idempotent) - register: result - cisco.ios.ios_bgp: *id006 - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Configure networks under address family - register: result - cisco.ios.ios_bgp: &id007 - operation: merge - config: - bgp_as: 64496 - address_family: - - afi: ipv4 - safi: multicast - networks: - - prefix: 198.51.100.48 - masklen: 28 - route_map: RMAP_1 - - - prefix: 192.0.2.64 - masklen: 27 - - - prefix: 203.0.113.160 - masklen: 27 - route_map: RMAP_2 - - - afi: ipv4 - safi: unicast - networks: - - prefix: 198.51.100.64 - masklen: 28 - - - ansible.builtin.assert: - that: - - result.changed == true - - "'router bgp 64496' in result.commands" - - "'address-family ipv4 multicast' in result.commands" - - "'network 198.51.100.48 mask 255.255.255.240 route-map RMAP_1' in result.commands" - - "'network 192.0.2.64 mask 255.255.255.224' in result.commands" - - "'network 203.0.113.160 mask 255.255.255.224 route-map RMAP_2' in result.commands" - - "'exit-address-family' in result.commands" - - "'address-family ipv4' in result.commands" - - "'network 198.51.100.64 mask 255.255.255.240' in result.commands" - - "'exit-address-family' in result.commands" - - - name: Configure networks under address family (idempotent) - register: result - cisco.ios.ios_bgp: *id007 - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Configure networks under address family with operation replace - register: result - cisco.ios.ios_bgp: &id008 - operation: replace - config: - bgp_as: 64496 - address_family: - - afi: ipv4 - safi: multicast - networks: - - prefix: 198.51.100.80 - masklen: 28 - - - prefix: 192.0.2.64 - masklen: 27 - - - prefix: 203.0.113.192 - masklen: 27 - - - afi: ipv4 - safi: unicast - networks: - - prefix: 198.51.100.64 - masklen: 28 - - - ansible.builtin.assert: - that: - - result.changed == true - - '"router bgp 64496" in result.commands' - - '"address-family ipv4 multicast" in result.commands' - - '"network 198.51.100.80 mask 255.255.255.240" in result.commands' - - '"network 203.0.113.192 mask 255.255.255.224" in result.commands' - - '"no network 198.51.100.48 mask 255.255.255.240 route-map RMAP_1" in result.commands' - - '"no network 203.0.113.160 mask 255.255.255.224 route-map RMAP_2" in result.commands' - - '"exit-address-family" in result.commands' - - - name: Configure networks under address family with operation replace (idempotent) - register: result - cisco.ios.ios_bgp: *id008 - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Configure redistribute information under address family mode - register: result - cisco.ios.ios_bgp: &id009 - operation: merge - config: - bgp_as: 64496 - address_family: - - afi: ipv4 - safi: multicast - redistribute: - - protocol: ospf - id: 112 - metric: 64 - - - protocol: eigrp - id: 233 - metric: 256 - - - ansible.builtin.assert: - that: - - result.changed == true - - "'router bgp 64496' in result.commands" - - "'address-family ipv4 multicast' in result.commands" - - "'redistribute ospf 112 metric 64' in result.commands" - - "'redistribute eigrp 233 metric 256' in result.commands" - - "'exit-address-family' in result.commands" - - - name: Configure redistribute information under address family mode (idempotent) - register: result - cisco.ios.ios_bgp: *id009 - - ansible.builtin.assert: - that: - - result.changed == false - - - name: Get the IOS version - cisco.ios.ios_facts: - gather_subset: all - - - name: Configure redistribute information under address family mode with operation replace - register: result - cisco.ios.ios_bgp: &id010 - operation: replace - config: - bgp_as: 64496 - address_family: - - afi: ipv4 - safi: multicast - redistribute: - - protocol: ospf - id: 112 - metric: 64 - - - ansible.builtin.assert: - that: - - result.changed == true - - "'router bgp 64496' in result.commands" - - "'address-family ipv4 multicast' in result.commands" - - "'no redistribute eigrp 233' in result.commands" - - "'exit-address-family' in result.commands" - - - name: Configure redistribute information under address family mode with operation replace (idempotent) - register: result - when: ansible_net_version != "15.6(2)T" - cisco.ios.ios_bgp: *id010 - - ansible.builtin.assert: - that: - - result.changed == false - when: ansible_net_version != "15.6(2)T" - - - name: Override all the existing BGP configuration - register: result - cisco.ios.ios_bgp: - operation: override - config: - bgp_as: 64497 - router_id: 192.0.2.10 - log_neighbor_changes: true - - - ansible.builtin.assert: - that: - - result.changed == true - - "'no router bgp 64496' in result.commands" - - "'router bgp 64497' in result.commands" - - "'bgp router-id 192.0.2.10' in result.commands" - - "'bgp log-neighbor-changes' in result.commands" - - - name: Configure BGP neighbors with classful boundary - register: result - cisco.ios.ios_bgp: &id011 - config: - bgp_as: 64497 - log_neighbor_changes: true - networks: - - prefix: 198.51.100.0 - masklen: 23 - - - prefix: 201.0.113.32 - masklen: 24 - operation: merge - - - ansible.builtin.assert: - that: - - result.changed == true - - "'router bgp 64497' in result.commands" - - "'network 198.51.100.0 mask 255.255.254.0' in result.commands" - - "'network 201.0.113.32' in result.commands" - - - name: Configure BGP neighbors with classful boundary (idempotent) - register: result - cisco.ios.ios_bgp: *id011 - - ansible.builtin.assert: - that: - - result.changed == false - always: - - name: Teardown - register: result - cisco.ios.ios_bgp: &id012 - operation: delete - - - ansible.builtin.assert: - that: - - result.changed == true - - "'no router bgp 64497' in result.commands" - - - name: Teardown again (idempotent) - register: result - cisco.ios.ios_bgp: *id012 - - ansible.builtin.assert: - that: - - result.changed == false - -- ansible.builtin.debug: msg="END ios cli/ios_bgp.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/tests/cli/deleted.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/tests/cli/deleted.yaml index bd992e88a..c7647d008 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/tests/cli/deleted.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/tests/cli/deleted.yaml @@ -26,6 +26,7 @@ - name: Delete provided BGP global (idempotent) register: result cisco.ios.ios_bgp_global: *id001 + - name: Assert that the previous task was idempotent ansible.builtin.assert: that: diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/tests/cli/merged.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/tests/cli/merged.yaml index 1404b4e91..6c126ccfd 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/tests/cli/merged.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/tests/cli/merged.yaml @@ -11,14 +11,12 @@ config: as_number: 65000 bgp: - advertise_best_external: true bestpath: - compare_routerid: true - dampening: - penalty_half_time: 1 - reuse_route_val: 1 - suppress_route_val: 1 - max_suppress: 1 + default: + ipv4_unicast: false + route_target: + filter: false graceful_shutdown: neighbors: time: 50 @@ -33,20 +31,6 @@ remote_as: 100 shutdown: set: false - aigp: - send: - cost_community: - id: 100 - poi: - igp_cost: true - transitive: true - route_map: - name: test-route - out: true - redistribute: - - connected: - metric: 10 - set: true timers: keepalive: 100 holdtime: 200 diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/vars/main.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/vars/main.yaml index 07638f98e..93fadcf29 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/vars/main.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_bgp_global/vars/main.yaml @@ -5,29 +5,24 @@ merged: commands: - router bgp 65000 - timers bgp 100 200 150 - - bgp advertise-best-external - bgp bestpath compare-routerid - - bgp dampening 1 1 1 1 + - no bgp default ipv4-unicast + - no bgp default route-target filter - bgp graceful-shutdown all neighbors 50 local-preference 100 community 100 - bgp log-neighbor-changes - bgp nopeerup-delay post-boot 10 - neighbor 198.0.2.1 remote-as 100 - neighbor 198.0.2.1 description merge neighbor - - neighbor 198.0.2.1 aigp send cost-community 100 poi igp-cost transitive - - neighbor 198.0.2.1 route-map test-route out - - redistribute connected metric 10 after: as_number: "65000" bgp: - advertise_best_external: true bestpath_options: compare_routerid: true - dampening: - max_suppress: 1 - penalty_half_time: 1 - reuse_route_val: 1 - suppress_route_val: 1 + default: + ipv4_unicast: false + route_target: + filter: false graceful_shutdown: community: "100" local_preference: 100 @@ -37,23 +32,9 @@ merged: nopeerup_delay_options: post_boot: 10 neighbors: - - aigp: - send: - cost_community: - id: 100 - poi: - igp_cost: true - transitive: true - description: merge neighbor + - description: merge neighbor neighbor_address: 198.0.2.1 remote_as: "100" - route_maps: - - name: test-route - out: true - redistribute: - - connected: - metric: 10 - set: true timers: holdtime: 200 keepalive: 100 @@ -63,6 +44,10 @@ gathered: after: as_number: "65000" bgp: + default: + ipv4_unicast: true + route_target: + filter: true advertise_best_external: true bestpath_options: compare_routerid: true @@ -119,6 +104,10 @@ replaced: after: as_number: "65000" bgp: + default: + ipv4_unicast: true + route_target: + filter: true advertise_best_external: true bestpath_options: med: @@ -143,6 +132,10 @@ parsed: after: as_number: "65000" bgp: + default: + ipv4_unicast: true + route_target: + filter: true advertise_best_external: true bestpath_options: compare_routerid: true @@ -213,6 +206,11 @@ deleted: after: as_number: "65000" + bgp: + default: + ipv4_unicast: true + route_target: + filter: true rtt: commands: diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_facts/tests/cli/all_facts.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_facts/tests/cli/all_facts.yaml index ba8a1fd23..44d57ed9b 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_facts/tests/cli/all_facts.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_facts/tests/cli/all_facts.yaml @@ -20,8 +20,10 @@ - result.ansible_facts.ansible_net_memtotal_mb > 1 - ansible.builtin.assert: - that: "{{ item.value.spacetotal_kb }} > {{ item.value.spacefree_kb }}" + that: "{{ my_var.value.spacetotal_kb }} > {{ my_var.value.spacefree_kb }}" loop: "{{ lookup('dict', result.ansible_facts.ansible_net_filesystems_info, wantlist=True) }}" + loop_control: + loop_var: my_var - ansible.builtin.set_fact: supported_network_resources: @@ -34,6 +36,9 @@ - lldp_global - lldp_interfaces - l3_interfaces + - evpn_global + - evpn_evi + - vxlan_vtep - logging_global - acl_interfaces - static_routes diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_interfaces/tests/cli/merged.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_interfaces/tests/cli/merged.yaml index c73dd0b11..3db4a1fb6 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_interfaces/tests/cli/merged.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_interfaces/tests/cli/merged.yaml @@ -14,7 +14,7 @@ enabled: true - name: GigabitEthernet3 - description: Configured and Merged by Ansible-Network + description: 04j enabled: false state: merged diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_interfaces/vars/main.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_interfaces/vars/main.yaml index 84b8afb22..bf89b4b37 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_interfaces/vars/main.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_interfaces/vars/main.yaml @@ -20,7 +20,7 @@ merged: - interface GigabitEthernet2 - description Configured and Merged by Ansible-Network - interface GigabitEthernet3 - - description Configured and Merged by Ansible-Network + - description 04j - shutdown after: - enabled: true @@ -30,7 +30,7 @@ merged: enabled: true name: GigabitEthernet2 speed: "1000" - - description: Configured and Merged by Ansible-Network + - description: 04j enabled: false name: GigabitEthernet3 speed: "1000" diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_l3_interfaces/tests/cli/merged.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_l3_interfaces/tests/cli/merged.yaml index 06228ea7f..75217f5e5 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_l3_interfaces/tests/cli/merged.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_l3_interfaces/tests/cli/merged.yaml @@ -23,6 +23,21 @@ - address: 198.51.100.2/24 ipv6: - address: 2001:db8:0:3::/64 + - name: Vlan101 + ipv4: + - address: 198.51.100.2/24 + mac_address: dead:beef:abcd + - name: Vlan901 + autostate: false + ipv4: + - source_interface: + name: Loopback1 + ipv6: + - enable: true + - name: Vlan902 + autostate: true + ipv6: + - enable: true state: merged - name: L3_interface merged - assert that correct set of commands were generated diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_l3_interfaces/vars/main.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_l3_interfaces/vars/main.yaml index 44ca9b85e..73996896e 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_l3_interfaces/vars/main.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_l3_interfaces/vars/main.yaml @@ -19,6 +19,12 @@ merged: - ip address 198.51.100.1 255.255.255.0 secondary - ip address 198.51.100.2 255.255.255.0 - ipv6 address 2001:db8:0:3::/64 + - interface Vlan901 + - no autostate + - ip unnumbered Loopback1 + - ipv6 enable + - interface Vlan902 + - ipv6 enable after: - name: Loopback888 - ipv4: @@ -40,6 +46,21 @@ merged: - address: 2001:DB8:0:3::/64 name: GigabitEthernet3 - name: GigabitEthernet4 + - name: Vlan101 + ipv4: + - address: 198.51.100.2/24 + mac_address: dead:beef:abcd + - name: Vlan901 + ipv4: + - source_interface: + name: Loopback1 + ipv6: + - enable: true + autostate: false + - name: Vlan902 + ipv6: + - enable: true + autostate: true replaced: before: diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/defaults/main.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/defaults/main.yaml deleted file mode 100644 index 5f709c5aa..000000000 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/defaults/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -testcase: "*" diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/meta/main.yml b/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/meta/main.yml deleted file mode 100644 index ab3ad91bc..000000000 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/meta/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - prepare_ios_tests diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tasks/cli.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tasks/cli.yaml deleted file mode 100644 index cd8c04990..000000000 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tasks/cli.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- name: Collect all CLI test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/cli" - patterns: "{{ testcase }}.yaml" - register: test_cases - delegate_to: localhost - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test cases (connection=ansible.netcommon.network_cli) - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - tags: network_cli diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tasks/main.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tasks/main.yaml deleted file mode 100644 index 3d2666f3e..000000000 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tasks/main.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -- name: Main task for ntp module - ansible.builtin.include_tasks: cli.yaml diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tests/cli/ntp_configuration.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tests/cli/ntp_configuration.yaml deleted file mode 100644 index 92063dfb5..000000000 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_ntp/tests/cli/ntp_configuration.yaml +++ /dev/null @@ -1,87 +0,0 @@ ---- -- ansible.builtin.debug: msg="START connection={{ ansible_connection }} ios_ntp sanity test" - -- name: Remove ntp (if set) - ignore_errors: true - cisco.ios.ios_ntp: &id007 - server: 10.75.32.5 - source_int: "{{ test_interface }}" - acl: NTP_ACL - logging: true - key_id: 10 - auth_key: 15435A030726242723273C21181319000A - auth: true - state: absent - -- block: - - name: Configure ntp - register: result - cisco.ios.ios_ntp: &id001 - server: 10.75.32.5 - source_int: "{{ test_interface }}" - state: present - - - ansible.builtin.assert: &id002 - that: - - result.changed == true - - - name: Idempotent check - register: result - cisco.ios.ios_ntp: *id001 - - ansible.builtin.assert: &id004 - that: - - result.changed == false - - - name: Load ACL ntp_acl into device - register: result - cisco.ios.ios_config: - lines: - - 10 permit ip host 192.0.2.1 any log - parents: ip access-list extended NTP_ACL - - - ansible.builtin.assert: *id002 - - name: Configure ntp - register: result - cisco.ios.ios_ntp: &id003 - acl: NTP_ACL - logging: true - state: present - - - ansible.builtin.assert: *id002 - - name: Idempotent check - register: result - cisco.ios.ios_ntp: *id003 - - ansible.builtin.assert: *id004 - - name: Configure ntp with different values - register: result - cisco.ios.ios_ntp: &id005 - key_id: 10 - auth_key: 15435A030726242723273C21181319000A - auth: true - vrf: my_mgmt_vrf - state: present - - - ansible.builtin.assert: *id002 - - name: Idempotent check - register: result - cisco.ios.ios_ntp: *id005 - - ansible.builtin.assert: *id004 - - name: Remove part of configuration - register: result - cisco.ios.ios_ntp: &id006 - acl: NTP_ACL - logging: true - state: absent - - - ansible.builtin.assert: *id002 - - name: Idempotent check - register: result - cisco.ios.ios_ntp: *id006 - - ansible.builtin.assert: *id004 - always: - - name: Remove ntp configuration - cisco.ios.ios_ntp: *id007 - - name: Remove ntp_acl from device - cisco.ios.ios_config: - lines: - - no ip access-list extended NTP_ACL diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_user/tests/cli/basic.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_user/tests/cli/basic.yaml index 7d5606c1e..6c795ee2d 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_user/tests/cli/basic.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_user/tests/cli/basic.yaml @@ -4,15 +4,10 @@ cisco.ios.ios_user: aggregate: - name: ansibletest1 - - name: ansibletest2 - - name: ansibletest3 - - name: ansibletest4 - - name: ansibletest5 - - name: ansibletest6 state: absent @@ -36,7 +31,6 @@ cisco.ios.ios_user: aggregate: - name: ansibletest2 - - name: ansibletest3 state: present view: network-admin @@ -66,7 +60,6 @@ cisco.ios.ios_user: aggregate: - name: ansibletest2 - - name: ansibletest3 state: present view: network-admin @@ -111,7 +104,7 @@ name: ansibleuser6 hashed_password: type: 5 - value: $3$8JcDilcYgFZi.yz4ApaqkHG2.8/ + value: $1$SpMm$eALjeyED.WSZs0naLNv22/ state: present - ansible.builtin.assert: @@ -125,16 +118,13 @@ cisco.ios.ios_user: aggregate: - name: ansibletest1 - - name: ansibletest2 - - name: ansibletest3 - - - name: ansibletest4 - - - name: ansibletest5 - - - name: ansibletest6 + - name: ansibleuser4 + - name: ansibleuser5 + - name: ansibleuser6 + - name: ansibleuser7 + - name: ssh_user state: absent - ansible.builtin.assert: @@ -143,3 +133,54 @@ - '"no username ansibletest1" in result.commands[0]["command"]' - '"no username ansibletest2" in result.commands[1]["command"]' - '"no username ansibletest3" in result.commands[2]["command"]' + +- name: Add user to check purge + become: true + register: result + cisco.ios.ios_user: + name: ansibletest1 + privilege: 15 + role: network-operator + state: present + +- name: Create user with hashed_password 9 + become: true + register: result + cisco.ios.ios_user: + name: ansibleuser6 + hashed_password: + type: 9 + value: $9$B/6NVV7joWJ9w.$XueHQxIOZk0GhNC3lxUFioUeowJrtLmXxouXfTuoNpc + state: present + +- ansible.builtin.assert: + that: + - result.changed == true + - "'username ansibleuser6 secret' in result.commands[0]" + +- name: Ensure SSH key is not world readable + ansible.builtin.file: + path: "{{ role_path }}/files/test_rsa" + mode: 384 + +- name: Create user with sshkey to check purge + cisco.ios.ios_user: + name: ssh_user + privilege: 15 + state: present + sshkey: "{{ lookup('file', 'files/test_rsa.pub') }}" + +- name: Reset connection with {{ ansible_user }} + ansible.builtin.meta: reset_connection + +- name: check if purge removes ssh_user + become: true + register: result_purge + cisco.ios.ios_user: + aggregate: + - name: cisco + purge: true + +- ansible.builtin.assert: + that: + - result.changed == true diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/_populate_config_vlan_config.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/_populate_config_vlan_config.yaml index d1c517a03..9f740fd90 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/_populate_config_vlan_config.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/_populate_config_vlan_config.yaml @@ -13,5 +13,4 @@ - vlan_id: 901 member: vni: 50901 - configuration: true state: merged diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/_remove_config_vlan_config.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/_remove_config_vlan_config.yaml index f78bb0c56..591d6c6e9 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/_remove_config_vlan_config.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/_remove_config_vlan_config.yaml @@ -8,5 +8,4 @@ - vlan_id: 202 - vlan_id: 901 - vlan_id: 902 - configuration: true state: deleted diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/deleted_vlan_config.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/deleted_vlan_config.yaml index 21249d763..ae7215669 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/deleted_vlan_config.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/deleted_vlan_config.yaml @@ -10,7 +10,6 @@ - name: Delete vlans attributes for all configured vlans register: result cisco.ios.ios_vlans: &id001 - configuration: true state: deleted - name: Assert that correct set of commands were generated diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/gathered_vlan_config.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/gathered_vlan_config.yaml index 576adee2f..6e0fc136e 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/gathered_vlan_config.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/gathered_vlan_config.yaml @@ -11,7 +11,6 @@ register: result cisco.ios.ios_vlans: config: - configuration: true state: gathered - name: Assert diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/merged_vlan_config.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/merged_vlan_config.yaml index 6efce0fc0..5af123bcd 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/merged_vlan_config.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/merged_vlan_config.yaml @@ -17,7 +17,6 @@ - vlan_id: 902 member: vni: 50902 - configuration: true state: merged - name: Assert that correct set of commands were generated diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/overridden_vlan_config.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/overridden_vlan_config.yaml index 52944e5ce..a739c6117 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/overridden_vlan_config.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/overridden_vlan_config.yaml @@ -19,7 +19,6 @@ member: vni: 10101 evi: 101 - configuration: true state: overridden - name: Assert that correct set of commands were generated diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/parsed_vlan_config.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/parsed_vlan_config.yaml index 7d8311711..3234569ce 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/parsed_vlan_config.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/parsed_vlan_config.yaml @@ -8,7 +8,6 @@ register: result cisco.ios.ios_vlans: running_config: "{{ lookup('file', '_parsed_vlan_config.cfg') }}" - configuration: true state: parsed - ansible.builtin.assert: diff --git a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/rendered_vlan_config.yaml b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/rendered_vlan_config.yaml index 63cc24a29..1b3a0f093 100644 --- a/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/rendered_vlan_config.yaml +++ b/ansible_collections/cisco/ios/tests/integration/targets/ios_vlans/tests/cli/rendered_vlan_config.yaml @@ -19,7 +19,6 @@ - vlan_id: 901 member: vni: 50901 - configuration: true state: rendered - ansible.builtin.assert: diff --git a/ansible_collections/cisco/ios/tests/sanity/ignore-2.10.txt b/ansible_collections/cisco/ios/tests/sanity/ignore-2.10.txt deleted file mode 100644 index 9dadf1b54..000000000 --- a/ansible_collections/cisco/ios/tests/sanity/ignore-2.10.txt +++ /dev/null @@ -1,24 +0,0 @@ -plugins/action/ios.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/module_utils/network/ios/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/ios/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/ios/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/ios/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/ios/config/route_maps/route_maps.py compile-2.6!skip -plugins/module_utils/network/ios/config/logging_global/logging_global.py compile-2.6!skip -plugins/module_utils/network/ios/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/module_utils/network/ios/config/ntp_global/ntp_global.py compile-2.6!skip -plugins/modules/ios_route_maps.py import-2.6!skip -plugins/modules/ios_logging_global.py import-2.6!skip -plugins/modules/ios_prefix_lists.py import-2.6!skip -plugins/modules/ios_bgp_address_family.py import-2.6!skip -plugins/module_utils/network/ios/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/ios/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/module_utils/network/ios/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/ios/config/ospfv3/ospfv3.py import-2.6!skip -plugins/module_utils/network/ios/config/route_maps/route_maps.py import-2.6!skip -plugins/module_utils/network/ios/config/logging_global/logging_global.py import-2.6!skip -plugins/module_utils/network/ios/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/ios/config/ntp_global/ntp_global.py import-2.6!skip -plugins/module_utils/network/ios/config/vxlan_vtep/vxlan_vtep.py import-2.6!skip -plugins/module_utils/network/ios/config/evpn_global/evpn_global.py import-2.6!skip -plugins/module_utils/network/ios/config/evpn_evi/evpn_evi.py import-2.6!skip diff --git a/ansible_collections/cisco/ios/tests/sanity/ignore-2.11.txt b/ansible_collections/cisco/ios/tests/sanity/ignore-2.11.txt deleted file mode 100644 index 2847c9344..000000000 --- a/ansible_collections/cisco/ios/tests/sanity/ignore-2.11.txt +++ /dev/null @@ -1,24 +0,0 @@ -plugins/action/ios.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/module_utils/network/ios/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/ios/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/ios/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/ios/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/ios/config/route_maps/route_maps.py compile-2.6!skip -plugins/module_utils/network/ios/config/logging_global/logging_global.py compile-2.6!skip -plugins/module_utils/network/ios/config/ntp_global/ntp_global.py compile-2.6!skip -plugins/module_utils/network/ios/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/modules/ios_route_maps.py import-2.6!skip -plugins/modules/ios_logging_global.py import-2.6!skip -plugins/modules/ios_prefix_lists.py import-2.6!skip -plugins/modules/ios_bgp_address_family.py import-2.6!skip -plugins/module_utils/network/ios/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/ios/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/module_utils/network/ios/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/ios/config/ospfv3/ospfv3.py import-2.6!skip -plugins/module_utils/network/ios/config/route_maps/route_maps.py import-2.6!skip -plugins/module_utils/network/ios/config/logging_global/logging_global.py import-2.6!skip -plugins/module_utils/network/ios/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/ios/config/ntp_global/ntp_global.py import-2.6!skip -plugins/module_utils/network/ios/config/vxlan_vtep/vxlan_vtep.py import-2.6!skip -plugins/module_utils/network/ios/config/evpn_global/evpn_global.py import-2.6!skip -plugins/module_utils/network/ios/config/evpn_evi/evpn_evi.py import-2.6!skip diff --git a/ansible_collections/cisco/ios/tests/sanity/ignore-2.12.txt b/ansible_collections/cisco/ios/tests/sanity/ignore-2.12.txt deleted file mode 100644 index d7ff17ca8..000000000 --- a/ansible_collections/cisco/ios/tests/sanity/ignore-2.12.txt +++ /dev/null @@ -1 +0,0 @@ -plugins/action/ios.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` diff --git a/ansible_collections/cisco/ios/tests/sanity/ignore-2.13.txt b/ansible_collections/cisco/ios/tests/sanity/ignore-2.13.txt deleted file mode 100644 index d7ff17ca8..000000000 --- a/ansible_collections/cisco/ios/tests/sanity/ignore-2.13.txt +++ /dev/null @@ -1 +0,0 @@ -plugins/action/ios.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` diff --git a/ansible_collections/cisco/ios/tests/sanity/ignore-2.18.txt b/ansible_collections/cisco/ios/tests/sanity/ignore-2.18.txt new file mode 100644 index 000000000..d7ff17ca8 --- /dev/null +++ b/ansible_collections/cisco/ios/tests/sanity/ignore-2.18.txt @@ -0,0 +1 @@ +plugins/action/ios.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` diff --git a/ansible_collections/cisco/ios/tests/sanity/ignore-2.9.txt b/ansible_collections/cisco/ios/tests/sanity/ignore-2.9.txt deleted file mode 100644 index 11aba94e9..000000000 --- a/ansible_collections/cisco/ios/tests/sanity/ignore-2.9.txt +++ /dev/null @@ -1,32 +0,0 @@ -plugins/modules/ios_bgp.py validate-modules:deprecation-mismatch -plugins/modules/ios_bgp.py validate-modules:invalid-documentation -plugins/modules/ios_lldp.py validate-modules:deprecation-mismatch -plugins/modules/ios_lldp.py validate-modules:invalid-documentation -plugins/modules/ios_ntp.py validate-modules:deprecation-mismatch -plugins/modules/ios_ntp.py validate-modules:invalid-documentation -plugins/modules/ios_linkagg.py validate-modules:deprecation-mismatch -plugins/modules/ios_linkagg.py validate-modules:invalid-documentation -plugins/action/ios.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/module_utils/network/ios/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/ios/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/ios/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/ios/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/ios/config/route_maps/route_maps.py compile-2.6!skip -plugins/module_utils/network/ios/config/logging_global/logging_global.py compile-2.6!skip -plugins/module_utils/network/ios/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/modules/ios_route_maps.py import-2.6!skip -plugins/modules/ios_logging_global.py import-2.6!skip -plugins/modules/ios_ntp_global.py import-2.6!skip -plugins/modules/ios_prefix_lists.py import-2.6!skip -plugins/modules/ios_bgp_address_family.py import-2.6!skip -plugins/module_utils/network/ios/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/ios/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/module_utils/network/ios/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/ios/config/ospfv3/ospfv3.py import-2.6!skip -plugins/module_utils/network/ios/config/route_maps/route_maps.py import-2.6!skip -plugins/module_utils/network/ios/config/logging_global/logging_global.py import-2.6!skip -plugins/module_utils/network/ios/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/ios/config/ntp_global/ntp_global.py import-2.6!skip -plugins/module_utils/network/ios/config/vxlan_vtep/vxlan_vtep.py import-2.6!skip -plugins/module_utils/network/ios/config/evpn_global/evpn_global.py import-2.6!skip -plugins/module_utils/network/ios/config/evpn_evi/evpn_evi.py import-2.6!skip diff --git a/ansible_collections/cisco/ios/tests/unit/compat/__init__.py b/ansible_collections/cisco/ios/tests/unit/compat/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/ios/tests/unit/compat/mock.py b/ansible_collections/cisco/ios/tests/unit/compat/mock.py deleted file mode 100644 index e25e8381b..000000000 --- a/ansible_collections/cisco/ios/tests/unit/compat/mock.py +++ /dev/null @@ -1,28 +0,0 @@ -# pylint: skip-file -# (c) 2014, Toshio Kuratomi -# -# 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 . - -# Make coding more python3-ish -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -""" -Compat module for Python3.x's unittest.mock module -""" -from unittest.mock import * diff --git a/ansible_collections/cisco/ios/tests/unit/compat/unittest.py b/ansible_collections/cisco/ios/tests/unit/compat/unittest.py deleted file mode 100644 index df4266ec9..000000000 --- a/ansible_collections/cisco/ios/tests/unit/compat/unittest.py +++ /dev/null @@ -1,41 +0,0 @@ -# (c) 2014, Toshio Kuratomi -# -# 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 . - -# Make coding more python3-ish -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -""" -Compat module for Python2.7's unittest module -""" - -import sys - - -# Allow wildcard import because we really do want to import all of -# unittests's symbols into this compat shim -# pylint: disable=wildcard-import,unused-wildcard-import -if sys.version_info < (2, 7): - try: - # Need unittest2 on python2.6 - from unittest2 import * - except ImportError: - print("You need unittest2 installed on python2.6.x to run tests") -else: - from unittest import * diff --git a/ansible_collections/cisco/ios/tests/unit/mock/path.py b/ansible_collections/cisco/ios/tests/unit/mock/path.py index ce2eb1fe0..7d287a5fb 100644 --- a/ansible_collections/cisco/ios/tests/unit/mock/path.py +++ b/ansible_collections/cisco/ios/tests/unit/mock/path.py @@ -2,9 +2,12 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible.utils.path import unfrackpath +from unittest.mock import MagicMock -from ansible_collections.cisco.ios.tests.unit.compat.mock import MagicMock +from ansible.utils.path import unfrackpath -mock_unfrackpath_noop = MagicMock(spec_set=unfrackpath, side_effect=lambda x, *args, **kwargs: x) +mock_unfrackpath_noop = MagicMock( + spec_set=unfrackpath, + side_effect=lambda x, *args, **kwargs: x, +) diff --git a/ansible_collections/cisco/ios/tests/unit/mock/procenv.py b/ansible_collections/cisco/ios/tests/unit/mock/procenv.py index 111c319c2..e6e09464b 100644 --- a/ansible_collections/cisco/ios/tests/unit/mock/procenv.py +++ b/ansible_collections/cisco/ios/tests/unit/mock/procenv.py @@ -27,12 +27,11 @@ import sys from contextlib import contextmanager from io import BytesIO, StringIO +from unittest import TestCase from ansible.module_utils._text import to_bytes from ansible.module_utils.six import PY3 -from ansible_collections.cisco.ios.tests.unit.compat import unittest - @contextmanager def swap_stdin_and_argv(stdin_data="", argv_data=tuple()): @@ -78,10 +77,13 @@ def swap_stdout(): sys.stdout = old_stdout -class ModuleTestCase(unittest.TestCase): +class ModuleTestCase(TestCase): def setUp(self, module_args=None): if module_args is None: - module_args = {"_ansible_remote_tmp": "/tmp", "_ansible_keep_remote_files": False} + module_args = { + "_ansible_remote_tmp": "/tmp", + "_ansible_keep_remote_files": False, + } args = json.dumps(dict(ANSIBLE_MODULE_ARGS=module_args)) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/fixtures/ios_facts_show_interfaces b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/fixtures/ios_facts_show_interfaces index 9888c8e22..e2ee95fbd 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/fixtures/ios_facts_show_interfaces +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/fixtures/ios_facts_show_interfaces @@ -1,4 +1,4 @@ -GigabitEthernet0/0 is up, line protocol is up +GigabitEthernet0/0/0.1012 is up, line protocol is up Hardware is iGbE, address is 5e00.0003.0000 (bia 5e00.0003.0000) Description: OOB Management Internet address is 10.8.38.66/24 @@ -27,6 +27,35 @@ GigabitEthernet0/0 is up, line protocol is up 0 babbles, 0 late collision, 0 deferred 1 lost carrier, 0 no carrier, 0 pause output 0 output buffer failures, 0 output buffers swapped out +GigabitEthernet0/0 is up, line protocol is up + Hardware is iGbE, address is 5e00.0008.0000 (bia 5e00.0008.0000) + Description: OOB Management + Internet address is 10.8.38.66/24 + MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec, + reliability 253/255, txload 1/255, rxload 1/255 + Encapsulation ARPA, loopback not set + Keepalive set (10 sec) + Full Duplex, Auto Speed, link type is auto, media type is RJ45 + output flow-control is unsupported, input flow-control is unsupported + ARP type: ARPA, ARP Timeout 04:00:00 + Last input 00:00:00, output 00:00:00, output hang never + Last clearing of "show interface" counters never + Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 + Queueing strategy: fifo + Output queue: 0/40 (size/max) + 5 minute input rate 3000 bits/sec, 2 packets/sec + 5 minute output rate 2000 bits/sec, 2 packets/sec + 8463791 packets input, 1445150230 bytes, 0 no buffer + Received 0 broadcasts (0 IP multicasts) + 0 runts, 0 giants, 0 throttles + 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored + 0 watchdog, 0 multicast, 0 pause input + 3521571 packets output, 348781823 bytes, 0 underruns + 0 output errors, 0 collisions, 1 interface resets + 4150764 unknown protocol drops + 0 babbles, 0 late collision, 0 deferred + 1 lost carrier, 0 no carrier, 0 pause output + 0 output buffer failures, 0 output buffers swapped out GigabitEthernet1 is up, line protocol is up Hardware is CSR vNIC, address is 5e00.0006.0000 (bia 5e00.0006.0000) Description: OOB Management diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_acl_interfaces.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_acl_interfaces.py index 6bc99691c..3c8567797 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_acl_interfaces.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_acl_interfaces.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_acl_interfaces -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_acls.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_acls.py index 33c4a1ddb..36d96365a 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_acls.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_acls.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_acls -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -91,7 +90,10 @@ class TestIosAclsModule(TestIosModule): aces=[ dict( grant="deny", - source=dict(address="192.0.2.0", wildcard_bits="0.0.0.255"), + source=dict( + address="192.0.2.0", + wildcard_bits="0.0.0.255", + ), ), ], ), @@ -137,7 +139,9 @@ class TestIosAclsModule(TestIosModule): protocol_options=dict(tcp=dict(ack="True")), sequence="200", source=dict(object_group="test_network_og"), - destination=dict(object_group="test_network_og"), + destination=dict( + object_group="test_network_og", + ), dscp="ef", ttl=dict(eq=10), ), @@ -223,7 +227,10 @@ class TestIosAclsModule(TestIosModule): { "aces": [ { - "destination": {"any": True, "port_protocol": {"eq": "22"}}, + "destination": { + "any": True, + "port_protocol": {"eq": "22"}, + }, "grant": "permit", "protocol": "tcp", "sequence": 10, @@ -233,14 +240,20 @@ class TestIosAclsModule(TestIosModule): }, }, { - "destination": {"any": True, "port_protocol": {"eq": "22"}}, + "destination": { + "any": True, + "port_protocol": {"eq": "22"}, + }, "grant": "permit", "protocol": "tcp", "sequence": 20, "source": {"host": "10.160.114.111"}, }, { - "destination": {"any": True, "port_protocol": {"eq": "22"}}, + "destination": { + "any": True, + "port_protocol": {"eq": "22"}, + }, "grant": "permit", "protocol": "tcp", "sequence": 30, @@ -361,7 +374,9 @@ class TestIosAclsModule(TestIosModule): "grant": "permit", "protocol": "ipv6", "sequence": 10, - "source": {"address": "2001:ABAD:BEEF:1221::/64"}, + "source": { + "address": "2001:ABAD:BEEF:1221::/64", + }, }, { "destination": { @@ -380,7 +395,10 @@ class TestIosAclsModule(TestIosModule): "aces": [ {"remarks": ["empty remark 1"], "sequence": 10}, {"remarks": ["empty remark 2"], "sequence": 20}, - {"remarks": ["empty remark never ends"], "sequence": 30}, + { + "remarks": ["empty remark never ends"], + "sequence": 30, + }, ], "name": "empty_ipv6_acl", }, @@ -402,7 +420,10 @@ class TestIosAclsModule(TestIosModule): "sequence": 40, "source": {"any": True}, }, - {"remarks": ["I am new set of ipv6 ace"], "sequence": 50}, + { + "remarks": ["I am new set of ipv6 ace"], + "sequence": 50, + }, { "destination": {"any": True}, "grant": "permit", @@ -422,64 +443,58 @@ class TestIosAclsModule(TestIosModule): ) result = self.execute_module(changed=True) commands = [ - "ip access-list extended mytest", - "remark I am a test ace", - "remark I am right after the test ace", - "remark I third the test ace", - "100 permit ip host 100.100.100.100 any", - "remark I am the next test ace", - "remark I am the next ace to the next ace", - "110 permit ip host 10.40.150.0 any", - "remark I am the peace ace", - "remark Peace out", "ip access-list extended 199", "10 permit ip 10.40.150.0 0.0.0.255 any", "20 permit ip any 10.40.150.0 0.0.0.255", + "ip access-list standard 42", + "10 permit 10.182.250.0 0.0.0.255", + "ip access-list extended empty_ip_ex_acl", + "remark empty remark 1", + "remark empty remark 2", + "remark empty remark never ends", "ip access-list extended NET-MGMT-VTY", "10 permit tcp 10.57.66.243 0.0.0.7 any eq 22", "20 permit tcp host 10.160.114.111 any eq 22", "30 permit tcp host 10.160.115.22 any eq 22", "40 deny ip any any log", - "ip access-list extended empty_ip_ex_acl", - "remark empty remark 1", - "remark empty remark 2", - "remark empty remark never ends", + "ip access-list extended mytest", + "100 remark I am a test ace", + "100 remark I am right after the test ace", + "100 remark I third the test ace", + "100 permit ip host 100.100.100.100 any", + "110 remark I am the next test ace", + "110 remark I am the next ace to the next ace", + "110 permit ip host 10.40.150.0 any", + "remark I am the peace ace", + "remark Peace out", "ip access-list extended TEST", - "remark FIRST REMARK BEFORE LINE 10", - "remark ============", - "remark ALLOW HOST FROM BUILDING 10", + "10 remark FIRST REMARK BEFORE LINE 10", + "10 remark ============", + "10 remark ALLOW HOST FROM BUILDING 10", "10 permit ip host 1.1.1.1 any", - "remark FIRST REMARK BEFORE LINE 20", - "remark ============", - "remark ALLOW HOST FROM BUILDING 20", + "20 remark FIRST REMARK BEFORE LINE 20", + "20 remark ============", + "20 remark ALLOW HOST FROM BUILDING 20", "20 permit ip host 2.2.2.2 any", - "remark FIRST REMARK BEFORE LINE 30", - "remark ============", - "remark ALLOW NEW HOST FROM BUILDING 10", + "30 remark FIRST REMARK BEFORE LINE 30", + "30 remark ============", + "30 remark ALLOW NEW HOST FROM BUILDING 10", "30 permit ip host 3.3.3.3 any", "remark FIRST REMARK AT END OF ACL", "remark SECOND REMARK AT END OF ACL", - "ip access-list standard 42", - "10 permit 10.182.250.0 0.0.0.255", "ipv6 access-list R1_TRAFFIC", "permit ipv6 2001:ABAD:BEEF:1221::/64 any sequence 10", "deny tcp host 2001:ABAD:BEEF:2345::1 host 2001:ABAD:BEEF:1212::1 eq www sequence 20", "ipv6 access-list empty_ipv6_acl", - "remark empty remark 1", - " sequence 10", - "remark empty remark 2", - " sequence 20", - "remark empty remark never ends", - " sequence 30", + "10 remark empty remark 1", + "20 remark empty remark 2", + "30 remark empty remark never ends", "ipv6 access-list ipv6_acl", - "remark I am a ipv6 ace", - " sequence 10", - "remark I am test", - " sequence 20", + "10 remark I am a ipv6 ace", + "20 remark I am test", "permit tcp any any sequence 30", "permit udp any any sequence 40", - "remark I am new set of ipv6 ace", - " sequence 50", + "50 remark I am new set of ipv6 ace", "permit icmp any any sequence 60", ] self.assertEqual(sorted(result["commands"]), sorted(commands)) @@ -518,7 +533,10 @@ class TestIosAclsModule(TestIosModule): "sequence": 10, "grant": "deny", "protocol": "tcp", - "source": {"any": True, "port_protocol": {"eq": "www"}}, + "source": { + "any": True, + "port_protocol": {"eq": "www"}, + }, "destination": { "any": True, "port_protocol": {"eq": "telnet"}, @@ -536,7 +554,6 @@ class TestIosAclsModule(TestIosModule): ) result = self.execute_module(changed=False) self.assertEqual(sorted(result["commands"]), []) - # self.execute_module(changed=False, commands=[], sort=True) def test_ios_acls_replaced(self): self.execute_show_command.return_value = dedent( @@ -550,11 +567,23 @@ class TestIosAclsModule(TestIosModule): ip access-list standard test_acl remark remark check 1 remark some random remark 2 + ip access-list standard testRobustReplace + 10 remark Remarks for 10 + 10 permit 192.168.1.0 0.0.0.255 + 20 remark Remarks for 20 + 20 permit 0.0.0.0 255.0.0.0 + 30 remark Remarks for 30 + 30 permit 172.16.0.0 0.15.255.255 + 40 remark Remarks for 40 + 40 permit 192.0.2.0 0.0.0.255 + 50 remark Remarks for 50 + 50 permit 198.51.100.0 0.0.0.255 """, ) self.execute_show_command_name.return_value = dedent( """\ Standard IP access list test_acl + Standard IP access list testRobustReplace """, ) set_module_args( @@ -588,6 +617,21 @@ class TestIosAclsModule(TestIosModule): acl_type="standard", aces=[dict(remarks=["Another remark here"])], ), + dict( + name="testRobustReplace", + acl_type="standard", + aces=[ + dict( + sequence=10, + grant="permit", + remarks=["Remarks for 10"], + source=dict( + address="192.168.1.0", + wildcard_bits="0.0.0.255", + ), + ), + ], + ), ], ), ], @@ -599,9 +643,17 @@ class TestIosAclsModule(TestIosModule): "ip access-list extended replace_acl", "deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos min-monetary-cost", "ip access-list standard test_acl", - "no remark remark check 1", - "no remark some random remark 2", + "no remark", "remark Another remark here", + "ip access-list standard testRobustReplace", + "no 20 remark", + "no 20 permit 0.0.0.0 255.0.0.0", + "no 30 remark", + "no 30 permit 172.16.0.0 0.15.255.255", + "no 40 remark", + "no 40 permit 192.0.2.0 0.0.0.255", + "no 50 remark", + "no 50 permit 198.51.100.0 0.0.0.255", ] self.assertEqual(sorted(result["commands"]), sorted(commands)) @@ -620,9 +672,21 @@ class TestIosAclsModule(TestIosModule): ip access-list extended test-idem 10 permit ip host 10.153.14.21 any 20 permit ip host 10.153.14.22 any + ip access-list standard test-acl-no-seq + permit 10.0.0.0 0.255.255.255 + permit 172.31.16.0 0.0.7.255 + """, + ) + self.execute_show_command_name.return_value = dedent( + """\ + Standard IP access list test_acl + Standard IP access list test-acl-no-seq + Extended IP access list 110 + Extended IP access list test-idem + Extended IP access list test_pre + IPv6 access list R1_TRAFFIC """, ) - self.execute_show_command_name.return_value = dedent("") set_module_args( dict( config=[ @@ -641,7 +705,10 @@ class TestIosAclsModule(TestIosModule): "address": "198.51.100.0", "wildcard_bits": "0.0.0.255", }, - "destination": {"any": True, "port_protocol": {"eq": "22"}}, + "destination": { + "any": True, + "port_protocol": {"eq": "22"}, + }, "log": {"set": True, "user_cookie": "testLog"}, }, { @@ -706,6 +773,26 @@ class TestIosAclsModule(TestIosModule): }, ], }, + { + "name": "test-acl-no-seq", + "acl_type": "standard", + "aces": [ + { + "grant": "permit", + "source": { + "address": "10.0.0.0", + "wildcard_bits": "0.255.255.255", + }, + }, + { + "grant": "permit", + "source": { + "address": "172.31.16.0", + "wildcard_bits": "0.0.7.255", + }, + }, + ], + }, ], }, { @@ -718,7 +805,10 @@ class TestIosAclsModule(TestIosModule): "sequence": 10, "grant": "deny", "protocol": "tcp", - "source": {"any": True, "port_protocol": {"eq": "www"}}, + "source": { + "any": True, + "port_protocol": {"eq": "www"}, + }, "destination": { "any": True, "port_protocol": {"eq": "telnet"}, @@ -737,6 +827,64 @@ class TestIosAclsModule(TestIosModule): result = self.execute_module(changed=False) self.assertEqual(sorted(result["commands"]), []) + def test_ios_acls_replaced_changetype(self): + self.execute_show_command.return_value = dedent( + """\ + ip access-list extended 110 + 10 permit tcp 198.51.100.0 0.0.0.255 any eq 22 log (tag = testLog) + 20 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 echo dscp ef ttl eq 10 + 30 deny icmp object-group test_network_og any dscp ef ttl eq 10 + ip access-list standard test_acl + remark remark check 1 + remark some random remark 2 + """, + ) + self.execute_show_command_name.return_value = dedent( + """\ + Standard IP access list test_acl + """, + ) + set_module_args( + dict( + config=[ + dict( + afi="ipv4", + acls=[ + dict( + name="110", + acl_type="standard", + aces=[ + dict( + grant="deny", + source=dict( + address="198.51.100.0", + wildcard_bits="0.0.0.255", + ), + ), + ], + ), + dict( + name="test_acl", + acl_type="standard", + aces=[dict(remarks=["Another remark here"])], + ), + ], + ), + ], + state="replaced", + ), + ) + result = self.execute_module(changed=True) + commands = [ + "no ip access-list extended 110", + "ip access-list standard 110", + "deny 198.51.100.0 0.0.0.255", + "ip access-list standard test_acl", + "no remark", + "remark Another remark here", + ] + self.assertEqual(sorted(result["commands"]), sorted(commands)) + def test_ios_acls_overridden(self): self.execute_show_command.return_value = dedent( """\ @@ -831,7 +979,10 @@ class TestIosAclsModule(TestIosModule): "address": "198.51.100.0", "wildcard_bits": "0.0.0.255", }, - "destination": {"any": True, "port_protocol": {"eq": "22"}}, + "destination": { + "any": True, + "port_protocol": {"eq": "22"}, + }, "log": {"set": True, "user_cookie": "testLog"}, }, { @@ -874,7 +1025,10 @@ class TestIosAclsModule(TestIosModule): "sequence": 10, "grant": "deny", "protocol": "tcp", - "source": {"any": True, "port_protocol": {"eq": "www"}}, + "source": { + "any": True, + "port_protocol": {"eq": "www"}, + }, "destination": { "any": True, "port_protocol": {"eq": "telnet"}, @@ -909,7 +1063,10 @@ class TestIosAclsModule(TestIosModule): self.execute_show_command_name.return_value = dedent("") set_module_args(dict(config=[dict(afi="ipv4")], state="deleted")) result = self.execute_module(changed=True) - commands = ["no ip access-list extended 110", "no ip access-list standard test_acl"] + commands = [ + "no ip access-list extended 110", + "no ip access-list standard test_acl", + ] self.assertEqual(sorted(result["commands"]), sorted(commands)) def test_ios_acls_deleted_acl_based(self): @@ -938,7 +1095,10 @@ class TestIosAclsModule(TestIosModule): grant="deny", protocol_options=dict(icmp=dict(echo="True")), sequence="10", - source=dict(address="192.0.2.0", wildcard_bits="0.0.0.255"), + source=dict( + address="192.0.2.0", + wildcard_bits="0.0.0.255", + ), destination=dict( address="192.0.3.0", wildcard_bits="0.0.0.255", @@ -960,7 +1120,10 @@ class TestIosAclsModule(TestIosModule): grant="deny", protocol_options=dict(tcp=dict(ack="True")), sequence="10", - source=dict(any="True", port_protocol=dict(eq="www")), + source=dict( + any="True", + port_protocol=dict(eq="www"), + ), destination=dict( any="True", port_protocol=dict(eq="telnet"), @@ -994,9 +1157,15 @@ class TestIosAclsModule(TestIosModule): dict( grant="deny", sequence="10", - remarks=["check for remark", "remark for acl 110"], + remarks=[ + "check for remark", + "remark for acl 110", + ], protocol_options=dict(tcp=dict(syn="True")), - source=dict(address="192.0.2.0", wildcard_bits="0.0.0.255"), + source=dict( + address="192.0.2.0", + wildcard_bits="0.0.0.255", + ), destination=dict( address="192.0.3.0", wildcard_bits="0.0.0.255", @@ -1015,9 +1184,9 @@ class TestIosAclsModule(TestIosModule): ) commands = [ "ip access-list extended 110", + "10 remark check for remark", + "10 remark remark for acl 110", "10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www syn dscp ef ttl eq 10", - "remark check for remark", - "remark remark for acl 110", ] result = self.execute_module(changed=False) self.assertEqual(sorted(result["rendered"]), sorted(commands)) @@ -1046,7 +1215,9 @@ class TestIosAclsModule(TestIosModule): "source": {"any": True, "port_protocol": {"eq": "www"}}, "destination": { "any": True, - "port_protocol": {"range": {"start": 10, "end": 20}}, + "port_protocol": { + "range": {"start": 10, "end": 20}, + }, }, "dscp": "af11", "protocol_options": {"tcp": {"ack": True}}, @@ -1077,11 +1248,13 @@ class TestIosAclsModule(TestIosModule): def test_ios_acls_parsed_matches(self): self.execute_show_command_name.return_value = dedent("") set_module_args( - dict( - running_config="""ip access-list standard R1_TRAFFIC\n10 permit 10.11.12.13 (2 matches)\n - 40 permit 128.0.0.0, wildcard bits 63.255.255.255 (2 matches)\n60 permit 134.107.136.0, wildcard bits 0.0.0.255 (1 match)""", - state="parsed", - ), + { + "running_config": """ip access-list standard R1_TRAFFIC + 10 permit 10.11.12.13 + 40 permit 128.0.0.0 63.255.255.255 + 60 permit 134.107.136.0 0.0.0.255""", + "state": "parsed", + }, ) result = self.execute_module(changed=False) parsed_list = [ @@ -1092,16 +1265,26 @@ class TestIosAclsModule(TestIosModule): "name": "R1_TRAFFIC", "acl_type": "standard", "aces": [ - {"sequence": 10, "grant": "permit", "source": {"host": "10.11.12.13"}}, + { + "sequence": 10, + "grant": "permit", + "source": {"host": "10.11.12.13"}, + }, { "sequence": 40, "grant": "permit", - "protocol_options": {"protocol_number": 128}, + "source": { + "address": "128.0.0.0", + "wildcard_bits": "63.255.255.255", + }, }, { "sequence": 60, "grant": "permit", - "protocol_options": {"protocol_number": 134}, + "source": { + "address": "134.107.136.0", + "wildcard_bits": "0.0.0.255", + }, }, ], }, @@ -1246,9 +1429,8 @@ class TestIosAclsModule(TestIosModule): "permit 433 198.51.101.0 0.0.0.255 198.51.102.0 0.0.0.255 eq telnet log check tos max-throughput", "permit 198.51.105.0 0.0.0.255 198.51.106.0 0.0.0.255 time-range 20 tos max-throughput", "ip access-list standard test_acl", + "no remark", "remark Another remark here", - "no remark remark check 1", - "no remark some random remark 2", ] self.assertEqual(sorted(result["commands"]), sorted(commands)) @@ -1446,6 +1628,11 @@ class TestIosAclsModule(TestIosModule): dict( running_config=dedent( """\ + ip access-list standard 99 + 10 remark standalone remarks + 20 permit 192.15.0.1 + 30 permit 192.15.0.2 + 40 permit 192.15.0.3 ip access-list standard 2 30 permit 172.16.1.11 20 permit 172.16.1.10 @@ -1543,7 +1730,10 @@ class TestIosAclsModule(TestIosModule): "sequence": 70, "grant": "permit", "protocol": "tcp", - "source": {"address": "10.1.1.0", "wildcard_bits": "0.0.0.255"}, + "source": { + "address": "10.1.1.0", + "wildcard_bits": "0.0.0.255", + }, "destination": { "address": "172.16.1.0", "port_protocol": {"eq": "telnet"}, @@ -1557,9 +1747,43 @@ class TestIosAclsModule(TestIosModule): "name": "2", "acl_type": "standard", "aces": [ - {"sequence": 30, "grant": "permit", "source": {"host": "172.16.1.11"}}, - {"sequence": 20, "grant": "permit", "source": {"host": "172.16.1.10"}}, - {"sequence": 10, "grant": "permit", "source": {"host": "172.16.1.2"}}, + { + "sequence": 30, + "grant": "permit", + "source": {"host": "172.16.1.11"}, + }, + { + "sequence": 20, + "grant": "permit", + "source": {"host": "172.16.1.10"}, + }, + { + "sequence": 10, + "grant": "permit", + "source": {"host": "172.16.1.2"}, + }, + ], + }, + { + "name": "99", + "acl_type": "standard", + "aces": [ + { + "sequence": 20, + "grant": "permit", + "source": {"host": "192.15.0.1"}, + }, + { + "sequence": 30, + "grant": "permit", + "source": {"host": "192.15.0.2"}, + }, + { + "sequence": 40, + "grant": "permit", + "source": {"host": "192.15.0.3"}, + }, + {"sequence": 10, "remarks": ["standalone remarks"]}, ], }, { @@ -1570,7 +1794,10 @@ class TestIosAclsModule(TestIosModule): "sequence": 10, "grant": "permit", "protocol": "icmp", - "source": {"address": "10.1.1.0", "wildcard_bits": "0.0.0.255"}, + "source": { + "address": "10.1.1.0", + "wildcard_bits": "0.0.0.255", + }, "destination": { "address": "172.16.1.0", "wildcard_bits": "0.0.0.255", @@ -1594,7 +1821,10 @@ class TestIosAclsModule(TestIosModule): "grant": "permit", "protocol": "tcp", "source": {"host": "10.1.1.1"}, - "destination": {"host": "10.5.5.5", "port_protocol": {"eq": "www"}}, + "destination": { + "host": "10.5.5.5", + "port_protocol": {"eq": "www"}, + }, }, { "sequence": 30, @@ -1709,6 +1939,28 @@ class TestIosAclsModule(TestIosModule): }, ], }, + { + "name": "99", + "acl_type": "standard", + "aces": [ + { + "sequence": 20, + "grant": "permit", + "source": {"host": "192.15.0.1"}, + }, + { + "sequence": 30, + "grant": "permit", + "source": {"host": "192.15.0.2"}, + }, + { + "sequence": 40, + "grant": "permit", + "source": {"host": "192.15.0.3"}, + }, + {"sequence": 10, "remarks": ["standalone remarks"]}, + ], + }, { "name": "2", "acl_type": "standard", @@ -1806,6 +2058,11 @@ class TestIosAclsModule(TestIosModule): "50 permit ip any 10.1.1.0 0.0.0.255", "60 permit tcp any host 10.1.1.1 eq telnet", "70 permit tcp 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255 eq telnet time-range EVERYOTHERDAY", + "ip access-list standard 99", + "20 permit host 192.15.0.1", + "30 permit host 192.15.0.2", + "40 permit host 192.15.0.3", + "10 remark standalone remarks", "ip access-list standard 2", "30 permit host 172.16.1.11", "20 permit host 172.16.1.10", @@ -1820,3 +2077,196 @@ class TestIosAclsModule(TestIosModule): ] result = self.execute_module(changed=False) self.assertEqual(sorted(result["rendered"]), sorted(commands)) + + def test_ios_acls_overridden_sticky_remarks(self): + self.execute_show_command.return_value = dedent( + """\ + ip access-list standard test123 + 10 remark TEST + 10 permit 8.8.8.8 + 20 remark TEST + 20 permit 8.8.4.4 + """, + ) + self.execute_show_command_name.return_value = dedent("") + + set_module_args( + dict( + config=[ + dict( + afi="ipv4", + acls=[ + dict( + name="test123", + acl_type="standard", + aces=[ + dict( + grant="permit", + source=dict( + address="8.8.128.0", + wildcard_bits="0.0.0.63", + ), + remarks=["TEST", "TEST 2"], + sequence=10, + ), + dict( + grant="permit", + source=dict( + host="8.8.4.4", + ), + remarks=["TEST"], + sequence=20, + ), + ], + ), + ], + ), + ], + state="overridden", + ), + ) + result = self.execute_module(changed=True) + commands = [ + "ip access-list standard test123", + "no 10 remark", + "no 10 permit host 8.8.8.8", + "10 remark TEST", + "10 remark TEST 2", + "10 permit 8.8.128.0 0.0.0.63", + ] + self.assertEqual(sorted(result["commands"]), sorted(commands)) + + def test_ios_acls_overridden_remarks_complex(self): + self.execute_show_command.return_value = dedent( + """\ + ip access-list extended TEST + 10 remark FIRST REMARK BEFORE SEQUENCE 10 + 10 remark ============ + 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE + 20 remark FIRST REMARK BEFORE SEQUENCE 20 + 20 remark ============ + 20 remark ALLOW HOST FROM SEQUENCE 20 + 20 permit ip host 1.1.1.1 any + 30 remark FIRST REMARK BEFORE SEQUENCE 30 + 30 remark ============ + 30 remark ALLOW HOST FROM SEQUENCE 30 + 30 permit ip host 2.2.2.2 any + 40 remark FIRST REMARK BEFORE SEQUENCE 40 + 40 remark ============ + 40 remark ALLOW NEW HOST FROM SEQUENCE 40 + 40 permit ip host 3.3.3.3 any + remark Remark not specific to sequence + remark ============ + remark End Remarks + ip access-list extended test_acl + 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10 + ip access-list extended 110 + 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 echo dscp ef ttl eq 10 + ip access-list extended 123 + 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12 + 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20 + ipv6 access-list R1_TRAFFIC + sequence 10 deny tcp any eq www any eq telnet ack dscp af11 + """, + ) + self.execute_show_command_name.return_value = dedent("") + set_module_args( + dict( + config=[ + { + "afi": "ipv4", + "acls": [ + { + "name": "TEST", + "acl_type": "extended", + "aces": [ + { + "sequence": 10, + "remarks": [ + "FIRST REMARK BEFORE SEQUENCE 10", + "============", + "REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE", + ], + "grant": "permit", + "protocol": "ip", + "source": {"host": "1.1.1.1"}, + "destination": {"any": True}, + }, + { + "sequence": 20, + "remarks": [ + "FIRST REMARK BEFORE SEQUENCE 20", + "============", + "ALLOW HOST FROM SEQUENCE 20", + ], + "grant": "permit", + "protocol": "ip", + "source": {"host": "192.168.0.1"}, + "destination": {"any": True}, + }, + { + "sequence": 30, + "remarks": [ + "FIRST REMARK BEFORE SEQUENCE 30", + "============", + "ALLOW HOST FROM SEQUENCE 30 updated", + ], + "grant": "permit", + "protocol": "ip", + "source": {"host": "2.2.2.2"}, + "destination": {"any": True}, + }, + { + "sequence": 40, + "remarks": [ + "FIRST REMARK BEFORE SEQUENCE 40", + "============", + "ALLOW NEW HOST FROM SEQUENCE 40", + ], + "grant": "permit", + "protocol": "ip", + "source": {"host": "3.3.3.3"}, + "destination": {"any": True}, + }, + { + "remarks": [ + "Remark not specific to sequence", + "============", + "End Remarks 1", + ], + }, + ], + }, + ], + }, + ], + state="overridden", + ), + ) + result = self.execute_module(changed=True) + commands = [ + "no ipv6 access-list R1_TRAFFIC", + "ip access-list extended TEST", + "no 10", # removes all remarks and ace entry for sequence 10 + "no 20 permit ip host 1.1.1.1 any", # removing the ace automatically removes the remarks + "no 30 remark", # just remove remarks for sequence 30 + "no remark", # remove all remarks at end of acl, that has no sequence + "10 remark FIRST REMARK BEFORE SEQUENCE 10", + "10 remark ============", + "10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE", + "10 permit ip host 1.1.1.1 any", + "20 remark FIRST REMARK BEFORE SEQUENCE 20", + "20 remark ============", + "20 remark ALLOW HOST FROM SEQUENCE 20", + "20 permit ip host 192.168.0.1 any", + "30 remark FIRST REMARK BEFORE SEQUENCE 30", + "30 remark ============", + "30 remark ALLOW HOST FROM SEQUENCE 30 updated", + "remark Remark not specific to sequence", + "remark ============", + "remark End Remarks 1", + "no ip access-list extended 110", + "no ip access-list extended 123", + "no ip access-list extended test_acl", + ] + self.assertEqual(sorted(result["commands"]), sorted(commands)) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_banner.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_banner.py index 85e2736f0..b114d1817 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_banner.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_banner.py @@ -18,9 +18,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_banner -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule, load_fixture @@ -77,7 +77,11 @@ class TestIosBannerModule(TestIosModule): def test_ios_banner_create_delimiter(self): for banner_type in ("login", "motd", "exec", "incoming", "slip-ppp"): set_module_args( - dict(banner=banner_type, text="test\nbanner\nstring", multiline_delimiter="c"), + dict( + banner=banner_type, + text="test\nbanner\nstring", + multiline_delimiter="c", + ), ) commands = ["banner {0} c\ntest\nbanner\nstring\nc".format(banner_type)] self.execute_module(changed=True, commands=commands) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp.py deleted file mode 100644 index 0145a3c6a..000000000 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp.py +++ /dev/null @@ -1,344 +0,0 @@ -# -# (c) 2019, Ansible by Red Hat, inc -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# - -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -from ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers.cli.config.bgp.process import ( - Provider, -) -from ansible_collections.cisco.ios.plugins.modules import ios_bgp - -from .ios_module import TestIosModule, load_fixture - - -class TestIosBgpModule(TestIosModule): - module = ios_bgp - - def setUp(self): - super(TestIosBgpModule, self).setUp() - self._bgp_config = load_fixture("ios_bgp_config.cfg") - - def test_ios_bgp(self): - obj = Provider( - params=dict( - config=dict( - bgp_as=64496, - router_id="192.0.2.2", - networks=None, - address_family=None, - ), - operation="merge", - ), - ) - commands = obj.render(self._bgp_config) - self.assertEqual(commands, ["router bgp 64496", "bgp router-id 192.0.2.2", "exit"]) - - def test_ios_bgp_idempotent(self): - obj = Provider( - params=dict( - config=dict( - bgp_as=64496, - router_id="192.0.2.1", - networks=None, - address_family=None, - ), - operation="merge", - ), - ) - commands = obj.render(self._bgp_config) - self.assertEqual(commands, []) - - def test_ios_bgp_remove(self): - obj = Provider( - params=dict( - config=dict(bgp_as=64496, networks=None, address_family=None), - operation="delete", - ), - ) - commands = obj.render(self._bgp_config) - self.assertEqual(commands, ["no router bgp 64496"]) - - def test_ios_bgp_neighbor(self): - obj = Provider( - params=dict( - config=dict( - bgp_as=64496, - neighbors=[dict(neighbor="192.51.100.2", remote_as=64496)], - networks=None, - address_family=None, - ), - operation="merge", - ), - ) - commands = obj.render(self._bgp_config) - self.assertEqual( - commands, - ["router bgp 64496", "neighbor 192.51.100.2 remote-as 64496", "exit"], - ) - - def test_ios_bgp_neighbor_idempotent(self): - obj = Provider( - params=dict( - config=dict( - bgp_as=64496, - neighbors=[ - dict( - neighbor="192.51.100.1", - remote_as=64496, - timers=dict(keepalive=120, holdtime=360, min_neighbor_holdtime=360), - ), - ], - networks=None, - address_family=None, - ), - operation="merge", - ), - ) - commands = obj.render(self._bgp_config) - self.assertEqual(commands, []) - - def test_ios_bgp_network(self): - obj = Provider( - params=dict( - config=dict( - bgp_as=64496, - networks=[dict(prefix="192.0.1.0", masklen=23, route_map="RMAP_1")], - address_family=None, - ), - operation="merge", - ), - ) - commands = obj.render(self._bgp_config) - self.assertEqual( - sorted(commands), - sorted( - [ - "router bgp 64496", - "network 192.0.1.0 mask 255.255.254.0 route-map RMAP_1", - "exit", - ], - ), - ) - - def test_ios_bgp_network_idempotent(self): - obj = Provider( - params=dict( - config=dict( - bgp_as=64496, - networks=[ - dict(prefix="192.0.2.0", masklen=23, route_map="RMAP_1"), - dict(prefix="198.51.100.0", masklen=25, route_map="RMAP_2"), - ], - address_family=None, - ), - operation="merge", - ), - ) - commands = obj.render(self._bgp_config) - self.assertEqual(commands, []) - - def test_ios_bgp_address_family_redistribute(self): - rd_1 = dict(protocol="ospf", id="233", metric=90, route_map=None) - - config = dict( - bgp_as=64496, - address_family=[dict(afi="ipv4", safi="unicast", redistribute=[rd_1])], - networks=None, - ) - - obj = Provider(params=dict(config=config, operation="merge")) - - commands = obj.render(self._bgp_config) - cmd = [ - "router bgp 64496", - "address-family ipv4", - "redistribute ospf 233 metric 90", - "exit-address-family", - "exit", - ] - self.assertEqual(sorted(commands), sorted(cmd)) - - def test_ios_bgp_address_family_redistribute_idempotent(self): - rd_1 = dict(protocol="eigrp", metric=10, route_map="RMAP_3", id=None) - rd_2 = dict(protocol="static", metric=100, id=None, route_map=None) - - config = dict( - bgp_as=64496, - address_family=[dict(afi="ipv4", safi="unicast", redistribute=[rd_1, rd_2])], - networks=None, - ) - - obj = Provider(params=dict(config=config, operation="merge")) - - commands = obj.render(self._bgp_config) - self.assertEqual(commands, []) - - def test_ios_bgp_address_family_neighbors(self): - af_nbr_1 = dict(neighbor="192.51.100.1", maximum_prefix=35, activate=True) - af_nbr_2 = dict(neighbor="192.51.100.3", route_reflector_client=True, activate=True) - - config = dict( - bgp_as=64496, - address_family=[dict(afi="ipv4", safi="multicast", neighbors=[af_nbr_1, af_nbr_2])], - networks=None, - ) - - obj = Provider(params=dict(config=config, operation="merge")) - - commands = obj.render(self._bgp_config) - cmd = [ - "router bgp 64496", - "address-family ipv4 multicast", - "neighbor 192.51.100.1 activate", - "neighbor 192.51.100.1 maximum-prefix 35", - "neighbor 192.51.100.3 activate", - "neighbor 192.51.100.3 route-reflector-client", - "exit-address-family", - "exit", - ] - self.assertEqual(sorted(commands), sorted(cmd)) - - def test_ios_bgp_address_family_neighbors_idempotent(self): - af_nbr_1 = dict(neighbor="203.0.113.1", remove_private_as=True, maximum_prefix=100) - - config = dict( - bgp_as=64496, - address_family=[dict(afi="ipv4", safi="unicast", neighbors=[af_nbr_1])], - networks=None, - ) - - obj = Provider(params=dict(config=config, operation="merge")) - - commands = obj.render(self._bgp_config) - self.assertEqual(commands, []) - - def test_ios_bgp_address_family_networks(self): - net = dict(prefix="1.0.0.0", masklen=8, route_map="RMAP_1") - net2 = dict(prefix="192.168.1.0", masklen=24, route_map="RMAP_2") - - config = dict( - bgp_as=64496, - address_family=[dict(afi="ipv4", safi="multicast", networks=[net, net2])], - networks=None, - ) - - obj = Provider(params=dict(config=config, operation="merge")) - - commands = obj.render(self._bgp_config) - cmd = [ - "router bgp 64496", - "address-family ipv4 multicast", - "network 1.0.0.0 mask 255.0.0.0 route-map RMAP_1", - "network 192.168.1.0 mask 255.255.255.0 route-map RMAP_2", - "exit-address-family", - "exit", - ] - self.assertEqual(sorted(commands), sorted(cmd)) - - def test_ios_bgp_address_family_networks_idempotent(self): - net = dict(prefix="203.0.113.0", masklen=27, route_map="RMAP_1") - net2 = dict(prefix="192.0.2.0", masklen=26, route_map="RMAP_2") - - config = dict( - bgp_as=64496, - address_family=[dict(afi="ipv4", safi="multicast", networks=[net, net2])], - networks=None, - ) - - obj = Provider(params=dict(config=config, operation="merge")) - - commands = obj.render(self._bgp_config) - self.assertEqual(commands, []) - - def test_ios_bgp_operation_override(self): - net_1 = dict(prefix="1.0.0.0", masklen=8, route_map="RMAP_1") - net_2 = dict(prefix="192.168.1.0", masklen=24, route_map="RMAP_2") - nbr_1 = dict(neighbor="192.51.100.1", remote_as=64496, update_source="GigabitEthernet0/1") - nbr_2 = dict( - neighbor="192.51.100.3", - remote_as=64496, - timers=dict(keepalive=300, holdtime=360, min_neighbor_holdtime=360), - ) - af_nbr_1 = dict(neighbor="192.51.100.1", maximum_prefix=35) - af_nbr_2 = dict(neighbor="192.51.100.3", route_reflector_client=True) - - af_1 = dict(afi="ipv4", safi="unicast", neighbors=[af_nbr_1, af_nbr_2]) - af_2 = dict(afi="ipv4", safi="multicast", networks=[net_1, net_2]) - config = dict( - bgp_as=64496, - neighbors=[nbr_1, nbr_2], - address_family=[af_1, af_2], - networks=None, - ) - - obj = Provider(params=dict(config=config, operation="override")) - commands = obj.render(self._bgp_config) - - cmd = [ - "no router bgp 64496", - "router bgp 64496", - "neighbor 192.51.100.1 remote-as 64496", - "neighbor 192.51.100.1 update-source GigabitEthernet0/1", - "neighbor 192.51.100.3 remote-as 64496", - "neighbor 192.51.100.3 timers 300 360 360", - "address-family ipv4", - "neighbor 192.51.100.1 maximum-prefix 35", - "neighbor 192.51.100.3 route-reflector-client", - "exit-address-family", - "address-family ipv4 multicast", - "network 1.0.0.0 mask 255.0.0.0 route-map RMAP_1", - "network 192.168.1.0 mask 255.255.255.0 route-map RMAP_2", - "exit-address-family", - "exit", - ] - - self.assertEqual(sorted(commands), sorted(cmd)) - - def test_ios_bgp_operation_replace(self): - rd = dict(protocol="ospf", id=223, metric=110, route_map=None) - net = dict(prefix="203.0.113.0", masklen=27, route_map="RMAP_1") - net2 = dict(prefix="192.0.2.0", masklen=26, route_map="RMAP_2") - - af_1 = dict(afi="ipv4", safi="unicast", redistribute=[rd]) - af_2 = dict(afi="ipv4", safi="multicast", networks=[net, net2]) - - config = dict(bgp_as=64496, address_family=[af_1, af_2], networks=None) - obj = Provider(params=dict(config=config, operation="replace")) - commands = obj.render(self._bgp_config) - - cmd = [ - "router bgp 64496", - "address-family ipv4", - "redistribute ospf 223 metric 110", - "no redistribute eigrp", - "no redistribute static", - "exit-address-family", - "exit", - ] - - self.assertEqual(sorted(commands), sorted(cmd)) - - def test_ios_bgp_operation_replace_with_new_as(self): - rd = dict(protocol="ospf", id=223, metric=110, route_map=None) - - af_1 = dict(afi="ipv4", safi="unicast", redistribute=[rd]) - - config = dict(bgp_as=64497, address_family=[af_1], networks=None) - obj = Provider(params=dict(config=config, operation="replace")) - commands = obj.render(self._bgp_config) - - cmd = [ - "no router bgp 64496", - "router bgp 64497", - "address-family ipv4", - "redistribute ospf 223 metric 110", - "exit-address-family", - "exit", - ] - - self.assertEqual(sorted(commands), sorted(cmd)) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp_address_family.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp_address_family.py index 259da5ece..ea5d279f4 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp_address_family.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp_address_family.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_bgp_address_family -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -119,8 +118,12 @@ class TestIosBgpAddressFamilyModule(TestIosModule): dict( neighbor_address="198.51.100.1", remote_as="65.11", - route_maps=[dict(name="test-route-out", out="true")], - prefix_lists=[dict(name="AS65100-PREFIX-OUT", out="true")], + route_maps=[ + dict(name="test-route-out", out="true"), + ], + prefix_lists=[ + dict(name="AS65100-PREFIX-OUT", out="true"), + ], ), ], ), @@ -128,7 +131,9 @@ class TestIosBgpAddressFamilyModule(TestIosModule): afi="nsap", bgp=dict(aggregate_timer=20, dmzlink_bw=True, scan_time=10), default_metric=10, - networks=[dict(address="192.0.1.1", route_map="test_route")], + networks=[ + dict(address="192.0.1.1", route_map="test_route"), + ], ), ], ), @@ -317,18 +322,25 @@ class TestIosBgpAddressFamilyModule(TestIosModule): "send": { "cost_community": { "id": 100, - "poi": {"igp_cost": True, "transitive": True}, + "poi": { + "igp_cost": True, + "transitive": True, + }, }, }, }, "local_as": {"number": "10.64760", "set": True}, "neighbor_address": "198.51.100.1", "nexthop_self": {"all": True}, - "prefix_lists": [{"name": "AS65100-PREFIX-OUT", "out": True}], + "prefix_lists": [ + {"name": "AS65100-PREFIX-OUT", "out": True}, + ], "remote_as": 10, "route_maps": [{"name": "test-out", "out": True}], "route_server_client": True, - "slow_peer_options": {"detection": {"threshold": 150}}, + "slow_peer_options": { + "detection": {"threshold": 150}, + }, }, ], "networks": [ @@ -426,7 +438,9 @@ class TestIosBgpAddressFamilyModule(TestIosModule): address="198.51.110.1", activate=True, remote_as=200, - route_maps=[dict(name="test-replaced-route", out=True)], + route_maps=[ + dict(name="test-replaced-route", out=True), + ], ), ], ), @@ -534,12 +548,17 @@ class TestIosBgpAddressFamilyModule(TestIosModule): send=dict( cost_community=dict( id=100, - poi=dict(igp_cost=True, transitive=True), + poi=dict( + igp_cost=True, + transitive=True, + ), ), ), ), nexthop_self=dict(all=True), - prefix_lists=[dict(name="AS65100-PREFIX-OUT", out="true")], + prefix_lists=[ + dict(name="AS65100-PREFIX-OUT", out="true"), + ], slow_peer=[dict(detection=dict(threshold=150))], remote_as=10, local_as=dict(number=20), @@ -709,12 +728,17 @@ class TestIosBgpAddressFamilyModule(TestIosModule): send=dict( cost_community=dict( id=100, - poi=dict(igp_cost=True, transitive=True), + poi=dict( + igp_cost=True, + transitive=True, + ), ), ), ), nexthop_self=dict(all=True), - prefix_lists=[dict(name="AS65100-PREFIX-OUT", out="true")], + prefix_lists=[ + dict(name="AS65100-PREFIX-OUT", out="true"), + ], slow_peer=[dict(detection=dict(threshold=150))], remote_as=10, local_as=dict(number=20), @@ -937,7 +961,10 @@ class TestIosBgpAddressFamilyModule(TestIosModule): send=dict( cost_community=dict( id=100, - poi=dict(igp_cost=True, transitive=True), + poi=dict( + igp_cost=True, + transitive=True, + ), ), ), ), @@ -1152,7 +1179,11 @@ class TestIosBgpAddressFamilyModule(TestIosModule): }, }, "networks": [ - {"address": "198.51.110.10", "mask": "255.255.255.255", "backdoor": True}, + { + "address": "198.51.110.10", + "mask": "255.255.255.255", + "backdoor": True, + }, ], "aggregate_addresses": [ { @@ -1177,7 +1208,9 @@ class TestIosBgpAddressFamilyModule(TestIosModule): }, }, "route_server_client": True, - "prefix_lists": [{"name": "AS65100-PREFIX-OUT", "out": True}], + "prefix_lists": [ + {"name": "AS65100-PREFIX-OUT", "out": True}, + ], "slow_peer_options": {"detection": {"threshold": 150}}, "route_maps": [{"name": "test-out", "out": True}], }, diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp_global.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp_global.py index 95aa8d8e9..16a4c9b5c 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp_global.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_bgp_global.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_bgp_global -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import AnsibleFailJson, set_module_args from .ios_module import TestIosModule @@ -67,8 +66,16 @@ class TestIosBgpGlobalModule(TestIosModule): "netmask": "255.255.0.0", "summary_only": True, }, - {"address": "192.0.2.4", "as_set": True, "netmask": "255.255.255.0"}, - {"address": "192.0.2.5", "as_set": True, "netmask": "255.255.255.0"}, + { + "address": "192.0.2.4", + "as_set": True, + "netmask": "255.255.255.0", + }, + { + "address": "192.0.2.5", + "as_set": True, + "netmask": "255.255.255.0", + }, ], "as_number": "65000", "auto_summary": True, @@ -83,7 +90,9 @@ class TestIosBgpGlobalModule(TestIosModule): "med": {"confed": True, "missing_as_worst": True}, }, "confederation": {"identifier": "22"}, - "consistency_checker": {"error_message": {"interval": 10, "set": True}}, + "consistency_checker": { + "error_message": {"interval": 10, "set": True}, + }, "dampening": { "max_suppress": 44, "penalty_half_time": 22, @@ -98,12 +107,23 @@ class TestIosBgpGlobalModule(TestIosModule): "neighbors": {"time": 31}, }, "inject_maps": [ - {"copy_attributes": True, "exist_map_name": "mp2", "name": "map1"}, - {"copy_attributes": True, "exist_map_name": "mp3", "name": "map2"}, + { + "copy_attributes": True, + "exist_map_name": "mp2", + "name": "map1", + }, + { + "copy_attributes": True, + "exist_map_name": "mp3", + "name": "map2", + }, ], "listen": { "limit": 200, - "range": {"host_with_subnet": "192.0.2.9/24", "peer_group": "mygrp"}, + "range": { + "host_with_subnet": "192.0.2.9/24", + "peer_group": "mygrp", + }, }, "log_neighbor_changes": True, "maxas_limit": 2, @@ -132,8 +152,16 @@ class TestIosBgpGlobalModule(TestIosModule): }, "bmp": {"buffer_size": 22}, "distance": { - "bgp": {"routes_external": 2, "routes_internal": 3, "routes_local": 4}, - "mbgp": {"routes_external": 2, "routes_internal": 3, "routes_local": 5}, + "bgp": { + "routes_external": 2, + "routes_internal": 3, + "routes_local": 4, + }, + "mbgp": { + "routes_external": 2, + "routes_internal": 3, + "routes_local": 5, + }, }, "distributes": [ {"out": True, "prefix": "workcheck"}, @@ -141,6 +169,7 @@ class TestIosBgpGlobalModule(TestIosModule): ], "maximum_paths": {"ibgp": 22}, "maximum_secondary_paths": {"ibgp": 22, "paths": 12}, + "template": {"peer_policy": "Test1"}, "neighbors": [ { "neighbor_address": "192.0.2.3", @@ -165,7 +194,13 @@ class TestIosBgpGlobalModule(TestIosModule): ], "redistribute": [ {"application": {"metric": 22, "name": "ap1"}}, - {"application": {"metric": 33, "name": "ap112", "route_map": "mp1"}}, + { + "application": { + "metric": 33, + "name": "ap112", + "route_map": "mp1", + }, + }, {"connected": {"metric": 22}}, {"static": {"metric": 33, "route_map": "mp1"}}, {"mobile": {"metric": 211}}, @@ -232,6 +267,7 @@ class TestIosBgpGlobalModule(TestIosModule): "neighbor 192.0.2.3 remote-as 300", "neighbor 192.0.2.3 timers 10 20", "redistribute connected metric 22", + "template peer-policy Test1", "redistribute mobile metric 211", "redistribute application ap1 metric 22", "redistribute static metric 33 route-map mp1", @@ -347,11 +383,23 @@ class TestIosBgpGlobalModule(TestIosModule): config=dict( as_number="65000", aggregate_address=dict( - dict(address="192.168.0.11", attribute_map="map1", netmask="255.255.0.0"), + dict( + address="192.168.0.11", + attribute_map="map1", + netmask="255.255.0.0", + ), ), aggregate_addresses=[ - dict(address="192.168.0.1", attribute_map="map", netmask="255.255.0.0"), - dict(address="192.168.0.2", attribute_map="map2", netmask="255.255.0.0"), + dict( + address="192.168.0.1", + attribute_map="map", + netmask="255.255.0.0", + ), + dict( + address="192.168.0.2", + attribute_map="map2", + netmask="255.255.0.0", + ), ], bgp=dict( advertise_best_external=True, @@ -361,7 +409,11 @@ class TestIosBgpGlobalModule(TestIosModule): ), redistribute=[dict(connected=dict(set=True, metric=10))], neighbors=[ - dict(address="192.0.2.1", remote_as=200, description="replace neighbor"), + dict( + address="192.0.2.1", + remote_as=200, + description="replace neighbor", + ), ], ), state="overridden", @@ -403,21 +455,41 @@ class TestIosBgpGlobalModule(TestIosModule): config=dict( as_number="65000", aggregate_address=dict( - dict(address="192.168.0.11", attribute_map="map1", netmask="255.255.0.0"), + dict( + address="192.168.0.11", + attribute_map="map1", + netmask="255.255.0.0", + ), ), aggregate_addresses=[ - dict(address="192.168.0.1", attribute_map="map", netmask="255.255.0.0"), - dict(address="192.168.0.2", attribute_map="map2", netmask="255.255.0.0"), + dict( + address="192.168.0.1", + attribute_map="map", + netmask="255.255.0.0", + ), + dict( + address="192.168.0.2", + attribute_map="map2", + netmask="255.255.0.0", + ), ], bgp=dict( advertise_best_external=True, bestpath_options=dict(compare_routerid=True), + default=dict( + ipv4_unicast=False, + route_target=dict(filter=True), + ), log_neighbor_changes=True, nopeerup_delay_options=dict(cold_boot=20, post_boot=10), ), redistribute=[dict(connected=dict(set=True, metric=10))], neighbors=[ - dict(address="192.0.2.1", remote_as=200, description="replace neighbor"), + dict( + address="192.0.2.1", + remote_as=200, + description="replace neighbor", + ), ], ), state="replaced", @@ -425,6 +497,7 @@ class TestIosBgpGlobalModule(TestIosModule): ) commands = [ "router bgp 65000", + "no bgp default ipv4-unicast", "no timers bgp 100 200 150", "bgp log-neighbor-changes", "bgp nopeerup-delay cold-boot 20", @@ -481,6 +554,7 @@ class TestIosBgpGlobalModule(TestIosModule): self.execute_show_command.return_value = dedent( """\ router bgp 65000 + no bgp default ipv4-unicast bgp nopeerup-delay post-boot 10 bgp bestpath compare-routerid bgp advertise-best-external @@ -496,6 +570,7 @@ class TestIosBgpGlobalModule(TestIosModule): set_module_args(dict(config=dict(as_number=65000), state="deleted")) commands = [ "router bgp 65000", + "bgp default ipv4-unicast", "no timers bgp 100 200 150", "no bgp advertise-best-external", "no bgp bestpath compare-routerid", @@ -561,7 +636,10 @@ class TestIosBgpGlobalModule(TestIosModule): }, "listen": { "limit": 200, - "range": {"ipv4_with_subnet": "192.0.2.9/24", "peer_group": "mygrp"}, + "range": { + "ipv4_with_subnet": "192.0.2.9/24", + "peer_group": "mygrp", + }, }, "log_neighbor_changes": True, "nopeerup_delay": [ @@ -575,10 +653,22 @@ class TestIosBgpGlobalModule(TestIosModule): }, "bmp": {"buffer_size": 22, "server": 2}, "distance": { - "bgp": {"routes_external": 2, "routes_internal": 3, "routes_local": 4}, - "mbgp": {"routes_external": 2, "routes_internal": 3, "routes_local": 5}, + "bgp": { + "routes_external": 2, + "routes_internal": 3, + "routes_local": 4, + }, + "mbgp": { + "routes_external": 2, + "routes_internal": 3, + "routes_local": 5, + }, + }, + "distribute_list": { + "out": True, + "acl": "5000", + "interface": "Loopback0", }, - "distribute_list": {"out": True, "acl": "5000", "interface": "Loopback0"}, "maximum_paths": {"ibgp": 2, "paths": 2}, "maximum_secondary_paths": {"ibgp": 22, "paths": 22}, "neighbors": [ @@ -613,7 +703,11 @@ class TestIosBgpGlobalModule(TestIosModule): "send_community": {"extended": True}, "password": "new password", }, - {"activate": True, "neighbor_address": "172.21.1.2", "remote_as": 45000}, + { + "activate": True, + "neighbor_address": "172.21.1.2", + "remote_as": 45000, + }, {"neighbor_address": "192.0.2.3", "remote_as": 300}, { "neighbor_address": "192.0.2.4", @@ -655,7 +749,13 @@ class TestIosBgpGlobalModule(TestIosModule): "redistribute": [ {"static": {"metric": 33, "route_map": "mp1"}}, {"application": {"metric": 22, "name": "ap1"}}, - {"application": {"metric": 33, "name": "ap112", "route_map": "mp1"}}, + { + "application": { + "metric": 33, + "name": "ap112", + "route_map": "mp1", + }, + }, {"connected": {"metric": 22}}, {"mobile": {"metric": 211}}, ], @@ -751,6 +851,7 @@ class TestIosBgpGlobalModule(TestIosModule): "bgp": { "nopeerup_delay_options": {"post_boot": 10}, "bestpath_options": {"compare_routerid": True}, + "default": {"ipv4_unicast": True, "route_target": {"filter": True}}, "advertise_best_external": True, }, "timers": {"keepalive": 100, "holdtime": 200, "min_holdtime": 150}, @@ -764,3 +865,136 @@ class TestIosBgpGlobalModule(TestIosModule): ], } self.assertEqual(parsed_list, result["parsed"]) + + def test_ios_bgp_global_action_states_specific_default(self): + self.execute_show_command.return_value = dedent( + """\ + router bgp 6500 + bgp log-neighbor-changes + no bgp default ipv4-unicast + no bgp default route-target filter + neighbor 192.0.2.1 remote-as 100 + neighbor 192.0.2.1 description Test description + neighbor 192.0.2.2 remote-as 200 + neighbor 192.0.2.2 description Test description 2 + neighbor 192.0.2.2 shutdown + ! + address-family ipv4 + exit-address-family + """, + ) + for stt in ["merged", "replaced", "overridden"]: + set_module_args( + { + "config": { + "as_number": "6500", + "bgp": { + "default": { + "ipv4_unicast": False, + "route_target": { + "filter": False, + }, + }, + "log_neighbor_changes": True, + }, + "neighbors": [ + { + "neighbor_address": "192.0.2.1", + "remote_as": "100", + "description": "Test description", + "shutdown": { # Don't have in config, adding + "set": True, + }, + }, + { + "neighbor_address": "192.0.2.2", + "remote_as": "200", + "description": "Test description 2", + "shutdown": { # Have in config negating with false + "set": False, + }, + }, + ], + }, + "state": stt, + }, + ) + commands = [ + "router bgp 6500", + "neighbor 192.0.2.1 shutdown", + "no neighbor 192.0.2.2 shutdown", + ] + result = self.execute_module(changed=True) + self.assertEqual(sorted(result["commands"]), sorted(commands)) + + def test_ios_bgp_global_action_states_no_default(self): + self.execute_show_command.return_value = dedent( + """\ + router bgp 6500 + bgp log-neighbor-changes + no bgp default ipv4-unicast + no bgp default route-target filter + neighbor 192.0.2.1 remote-as 100 + neighbor 192.0.2.1 description Test description + neighbor 192.0.2.1 shutdown + neighbor 192.0.2.2 remote-as 200 + neighbor 192.0.2.2 description Test description 2 + neighbor 192.0.2.2 shutdown + neighbor 192.0.2.3 remote-as 300 + neighbor 192.0.2.3 description Test description 3 + neighbor 192.0.2.4 remote-as 400 + neighbor 192.0.2.4 description Test description 4 + ! + address-family ipv4 + exit-address-family + """, + ) + for stt in ["replaced", "overridden"]: + set_module_args( + { + "config": { + "as_number": "6500", + "bgp": { + "default": { + "ipv4_unicast": False, + "route_target": { + "filter": False, + }, + }, + "log_neighbor_changes": True, + }, + "neighbors": [ + { + "neighbor_address": "192.0.2.1", + "remote_as": "100", + "description": "Test description", + "shutdown": { # Have in config not adding again (idempotent) + "set": True, + }, + }, + { + "neighbor_address": "192.0.2.2", + "remote_as": "200", + "description": "Test description 2", # Have in config but don't want (to be removed) + }, + { + "neighbor_address": "192.0.2.3", + "remote_as": "300", + "description": "Test description 3", # Don't have in config don't want + }, + { + "neighbor_address": "192.0.2.4", + "remote_as": "400", + "description": "Test description 4", + "shutdown": { # Don't have in config, explicitly don't want + "set": False, + }, + }, + ], + }, + "state": stt, + }, + ) + commands = ["router bgp 6500", "no neighbor 192.0.2.2 shutdown"] + result = self.execute_module(changed=True) + self.assertEqual(sorted(result["commands"]), sorted(commands)) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_command.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_command.py index 42fee4028..69788ef3e 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_command.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_command.py @@ -20,11 +20,11 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - import json +from unittest.mock import patch + from ansible_collections.cisco.ios.plugins.modules import ios_command -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule, load_fixture @@ -97,17 +97,26 @@ class TestIosCommandModule(TestIosModule): self.assertEqual(self.run_commands.call_count, 1) def test_ios_command_match_any(self): - wait_for = ['result[0] contains "Cisco IOS"', 'result[0] contains "test string"'] + wait_for = [ + 'result[0] contains "Cisco IOS"', + 'result[0] contains "test string"', + ] set_module_args(dict(commands=["show version"], wait_for=wait_for, match="any")) self.execute_module() def test_ios_command_match_all(self): - wait_for = ['result[0] contains "Cisco IOS"', 'result[0] contains "IOSv Software"'] + wait_for = [ + 'result[0] contains "Cisco IOS"', + 'result[0] contains "IOSv Software"', + ] set_module_args(dict(commands=["show version"], wait_for=wait_for, match="all")) self.execute_module() def test_ios_command_match_all_failure(self): - wait_for = ['result[0] contains "Cisco IOS"', 'result[0] contains "test string"'] + wait_for = [ + 'result[0] contains "Cisco IOS"', + 'result[0] contains "test string"', + ] commands = ["show version", "show version"] set_module_args(dict(commands=commands, wait_for=wait_for, match="all")) self.execute_module(failed=True) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_config.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_config.py index 778bb1ccb..7fa3931d0 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_config.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_config.py @@ -21,10 +21,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import MagicMock, patch from ansible_collections.cisco.ios.plugins.cliconf.ios import Cliconf from ansible_collections.cisco.ios.plugins.modules import ios_config -from ansible_collections.cisco.ios.tests.unit.compat.mock import MagicMock, patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule, load_fixture @@ -123,7 +123,10 @@ class TestIosConfigModule(TestIosModule): lines = ["hostname foo"] set_module_args(dict(lines=lines)) self.conn.get_diff = MagicMock( - return_value=self.cliconf_obj.get_diff("\n".join(lines), self.running_config), + return_value=self.cliconf_obj.get_diff( + "\n".join(lines), + self.running_config, + ), ) commands = ["hostname foo"] self.execute_module(changed=True, commands=commands) @@ -137,7 +140,10 @@ class TestIosConfigModule(TestIosModule): candidate_config = ios_config.get_candidate_config(module) self.conn.get_diff = MagicMock( - return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config), + return_value=self.cliconf_obj.get_diff( + candidate_config, + self.running_config, + ), ) commands = ["interface GigabitEthernet0/0", "shutdown"] @@ -147,7 +153,10 @@ class TestIosConfigModule(TestIosModule): lines = ["hostname foo"] set_module_args(dict(lines=lines, before=["test1", "test2"])) self.conn.get_diff = MagicMock( - return_value=self.cliconf_obj.get_diff("\n".join(lines), self.running_config), + return_value=self.cliconf_obj.get_diff( + "\n".join(lines), + self.running_config, + ), ) commands = ["test1", "test2", "hostname foo"] self.execute_module(changed=True, commands=commands, sort=False) @@ -156,16 +165,24 @@ class TestIosConfigModule(TestIosModule): lines = ["hostname foo"] set_module_args(dict(lines=lines, after=["test1", "test2"])) self.conn.get_diff = MagicMock( - return_value=self.cliconf_obj.get_diff("\n".join(lines), self.running_config), + return_value=self.cliconf_obj.get_diff( + "\n".join(lines), + self.running_config, + ), ) commands = ["hostname foo", "test1", "test2"] self.execute_module(changed=True, commands=commands, sort=False) def test_ios_config_before_after_no_change(self): lines = ["hostname router"] - set_module_args(dict(lines=lines, before=["test1", "test2"], after=["test3", "test4"])) + set_module_args( + dict(lines=lines, before=["test1", "test2"], after=["test3", "test4"]), + ) self.conn.get_diff = MagicMock( - return_value=self.cliconf_obj.get_diff("\n".join(lines), self.running_config), + return_value=self.cliconf_obj.get_diff( + "\n".join(lines), + self.running_config, + ), ) self.execute_module() @@ -242,7 +259,11 @@ class TestIosConfigModule(TestIosModule): self.execute_module(changed=True, commands=commands, sort=False) def test_ios_config_match_strict(self): - lines = ["ip address 1.2.3.4 255.255.255.0", "description test string", "shutdown"] + lines = [ + "ip address 1.2.3.4 255.255.255.0", + "description test string", + "shutdown", + ] parents = ["interface GigabitEthernet0/0"] set_module_args(dict(lines=lines, parents=parents, match="strict")) @@ -262,7 +283,11 @@ class TestIosConfigModule(TestIosModule): self.execute_module(changed=True, commands=commands, sort=False) def test_ios_config_match_exact(self): - lines = ["ip address 1.2.3.4 255.255.255.0", "description test string", "shutdown"] + lines = [ + "ip address 1.2.3.4 255.255.255.0", + "description test string", + "shutdown", + ] parents = ["interface GigabitEthernet0/0"] set_module_args(dict(lines=lines, parents=parents, match="exact")) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_evpn_evi.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_evpn_evi.py index 94008b0aa..e1178a21f 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_evpn_evi.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_evpn_evi.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_evpn_evi -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_evpn_global.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_evpn_global.py index d3bfa1585..76f467411 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_evpn_global.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_evpn_global.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_evpn_global -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_facts.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_facts.py index a99d7f011..4878d4ad7 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_facts.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_facts.py @@ -19,11 +19,11 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch from ansible.module_utils.six import assertCountEqual from ansible_collections.cisco.ios.plugins.modules import ios_facts -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule, load_fixture @@ -80,8 +80,14 @@ class TestIosFactsModule(TestIosModule): set_module_args(dict(gather_subset="default")) result = self.execute_module() self.assertEqual(result["ansible_facts"]["ansible_net_model"], "WS-C3750-24TS") - self.assertEqual(result["ansible_facts"]["ansible_net_serialnum"], "CAT0726R0ZU") - self.assertEqual(result["ansible_facts"]["ansible_net_operatingmode"], "autonomous") + self.assertEqual( + result["ansible_facts"]["ansible_net_serialnum"], + "CAT0726R0ZU", + ) + self.assertEqual( + result["ansible_facts"]["ansible_net_operatingmode"], + "autonomous", + ) self.assertEqual( result["ansible_facts"]["ansible_net_stacked_models"], ["WS-C3750-24TS-E", "WS-C3750-24TS-E", "WS-C3750G-12S-E"], @@ -95,9 +101,15 @@ class TestIosFactsModule(TestIosModule): set_module_args(dict(gather_subset="interfaces")) result = self.execute_module() self.assertEqual( - result["ansible_facts"]["ansible_net_interfaces"]["GigabitEthernet0/0"]["macaddress"], + result["ansible_facts"]["ansible_net_interfaces"]["GigabitEthernet0/0/0.1012"][ + "macaddress" + ], "5e00.0003.0000", ) + self.assertEqual( + result["ansible_facts"]["ansible_net_interfaces"]["GigabitEthernet0/0"]["macaddress"], + "5e00.0008.0000", + ) self.assertEqual( result["ansible_facts"]["ansible_net_interfaces"]["GigabitEthernet1"]["macaddress"], "5e00.0006.0000", diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_hostname.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_hostname.py index 6b16bddf0..359cf562a 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_hostname.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_hostname.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_hostname -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_interfaces.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_interfaces.py index caac40ccb..63ee2341b 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_interfaces.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_interfaces.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_interfaces -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -150,7 +149,10 @@ class TestIosInterfacesModule(TestIosModule): set_module_args( { "config": [ - {"description": "Ansible UT interface 1", "name": "GigabitEthernet1"}, + { + "description": "Ansible UT interface 1", + "name": "GigabitEthernet1", + }, { "description": "Ansible UT interface 2", "name": "GigabitEthernet0/1", @@ -204,7 +206,10 @@ class TestIosInterfacesModule(TestIosModule): set_module_args( { "config": [ - {"description": "Ansible UT interface 1", "name": "GigabitEthernet1"}, + { + "description": "Ansible UT interface 1", + "name": "GigabitEthernet1", + }, {"name": "GigabitEthernet0/1", "speed": 1200, "mtu": 1800}, { "name": "GigabitEthernet6", @@ -267,7 +272,10 @@ class TestIosInterfacesModule(TestIosModule): set_module_args( { "config": [ - {"description": "Ansible UT interface 1", "name": "GigabitEthernet1"}, + { + "description": "Ansible UT interface 1", + "name": "GigabitEthernet1", + }, { "description": "Ansible UT interface 2", "name": "GigabitEthernet0/1", @@ -570,14 +578,22 @@ class TestIosInterfacesModule(TestIosModule): "mtu": 1500, "enabled": True, }, - {"name": "GigabitEthernet1", "description": "Ansible UT interface 1", "enabled": True}, + { + "name": "GigabitEthernet1", + "description": "Ansible UT interface 1", + "enabled": True, + }, { "name": "GigabitEthernet3", "description": "Ansible UT interface 3", "enabled": False, "duplex": "auto", }, - {"name": "GigabitEthernet4", "description": "Ansible UT interface 4", "enabled": False}, + { + "name": "GigabitEthernet4", + "description": "Ansible UT interface 4", + "enabled": False, + }, { "name": "GigabitEthernet5", "description": "Ansible UT interface 5", diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_l2_interfaces.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_l2_interfaces.py index d9ec2b189..e84846aeb 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_l2_interfaces.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_l2_interfaces.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_l2_interfaces -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -136,7 +135,11 @@ class TestIosL2InterfacesModule(TestIosModule): set_module_args( dict( config=[ - dict(access=dict(vlan=10), mode="access", name="GigabitEthernet0/1"), + dict( + access=dict(vlan=10), + mode="access", + name="GigabitEthernet0/1", + ), dict( mode="trunk", name="GigabitEthernet0/2", @@ -270,7 +273,11 @@ class TestIosL2InterfacesModule(TestIosModule): set_module_args( dict( config=[ - dict(access=dict(vlan=10), mode="access", name="GigabitEthernet0/1"), + dict( + access=dict(vlan=10), + mode="access", + name="GigabitEthernet0/1", + ), dict( mode="trunk", name="GigabitEthernet0/2", @@ -281,7 +288,11 @@ class TestIosL2InterfacesModule(TestIosModule): pruning_vlans=["10", "20"], ), ), - dict(access=dict(vlan=20), mode="access", name="TwoGigabitEthernet1/0/1"), + dict( + access=dict(vlan=20), + mode="access", + name="TwoGigabitEthernet1/0/1", + ), dict( mode="trunk", name="GigabitEthernet0/3", @@ -416,7 +427,11 @@ class TestIosL2InterfacesModule(TestIosModule): set_module_args( dict( config=[ - dict(access=dict(vlan=10), mode="access", name="GigabitEthernet0/1"), + dict( + access=dict(vlan=10), + mode="access", + name="GigabitEthernet0/1", + ), dict( mode="trunk", name="GigabitEthernet0/2", @@ -427,7 +442,11 @@ class TestIosL2InterfacesModule(TestIosModule): pruning_vlans=["10", "20"], ), ), - dict(access=dict(vlan=20), mode="access", name="TwoGigabitEthernet1/0/1"), + dict( + access=dict(vlan=20), + mode="access", + name="TwoGigabitEthernet1/0/1", + ), dict( mode="trunk", name="GigabitEthernet0/3", @@ -592,7 +611,11 @@ class TestIosL2InterfacesModule(TestIosModule): }, "mode": "trunk", }, - {"name": "TwoGigabitEthernet1/0/1", "mode": "access", "access": {"vlan": 20}}, + { + "name": "TwoGigabitEthernet1/0/1", + "mode": "access", + "access": {"vlan": 20}, + }, { "name": "GigabitEthernet0/3", "trunk": { @@ -695,7 +718,13 @@ class TestIosL2InterfacesModule(TestIosModule): ) set_module_args( dict( - config=[dict(access=dict(vlan=20), mode="trunk", name="TwoGigabitEthernet1/0/1")], + config=[ + dict( + access=dict(vlan=20), + mode="trunk", + name="TwoGigabitEthernet1/0/1", + ), + ], state="merged", ), ) @@ -731,7 +760,11 @@ class TestIosL2InterfacesModule(TestIosModule): set_module_args( dict( config=[ - dict(access=dict(vlan=20), mode="trunk", name="FiveGigabitEthernet1/0/1"), + dict( + access=dict(vlan=20), + mode="trunk", + name="FiveGigabitEthernet1/0/1", + ), dict( access=dict(vlan_name="vlan12"), mode="trunk", diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_l3_interfaces.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_l3_interfaces.py index de9442b59..3e3cc038b 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_l3_interfaces.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_l3_interfaces.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_l3_interfaces -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -46,6 +45,9 @@ class TestIosL3InterfacesModule(TestIosModule): interface GigabitEthernet0/3.100 encapsulation dot1Q 20 ip address 192.168.0.3 255.255.255.0 + interface VirtualPortGroup0 + ip address 192.168.0.4 255.255.255.0 + ipv6 address fe80:0:3a2:84::3 link-local interface Serial3/0 ipv6 address fd5d:12c9:2201:1::1/64 interface Serial7/0 @@ -58,7 +60,20 @@ class TestIosL3InterfacesModule(TestIosModule): name="GigabitEthernet0/3.100", ipv4=[dict(address="192.168.0.3/24", secondary=True)], ), - dict(name="Serial3/0", ipv6=[dict(address="FD5D:12C9:2201:1::1/64", cga=True)]), + dict( + name="Serial3/0", + ipv6=[dict(address="FD5D:12C9:2201:1::1/64", cga=True)], + ), + dict( + name="VirtualPortGroup0", + ipv4=[dict(address="192.168.0.4/24", secondary=True)], + ipv6=[ + dict( + address="fe80:0:3a2:84::3", + link_local=True, + ), + ], + ), ], state="merged", ), @@ -94,7 +109,10 @@ class TestIosL3InterfacesModule(TestIosModule): name="GigabitEthernet0/1", ipv4=[dict(address="192.168.0.1/24", secondary=True)], ), - dict(name="GigabitEthernet0/2", ipv4=[dict(address="192.168.0.2/24")]), + dict( + name="GigabitEthernet0/2", + ipv4=[dict(address="192.168.0.2/24")], + ), dict(name="Serial1/0", ipv4=[dict(address="192.168.0.3/24")]), ], state="overridden", @@ -171,13 +189,19 @@ class TestIosL3InterfacesModule(TestIosModule): set_module_args( dict( config=[ - dict(name="GigabitEthernet0/3", ipv6=[dict(address="FD5D:12C9:2202:1::1/64")]), + dict( + name="GigabitEthernet0/3", + ipv6=[dict(address="FD5D:12C9:2202:1::1/64")], + ), dict( name="GigabitEthernet0/2", ipv4=[dict(address="192.168.0.2/24", secondary=False)], ), dict(name="Serial1/0", ipv4=[dict(address="192.168.0.5/24")]), - dict(name="GigabitEthernet0/3.100", ipv4=[dict(address="192.168.0.4/24")]), + dict( + name="GigabitEthernet0/3.100", + ipv4=[dict(address="192.168.0.4/24")], + ), ], state="replaced", ), @@ -206,7 +230,9 @@ class TestIosL3InterfacesModule(TestIosModule): ), ) result = self.execute_module(changed=False) - parsed_list = [{"name": "GigabitEthernet0/3.100", "ipv4": [{"address": "192.168.0.3/24"}]}] + parsed_list = [ + {"name": "GigabitEthernet0/3.100", "ipv4": [{"address": "192.168.0.3/24"}]}, + ] self.assertEqual(parsed_list, result["parsed"]) def test_ios_l3_interfaces_rendered(self): @@ -279,6 +305,8 @@ class TestIosL3InterfacesModule(TestIosModule): ip address 192.168.0.3 255.255.255.0 interface Serial1/0 description Configured by PAUL + interface Vlan901 + ip unnumbered Loopback2 """, ) set_module_args( @@ -286,7 +314,14 @@ class TestIosL3InterfacesModule(TestIosModule): config=[ dict( name="GigabitEthernet0/1", - ipv4=[dict(dhcp=dict(client_id="GigabitEthernet0/2", hostname="test.com"))], + ipv4=[ + dict( + dhcp=dict( + client_id="GigabitEthernet0/2", + hostname="test.com", + ), + ), + ], ), dict(name="GigabitEthernet0/2", ipv4=[dict(pool="PoolName1")]), dict(name="Serial1/0", ipv6=[dict(autoconfig=dict(default=True))]), @@ -296,8 +331,14 @@ class TestIosL3InterfacesModule(TestIosModule): ipv6=[dict(address="FD5D:12C9:2201:1::1/64", anycast=True)], ), dict(name="Vlan51", ipv4=[dict(address="192.168.0.4/31")]), - dict(name="Serial4/0", ipv6=[dict(address="FD5D:12C9:2201:2::1/64", cga=True)]), - dict(name="Serial5/0", ipv6=[dict(address="FD5D:12C9:2201:3::1/64", eui=True)]), + dict( + name="Serial4/0", + ipv6=[dict(address="FD5D:12C9:2201:2::1/64", cga=True)], + ), + dict( + name="Serial5/0", + ipv6=[dict(address="FD5D:12C9:2201:3::1/64", eui=True)], + ), dict( name="Serial6/0", ipv6=[dict(address="FD5D:12C9:2201:4::1/64", link_local=True)], @@ -320,6 +361,20 @@ class TestIosL3InterfacesModule(TestIosModule): ), ], ), + dict( + autostate=False, + name="Vlan901", + ipv6=[ + dict( + enable=True, + ), + ], + ipv4=[ + dict( + source_interface=dict(name="Loopback1"), + ), + ], + ), ], state="merged", ), @@ -347,6 +402,10 @@ class TestIosL3InterfacesModule(TestIosModule): "ipv6 address fd5d:12c9:2201:3::1/64 eui", "interface Vlan51", "ip address 192.168.0.4 255.255.255.254", + "interface Vlan901", + "ip unnumbered Loopback1", + "ipv6 enable", + "no autostate", ] result = self.execute_module(changed=True) @@ -381,16 +440,32 @@ class TestIosL3InterfacesModule(TestIosModule): config=[ dict( name="GigabitEthernet0/1", - ipv4=[dict(dhcp=dict(client_id="GigabitEthernet0/2", hostname="test.com"))], + ipv4=[ + dict( + dhcp=dict( + client_id="GigabitEthernet0/2", + hostname="test.com", + ), + ), + ], + ), + dict( + name="GigabitEthernet0/3.100", + ipv4=[dict(address="192.168.0.3/24")], ), - dict(name="GigabitEthernet0/3.100", ipv4=[dict(address="192.168.0.3/24")]), dict(name="Serial2/0", ipv6=[dict(dhcp=dict(rapid_commit=True))]), dict( name="Serial3/0", ipv6=[dict(address="FD5D:12C9:2201:1::1/64", anycast=True)], ), - dict(name="Serial4/0", ipv6=[dict(address="FD5D:12C9:2201:2::1/64", cga=True)]), - dict(name="Serial5/0", ipv6=[dict(address="FD5D:12C9:2201:3::1/64", eui=True)]), + dict( + name="Serial4/0", + ipv6=[dict(address="FD5D:12C9:2201:2::1/64", cga=True)], + ), + dict( + name="Serial5/0", + ipv6=[dict(address="FD5D:12C9:2201:3::1/64", eui=True)], + ), dict( name="Serial6/0", ipv6=[dict(address="FD5D:12C9:2201:4::1/64", link_local=True)], @@ -433,7 +508,10 @@ class TestIosL3InterfacesModule(TestIosModule): set_module_args( dict( config=[ - dict(name="GigabitEthernet0/3.100", ipv4=[dict(address="192.168.1.3/24")]), + dict( + name="GigabitEthernet0/3.100", + ipv4=[dict(address="192.168.1.3/24")], + ), ], state="replaced", ), diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lacp.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lacp.py index 6c56406e6..f4460162a 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lacp.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lacp.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_lacp -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lacp_interfaces.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lacp_interfaces.py index f58aa9d65..817c6869c 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lacp_interfaces.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lacp_interfaces.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_lacp_interfaces -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -83,7 +82,11 @@ class TestIosLacpInterfaceModule(TestIosModule): set_module_args( dict( config=[ - {"name": "Port-channel10", "fast_switchover": True, "max_bundle": 12}, + { + "name": "Port-channel10", + "fast_switchover": True, + "max_bundle": 12, + }, {"name": "Port-channel40", "max_bundle": 5}, {"name": "GigabitEthernet0/0"}, {"name": "GigabitEthernet0/1", "port_priority": 20}, @@ -121,7 +124,11 @@ class TestIosLacpInterfaceModule(TestIosModule): set_module_args( dict( config=[ - {"name": "Port-channel10", "fast_switchover": True, "max_bundle": 2}, + { + "name": "Port-channel10", + "fast_switchover": True, + "max_bundle": 2, + }, {"name": "Port-channel40", "max_bundle": 5}, {"name": "GigabitEthernet0/0"}, {"name": "GigabitEthernet0/1", "port_priority": 30}, @@ -150,7 +157,11 @@ class TestIosLacpInterfaceModule(TestIosModule): set_module_args( dict( config=[ - {"name": "Port-channel10", "fast_switchover": True, "max_bundle": 12}, + { + "name": "Port-channel10", + "fast_switchover": True, + "max_bundle": 12, + }, {"name": "Port-channel40", "max_bundle": 5}, {"name": "GigabitEthernet0/0"}, {"name": "GigabitEthernet0/1", "port_priority": 20}, @@ -188,7 +199,11 @@ class TestIosLacpInterfaceModule(TestIosModule): set_module_args( dict( config=[ - {"name": "Port-channel10", "fast_switchover": True, "max_bundle": 12}, + { + "name": "Port-channel10", + "fast_switchover": True, + "max_bundle": 12, + }, {"name": "Port-channel40", "max_bundle": 5}, {"name": "GigabitEthernet0/0"}, {"name": "GigabitEthernet0/1", "port_priority": 20}, @@ -226,7 +241,11 @@ class TestIosLacpInterfaceModule(TestIosModule): set_module_args( dict( config=[ - {"name": "Port-channel10", "fast_switchover": True, "max_bundle": 12}, + { + "name": "Port-channel10", + "fast_switchover": True, + "max_bundle": 12, + }, {"name": "Port-channel40", "max_bundle": 5}, {"name": "GigabitEthernet0/0"}, {"name": "GigabitEthernet0/1", "port_priority": 20}, @@ -287,7 +306,11 @@ class TestIosLacpInterfaceModule(TestIosModule): set_module_args( dict( config=[ - {"fast_switchover": True, "max_bundle": 2, "name": "Port-channel10"}, + { + "fast_switchover": True, + "max_bundle": 2, + "name": "Port-channel10", + }, {"max_bundle": 5, "name": "Port-channel40"}, {"name": "GigabitEthernet0/0"}, {"name": "GigabitEthernet0/1", "port_priority": 30}, diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lag_interfaces.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lag_interfaces.py index 1f97bef24..71d6ff933 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lag_interfaces.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lag_interfaces.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_lag_interfaces -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -73,7 +72,11 @@ class TestIosLagInterfacesModule(TestIosModule): "members": [ {"member": "GigabitEthernet0/2", "mode": "active"}, {"member": "GigabitEthernet0/3", "mode": "passive"}, - {"link": 20, "member": "GigabitEthernet0/4", "mode": "active"}, + { + "link": 20, + "member": "GigabitEthernet0/4", + "mode": "active", + }, {"link": 22, "member": "GigabitEthernet0/5"}, ], "name": "Port-channel22", @@ -120,7 +123,11 @@ class TestIosLagInterfacesModule(TestIosModule): "members": [ {"member": "GigabitEthernet0/2", "mode": "active"}, {"member": "GigabitEthernet0/3", "mode": "active"}, - {"link": 20, "member": "GigabitEthernet0/4", "mode": "active"}, + { + "link": 20, + "member": "GigabitEthernet0/4", + "mode": "active", + }, {"link": 22, "member": "GigabitEthernet0/5"}, ], "name": "Port-channel22", @@ -164,7 +171,11 @@ class TestIosLagInterfacesModule(TestIosModule): "members": [ {"member": "GigabitEthernet0/1", "mode": "active"}, {"member": "GigabitEthernet0/3", "mode": "on"}, - {"link": 20, "member": "GigabitEthernet0/4", "mode": "active"}, + { + "link": 20, + "member": "GigabitEthernet0/4", + "mode": "active", + }, {"link": 22, "member": "GigabitEthernet0/5"}, ], "name": "Port-channel22", @@ -219,7 +230,11 @@ class TestIosLagInterfacesModule(TestIosModule): "members": [ {"member": "GigabitEthernet0/2", "mode": "active"}, {"member": "GigabitEthernet0/3", "mode": "active"}, - {"link": 20, "member": "GigabitEthernet0/4", "mode": "active"}, + { + "link": 20, + "member": "GigabitEthernet0/4", + "mode": "active", + }, {"link": 22, "member": "GigabitEthernet0/5"}, ], "name": "Port-channel22", @@ -259,7 +274,11 @@ class TestIosLagInterfacesModule(TestIosModule): "members": [ {"member": "GigabitEthernet0/2", "mode": "active"}, {"member": "GigabitEthernet0/3", "mode": "active"}, - {"link": 20, "member": "GigabitEthernet0/4", "mode": "active"}, + { + "link": 20, + "member": "GigabitEthernet0/4", + "mode": "active", + }, {"link": 22, "member": "GigabitEthernet0/5"}, ], "name": "Port-channel22", @@ -314,7 +333,11 @@ class TestIosLagInterfacesModule(TestIosModule): "members": [ {"member": "GigabitEthernet0/2", "mode": "active"}, {"member": "GigabitEthernet0/3", "mode": "active"}, - {"link": 20, "member": "GigabitEthernet0/4", "mode": "active"}, + { + "link": 20, + "member": "GigabitEthernet0/4", + "mode": "active", + }, {"link": 22, "member": "GigabitEthernet0/5"}, ], "name": "Port-channel22", @@ -459,7 +482,11 @@ class TestIosLagInterfacesModule(TestIosModule): "members": [ {"member": "GigabitEthernet0/2", "mode": "active"}, {"member": "GigabitEthernet0/3", "mode": "active"}, - {"link": 20, "member": "GigabitEthernet0/4", "mode": "active"}, + { + "link": 20, + "member": "GigabitEthernet0/4", + "mode": "active", + }, {"link": 22, "member": "GigabitEthernet0/5"}, ], "name": "Port-channel22", diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lldp_global.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lldp_global.py index 4c54ef5c9..2c5eb1c40 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lldp_global.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lldp_global.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_lldp_global -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -154,7 +153,12 @@ class TestIosLldpGlobalModule(TestIosModule): state="deleted", ), ) - commands = ["no lldp holdtime", "no lldp run", "no lldp timer", "no lldp reinit"] + commands = [ + "no lldp holdtime", + "no lldp run", + "no lldp timer", + "no lldp reinit", + ] result = self.execute_module(changed=True) self.assertEqual(result["commands"], commands) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lldp_inteface.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lldp_inteface.py index a3dfe9706..04a25993a 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lldp_inteface.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_lldp_inteface.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_lldp_interfaces -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -241,7 +240,10 @@ class TestIosLldpInterfacesModule(TestIosModule): ) set_module_args( dict( - config=[dict(name="GigabitEthernet0/2"), dict(name="GigabitEthernet0/1")], + config=[ + dict(name="GigabitEthernet0/2"), + dict(name="GigabitEthernet0/1"), + ], state="deleted", ), ) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_logging_global.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_logging_global.py index c3024636a..f1b3eada3 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_logging_global.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_logging_global.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_logging_global -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -120,7 +119,10 @@ class TestIosLoggingGlobalModule(TestIosModule): reload=dict(severity="alerts"), server_arp=True, snmp_trap=["errors"], - source_interface=[dict(interface="GBit1/0"), dict(interface="CTunnel2")], + source_interface=[ + dict(interface="GBit1/0"), + dict(interface="CTunnel2"), + ], trap="errors", userinfo=True, ), @@ -250,7 +252,10 @@ class TestIosLoggingGlobalModule(TestIosModule): ], message_counter=["log", "debug"], snmp_trap=["errors"], - source_interface=[dict(interface="GBit1/0"), dict(interface="CTunnel2")], + source_interface=[ + dict(interface="GBit1/0"), + dict(interface="CTunnel2"), + ], ), ) deleted = [ @@ -317,7 +322,10 @@ class TestIosLoggingGlobalModule(TestIosModule): ], message_counter=["log", "debug"], snmp_trap=["errors"], - source_interface=[dict(interface="GBit1/0"), dict(interface="CTunnel2")], + source_interface=[ + dict(interface="GBit1/0"), + dict(interface="CTunnel2"), + ], ), ) overridden = [ @@ -402,9 +410,16 @@ class TestIosLoggingGlobalModule(TestIosModule): ipv6="2001:0db8:85a3:0000:0000:8a2e:0370:7304", discriminator="msglog01 severity includes 5", ), - dict(ipv6="2001:0db8:85a3:0000:0000:8a2e:0370:7314", sequence_num_session=True), + dict( + ipv6="2001:0db8:85a3:0000:0000:8a2e:0370:7314", + sequence_num_session=True, + ), dict(ipv6="2001:0db8:85a3:0000:0000:8a2e:0370:7324", vrf="vpn1"), - dict(ipv6="2001:0db8:85a3:0000:0000:8a2e:0370:7334", stream=10, filtered=True), + dict( + ipv6="2001:0db8:85a3:0000:0000:8a2e:0370:7334", + stream=10, + filtered=True, + ), dict( ipv6="2001:0db8:85a3:0000:0000:8a2e:0370:7344", session_id=dict(tag="ipv4"), @@ -416,7 +431,9 @@ class TestIosLoggingGlobalModule(TestIosModule): dict( ipv6="2001:0db8:85a3:0000:0000:8a2e:0370:7374", vrf="Apn2", - transport=dict(udp=dict(discriminator="msglog01 severity includes 5")), + transport=dict( + udp=dict(discriminator="msglog01 severity includes 5"), + ), ), dict( ipv6="2001:0db8:85a3:0000:0000:8a2e:0370:7384", @@ -509,7 +526,13 @@ class TestIosLoggingGlobalModule(TestIosModule): ) set_module_args(dict(state="gathered")) gathered = dict( - hosts=[dict(hostname="172.16.1.1", vrf="vpn-1", transport=dict(tcp=dict(audit=True)))], + hosts=[ + dict( + hostname="172.16.1.1", + vrf="vpn-1", + transport=dict(tcp=dict(audit=True)), + ), + ], ) result = self.execute_module(changed=False) @@ -617,9 +640,14 @@ class TestIosLoggingGlobalModule(TestIosModule): """, ) playbook = dict( - config=dict(hosts=[dict(hostname="172.16.2.15", session_id=dict(text="Test"))]), + config=dict( + hosts=[dict(hostname="172.16.2.15", session_id=dict(text="Test"))], + ), ) - replaced = ["no logging host 172.16.1.1", "logging host 172.16.2.15 session-id string Test"] + replaced = [ + "no logging host 172.16.1.1", + "logging host 172.16.2.15 session-id string Test", + ] playbook["state"] = "replaced" set_module_args(playbook) result = self.execute_module(changed=True) @@ -651,8 +679,14 @@ class TestIosLoggingGlobalModule(TestIosModule): {"hostname": "172.16.0.4", "vrf": "Mgmt-intf"}, ], "origin_id": {"tag": "hostname"}, - "rate_limit": {"console": True, "except_severity": "errors", "size": 10}, - "source_interface": [{"interface": "GigabitEthernet0", "vrf": "Mgmt-intf"}], + "rate_limit": { + "console": True, + "except_severity": "errors", + "size": 10, + }, + "source_interface": [ + {"interface": "GigabitEthernet0", "vrf": "Mgmt-intf"}, + ], "trap": "informational", }, } diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ntp.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ntp.py deleted file mode 100644 index 3e73fdfd4..000000000 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ntp.py +++ /dev/null @@ -1,110 +0,0 @@ -# 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 . - -# Make coding more python3-ish -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -from ansible_collections.cisco.ios.plugins.modules import ios_ntp -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch -from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args - -from .ios_module import TestIosModule, load_fixture - - -class TestIosNtpModule(TestIosModule): - module = ios_ntp - - def setUp(self): - super(TestIosNtpModule, self).setUp() - - self.mock_get_config = patch( - "ansible_collections.cisco.ios.plugins.modules.ios_ntp.get_config", - ) - self.get_config = self.mock_get_config.start() - - self.mock_load_config = patch( - "ansible_collections.cisco.ios.plugins.modules.ios_ntp.load_config", - ) - self.load_config = self.mock_load_config.start() - - def tearDown(self): - super(TestIosNtpModule, self).tearDown() - self.mock_get_config.stop() - self.mock_load_config.stop() - - def load_fixtures(self, commands=None): - self.get_config.return_value = load_fixture("ios_ntp_config.cfg").strip() - self.load_config.return_value = dict(diff=None, session="session") - - def test_ios_ntp_idempotent(self): - set_module_args( - dict( - server="10.75.32.5", - source_int="Loopback0", - acl="NTP_ACL", - logging=True, - auth=True, - auth_key="15435A030726242723273C21181319000A", - key_id="10", - vrf="my_mgmt_vrf", - state="present", - ), - ) - commands = [] - self.execute_module(changed=False, commands=commands) - - def test_ios_ntp_config(self): - set_module_args( - dict( - server="10.75.33.5", - source_int="Vlan2", - acl="NTP_ACL", - logging=True, - auth=True, - auth_key="15435A030726242723273C21181319000A", - key_id="10", - state="present", - ), - ) - commands = ["ntp server 10.75.33.5", "ntp source Vlan2"] - self.execute_module(changed=True, commands=commands) - - def test_ios_ntp_remove(self): - set_module_args( - dict( - server="10.75.32.5", - source_int="Loopback0", - acl="NTP_ACL", - logging=True, - auth=True, - auth_key="15435A030726242723273C21181319000A", - key_id="10", - vrf="my_mgmt_vrf", - state="absent", - ), - ) - commands = [ - "no ntp server vrf my_mgmt_vrf 10.75.32.5", - "no ntp source Loopback0", - "no ntp access-group peer NTP_ACL", - "no ntp logging", - "no ntp authenticate", - "no ntp trusted-key 10", - "no ntp authentication-key 10 md5 15435A030726242723273C21181319000A 7", - ] - self.execute_module(changed=True, commands=commands) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ntp_global.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ntp_global.py index a9d0392c1..e955c2929 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ntp_global.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ntp_global.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_ntp_global -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -86,7 +85,12 @@ class TestIosNtpGlobalModule(TestIosModule): allow=dict(control=dict(rate_limit=4)), authenticate=True, authentication_keys=[ - dict(algorithm="md5", encryption=7, id=2, key="SomeSecurePassword"), + dict( + algorithm="md5", + encryption=7, + id=2, + key="SomeSecurePassword", + ), ], broadcast_delay=22, logging=True, @@ -98,8 +102,18 @@ class TestIosNtpGlobalModule(TestIosModule): panic_update=True, peers=[ dict(peer="172.16.1.10", version=2), - dict(key_id=2, minpoll=5, peer="172.16.1.11", prefer=True, version=2), - dict(peer="checkPeerDomainIpv4.com", prefer=True, use_ipv4=True), + dict( + key_id=2, + minpoll=5, + peer="172.16.1.11", + prefer=True, + version=2, + ), + dict( + peer="checkPeerDomainIpv4.com", + prefer=True, + use_ipv4=True, + ), dict(peer="checkPeerDomainIpv6.com", use_ipv6=True), dict(peer="testPeerDomainIpv6.com", prefer=True, use_ipv6=True), ], @@ -109,7 +123,10 @@ class TestIosNtpGlobalModule(TestIosModule): dict(server="checkServerDomainIpv6.com", use_ipv6=True), ], source="GigabitEthernet0/1", - trusted_keys=[dict(range_start=21), dict(range_end=13, range_start=3)], + trusted_keys=[ + dict(range_start=21), + dict(range_end=13, range_start=3), + ], update_calendar=True, ), state="merged", @@ -138,7 +155,12 @@ class TestIosNtpGlobalModule(TestIosModule): allow=dict(control=dict(rate_limit=4)), authenticate=True, authentication_keys=[ - dict(algorithm="md5", encryption=7, id=2, key="SomeSecurePassword"), + dict( + algorithm="md5", + encryption=7, + id=2, + key="SomeSecurePassword", + ), ], broadcast_delay=22, logging=True, @@ -150,8 +172,18 @@ class TestIosNtpGlobalModule(TestIosModule): panic_update=True, peers=[ dict(peer="172.16.1.10", version=2), - dict(key=2, minpoll=5, peer="172.16.1.11", prefer=True, version=2), - dict(peer="checkPeerDomainIpv4.com", prefer=True, use_ipv4=True), + dict( + key=2, + minpoll=5, + peer="172.16.1.11", + prefer=True, + version=2, + ), + dict( + peer="checkPeerDomainIpv4.com", + prefer=True, + use_ipv4=True, + ), dict(peer="checkPeerDomainIpv6.com", use_ipv6=True), dict(peer="testPeerDomainIpv6.com", prefer=True, use_ipv6=True), ], @@ -162,7 +194,10 @@ class TestIosNtpGlobalModule(TestIosModule): dict(server="checkServerDomainIpv6.com", use_ipv6=True), ], source="GigabitEthernet0/1", - trusted_keys=[dict(range_start=21), dict(range_end=13, range_start=3)], + trusted_keys=[ + dict(range_start=21), + dict(range_end=13, range_start=3), + ], update_calendar=True, ), state="merged", @@ -324,7 +359,12 @@ class TestIosNtpGlobalModule(TestIosModule): allow=dict(control=dict(rate_limit=4)), authenticate=True, authentication_keys=[ - dict(algorithm="md5", encryption=7, id=2, key="SomeSecurePassword"), + dict( + algorithm="md5", + encryption=7, + id=2, + key="SomeSecurePassword", + ), ], broadcast_delay=22, logging=True, @@ -336,8 +376,18 @@ class TestIosNtpGlobalModule(TestIosModule): panic_update=True, peers=[ dict(peer="172.16.1.10", version=2), - dict(key=2, minpoll=5, peer="172.16.1.11", prefer=True, version=2), - dict(peer="checkPeerDomainIpv4.com", prefer=True, use_ipv4=True), + dict( + key=2, + minpoll=5, + peer="172.16.1.11", + prefer=True, + version=2, + ), + dict( + peer="checkPeerDomainIpv4.com", + prefer=True, + use_ipv4=True, + ), dict(peer="checkPeerDomainIpv6.com", use_ipv6=True), dict(peer="testPeerDomainIpv6.com", prefer=True, use_ipv6=True), ], @@ -347,7 +397,10 @@ class TestIosNtpGlobalModule(TestIosModule): dict(server="checkServerDomainIpv6.com", use_ipv6=True), ], source="GigabitEthernet0/1", - trusted_keys=[dict(range_start=21), dict(range_end=13, range_start=3)], + trusted_keys=[ + dict(range_start=21), + dict(range_end=13, range_start=3), + ], update_calendar=True, ), state="replaced", @@ -415,7 +468,12 @@ class TestIosNtpGlobalModule(TestIosModule): allow=dict(control=dict(rate_limit=4)), authenticate=True, authentication_keys=[ - dict(algorithm="md5", encryption=7, id=2, key="SomeSecurePassword"), + dict( + algorithm="md5", + encryption=7, + id=2, + key="SomeSecurePassword", + ), ], broadcast_delay=22, logging=True, @@ -426,15 +484,28 @@ class TestIosNtpGlobalModule(TestIosModule): orphan=4, panic_update=True, peers=[ - dict(key_id=2, minpoll=5, peer="172.16.1.11", prefer=True, version=2), - dict(peer="checkPeerDomainIpv4.com", prefer=True, use_ipv4=True), + dict( + key_id=2, + minpoll=5, + peer="172.16.1.11", + prefer=True, + version=2, + ), + dict( + peer="checkPeerDomainIpv4.com", + prefer=True, + use_ipv4=True, + ), ], servers=[ dict(server="172.16.1.13", source="GigabitEthernet0/1"), dict(server="checkServerDomainIpv6.com", use_ipv6=True), ], source="Loopback888", - trusted_keys=[dict(range_start=21), dict(range_end=13, range_start=3)], + trusted_keys=[ + dict(range_start=21), + dict(range_end=13, range_start=3), + ], update_calendar=True, ), state="overridden", diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospf_interfaces.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospf_interfaces.py index 3721ba3ba..ea500f540 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospf_interfaces.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospf_interfaces.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_ospf_interfaces -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospfv2.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospfv2.py index b73e34395..e14def8d8 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospfv2.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospfv2.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_ospfv2 -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -76,13 +75,24 @@ class TestIosOspfV2Module(TestIosModule): ), ), network=[ - dict(address="198.51.100.0", wildcard_bits="0.0.0.255", area=5), - dict(address="192.0.2.0", wildcard_bits="0.0.0.255", area=5), + dict( + address="198.51.100.0", + wildcard_bits="0.0.0.255", + area=5, + ), + dict( + address="192.0.2.0", + wildcard_bits="0.0.0.255", + area=5, + ), ], domain_id=dict(ip_address=dict(address="192.0.3.1")), max_metric=dict(on_startup=dict(time=100), router_lsa=True), passive_interfaces=dict( - interface=dict(set_interface=False, name=["GigabitEthernet0/2"]), + interface=dict( + set_interface=False, + name=["GigabitEthernet0/2"], + ), ), vrf="blue", ), @@ -284,11 +294,17 @@ class TestIosOspfV2Module(TestIosModule): "areas": [ { "area_id": "5", - "authentication": {"enable": True, "message_digest": True}, + "authentication": { + "enable": True, + "message_digest": True, + }, }, { "area_id": "10", - "authentication": {"enable": True, "message_digest": True}, + "authentication": { + "enable": True, + "message_digest": True, + }, "capability": True, "default_cost": 10, "filter_list": [ @@ -470,7 +486,10 @@ class TestIosOspfV2Module(TestIosModule): "passive_interfaces": { "default": True, "interface": { - "name": ["GigabitEthernet0/1", "GigabitEthernet0/2"], + "name": [ + "GigabitEthernet0/1", + "GigabitEthernet0/2", + ], "set_interface": False, }, }, @@ -535,6 +554,7 @@ class TestIosOspfV2Module(TestIosModule): "default-information originate always metric 25 metric-type 26 route-map rmap1", "default-metric 50", "discard-route external 5 internal 2", + "distance 2 192.168.1.0 0.0.0.255 acl1", "distance ospf inter-area 2 intra-area 3 external 1", "domain-id 192.168.1.0 secondary", "domain-tag 54", @@ -601,7 +621,10 @@ class TestIosOspfV2Module(TestIosModule): """, ) set_module_args( - dict(config=dict(processes=[dict(process_id="200", vrf="blue")]), state="deleted"), + dict( + config=dict(processes=[dict(process_id="200", vrf="blue")]), + state="deleted", + ), ) commands = ["no router ospf 200 vrf blue"] self.execute_module(changed=True, commands=commands) @@ -632,7 +655,11 @@ class TestIosOspfV2Module(TestIosModule): "processes": [ { "areas": [ - {"area_id": "5", "authentication": {"enable": True}, "capability": True}, + { + "area_id": "5", + "authentication": {"enable": True}, + "capability": True, + }, ], "process_id": 1, }, @@ -677,11 +704,17 @@ class TestIosOspfV2Module(TestIosModule): "areas": [ { "area_id": "5", - "authentication": {"enable": True, "message_digest": True}, + "authentication": { + "enable": True, + "message_digest": True, + }, }, { "area_id": "10", - "authentication": {"enable": True, "message_digest": True}, + "authentication": { + "enable": True, + "message_digest": True, + }, "capability": True, "default_cost": 10, "filter_list": [ @@ -862,7 +895,10 @@ class TestIosOspfV2Module(TestIosModule): "passive_interfaces": { "default": True, "interface": { - "name": ["GigabitEthernet0/1", "GigabitEthernet0/2"], + "name": [ + "GigabitEthernet0/1", + "GigabitEthernet0/2", + ], "set_interface": False, }, }, @@ -933,6 +969,7 @@ class TestIosOspfV2Module(TestIosModule): "default-information originate always metric 25 metric-type 26 route-map rmap1", "default-metric 50", "discard-route external 5 internal 2", + "distance 2 192.168.1.0 0.0.0.255 acl1", "distance ospf inter-area 2 intra-area 3 external 1", "domain-id 192.168.1.0 secondary", "domain-tag 54", @@ -1029,13 +1066,19 @@ class TestIosOspfV2Module(TestIosModule): "lsa_group": 25, }, }, - "max_metric": {"router_lsa": True, "on_startup": {"time": 100}}, + "max_metric": { + "router_lsa": True, + "on_startup": {"time": 100}, + }, "areas": [{"area_id": "10", "capability": True}], "passive_interfaces": { "default": True, "interface": { "set_interface": False, - "name": ["GigabitEthernet0/2", "GigabitEthernet0/1"], + "name": [ + "GigabitEthernet0/2", + "GigabitEthernet0/1", + ], }, }, }, @@ -1141,13 +1184,19 @@ class TestIosOspfV2Module(TestIosModule): ], }, "domain_id": {"ip_address": {"address": "192.0.3.1"}}, - "max_metric": {"router_lsa": True, "on_startup": {"time": 100}}, + "max_metric": { + "router_lsa": True, + "on_startup": {"time": 100}, + }, "areas": [{"area_id": "10", "capability": True}], "passive_interfaces": { "default": True, "interface": { "set_interface": False, - "name": ["GigabitEthernet0/2", "GigabitEthernet0/1"], + "name": [ + "GigabitEthernet0/2", + "GigabitEthernet0/1", + ], }, }, }, diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospfv3.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospfv3.py index 30c646123..efaae19ac 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospfv3.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ospfv3.py @@ -7,9 +7,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_ospfv3 -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule, load_fixture @@ -58,7 +58,10 @@ class TestIosOspfV3Module(TestIosModule): afi="ipv4", unicast=True, vrf="blue", - adjacency=dict(min_adjacency=100, max_adjacency=100), + adjacency=dict( + min_adjacency=100, + max_adjacency=100, + ), ), ], ), @@ -89,7 +92,9 @@ class TestIosOspfV3Module(TestIosModule): areas=[ dict( area_id=10, - nssa=dict(default_information_originate=dict(metric=10)), + nssa=dict( + default_information_originate=dict(metric=10), + ), ), ], address_family=[ @@ -132,7 +137,10 @@ class TestIosOspfV3Module(TestIosModule): afi="ipv4", unicast=True, vrf="blue", - adjacency=dict(min_adjacency=100, max_adjacency=100), + adjacency=dict( + min_adjacency=100, + max_adjacency=100, + ), ), ], ), @@ -164,7 +172,9 @@ class TestIosOspfV3Module(TestIosModule): areas=[ dict( area_id=10, - nssa=dict(default_information_originate=dict(metric=10)), + nssa=dict( + default_information_originate=dict(metric=10), + ), ), ], address_family=[ @@ -205,7 +215,9 @@ class TestIosOspfV3Module(TestIosModule): areas=[ dict( area_id=10, - nssa=dict(default_information_originate=dict(metric=10)), + nssa=dict( + default_information_originate=dict(metric=10), + ), ), ], address_family=[ @@ -256,7 +268,9 @@ class TestIosOspfV3Module(TestIosModule): areas=[ dict( area_id=10, - nssa=dict(default_information_originate=dict(metric=10)), + nssa=dict( + default_information_originate=dict(metric=10), + ), ), ], address_family=[ @@ -287,7 +301,9 @@ class TestIosOspfV3Module(TestIosModule): self.execute_module(changed=False, commands=[]) def test_ios_ospfv3_deleted(self): - set_module_args(dict(config=dict(processes=[dict(process_id="1")]), state="deleted")) + set_module_args( + dict(config=dict(processes=[dict(process_id="1")]), state="deleted"), + ) commands = ["no router ospfv3 1"] self.execute_module(changed=True, commands=commands) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ping.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ping.py index bdb822e62..02969ffe0 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ping.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_ping.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_ping -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -61,7 +60,9 @@ class TestIosPingModule(TestIosModule): Success rate is 100 percent (2/2), round-trip min/avg/max = 25/25/25 ms """, ) - set_module_args(dict(count=2, dest="2001:db8:ffff:ffff:ffff:ffff:ffff:ffff", afi="ipv6")) + set_module_args( + dict(count=2, dest="2001:db8:ffff:ffff:ffff:ffff:ffff:ffff", afi="ipv6"), + ) result = self.execute_module() mock_res = { "commands": "ping ipv6 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff repeat 2", diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_prefix_lists.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_prefix_lists.py index 2aac373dd..0df4be859 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_prefix_lists.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_prefix_lists.py @@ -7,9 +7,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_prefix_lists -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule, load_fixture @@ -74,7 +74,12 @@ class TestIosPrefixListsModule(TestIosModule): prefix="35.0.0.0/8", sequence=5, ), - dict(action="deny", ge=20, prefix="35.0.0.0/8", sequence=10), + dict( + action="deny", + ge=20, + prefix="35.0.0.0/8", + sequence=10, + ), ], name="test_prefix", ), @@ -121,9 +126,24 @@ class TestIosPrefixListsModule(TestIosModule): dict( description="this is test description", entries=[ - dict(action="deny", le=15, prefix="1.0.0.0/8", sequence=5), - dict(action="deny", ge=10, prefix="35.0.0.0/8", sequence=10), - dict(action="deny", ge=15, prefix="12.0.0.0/8", sequence=15), + dict( + action="deny", + le=15, + prefix="1.0.0.0/8", + sequence=5, + ), + dict( + action="deny", + ge=10, + prefix="35.0.0.0/8", + sequence=10, + ), + dict( + action="deny", + ge=15, + prefix="12.0.0.0/8", + sequence=15, + ), dict( action="deny", ge=20, @@ -137,7 +157,12 @@ class TestIosPrefixListsModule(TestIosModule): dict( description="this is test", entries=[ - dict(action="deny", ge=15, prefix="12.0.0.0/8", sequence=50), + dict( + action="deny", + ge=15, + prefix="12.0.0.0/8", + sequence=50, + ), ], name="test", ), @@ -151,7 +176,12 @@ class TestIosPrefixListsModule(TestIosModule): prefix="35.0.0.0/8", sequence=5, ), - dict(action="deny", ge=20, prefix="35.0.0.0/8", sequence=10), + dict( + action="deny", + ge=20, + prefix="35.0.0.0/8", + sequence=10, + ), ], name="test_prefix", ), @@ -190,7 +220,12 @@ class TestIosPrefixListsModule(TestIosModule): dict( description="this is replace test", entries=[ - dict(action="deny", ge=15, prefix="12.0.0.0/8", sequence=15), + dict( + action="deny", + ge=15, + prefix="12.0.0.0/8", + sequence=15, + ), dict( action="deny", ge=20, @@ -204,7 +239,12 @@ class TestIosPrefixListsModule(TestIosModule): dict( description="this is replace test", entries=[ - dict(action="deny", ge=20, prefix="35.0.0.0/8", sequence=10), + dict( + action="deny", + ge=20, + prefix="35.0.0.0/8", + sequence=10, + ), ], name="test_replace", ), @@ -255,9 +295,24 @@ class TestIosPrefixListsModule(TestIosModule): dict( description="this is test description", entries=[ - dict(action="deny", le=15, prefix="1.0.0.0/8", sequence=5), - dict(action="deny", ge=10, prefix="35.0.0.0/8", sequence=10), - dict(action="deny", ge=15, prefix="12.0.0.0/8", sequence=15), + dict( + action="deny", + le=15, + prefix="1.0.0.0/8", + sequence=5, + ), + dict( + action="deny", + ge=10, + prefix="35.0.0.0/8", + sequence=10, + ), + dict( + action="deny", + ge=15, + prefix="12.0.0.0/8", + sequence=15, + ), dict( action="deny", ge=20, @@ -271,7 +326,12 @@ class TestIosPrefixListsModule(TestIosModule): dict( description="this is test", entries=[ - dict(action="deny", ge=15, prefix="12.0.0.0/8", sequence=50), + dict( + action="deny", + ge=15, + prefix="12.0.0.0/8", + sequence=50, + ), ], name="test", ), @@ -285,7 +345,12 @@ class TestIosPrefixListsModule(TestIosModule): prefix="35.0.0.0/8", sequence=5, ), - dict(action="deny", ge=20, prefix="35.0.0.0/8", sequence=10), + dict( + action="deny", + ge=20, + prefix="35.0.0.0/8", + sequence=10, + ), ], name="test_prefix", ), @@ -324,7 +389,12 @@ class TestIosPrefixListsModule(TestIosModule): dict( description="this is override test", entries=[ - dict(action="deny", ge=15, prefix="12.0.0.0/8", sequence=15), + dict( + action="deny", + ge=15, + prefix="12.0.0.0/8", + sequence=15, + ), dict( action="deny", ge=20, @@ -338,7 +408,12 @@ class TestIosPrefixListsModule(TestIosModule): dict( description="this is override test", entries=[ - dict(action="deny", ge=20, prefix="35.0.0.0/8", sequence=10), + dict( + action="deny", + ge=20, + prefix="35.0.0.0/8", + sequence=10, + ), ], name="test_override", ), @@ -391,9 +466,24 @@ class TestIosPrefixListsModule(TestIosModule): dict( description="this is test description", entries=[ - dict(action="deny", le=15, prefix="1.0.0.0/8", sequence=5), - dict(action="deny", ge=10, prefix="35.0.0.0/8", sequence=10), - dict(action="deny", ge=15, prefix="12.0.0.0/8", sequence=15), + dict( + action="deny", + le=15, + prefix="1.0.0.0/8", + sequence=5, + ), + dict( + action="deny", + ge=10, + prefix="35.0.0.0/8", + sequence=10, + ), + dict( + action="deny", + ge=15, + prefix="12.0.0.0/8", + sequence=15, + ), dict( action="deny", ge=20, @@ -407,7 +497,12 @@ class TestIosPrefixListsModule(TestIosModule): dict( description="this is test", entries=[ - dict(action="deny", ge=15, prefix="12.0.0.0/8", sequence=50), + dict( + action="deny", + ge=15, + prefix="12.0.0.0/8", + sequence=50, + ), ], name="test", ), @@ -421,7 +516,12 @@ class TestIosPrefixListsModule(TestIosModule): prefix="35.0.0.0/8", sequence=5, ), - dict(action="deny", ge=20, prefix="35.0.0.0/8", sequence=10), + dict( + action="deny", + ge=20, + prefix="35.0.0.0/8", + sequence=10, + ), ], name="test_prefix", ), @@ -491,7 +591,12 @@ class TestIosPrefixListsModule(TestIosModule): prefix="35.0.0.0/8", sequence=5, ), - dict(action="deny", ge=20, prefix="35.0.0.0/8", sequence=10), + dict( + action="deny", + ge=20, + prefix="35.0.0.0/8", + sequence=10, + ), ], name="test_prefix", ), diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_route_maps.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_route_maps.py index 0e450f908..27c5aa7f6 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_route_maps.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_route_maps.py @@ -7,9 +7,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_route_maps -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule, load_fixture @@ -58,7 +58,10 @@ class TestIosRouteMapsModule(TestIosModule): additional_paths=dict(all=True), as_path=dict(acls=[100, 120]), clns=dict(address="test_osi"), - community=dict(exact_match=True, name=["new_merge"]), + community=dict( + exact_match=True, + name=["new_merge"], + ), ip=dict(address=dict(acls=[10, 100])), length=dict(maximum=50000, minimum=5000), mpls_label=True, @@ -213,7 +216,10 @@ class TestIosRouteMapsModule(TestIosModule): vpn_distinguisher=dict(address="192.0.2.1:12"), ), global_route=True, - interfaces=["GigabitEthernet0/2", "GigabitEthernet0/1"], + interfaces=[ + "GigabitEthernet0/2", + "GigabitEthernet0/1", + ], level=dict(level_1_2=True), lisp="test_lisp", local_preference=100, @@ -249,7 +255,10 @@ class TestIosRouteMapsModule(TestIosModule): additional_paths=dict(all=True), as_path=dict(acls=[100, 120]), clns=dict(address="test_osi"), - community=dict(exact_match=True, name=["new_replace"]), + community=dict( + exact_match=True, + name=["new_replace"], + ), ip=dict(address=dict(acls=[10, 100])), length=dict(maximum=50000, minimum=5000), mpls_label=True, @@ -418,7 +427,10 @@ class TestIosRouteMapsModule(TestIosModule): vpn_distinguisher=dict(address="192.0.2.1:12"), ), global_route=True, - interfaces=["GigabitEthernet0/2", "GigabitEthernet0/1"], + interfaces=[ + "GigabitEthernet0/2", + "GigabitEthernet0/1", + ], level=dict(level_1_2=True), lisp="test_lisp", local_preference=100, @@ -454,7 +466,10 @@ class TestIosRouteMapsModule(TestIosModule): additional_paths=dict(all=True), as_path=dict(acls=[100, 120]), clns=dict(address="test_osi"), - community=dict(exact_match=True, name=["new_override"]), + community=dict( + exact_match=True, + name=["new_override"], + ), ip=dict(address=dict(acls=[10, 100])), length=dict(maximum=50000, minimum=5000), mpls_label=True, @@ -623,7 +638,10 @@ class TestIosRouteMapsModule(TestIosModule): vpn_distinguisher=dict(address="192.0.2.1:12"), ), global_route=True, - interfaces=["GigabitEthernet0/2", "GigabitEthernet0/1"], + interfaces=[ + "GigabitEthernet0/2", + "GigabitEthernet0/1", + ], level=dict(level_1_2=True), lisp="test_lisp", local_preference=100, @@ -676,7 +694,10 @@ class TestIosRouteMapsModule(TestIosModule): name=["99", "98", "test_1", "test_2"], ), extcommunity=["110", "130"], - interfaces=["GigabitEthernet0/1", "GigabitEthernet0/2"], + interfaces=[ + "GigabitEthernet0/1", + "GigabitEthernet0/2", + ], ip=dict(address=dict(acls=[10, 100])), ipv6=dict(route_source=dict(acl="test_ipv6")), length=dict(maximum=10000, minimum=1000), @@ -702,7 +723,9 @@ class TestIosRouteMapsModule(TestIosModule): sequence=30, set=dict( as_path=dict( - prepend=dict(as_number=["65512", 65522, "65532", 65543]), + prepend=dict( + as_number=["65512", 65522, "65532", 65543], + ), ), ), ), @@ -727,7 +750,10 @@ class TestIosRouteMapsModule(TestIosModule): vpn_distinguisher=dict(address="192.0.2.1:12"), ), global_route=True, - interfaces=["GigabitEthernet0/2", "GigabitEthernet0/1"], + interfaces=[ + "GigabitEthernet0/2", + "GigabitEthernet0/1", + ], level=dict(level_1_2=True), lisp="test_lisp", local_preference=100, diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_service.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_service.py index cbf9a9fd7..fa92efcdc 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_service.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_service.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_service -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_snmp_server.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_snmp_server.py index c45f3548a..0b8f797a1 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_snmp_server.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_snmp_server.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_snmp_server -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -54,11 +53,13 @@ class TestIosSnmpServerModule(TestIosModule): snmp-server engineID remote 172.16.0.2 udp-port 23 AB0C5342FAAB snmp-server engineID remote 172.16.0.1 udp-port 22 AB0C5342FAAA snmp-server user newuser newfamily v1 access 24 - snmp-server user paul familypaul v3 access ipv6 ipv6acl + snmp-server user paul familypaul v3 access ipv6 ipv6acl ipv4acl snmp-server user replaceUser replaceUser v3 snmp-server group group0 v3 auth - snmp-server group group1 v1 notify me access 2 + snmp-server group group1 v1 notify me access ipv6 ipv6acl 2 snmp-server group group2 v3 priv + snmp-server group group3 v1 access ipv6 ipv6acl + snmp-server group group4 v1 access 2 snmp-server group replaceUser v3 noauth snmp-server community commu1 view view1 RO ipv6 te snmp-server community commu2 RO 1322 @@ -166,15 +167,36 @@ class TestIosSnmpServerModule(TestIosModule): "context": ["contextWord2", "contextWord1"], "engine_id": [ {"id": "AB0C5342FA0A", "local": True}, - {"id": "AB0C5342FAAA", "remote": {"host": "172.16.0.1", "udp_port": 22}}, - {"id": "AB0C5342FAAB", "remote": {"host": "172.16.0.2", "udp_port": 23}}, + { + "id": "AB0C5342FAAA", + "remote": {"host": "172.16.0.1", "udp_port": 22}, + }, + { + "id": "AB0C5342FAAB", + "remote": {"host": "172.16.0.2", "udp_port": 23}, + }, ], - "file_transfer": {"access_group": "testAcl", "protocol": ["ftp", "rcp"]}, + "file_transfer": { + "access_group": "testAcl", + "protocol": ["ftp", "rcp"], + }, "groups": [ {"group": "group0", "version": "v3", "version_option": "auth"}, - {"acl_v4": "2", "group": "group1", "notify": "me", "version": "v1"}, + { + "acl_v4": "2", + "acl_v6": "ipv6acl", + "group": "group1", + "notify": "me", + "version": "v1", + }, {"group": "group2", "version": "v3", "version_option": "priv"}, - {"group": "replaceUser", "version": "v3", "version_option": "noauth"}, + { + "group": "replaceUser", + "version": "v3", + "version_option": "noauth", + }, + {"acl_v6": "ipv6acl", "group": "group3", "version": "v1"}, + {"acl_v4": "2", "group": "group4", "version": "v1"}, ], "hosts": [ { @@ -211,8 +233,16 @@ class TestIosSnmpServerModule(TestIosModule): "traps": ["msdp"], "version": "2c", }, - {"community_string": "check", "host": "172.16.2.99", "traps": ["slb"]}, - {"community_string": "checktrap", "host": "172.16.2.99", "traps": ["isis"]}, + { + "community_string": "check", + "host": "172.16.2.99", + "traps": ["slb"], + }, + { + "community_string": "checktrap", + "host": "172.16.2.99", + "traps": ["isis"], + }, ], "inform": {"pending": 2}, "ip": {"dscp": 2}, @@ -294,7 +324,12 @@ class TestIosSnmpServerModule(TestIosModule): }, "ipmulticast": True, "ipsec": { - "cryptomap": {"add": True, "attach": True, "delete": True, "detach": True}, + "cryptomap": { + "add": True, + "attach": True, + "delete": True, + "detach": True, + }, "too_many_sas": True, "tunnel": {"start": True, "stop": True}, }, @@ -347,14 +382,24 @@ class TestIosSnmpServerModule(TestIosModule): }, }, "users": [ - {"acl_v4": "24", "group": "newfamily", "username": "newuser", "version": "v1"}, { + "acl_v4": "24", + "group": "newfamily", + "username": "newuser", + "version": "v1", + }, + { + "acl_v4": "ipv4acl", "acl_v6": "ipv6acl", "group": "familypaul", "username": "paul", "version": "v3", }, - {"group": "replaceUser", "username": "replaceUser", "version": "v3"}, + { + "group": "replaceUser", + "username": "replaceUser", + "version": "v3", + }, ], }, } @@ -430,14 +475,32 @@ class TestIosSnmpServerModule(TestIosModule): "id": "AB0C5342FAAA", "remote": {"host": "172.16.0.1", "udp_port": 22, "vrf": "mgmt"}, }, - {"id": "AB0C5342FAAB", "remote": {"host": "172.16.0.2", "udp_port": 23}}, + { + "id": "AB0C5342FAAB", + "remote": {"host": "172.16.0.2", "udp_port": 23}, + }, ], - "file_transfer": {"access_group": "testAcl", "protocol": ["ftp", "rcp"]}, + "file_transfer": { + "access_group": "testAcl", + "protocol": ["ftp", "rcp"], + }, "groups": [ {"group": "group0", "version": "v3", "version_option": "auth"}, - {"acl_v4": "2", "group": "group1", "notify": "me", "version": "v1"}, + { + "acl_v4": "2", + "acl_v6": "ipv6acl", + "group": "group1", + "notify": "me", + "version": "v1", + }, {"group": "group2", "version": "v3", "version_option": "priv"}, - {"group": "replaceUser", "version": "v3", "version_option": "noauth"}, + { + "group": "replaceUser", + "version": "v3", + "version_option": "noauth", + }, + {"acl_v6": "ipv6acl", "group": "group3", "version": "v1"}, + {"acl_v4": "2", "group": "group4", "version": "v1"}, ], "hosts": [ { @@ -474,8 +537,16 @@ class TestIosSnmpServerModule(TestIosModule): "traps": ["msdp"], "version": "2c", }, - {"community_string": "check", "host": "172.16.2.99", "traps": ["slb"]}, - {"community_string": "checktrap", "host": "172.16.2.99", "traps": ["isis"]}, + { + "community_string": "check", + "host": "172.16.2.99", + "traps": ["slb"], + }, + { + "community_string": "checktrap", + "host": "172.16.2.99", + "traps": ["isis"], + }, ], "inform": {"pending": 2}, "ip": {"dscp": 2}, @@ -567,7 +638,12 @@ class TestIosSnmpServerModule(TestIosModule): }, "ipmulticast": True, "ipsec": { - "cryptomap": {"add": True, "attach": True, "delete": True, "detach": True}, + "cryptomap": { + "add": True, + "attach": True, + "delete": True, + "detach": True, + }, "too_many_sas": True, "tunnel": {"start": True, "stop": True}, }, @@ -620,15 +696,29 @@ class TestIosSnmpServerModule(TestIosModule): }, }, "users": [ - {"acl_v4": "24", "group": "newfamily", "username": "newuser", "version": "v1"}, + { + "acl_v4": "24", + "group": "newfamily", + "username": "newuser", + "version": "v1", + }, { "acl_v6": "ipv6only", "group": "familypaul", "username": "paul", "version": "v3", }, - {"group": "replaceUser", "username": "replaceUser", "version": "v3"}, - {"acl_v4": "27", "group": "mfamily", "username": "flow", "version": "v3"}, + { + "group": "replaceUser", + "username": "replaceUser", + "version": "v3", + }, + { + "acl_v4": "27", + "group": "mfamily", + "username": "flow", + "version": "v3", + }, ], }, } @@ -692,8 +782,10 @@ class TestIosSnmpServerModule(TestIosModule): "snmp-server host 172.16.2.99 check slb", "snmp-server host 172.16.2.99 checktrap isis", "snmp-server group group0 v3 auth", - "snmp-server group group1 v1 notify me access 2", + "snmp-server group group1 v1 notify me access ipv6 ipv6acl 2", "snmp-server group group2 v3 priv", + "snmp-server group group3 v1 access ipv6 ipv6acl", + "snmp-server group group4 v1 access 2", "snmp-server group replaceUser v3 noauth", "snmp-server engineID remote 172.16.0.1 udp-port 22 vrf mgmt AB0C5342FAAA", "snmp-server community commu1 view view1 ro ipv6 te", @@ -723,8 +815,10 @@ class TestIosSnmpServerModule(TestIosModule): snmp-server user replaceUser replaceUser v3 snmp-server user flow mfamily v3 access 27 snmp-server group group0 v3 auth - snmp-server group group1 v1 notify me access 2 + snmp-server group group1 v1 notify me access ipv6 ipv6acl 2 snmp-server group group2 v3 priv + snmp-server group group3 v1 access ipv6 ipv6acl + snmp-server group group4 v1 access 2 snmp-server group replaceUser v3 noauth snmp-server community commu1 view view1 RO ipv6 te snmp-server community commu2 RO 1322 @@ -985,8 +1079,10 @@ class TestIosSnmpServerModule(TestIosModule): "no snmp-server host 172.16.2.99 check slb", "no snmp-server host 172.16.2.99 checktrap isis", "no snmp-server group group0 v3 auth", - "no snmp-server group group1 v1 notify me access 2", + "no snmp-server group group1 v1 notify me access ipv6 ipv6acl 2", "no snmp-server group group2 v3 priv", + "no snmp-server group group3 v1 access ipv6 ipv6acl", + "no snmp-server group group4 v1 access 2", "no snmp-server group replaceUser v3 noauth", "no snmp-server engineID local AB0C5342FA0A", "no snmp-server engineID remote 172.16.0.1 udp-port 22 AB0C5342FAAA", @@ -1097,15 +1193,34 @@ class TestIosSnmpServerModule(TestIosModule): "context": ["contextWord2", "contextWord1"], "engine_id": [ {"id": "AB0C5342FA0A", "local": True}, - {"id": "AB0C5342FAAA", "remote": {"host": "172.16.0.1", "udp_port": 22}}, - {"id": "AB0C5342FAAB", "remote": {"host": "172.16.0.2", "udp_port": 23}}, + { + "id": "AB0C5342FAAA", + "remote": {"host": "172.16.0.1", "udp_port": 22}, + }, + { + "id": "AB0C5342FAAB", + "remote": {"host": "172.16.0.2", "udp_port": 23}, + }, ], - "file_transfer": {"access_group": "testAcl", "protocol": ["ftp", "rcp"]}, + "file_transfer": { + "access_group": "testAcl", + "protocol": ["ftp", "rcp"], + }, "groups": [ {"group": "group0", "version": "v3", "version_option": "auth"}, - {"acl_v4": "2", "group": "group1", "notify": "me", "version": "v1"}, + { + "acl_v4": "2", + "acl_v6": "ipv6acl", + "group": "group1", + "notify": "me", + "version": "v1", + }, {"group": "group2", "version": "v3", "version_option": "priv"}, - {"group": "replaceUser", "version": "v3", "version_option": "noauth"}, + { + "group": "replaceUser", + "version": "v3", + "version_option": "noauth", + }, ], "hosts": [ { @@ -1142,8 +1257,16 @@ class TestIosSnmpServerModule(TestIosModule): "traps": ["msdp"], "version": "2c", }, - {"community_string": "check", "host": "172.16.2.99", "traps": ["slb"]}, - {"community_string": "checktrap", "host": "172.16.2.99", "traps": ["isis"]}, + { + "community_string": "check", + "host": "172.16.2.99", + "traps": ["slb"], + }, + { + "community_string": "checktrap", + "host": "172.16.2.99", + "traps": ["isis"], + }, ], "inform": {"pending": 2}, "ip": {"dscp": 2}, @@ -1225,7 +1348,12 @@ class TestIosSnmpServerModule(TestIosModule): }, "ipmulticast": True, "ipsec": { - "cryptomap": {"add": True, "attach": True, "delete": True, "detach": True}, + "cryptomap": { + "add": True, + "attach": True, + "delete": True, + "detach": True, + }, "too_many_sas": True, "tunnel": {"start": True, "stop": True}, }, @@ -1278,18 +1406,35 @@ class TestIosSnmpServerModule(TestIosModule): }, }, "users": [ - {"acl_v4": "24", "group": "newfamily", "username": "newuser", "version": "v1"}, + { + "acl_v4": "24", + "group": "newfamily", + "username": "newuser", + "version": "v1", + }, { "acl_v6": "ipv6acl", "group": "familypaul", "username": "paul", "version": "v3", }, - {"group": "replaceUser", "username": "replaceUser", "version": "v3"}, + { + "group": "replaceUser", + "username": "replaceUser", + "version": "v3", + }, ], "views": [ - {"name": "no-write.test", "family_name": "testiso", "excluded": True}, - {"name": "newView", "family_name": "TestFamilyName", "included": True}, + { + "name": "no-write.test", + "family_name": "testiso", + "excluded": True, + }, + { + "name": "newView", + "family_name": "TestFamilyName", + "included": True, + }, ], }, } @@ -1318,7 +1463,7 @@ class TestIosSnmpServerModule(TestIosModule): "snmp-server host 172.16.2.1 version 2c trapsac tty", "snmp-server host 172.16.2.99 checktrap isis", "snmp-server group group0 v3 auth", - "snmp-server group group1 v1 notify me access 2", + "snmp-server group group1 v1 notify me access ipv6 ipv6acl 2", "snmp-server engineID local AB0C5342FA0A", "snmp-server engineID remote 172.16.0.1 udp-port 22 AB0C5342FAAA", "snmp-server community commu1 view view1 ro ipv6 te", @@ -1362,7 +1507,11 @@ class TestIosSnmpServerModule(TestIosModule): "traps": ["msdp"], "version": "2c", }, - {"community_string": "check", "host": "172.16.2.99", "traps": ["slb"]}, + { + "community_string": "check", + "host": "172.16.2.99", + "traps": ["slb"], + }, ], }, } @@ -1414,10 +1563,18 @@ class TestIosSnmpServerModule(TestIosModule): parsed = { "engine_id": [ {"id": "AB0C5342FA0A", "local": True}, - {"id": "AB0C5342FAAB", "remote": {"host": "172.16.0.2", "udp_port": 23}}, + { + "id": "AB0C5342FAAB", + "remote": {"host": "172.16.0.2", "udp_port": 23}, + }, ], "users": [ - {"username": "paul", "group": "familypaul", "version": "v3", "acl_v6": "ipv6acl"}, + { + "username": "paul", + "group": "familypaul", + "version": "v3", + "acl_v6": "ipv6acl", + }, ], "traps": { "ospf": { @@ -1494,8 +1651,16 @@ class TestIosSnmpServerModule(TestIosModule): "traps": ["msdp", "stun"], "version": "2c", }, - {"host": "172.16.2.99", "community_string": "check", "traps": ["slb", "pki"]}, - {"host": "172.16.2.99", "community_string": "checktrap", "traps": ["isis", "hsrp"]}, + { + "host": "172.16.2.99", + "community_string": "check", + "traps": ["slb", "pki"], + }, + { + "host": "172.16.2.99", + "community_string": "checktrap", + "traps": ["isis", "hsrp"], + }, ], "groups": [ { @@ -1583,7 +1748,11 @@ class TestIosSnmpServerModule(TestIosModule): "version": "3", "version_option": "noauth", }, - {"host": "172.16.2.99", "community_string": "checktrap", "traps": ["isis", "hsrp"]}, + { + "host": "172.16.2.99", + "community_string": "checktrap", + "traps": ["isis", "hsrp"], + }, ], "users": [ { @@ -1632,7 +1801,10 @@ class TestIosSnmpServerModule(TestIosModule): "config": { "engine_id": [ {"id": "AB0C5342FA0A", "local": True}, - {"id": "AB0C5342FAAB", "remote": {"host": "172.16.0.2", "udp_port": 23}}, + { + "id": "AB0C5342FAAB", + "remote": {"host": "172.16.0.2", "udp_port": 23}, + }, ], "views": [ {"family_name": "iso", "name": "ro"}, @@ -1728,8 +1900,16 @@ class TestIosSnmpServerModule(TestIosModule): "traps": ["msdp"], "version": "2c", }, - {"host": "172.16.2.99", "community_string": "check", "traps": ["slb"]}, - {"host": "172.16.2.99", "community_string": "checktrap", "traps": ["isis"]}, + { + "host": "172.16.2.99", + "community_string": "check", + "traps": ["slb"], + }, + { + "host": "172.16.2.99", + "community_string": "checktrap", + "traps": ["isis"], + }, ], }, "state": "rendered", @@ -1777,7 +1957,10 @@ class TestIosSnmpServerModule(TestIosModule): "username": "paul", "group": "familypaul", "version": "v3", - "authentication": {"algorithm": "md5", "password": "somepass"}, + "authentication": { + "algorithm": "md5", + "password": "somepass", + }, "encryption": { "priv": "aes", "priv_option": 128, @@ -1789,7 +1972,9 @@ class TestIosSnmpServerModule(TestIosModule): "state": "rendered", }, ) - rendered = ["snmp-server user paul familypaul v3 auth md5 somepass priv aes 128 somepass"] + rendered = [ + "snmp-server user paul familypaul v3 auth md5 somepass priv aes 128 somepass", + ] result = self.execute_module(changed=False) self.maxDiff = None self.assertEqual(sorted(result["rendered"]), sorted(rendered)) @@ -1902,10 +2087,11 @@ class TestIosSnmpServerModule(TestIosModule): }, } overridden = [ - "no snmp-server user flow mfamily v3 access 27", + "snmp-server user replaceUser replaceUser v3 auth md5 replaceUser access 22", "snmp-server user flow mfamily v3 access 27", "no snmp-server user newuser newfamily v1 access 24", ] + playbook["state"] = "overridden" set_module_args(playbook) result = self.execute_module(changed=True) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_static_routes.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_static_routes.py index d1046cc72..57a416433 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_static_routes.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_static_routes.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_static_routes -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule @@ -232,7 +231,10 @@ class TestIosStaticRoutesModule(TestIosModule): "routes": [ { "next_hops": [ - {"forward_router_address": "10.1.1.2", "track": 10}, + { + "forward_router_address": "10.1.1.2", + "track": 10, + }, { "forward_router_address": "10.1.1.3", "distance_metric": 22, @@ -422,7 +424,10 @@ class TestIosStaticRoutesModule(TestIosModule): "routes": [ { "next_hops": [ - {"forward_router_address": "10.1.1.2", "track": 10}, + { + "forward_router_address": "10.1.1.2", + "track": 10, + }, { "forward_router_address": "10.1.1.3", "distance_metric": 22, @@ -639,7 +644,10 @@ class TestIosStaticRoutesModule(TestIosModule): "routes": [ { "next_hops": [ - {"forward_router_address": "10.1.1.2", "track": 10}, + { + "forward_router_address": "10.1.1.2", + "track": 10, + }, { "forward_router_address": "10.1.1.3", "distance_metric": 22, @@ -829,7 +837,10 @@ class TestIosStaticRoutesModule(TestIosModule): "routes": [ { "next_hops": [ - {"forward_router_address": "10.1.1.2", "track": 10}, + { + "forward_router_address": "10.1.1.2", + "track": 10, + }, { "forward_router_address": "10.1.1.3", "distance_metric": 22, @@ -1046,7 +1057,10 @@ class TestIosStaticRoutesModule(TestIosModule): "routes": [ { "next_hops": [ - {"forward_router_address": "10.1.1.2", "track": 10}, + { + "forward_router_address": "10.1.1.2", + "track": 10, + }, { "forward_router_address": "10.1.1.3", "distance_metric": 22, @@ -1236,7 +1250,10 @@ class TestIosStaticRoutesModule(TestIosModule): "routes": [ { "next_hops": [ - {"forward_router_address": "10.1.1.2", "track": 10}, + { + "forward_router_address": "10.1.1.2", + "track": 10, + }, { "forward_router_address": "10.1.1.3", "distance_metric": 22, @@ -1716,7 +1733,9 @@ class TestIosStaticRoutesModule(TestIosModule): config=[ dict( vrf="testVrf2", - address_families=[dict(afi="ipv4", routes=[dict(dest="192.0.2.0/24")])], + address_families=[ + dict(afi="ipv4", routes=[dict(dest="192.0.2.0/24")]), + ], ), dict( vrf="testVrfv6", @@ -1840,7 +1859,10 @@ class TestIosStaticRoutesModule(TestIosModule): "routes": [ { "next_hops": [ - {"forward_router_address": "10.1.1.2", "track": 10}, + { + "forward_router_address": "10.1.1.2", + "track": 10, + }, { "forward_router_address": "10.1.1.3", "distance_metric": 22, @@ -2127,7 +2149,9 @@ class TestIosStaticRoutesModule(TestIosModule): "routes": [ { "dest": "10.0.0.0/8", - "next_hops": [{"interface": "Null0", "permanent": True}], + "next_hops": [ + {"interface": "Null0", "permanent": True}, + ], }, ], }, diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_system.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_system.py index b82d7ae48..915d7a1f7 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_system.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_system.py @@ -21,9 +21,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_system -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule, load_fixture @@ -70,7 +70,12 @@ class TestIosSystemModule(TestIosModule): def test_ios_system_domain_name_complex(self): set_module_args( - dict(domain_name=[{"name": "test.com", "vrf": "test"}, {"name": "eng.example.net"}]), + dict( + domain_name=[ + {"name": "test.com", "vrf": "test"}, + {"name": "eng.example.net"}, + ], + ), ) commands = [ "ip domain name vrf test test.com", @@ -107,7 +112,10 @@ class TestIosSystemModule(TestIosModule): def test_ios_system_name_servers(self): name_servers = ["8.8.8.8", "8.8.4.4"] set_module_args(dict(name_servers=name_servers)) - commands = ["no ip name-server vrf management 8.8.8.8", "ip name-server 8.8.4.4"] + commands = [ + "no ip name-server vrf management 8.8.8.8", + "ip name-server 8.8.4.4", + ] self.execute_module(changed=True, commands=commands, sort=False) def rest_ios_system_name_servers_complex(self): diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_user.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_user.py index 8cd3c07c3..a13467afb 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_user.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_user.py @@ -20,9 +20,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_user -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule, load_fixture @@ -93,18 +93,23 @@ class TestIosUserModule(TestIosModule): def test_ios_user_purge(self): set_module_args(dict(purge=True)) result = self.execute_module(changed=True) - cmd = { - "command": "no username ansible", - "answer": "y", - "newline": False, - "prompt": "This operation will remove all username related configurations with same name", - } + cmd = [ + "ip ssh pubkey-chain", + "no username ansible", + "exit", + { + "command": "no username ansible", + "answer": "y", + "newline": False, + "prompt": "This operation will remove all username related configurations with same name", + }, + ] result_cmd = [] for i in result["commands"]: result_cmd.append(i) - self.assertEqual(result_cmd, [cmd]) + self.assertEqual(result_cmd, cmd) def test_ios_user_view(self): set_module_args(dict(name="ansible", view="test")) @@ -112,18 +117,26 @@ class TestIosUserModule(TestIosModule): self.assertEqual(result["commands"], ["username ansible view test"]) def test_ios_user_update_password_changed(self): - set_module_args(dict(name="test", configured_password="test", update_password="on_create")) + set_module_args( + dict(name="test", configured_password="test", update_password="on_create"), + ) result = self.execute_module(changed=True) self.assertEqual(result["commands"], ["username test secret test"]) def test_ios_user_update_password_on_create_ok(self): set_module_args( - dict(name="ansible", configured_password="test", update_password="on_create"), + dict( + name="ansible", + configured_password="test", + update_password="on_create", + ), ) self.execute_module() def test_ios_user_update_password_always(self): - set_module_args(dict(name="ansible", configured_password="test", update_password="always")) + set_module_args( + dict(name="ansible", configured_password="test", update_password="always"), + ) result = self.execute_module(changed=True) self.assertEqual(result["commands"], ["username ansible secret test"]) @@ -151,3 +164,34 @@ class TestIosUserModule(TestIosModule): ] result = self.execute_module(changed=True, commands=commands) self.assertEqual(result["commands"], commands) + + def test_add_hashed_password(self): + hashed_password_val = "replacementforhashwhichissupposedtogohereonlyfortestingpurposes" + set_module_args( + dict( + name="ansible", + hashed_password={ + "type": 9, + "value": hashed_password_val, + }, + ), + ) + result = self.execute_module(changed=True) + self.assertEqual( + result["commands"], + [f"username ansible secret 9 {hashed_password_val}"], + ) + + def test_add_hpassword_with_type(self): + set_module_args( + dict( + name="ansible", + hashed_password={ + "type": 0, + "value": "test", + }, + password_type="password", + ), + ) + result = self.execute_module(changed=True) + self.assertEqual(result["commands"], ["username ansible password 0 test"]) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vlans.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vlans.py index c19d58ffd..10b30e140 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vlans.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vlans.py @@ -7,14 +7,13 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_vlans -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args -from .ios_module import TestIosModule, load_fixture +from .ios_module import TestIosModule class TestIosVlansModule(TestIosModule): @@ -23,50 +22,22 @@ class TestIosVlansModule(TestIosModule): def setUp(self): super(TestIosVlansModule, self).setUp() - self.mock_get_config = patch( - "ansible_collections.ansible.netcommon.plugins.module_utils.network.common.network.Config.get_config", - ) - self.get_config = self.mock_get_config.start() - - self.mock_load_config = patch( - "ansible_collections.ansible.netcommon.plugins.module_utils.network.common.network.Config.load_config", - ) - self.load_config = self.mock_load_config.start() - - self.mock_get_resource_connection_config = patch( - "ansible_collections.ansible.netcommon.plugins.module_utils.network.common.cfg.base." - "get_resource_connection", - ) - self.get_resource_connection_config = self.mock_get_resource_connection_config.start() - self.mock_get_resource_connection_facts = patch( - "ansible_collections.ansible.netcommon.plugins.module_utils.network.common.facts.facts." - "get_resource_connection", - ) - self.get_resource_connection_facts = self.mock_get_resource_connection_facts.start() - - self.mock_edit_config = patch( - "ansible_collections.cisco.ios.plugins.module_utils.network.ios.providers.providers.CliProvider.edit_config", - ) - self.edit_config = self.mock_edit_config.start() - - self.mock_get_resource_connection_facts_2 = patch( "ansible_collections.ansible.netcommon.plugins.module_utils.network.common.rm_base.resource_module_base." "get_resource_connection", ) - self.get_resource_connection_facts_2 = self.mock_get_resource_connection_facts_2.start() - - self.mock_execute_show_command_2 = patch( - "ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.vlans.vlans." - "VlansFacts.get_vlans_data", - ) - self.execute_show_command_2 = self.mock_execute_show_command_2.start() + self.get_resource_connection_facts = self.mock_get_resource_connection_facts.start() self.mock_execute_show_command = patch( "ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.vlans.vlans." "VlansFacts.get_vlans_data", ) self.execute_show_command = self.mock_execute_show_command.start() + self.mock_execute_show_command_conf = patch( + "ansible_collections.cisco.ios.plugins.module_utils.network.ios.facts.vlans.vlans." + "VlansFacts.get_vlan_conf_data", + ) + self.execute_show_command_conf = self.mock_execute_show_command_conf.start() self.mock_l2_device_command = patch( "ansible_collections.cisco.ios.plugins.modules.ios_vlans._is_l2_device", ) @@ -74,24 +45,55 @@ class TestIosVlansModule(TestIosModule): def tearDown(self): super(TestIosVlansModule, self).tearDown() - self.mock_get_resource_connection_config.stop() - self.mock_get_resource_connection_facts.stop() - self.mock_edit_config.stop() - self.mock_get_config.stop() - self.mock_load_config.stop() self.mock_execute_show_command.stop() + self.mock_execute_show_command_conf.stop() self.mock_l2_device_command.stop() - self.mock_get_resource_connection_facts_2.stop() - self.mock_execute_show_command_2.stop() - - def load_fixtures(self, commands=None): - def load_from_file(*args, **kwargs): - return load_fixture("ios_vlans_config.cfg") + def test_ios_vlans_merged(self): self.mock_l2_device_command.side_effect = True - self.execute_show_command.side_effect = load_from_file + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + VLAN Name Status Ports + ---- -------------------------------- --------- ------------------------------- + 1 default active Gi0/1, Gi0/2 + 123 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + 150 VLAN0150 active + 888 a_very_long_vlan_name_a_very_long_vlan_name + active + 1002 fddi-default act/unsup + 1003 trcrf-default act/unsup + 1004 fddinet-default act/unsup + 1005 trbrf-default act/unsup - def test_ios_vlans_merged(self): + VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + 1 enet 100001 1500 - - - - - 0 0 + 123 enet 100123 610 - - - - - 0 0 + 150 enet 100150 1500 - - - - - 0 0 + 888 enet 100888 1500 - - - - - 0 0 + 1002 fddi 101002 1500 - - - - - 0 0 + 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + 1004 fdnet 101004 1500 - - - ieee - 0 0 + 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + + + VLAN AREHops STEHops Backup CRF + ---- ------- ------- ---------- + 1003 7 7 off + + Remote SPAN VLANs + ------------------------------------------------------------------------------ + 150 + + Primary Secondary Type Ports + ------- --------- ----------------- ------------------------------------------ + """, + ) set_module_args( dict( config=[ @@ -107,14 +109,70 @@ class TestIosVlansModule(TestIosModule): ), ) result = self.execute_module(changed=True) - commands = ["vlan 200", "name test_vlan_200", "state active", "remote-span", "no shutdown"] + commands = [ + "vlan 200", + "name test_vlan_200", + "state active", + "remote-span", + "no shutdown", + ] self.assertEqual(result["commands"], commands) def test_ios_vlans_merged_idempotent(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + VLAN Name Status Ports + ---- -------------------------------- --------- ------------------------------- + 1 default active Gi0/1, Gi0/2 + 123 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + 150 VLAN0150 active + 888 a_very_long_vlan_name_a_very_long_vlan_name + active + 1002 fddi-default act/unsup + 1003 trcrf-default act/unsup + 1004 fddinet-default act/unsup + 1005 trbrf-default act/unsup + + VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + 1 enet 100001 1500 - - - - - 0 0 + 123 enet 100123 610 - - - - - 0 0 + 150 enet 100150 1500 - - - - - 0 0 + 888 enet 100888 1500 - - - - - 0 0 + 1002 fddi 101002 1500 - - - - - 0 0 + 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + 1004 fdnet 101004 1500 - - - ieee - 0 0 + 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + + + VLAN AREHops STEHops Backup CRF + ---- ------- ------- ---------- + 1003 7 7 off + + Remote SPAN VLANs + ------------------------------------------------------------------------------ + 150 + + Primary Secondary Type Ports + ------- --------- ----------------- ------------------------------------------ + """, + ) set_module_args( dict( config=[ - dict(mtu=1500, name="default", shutdown="disabled", state="active", vlan_id=1), + dict( + mtu=1500, + name="default", + shutdown="disabled", + state="active", + vlan_id=1, + ), dict( mtu=610, name="RemoteIsInMyName", @@ -172,6 +230,50 @@ class TestIosVlansModule(TestIosModule): self.execute_module(changed=False, commands=[], sort=True) def test_ios_vlans_replaced(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + VLAN Name Status Ports + ---- -------------------------------- --------- ------------------------------- + 1 default active Gi0/1, Gi0/2 + 123 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + 150 VLAN0150 active + 888 a_very_long_vlan_name_a_very_long_vlan_name + active + 1002 fddi-default act/unsup + 1003 trcrf-default act/unsup + 1004 fddinet-default act/unsup + 1005 trbrf-default act/unsup + + VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + 1 enet 100001 1500 - - - - - 0 0 + 123 enet 100123 610 - - - - - 0 0 + 150 enet 100150 1500 - - - - - 0 0 + 888 enet 100888 1500 - - - - - 0 0 + 1002 fddi 101002 1500 - - - - - 0 0 + 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + 1004 fdnet 101004 1500 - - - ieee - 0 0 + 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + + + VLAN AREHops STEHops Backup CRF + ---- ------- ------- ---------- + 1003 7 7 off + + Remote SPAN VLANs + ------------------------------------------------------------------------------ + 150 + + Primary Secondary Type Ports + ------- --------- ----------------- ------------------------------------------ + """, + ) set_module_args( dict( config=[ @@ -182,14 +284,26 @@ class TestIosVlansModule(TestIosModule): remote_span=True, vlan_id=200, ), - dict(name="Replace_RemoteIsInMyName", remote_span=True, vlan_id=123), + dict( + name="Replace_RemoteIsInMyName", + remote_span=True, + vlan_id=123, + ), dict( name="pvlan-primary", private_vlan=dict(type="primary", associated=[11, 12]), vlan_id=10, ), - dict(name="pvlan-community", private_vlan=dict(type="community"), vlan_id=11), - dict(name="pvlan-isolated", private_vlan=dict(type="isolated"), vlan_id=12), + dict( + name="pvlan-community", + private_vlan=dict(type="community"), + vlan_id=11, + ), + dict( + name="pvlan-isolated", + private_vlan=dict(type="isolated"), + vlan_id=12, + ), ], state="replaced", ), @@ -202,38 +316,79 @@ class TestIosVlansModule(TestIosModule): "remote-span", "no shutdown", "vlan 123", + "name Replace_RemoteIsInMyName", "no state active", - "no shutdown", "no mtu 610", - "name Replace_RemoteIsInMyName", "remote-span", + "shutdown", "vlan 10", - "no state active", - "no shutdown", - "no mtu 4472", "name pvlan-primary", "private-vlan primary", "private-vlan association 11,12", "vlan 11", - "no state active", - "no shutdown", - "no mtu 4472", "name pvlan-community", "private-vlan community", "vlan 12", - "no state active", - "no shutdown", - "no mtu 4472", "name pvlan-isolated", "private-vlan isolated", ] self.assertEqual(result["commands"], commands) def test_ios_vlans_replaced_idempotent(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + VLAN Name Status Ports + ---- -------------------------------- --------- ------------------------------- + 1 default active Gi0/1, Gi0/2 + 123 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + 150 VLAN0150 active + 888 a_very_long_vlan_name_a_very_long_vlan_name + active + 1002 fddi-default act/unsup + 1003 trcrf-default act/unsup + 1004 fddinet-default act/unsup + 1005 trbrf-default act/unsup + + VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + 1 enet 100001 1500 - - - - - 0 0 + 123 enet 100123 610 - - - - - 0 0 + 150 enet 100150 1500 - - - - - 0 0 + 888 enet 100888 1500 - - - - - 0 0 + 1002 fddi 101002 1500 - - - - - 0 0 + 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + 1004 fdnet 101004 1500 - - - ieee - 0 0 + 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + + + VLAN AREHops STEHops Backup CRF + ---- ------- ------- ---------- + 1003 7 7 off + + Remote SPAN VLANs + ------------------------------------------------------------------------------ + 150 + + Primary Secondary Type Ports + ------- --------- ----------------- ------------------------------------------ + """, + ) set_module_args( dict( config=[ - dict(mtu=1500, name="default", shutdown="disabled", state="active", vlan_id=1), + dict( + mtu=1500, + name="default", + shutdown="disabled", + state="active", + vlan_id=1, + ), dict( mtu=610, name="RemoteIsInMyName", @@ -291,6 +446,50 @@ class TestIosVlansModule(TestIosModule): self.execute_module(changed=False, commands=[], sort=True) def test_ios_vlans_overridden(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + VLAN Name Status Ports + ---- -------------------------------- --------- ------------------------------- + 1 default active Gi0/1, Gi0/2 + 123 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + 150 VLAN0150 active + 888 a_very_long_vlan_name_a_very_long_vlan_name + active + 1002 fddi-default act/unsup + 1003 trcrf-default act/unsup + 1004 fddinet-default act/unsup + 1005 trbrf-default act/unsup + + VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + 1 enet 100001 1500 - - - - - 0 0 + 123 enet 100123 610 - - - - - 0 0 + 150 enet 100150 1500 - - - - - 0 0 + 888 enet 100888 1500 - - - - - 0 0 + 1002 fddi 101002 1500 - - - - - 0 0 + 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + 1004 fdnet 101004 1500 - - - ieee - 0 0 + 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + + + VLAN AREHops STEHops Backup CRF + ---- ------- ------- ---------- + 1003 7 7 off + + Remote SPAN VLANs + ------------------------------------------------------------------------------ + 150 + + Primary Secondary Type Ports + ------- --------- ----------------- ------------------------------------------ + """, + ) set_module_args( dict( config=[ @@ -301,35 +500,123 @@ class TestIosVlansModule(TestIosModule): remote_span=True, vlan_id=200, ), - dict(name="Override_RemoteIsInMyName", remote_span=True, vlan_id=123), + dict( + name="Override_RemoteIsInMyName", + remote_span=True, + vlan_id=123, + ), ], state="overridden", ), ) result = self.execute_module(changed=True) commands = [ - "vlan 123", + "vlan 1", + "no name default", "no state active", - "no shutdown", - "no mtu 610", - "name Override_RemoteIsInMyName", - "remote-span", - "no vlan 150", - "no vlan 888", + "no mtu 1500", + "shutdown", + "vlan 150", + "no name VLAN0150", + "no state active", + "no mtu 1500", + "no remote-span", + "shutdown", + "vlan 888", + "no name a_very_long_vlan_name_a_very_long_vlan_name", + "no state active", + "no mtu 1500", + "shutdown", + "vlan 1002", + "no name fddi-default", + "no state active", + "no mtu 1500", + "shutdown", + "vlan 1003", + "no name trcrf-default", + "no state active", + "no mtu 4472", + "shutdown", + "vlan 1004", + "no name fddinet-default", + "no state active", + "no mtu 1500", + "shutdown", + "vlan 1005", + "no name trbrf-default", + "no state active", + "no mtu 4472", + "shutdown", "vlan 200", "name test_vlan_200", "state active", "remote-span", "no shutdown", + "vlan 123", + "name Override_RemoteIsInMyName", + "no state active", + "no mtu 610", + "remote-span", + "shutdown", ] self.assertEqual(result["commands"], commands) def test_ios_vlans_overridden_idempotent(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + VLAN Name Status Ports + ---- -------------------------------- --------- ------------------------------- + 1 default active Gi0/1, Gi0/2 + 123 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + 150 VLAN0150 active + 888 a_very_long_vlan_name_a_very_long_vlan_name + active + 1002 fddi-default act/unsup + 1003 trcrf-default act/unsup + 1004 fddinet-default act/unsup + 1005 trbrf-default act/unsup + + VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + 1 enet 100001 1500 - - - - - 0 0 + 123 enet 100123 610 - - - - - 0 0 + 150 enet 100150 1500 - - - - - 0 0 + 888 enet 100888 1500 - - - - - 0 0 + 1002 fddi 101002 1500 - - - - - 0 0 + 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + 1004 fdnet 101004 1500 - - - ieee - 0 0 + 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + + + VLAN AREHops STEHops Backup CRF + ---- ------- ------- ---------- + 1003 7 7 off + + Remote SPAN VLANs + ------------------------------------------------------------------------------ + 150 + + Primary Secondary Type Ports + ------- --------- ----------------- ------------------------------------------ + """, + ) set_module_args( dict( config=[ - dict(mtu=1500, name="default", shutdown="disabled", state="active", vlan_id=1), + dict( + mtu=1500, + name="default", + shutdown="disabled", + state="active", + vlan_id=1, + ), dict( mtu=610, name="RemoteIsInMyName", @@ -386,13 +673,108 @@ class TestIosVlansModule(TestIosModule): ) self.execute_module(changed=False, commands=[], sort=True) - def test_ios_delete_vlans(self): + def test_ios_delete_vlans_config(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + VLAN Name Status Ports + ---- -------------------------------- --------- ------------------------------- + 1 default active Gi0/1, Gi0/2 + 123 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + 150 VLAN0150 active + 888 a_very_long_vlan_name_a_very_long_vlan_name + active + 1002 fddi-default act/unsup + 1003 trcrf-default act/unsup + 1004 fddinet-default act/unsup + 1005 trbrf-default act/unsup + + VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + 1 enet 100001 1500 - - - - - 0 0 + 123 enet 100123 610 - - - - - 0 0 + 150 enet 100150 1500 - - - - - 0 0 + 888 enet 100888 1500 - - - - - 0 0 + 1002 fddi 101002 1500 - - - - - 0 0 + 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + 1004 fdnet 101004 1500 - - - ieee - 0 0 + 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + + + VLAN AREHops STEHops Backup CRF + ---- ------- ------- ---------- + 1003 7 7 off + + Remote SPAN VLANs + ------------------------------------------------------------------------------ + 150 + + Primary Secondary Type Ports + ------- --------- ----------------- ------------------------------------------ + """, + ) set_module_args(dict(config=[dict(vlan_id=150)], state="deleted")) result = self.execute_module(changed=True) - commands = ["no vlan 150"] + commands = [ + "vlan 150", + "no name VLAN0150", + "no state active", + "no mtu 1500", + "no remote-span", + "shutdown", + ] self.assertEqual(result["commands"], commands) def test_vlans_rendered(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + VLAN Name Status Ports + ---- -------------------------------- --------- ------------------------------- + 1 default active Gi0/1, Gi0/2 + 123 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + 150 VLAN0150 active + 888 a_very_long_vlan_name_a_very_long_vlan_name + active + 1002 fddi-default act/unsup + 1003 trcrf-default act/unsup + 1004 fddinet-default act/unsup + 1005 trbrf-default act/unsup + + VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + 1 enet 100001 1500 - - - - - 0 0 + 123 enet 100123 610 - - - - - 0 0 + 150 enet 100150 1500 - - - - - 0 0 + 888 enet 100888 1500 - - - - - 0 0 + 1002 fddi 101002 1500 - - - - - 0 0 + 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + 1004 fdnet 101004 1500 - - - ieee - 0 0 + 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + + + VLAN AREHops STEHops Backup CRF + ---- ------- ------- ---------- + 1003 7 7 off + + Remote SPAN VLANs + ------------------------------------------------------------------------------ + 150 + + Primary Secondary Type Ports + ------- --------- ----------------- ------------------------------------------ + """, + ) set_module_args( dict( config=[ @@ -407,7 +789,13 @@ class TestIosVlansModule(TestIosModule): state="rendered", ), ) - commands = ["name test_vlan_200", "no shutdown", "remote-span", "state active", "vlan 200"] + commands = [ + "name test_vlan_200", + "no shutdown", + "remote-span", + "state active", + "vlan 200", + ] result = self.execute_module(changed=False) self.assertEqual(sorted(result["rendered"]), commands) @@ -598,6 +986,50 @@ class TestIosVlansModule(TestIosModule): self.assertEqual(result["parsed"], parsed) def test_ios_vlans_gathered(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + VLAN Name Status Ports + ---- -------------------------------- --------- ------------------------------- + 1 default active Gi0/1, Gi0/2 + 123 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + 150 VLAN0150 active + 888 a_very_long_vlan_name_a_very_long_vlan_name + active + 1002 fddi-default act/unsup + 1003 trcrf-default act/unsup + 1004 fddinet-default act/unsup + 1005 trbrf-default act/unsup + + VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + 1 enet 100001 1500 - - - - - 0 0 + 123 enet 100123 610 - - - - - 0 0 + 150 enet 100150 1500 - - - - - 0 0 + 888 enet 100888 1500 - - - - - 0 0 + 1002 fddi 101002 1500 - - - - - 0 0 + 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + 1004 fdnet 101004 1500 - - - ieee - 0 0 + 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + + + VLAN AREHops STEHops Backup CRF + ---- ------- ------- ---------- + 1003 7 7 off + + Remote SPAN VLANs + ------------------------------------------------------------------------------ + 150 + + Primary Secondary Type Ports + ------- --------- ----------------- ------------------------------------------ + """, + ) set_module_args(dict(state="gathered")) gathered = [ { @@ -664,6 +1096,22 @@ class TestIosVlansModule(TestIosModule): self.assertEqual(result["gathered"], gathered) def test_ios_vlans_config_merged(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + vlan configuration 102 + member evpn-instance 102 vni 10102 + vlan configuration 201 + member evpn-instance 201 vni 10201 + vlan configuration 202 + member evpn-instance 202 vni 10202 + vlan configuration 901 + member vni 50901 + vlan configuration 902 + member vni 50902 + """, + ) set_module_args( dict( config=[ @@ -676,7 +1124,6 @@ class TestIosVlansModule(TestIosModule): ), ], state="merged", - configuration=True, ), ) result = self.execute_module(changed=True) @@ -687,21 +1134,37 @@ class TestIosVlansModule(TestIosModule): self.assertEqual(result["commands"], commands) def test_ios_vlans_config_merged_idempotent(self): - self.execute_show_command_2 = self.mock_execute_show_command_2.start() - self.execute_show_command_2.return_value = dedent( + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = dedent( """\ vlan configuration 101 - member evpn-instance 101 vni 10101 + member evpn-instance 101 vni 10101 vlan configuration 102 - member evpn-instance 102 vni 10102 + member evpn-instance 102 vni 10102 vlan configuration 201 - member evpn-instance 201 vni 10201 + member evpn-instance 201 vni 10201 vlan configuration 202 - member evpn-instance 202 vni 10202 + member evpn-instance 202 vni 10202 vlan configuration 901 - member vni 50901 + member vni 50901 vlan configuration 902 - member vni 50902 + member vni 50902 + """, + ) + self.execute_show_command.return_value = dedent( + """\ + vlan configuration 101 + member evpn-instance 101 vni 10101 + vlan configuration 102 + member evpn-instance 102 vni 10102 + vlan configuration 201 + member evpn-instance 201 vni 10201 + vlan configuration 202 + member evpn-instance 202 vni 10202 + vlan configuration 901 + member vni 50901 + vlan configuration 902 + member vni 50902 """, ) set_module_args( @@ -716,27 +1179,27 @@ class TestIosVlansModule(TestIosModule): ), ], state="merged", - configuration=True, ), ) self.execute_module(changed=False, commands=[], sort=True) def test_ios_vlans_config_overridden(self): - self.execute_show_command_2 = self.mock_execute_show_command_2.start() - self.execute_show_command_2.return_value = dedent( + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( """\ vlan configuration 101 - member evpn-instance 101 vni 10101 + member evpn-instance 101 vni 10101 vlan configuration 102 - member evpn-instance 102 vni 10102 + member evpn-instance 102 vni 10102 vlan configuration 201 - member evpn-instance 201 vni 10201 + member evpn-instance 201 vni 10201 vlan configuration 202 - member evpn-instance 202 vni 10202 + member evpn-instance 202 vni 10202 vlan configuration 901 - member vni 50901 + member vni 50901 vlan configuration 902 - member vni 50902 + member vni 50902 """, ) set_module_args( @@ -758,29 +1221,29 @@ class TestIosVlansModule(TestIosModule): ), ], state="overridden", - configuration=True, ), ) result = self.execute_module(changed=True) commands = [ - "vlan configuration 101", - "no member evpn-instance 101 vni 10101", - "vlan configuration 102", - "no member evpn-instance 102 vni 10102", + "vlan configuration 201", + "no member evpn-instance 201 vni 10201", + "vlan configuration 202", + "no member evpn-instance 202 vni 10202", + "vlan configuration 901", + "no member vni 50901", + "vlan configuration 902", + "no member vni 50902", "vlan configuration 101", "member evpn-instance 102 vni 10102", "vlan configuration 102", "member evpn-instance 101 vni 10101", - "no vlan configuration 201", - "no vlan configuration 202", - "no vlan configuration 901", - "no vlan configuration 902", ] self.assertEqual(result["commands"], commands) - def test_ios_delete_vlans_config(self): - self.execute_show_command_2 = self.mock_execute_show_command_2.start() - self.execute_show_command_2.return_value = dedent( + def test_ios_delete_vlans_config_2(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( """\ vlan configuration 101 member evpn-instance 101 vni 10101 @@ -801,16 +1264,48 @@ class TestIosVlansModule(TestIosModule): config=[ {"vlan_id": 101}, ], - configuration=True, state="deleted", ), ) result = self.execute_module(changed=True) + commands = ["vlan configuration 101", "no member evpn-instance 101 vni 10101"] + self.assertEqual(result["commands"], commands) + + def test_ios_purged_vlans_config(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( + """\ + vlan configuration 101 + member evpn-instance 101 vni 10101 + vlan configuration 102 + member evpn-instance 102 vni 10102 + vlan configuration 201 + member evpn-instance 201 vni 10201 + vlan configuration 202 + member evpn-instance 202 vni 10202 + vlan configuration 901 + member vni 50901 + vlan configuration 902 + member vni 50902 + """, + ) + set_module_args( + dict( + config=[ + {"vlan_id": 101}, + ], + state="purged", + ), + ) + result = self.execute_module(changed=True) commands = ["no vlan configuration 101"] self.assertEqual(result["commands"], commands) - def test_vlans_config_rendered(self): - self.execute_show_command_2.return_value = dedent( + def test_ios_vlans_config_rendered(self): + self.mock_l2_device_command.side_effect = True + self.mock_execute_show_command_conf.side_effect = "" + self.execute_show_command.return_value = dedent( """\ """, ) @@ -825,7 +1320,6 @@ class TestIosVlansModule(TestIosModule): ), ), ], - configuration=True, state="rendered", ), ) @@ -836,11 +1330,50 @@ class TestIosVlansModule(TestIosModule): result = self.execute_module(changed=False) self.assertEqual(result["rendered"], commands) - def test_vlans_config_parsed(self): + def test_ios_vlans_config_parsed(self): set_module_args( dict( running_config=dedent( """\ + VLAN Name Status Ports + ---- -------------------------------- --------- ------------------------------- + 1 default active Gi0/1, Gi0/2 + 101 RemoteIsInMyName act/unsup Fa0/1, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10, Fa0/11, Fa0/12 + Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21 + Fa0/22, Fa0/23, Fa0/24, Fa0/25, Fa0/26, Fa0/27, Fa0/28, Fa0/29, Fa0/30 + Fa0/31, Fa0/32, Fa0/33, Fa0/34, Fa0/35, Fa0/36, Fa0/37, Fa0/38, Fa0/39 + Fa0/40, Fa0/41, Fa0/42, Fa0/43, Fa0/44, Fa0/45, Fa0/46, Fa0/47, Fa0/48 + 150 VLAN0150 active + 888 a_very_long_vlan_name_a_very_long_vlan_name + active + 1002 fddi-default act/unsup + 1003 trcrf-default act/unsup + 1004 fddinet-default act/unsup + 1005 trbrf-default act/unsup + + VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 + ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ + 1 enet 100001 1500 - - - - - 0 0 + 101 enet 100101 610 - - - - - 0 0 + 150 enet 100150 1500 - - - - - 0 0 + 888 enet 100888 1500 - - - - - 0 0 + 1002 fddi 101002 1500 - - - - - 0 0 + 1003 trcrf 101003 4472 1005 3276 - - srb 0 0 + 1004 fdnet 101004 1500 - - - ieee - 0 0 + 1005 trbrf 101005 4472 - - 15 ibm - 0 0 + + + VLAN AREHops STEHops Backup CRF + ---- ------- ------- ---------- + 1003 7 7 off + + Remote SPAN VLANs + ------------------------------------------------------------------------------ + 150 + + Primary Secondary Type Ports + ------- --------- ----------------- ------------------------------------------ + vlan configuration 101 member evpn-instance 101 vni 10101 vlan configuration 102 @@ -850,30 +1383,69 @@ class TestIosVlansModule(TestIosModule): """, ), state="parsed", - configuration=True, ), ) parsed = [ { - "member": { - "evi": 101, - "vni": 10101, - }, + "name": "default", + "vlan_id": 1, + "state": "active", + "shutdown": "disabled", + "mtu": 1500, + }, + { + "name": "RemoteIsInMyName", "vlan_id": 101, + "state": "active", + "shutdown": "enabled", + "mtu": 610, + "member": {"evi": 101, "vni": 10101}, }, { - "member": { - "evi": 102, - "vni": 10102, - }, - "vlan_id": 102, + "name": "VLAN0150", + "vlan_id": 150, + "state": "active", + "shutdown": "disabled", + "mtu": 1500, + "remote_span": True, + }, + { + "name": "a_very_long_vlan_name_a_very_long_vlan_name", + "vlan_id": 888, + "state": "active", + "shutdown": "disabled", + "mtu": 1500, + }, + { + "name": "fddi-default", + "vlan_id": 1002, + "state": "active", + "shutdown": "enabled", + "mtu": 1500, }, { - "member": { - "vni": 50901, - }, - "vlan_id": 901, + "name": "trcrf-default", + "vlan_id": 1003, + "state": "active", + "shutdown": "enabled", + "mtu": 4472, + }, + { + "name": "fddinet-default", + "vlan_id": 1004, + "state": "active", + "shutdown": "enabled", + "mtu": 1500, + }, + { + "name": "trbrf-default", + "vlan_id": 1005, + "state": "active", + "shutdown": "enabled", + "mtu": 4472, }, + {"vlan_id": 102, "member": {"evi": 102, "vni": 10102}}, + {"vlan_id": 901, "member": {"vni": 50901}}, ] result = self.execute_module(changed=False) diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vrf.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vrf.py index d36ea41e1..f39061989 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vrf.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vrf.py @@ -21,9 +21,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_vrf -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule, load_fixture @@ -58,7 +58,11 @@ class TestIosVrfModule(TestIosModule): def load_fixtures(self, commands=None): self.get_config.return_value = load_fixture("ios_vrf_config.cfg") - self.exec_command.return_value = (0, load_fixture("ios_vrf_config.cfg").strip(), None) + self.exec_command.return_value = ( + 0, + load_fixture("ios_vrf_config.cfg").strip(), + None, + ) self.load_config.return_value = None def test_ios_vrf_name(self): @@ -158,7 +162,11 @@ class TestIosVrfModule(TestIosModule): def test_ios_vrfs_local_override_state(self): vrfs = [{"name": "test_1", "state": "absent"}, {"name": "test_2"}] set_module_args(dict(vrfs=vrfs, description="test string")) - commands = ["no vrf definition test_1", "vrf definition test_2", "description test string"] + commands = [ + "no vrf definition test_1", + "vrf definition test_2", + "description test string", + ] self.execute_module(changed=True, commands=commands, sort=False) def test_ios_vrf_route_both(self): @@ -178,7 +186,9 @@ class TestIosVrfModule(TestIosModule): self.execute_module(changed=True, commands=commands, sort=False) def test_ios_vrf_route_import(self): - set_module_args(dict(name="test_6", rd="3:100", route_import=["3:100", "4:100"])) + set_module_args( + dict(name="test_6", rd="3:100", route_import=["3:100", "4:100"]), + ) commands = [ "vrf definition test_6", "rd 3:100", @@ -188,7 +198,9 @@ class TestIosVrfModule(TestIosModule): self.execute_module(changed=True, commands=commands, sort=False) def test_ios_vrf_route_export(self): - set_module_args(dict(name="test_7", rd="4:100", route_export=["3:100", "4:100"])) + set_module_args( + dict(name="test_7", rd="4:100", route_export=["3:100", "4:100"]), + ) commands = [ "vrf definition test_7", "rd 4:100", @@ -210,7 +222,11 @@ class TestIosVrfModule(TestIosModule): def test_ios_vrf_route_both_ipv4(self): set_module_args( - dict(name="test_9", rd="168.0.0.9:100", route_both_ipv4=["168.0.0.9:100", "3:100"]), + dict( + name="test_9", + rd="168.0.0.9:100", + route_both_ipv4=["168.0.0.9:100", "3:100"], + ), ) commands = [ "vrf definition test_9", @@ -281,7 +297,11 @@ class TestIosVrfModule(TestIosModule): def test_ios_vrf_route_both_ipv6(self): set_module_args( - dict(name="test_13", rd="2:100", route_both_ipv6=["2:100", "168.0.0.13:100"]), + dict( + name="test_13", + rd="2:100", + route_both_ipv6=["2:100", "168.0.0.13:100"], + ), ) commands = [ "vrf definition test_13", @@ -301,7 +321,11 @@ class TestIosVrfModule(TestIosModule): def test_ios_vrf_route_import_ipv6(self): set_module_args( - dict(name="test_14", rd="3:100", route_import_ipv6=["3:100", "168.0.0.14:100"]), + dict( + name="test_14", + rd="3:100", + route_import_ipv6=["3:100", "168.0.0.14:100"], + ), ) commands = [ "vrf definition test_14", @@ -317,7 +341,11 @@ class TestIosVrfModule(TestIosModule): def test_ios_vrf_route_export_ipv6(self): set_module_args( - dict(name="test_15", rd="4:100", route_export_ipv6=["168.0.0.15:100", "4:100"]), + dict( + name="test_15", + rd="4:100", + route_export_ipv6=["168.0.0.15:100", "4:100"], + ), ) commands = [ "vrf definition test_15", @@ -386,7 +414,11 @@ class TestIosVrfModule(TestIosModule): def test_ios_vrf_interface_brownfield(self): set_module_args(dict(name="test_19", interfaces=["Ethernet1"])) - commands = ["interface Ethernet1", "vrf forwarding test_19", "ip address 1.2.3.4/5"] + commands = [ + "interface Ethernet1", + "vrf forwarding test_19", + "ip address 1.2.3.4/5", + ] self.execute_module(changed=True, commands=commands, sort=False) def test_ios_mdt(self): diff --git a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vxlan_vtep.py b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vxlan_vtep.py index 25b0bc8a6..13e6a5380 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vxlan_vtep.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/network/ios/test_ios_vxlan_vtep.py @@ -7,11 +7,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type - from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.ios.plugins.modules import ios_vxlan_vtep -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch from ansible_collections.cisco.ios.tests.unit.modules.utils import set_module_args from .ios_module import TestIosModule diff --git a/ansible_collections/cisco/ios/tests/unit/modules/utils.py b/ansible_collections/cisco/ios/tests/unit/modules/utils.py index 6184c48c3..87be9cf8e 100644 --- a/ansible_collections/cisco/ios/tests/unit/modules/utils.py +++ b/ansible_collections/cisco/ios/tests/unit/modules/utils.py @@ -4,12 +4,12 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type import json +from unittest import TestCase +from unittest.mock import patch + from ansible.module_utils import basic from ansible.module_utils._text import to_bytes -from ansible_collections.cisco.ios.tests.unit.compat import unittest -from ansible_collections.cisco.ios.tests.unit.compat.mock import patch - def set_module_args(args): if "_ansible_remote_tmp" not in args: @@ -40,7 +40,7 @@ def fail_json(*args, **kwargs): raise AnsibleFailJson(kwargs) -class ModuleTestCase(unittest.TestCase): +class ModuleTestCase(TestCase): def setUp(self): self.mock_module = patch.multiple( basic.AnsibleModule, diff --git a/ansible_collections/cisco/ios/tests/unit/plugins/cliconf/test_ios.py b/ansible_collections/cisco/ios/tests/unit/plugins/cliconf/test_ios.py index 0b7cf8704..eb094b2c7 100644 --- a/ansible_collections/cisco/ios/tests/unit/plugins/cliconf/test_ios.py +++ b/ansible_collections/cisco/ios/tests/unit/plugins/cliconf/test_ios.py @@ -31,10 +31,11 @@ try: except ImportError: from mock import MagicMock +from unittest import TestCase + from ansible.module_utils._text import to_bytes from ansible_collections.cisco.ios.plugins.cliconf import ios -from ansible_collections.cisco.ios.tests.unit.compat import unittest b_FIXTURE_DIR = b"%s/fixtures/ios" % ( @@ -49,7 +50,9 @@ def _connection_side_effect(*args, **kwargs): else: value = kwargs.get("command") - fixture_path = path.abspath(b"%s/%s" % (b_FIXTURE_DIR, b"_".join(value.split(b" ")))) + fixture_path = path.abspath( + b"%s/%s" % (b_FIXTURE_DIR, b"_".join(value.split(b" "))), + ) with open(fixture_path, "rb") as file_desc: return file_desc.read() except (OSError, IOError): @@ -63,7 +66,7 @@ def _connection_side_effect(*args, **kwargs): return "Nope" -class TestPluginCLIConfIOS(unittest.TestCase): +class TestPluginCLIConfIOS(TestCase): """Test class for IOS CLI Conf Methods""" def setUp(self): diff --git a/ansible_collections/cisco/ios/tox-ansible.ini b/ansible_collections/cisco/ios/tox-ansible.ini new file mode 100644 index 000000000..5e1f4b36a --- /dev/null +++ b/ansible_collections/cisco/ios/tox-ansible.ini @@ -0,0 +1,10 @@ +[ansible] + +skip = + py3.7 + py3.8 + 2.9 + 2.10 + 2.11 + 2.12 + 2.13 diff --git a/ansible_collections/cisco/ios/tox.ini b/ansible_collections/cisco/ios/tox.ini deleted file mode 100644 index 6ada631cb..000000000 --- a/ansible_collections/cisco/ios/tox.ini +++ /dev/null @@ -1,31 +0,0 @@ -[tox] -minversion = 1.4.2 -envlist = linters -skipsdist = True - -[testenv] -deps = -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt - -[testenv:black] -install_command = pip install {opts} {packages} -commands = - black -v {toxinidir} - -[testenv:linters] -install_command = pip install {opts} {packages} -commands = - black -v --diff --check {toxinidir} - flake8 {posargs} - -[testenv:venv] -commands = {posargs} - -[flake8] -# E123, E125 skipped as they are invalid PEP-8. - -show-source = True -ignore = E123,E125,E203,E402,E501,E741,F401,F811,F841,W503 -max-line-length = 160 -builtins = _ -exclude = .git,.tox,tests/unit/compat/ diff --git a/ansible_collections/cisco/iosxr/.ansible-lint b/ansible_collections/cisco/iosxr/.ansible-lint new file mode 100644 index 000000000..7324ff454 --- /dev/null +++ b/ansible_collections/cisco/iosxr/.ansible-lint @@ -0,0 +1,6 @@ +--- + +profile: production +skip_list: + # ansible-lint does not like the `import-3.11` ignore in tests/sanity/ignore-*.txt + - sanity diff --git a/ansible_collections/cisco/iosxr/.flake8 b/ansible_collections/cisco/iosxr/.flake8 new file mode 100644 index 000000000..9a7fc1251 --- /dev/null +++ b/ansible_collections/cisco/iosxr/.flake8 @@ -0,0 +1,67 @@ +[flake8] + +builtins = _ + +# Print the total number of errors: +count = true + +# Don't even try to analyze these: +extend-exclude = + # No need to traverse egg info dir + *.egg-info, + # tool cache dirs + *_cache + # project env vars + .env, + # GitHub configs + .github, + # Cache files of MyPy + .mypy_cache, + # Cache files of pytest + .pytest_cache, + # Temp dir of pytest-testmon + .tmontmp, + # Occasional virtualenv dir + .venv + # VS Code + .vscode, + # Temporary build dir + build, + # This contains sdists and wheels of ansible-navigator that we don't want to check + dist, + # Metadata of `pip wheel` cmd is autogenerated + pip-wheel-metadata, + # adjacent venv + venv + # ansible won't let me + __init__.py + +# IMPORTANT: avoid using ignore option, always use extend-ignore instead +# Completely and unconditionally ignore the following errors: +extend-ignore = + F841, + # line-length + E501, + # module level import not at top of file + E402 + +# Accessibility/large fonts and PEP8 unfriendly: +max-line-length = 120 + +# Allow certain violations in certain files: +# Please keep both sections of this list sorted, as it will be easier for others to find and add entries in the future +per-file-ignores = + # The following ignores have been researched and should be considered permanent + # each should be preceeded with an explanation of each of the error codes + # If other ignores are added for a specific file in the section following this, + # these will need to be added to that line as well. + + + # S101: Allow the use of assert within the tests directory, since tests require it. + tests/**.py: S101 + + # The following were present during the initial implementation. + # They are expected to be fixed and unignored over time. + +# Count the number of occurrences of each error/warning code and print a report: +statistics = true diff --git a/ansible_collections/cisco/iosxr/.github/CODEOWNERS b/ansible_collections/cisco/iosxr/.github/CODEOWNERS new file mode 100644 index 000000000..e69de29bb diff --git a/ansible_collections/cisco/iosxr/.github/workflows/ack.yml b/ansible_collections/cisco/iosxr/.github/workflows/ack.yml deleted file mode 100644 index fda595dc5..000000000 --- a/ansible_collections/cisco/iosxr/.github/workflows/ack.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# 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/cisco/iosxr/.github/workflows/check_label.yml b/ansible_collections/cisco/iosxr/.github/workflows/check_label.yml new file mode 100644 index 000000000..b120bfa32 --- /dev/null +++ b/ansible_collections/cisco/iosxr/.github/workflows/check_label.yml @@ -0,0 +1,11 @@ +--- +name: "Check label" +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: + check_label: + uses: ansible/ansible-content-actions/.github/workflows/check_label.yaml@main diff --git a/ansible_collections/cisco/iosxr/.github/workflows/codecoverage.yml b/ansible_collections/cisco/iosxr/.github/workflows/codecoverage.yml index b425edcc2..3e0f17919 100644 --- a/ansible_collections/cisco/iosxr/.github/workflows/codecoverage.yml +++ b/ansible_collections/cisco/iosxr/.github/workflows/codecoverage.yml @@ -1,8 +1,9 @@ --- -name: Code Coverage +name: "Code coverage" on: # yamllint disable-line rule:truthy push: + branches: [main] pull_request: branches: [ main ] diff --git a/ansible_collections/cisco/iosxr/.github/workflows/draft_release.yml b/ansible_collections/cisco/iosxr/.github/workflows/draft_release.yml new file mode 100644 index 000000000..88b45f2b0 --- /dev/null +++ b/ansible_collections/cisco/iosxr/.github/workflows/draft_release.yml @@ -0,0 +1,18 @@ +--- +name: "Draft release" +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: ${{ github.repository_owner }} + COLLECTION_NAME: iosxr + ANSIBLE_COLLECTIONS_PATHS: ./ +jobs: + update_release_draft: + uses: ansible/ansible-content-actions/.github/workflows/draft_release.yaml@main + with: + repo: ${{ github.event.pull_request.head.repo.full_name }} + secrets: + BOT_PAT: ${{ secrets.BOT_PAT }} diff --git a/ansible_collections/cisco/iosxr/.github/workflows/push.yml b/ansible_collections/cisco/iosxr/.github/workflows/push.yml deleted file mode 100644 index 06d11b8a0..000000000 --- a/ansible_collections/cisco/iosxr/.github/workflows/push.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -# 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: cisco - COLLECTION_NAME: iosxr - ANSIBLE_COLLECTIONS_PATHS: ./ - -jobs: - update_release_draft: - uses: ansible/devtools/.github/workflows/push_network.yml@main - with: - repo: ansible-collections/cisco.iosxr - secrets: - BOT_PAT: ${{ secrets.BOT_PAT }} diff --git a/ansible_collections/cisco/iosxr/.github/workflows/release.yml b/ansible_collections/cisco/iosxr/.github/workflows/release.yml index eb04259d1..6dbb1aa39 100644 --- a/ansible_collections/cisco/iosxr/.github/workflows/release.yml +++ b/ansible_collections/cisco/iosxr/.github/workflows/release.yml @@ -1,12 +1,12 @@ --- -name: release +name: "Release collection" on: # yamllint disable-line rule:truthy release: types: [published] jobs: release: - uses: ansible/devtools/.github/workflows/release_collection.yml@main + uses: ansible/ansible-content-actions/.github/workflows/release.yaml@main with: environment: release secrets: diff --git a/ansible_collections/cisco/iosxr/.github/workflows/tests.yml b/ansible_collections/cisco/iosxr/.github/workflows/tests.yml index 21f8ea565..64409a9a4 100644 --- a/ansible_collections/cisco/iosxr/.github/workflows/tests.yml +++ b/ansible_collections/cisco/iosxr/.github/workflows/tests.yml @@ -1,5 +1,5 @@ --- -name: CI +name: "CI" concurrency: group: ${{ github.head_ref || github.run_id }} @@ -13,15 +13,17 @@ on: # yamllint disable-line rule:truthy - 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 + uses: ansible/ansible-content-actions/.github/workflows/changelog.yaml@main if: github.event_name == 'pull_request' + build-import: + uses: ansible/ansible-content-actions/.github/workflows/build_import.yaml@main + ansible-lint: + uses: ansible/ansible-content-actions/.github/workflows/ansible_lint.yaml@main sanity: - uses: ansible-network/github_actions/.github/workflows/sanity.yml@main + uses: ansible/ansible-content-actions/.github/workflows/sanity.yaml@main unit-galaxy: - uses: ansible-network/github_actions/.github/workflows/unit_galaxy.yml@main + uses: ansible/ansible-content-actions/.github/workflows/unit.yaml@main unit-source: uses: ansible-network/github_actions/.github/workflows/unit_source.yml@main with: @@ -31,19 +33,20 @@ jobs: all_green: if: ${{ always() }} needs: - - ansible-lint - changelog + - build-import - sanity - unit-galaxy + - ansible-lint - unit-source runs-on: ubuntu-latest steps: - run: >- python -c "assert 'failure' not in set([ - '${{ needs.ansible-lint.result }}', '${{ needs.changelog.result }}', '${{ needs.sanity.result }}', '${{ needs.unit-galaxy.result }}', + '${{ needs.ansible-lint.result }}', '${{ needs.unit-source.result }}' ])" diff --git a/ansible_collections/cisco/iosxr/.pre-commit-config.yaml b/ansible_collections/cisco/iosxr/.pre-commit-config.yaml index 8fdbd4b3a..90167726d 100644 --- a/ansible_collections/cisco/iosxr/.pre-commit-config.yaml +++ b/ansible_collections/cisco/iosxr/.pre-commit-config.yaml @@ -3,7 +3,6 @@ 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 @@ -23,7 +22,7 @@ repos: - id: add-trailing-comma - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v3.0.3" + rev: "v4.0.0-alpha.8" hooks: - id: prettier entry: env CI=1 bash -c "prettier --list-different . || ec=$? && prettier --loglevel=error --write . && exit $ec" @@ -34,13 +33,18 @@ repos: - prettier-plugin-toml - repo: https://github.com/PyCQA/isort - rev: 5.12.0 + rev: 5.13.2 hooks: - id: isort name: Sort import statements using isort args: ["--filter-files"] - repo: https://github.com/psf/black - rev: 23.9.1 + rev: 23.12.1 hooks: - id: black + + - repo: https://github.com/pycqa/flake8 + rev: 7.0.0 + hooks: + - id: flake8 diff --git a/ansible_collections/cisco/iosxr/.zuul.yaml b/ansible_collections/cisco/iosxr/.zuul.yaml deleted file mode 100644 index a892ec722..000000000 --- a/ansible_collections/cisco/iosxr/.zuul.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -- project: - check: - jobs: - - ansible-tox-linters - gate: - jobs: - - ansible-tox-linters diff --git a/ansible_collections/cisco/iosxr/CHANGELOG.rst b/ansible_collections/cisco/iosxr/CHANGELOG.rst index b2f32296d..dfed48dc5 100644 --- a/ansible_collections/cisco/iosxr/CHANGELOG.rst +++ b/ansible_collections/cisco/iosxr/CHANGELOG.rst @@ -5,6 +5,68 @@ Cisco Iosxr Collection Release Notes .. contents:: Topics +v9.0.0 +====== + +Major Changes +------------- + +- Update the netcommon base version to support cli_restore plugin. + +Minor Changes +------------- + +- Add support for cli_restore functionality. +- Please refer the PR to know more about core changes (https://github.com/ansible-collections/ansible.netcommon/pull/618). +- cli_restore module is part of netcommon. + +v8.0.0 +====== + +Major Changes +------------- + +- This release removes previously deprecated module and attributes from this collection. Please refer to the **Removed Features** section for details. + +Removed Features (previously deprecated) +---------------------------------------- + +- Remove deprecated iosxr_logging module which is replaced with iosxr_logging_global resource module. + +v7.2.0 +====== + +Minor Changes +------------- + +- Add missing options in afi and safi in address-family of bgp_templates RM. + +Bugfixes +-------- + +- Fix 'afi' value in bgp_templates RM to valid values. + +v7.1.0 +====== + +Minor Changes +------------- + +- iosxr_facts - Add cdp neighbors in ansible_net_neighbors dictionary (https://github.com/ansible-collections/cisco.iosxr/pull/457). + +v7.0.0 +====== + +Release Summary +--------------- + +Starting from this release, the minimum `ansible-core` version this collection requires is `2.14.0`. The last known version compatible with ansible-core<2.14 is `v6.1.1`. + +Major Changes +------------- + +- Bumping `requires_ansible` to `>=2.14.0`, since previous ansible-core versions are EoL now. + v6.1.1 ====== @@ -323,7 +385,7 @@ Minor Changes New Modules ----------- -- iosxr_hostname - Manages hostname resource module +- iosxr_hostname - Resource module to configure hostname. v2.6.0 ====== @@ -348,7 +410,7 @@ Documentation Changes New Modules ----------- -- iosxr_snmp_server - Manages snmp-server resource module +- iosxr_snmp_server - Resource module to configure snmp server. v2.5.0 ====== @@ -384,7 +446,7 @@ Bugfixes New Modules ----------- -- iosxr_logging_global - Manages logging attributes of Cisco IOSXR network devices +- iosxr_logging_global - Resource module to configure logging. v2.3.0 ====== @@ -406,7 +468,7 @@ Bugfixes New Modules ----------- -- iosxr_prefix_lists - Prefix-Lists resource module. +- iosxr_prefix_lists - Resource module to configure prefix lists. v2.2.0 ====== @@ -492,9 +554,9 @@ Bugfixes New Modules ----------- -- iosxr_bgp_address_family - Manages BGP Address Family resource module. -- iosxr_bgp_global - Manages BGP global resource module. -- iosxr_bgp_neighbor_address_family - Manages BGP neighbor address family resource module. +- iosxr_bgp_address_family - Resource module to configure BGP Address family. +- iosxr_bgp_global - Resource module to configure BGP. +- iosxr_bgp_neighbor_address_family - Resource module to configure BGP Neighbor Address family. v1.2.1 ====== @@ -522,7 +584,7 @@ Bugfixes New Modules ----------- -- iosxr_ospf_interfaces - OSPF Interfaces Resource Module. +- iosxr_ospf_interfaces - Resource module to configure OSPF interfaces. v1.1.0 ====== @@ -536,7 +598,7 @@ Minor Changes New Modules ----------- -- iosxr_ospfv3 - ospfv3 resource module +- iosxr_ospfv3 - Resource module to configure OSPFv3. v1.0.5 ====== @@ -600,25 +662,22 @@ Netconf New Modules ----------- -- iosxr_acl_interfaces - ACL interfaces resource module -- iosxr_acls - ACLs resource module -- iosxr_banner - Manage multiline banners on Cisco IOS XR devices -- iosxr_bgp - Configure global BGP protocol settings on Cisco IOS-XR -- iosxr_command - Run commands on remote devices running Cisco IOS XR -- iosxr_config - Manage Cisco IOS XR configuration sections -- iosxr_facts - Get facts about iosxr devices. -- iosxr_interface - (deprecated, removed after 2022-06-01) Manage Interface on Cisco IOS XR network devices -- iosxr_interfaces - Interfaces resource module -- iosxr_l2_interfaces - L2 interfaces resource module -- iosxr_l3_interfaces - L3 interfaces resource module -- iosxr_lacp - LACP resource module -- iosxr_lacp_interfaces - LACP interfaces resource module -- iosxr_lag_interfaces - LAG interfaces resource module -- iosxr_lldp_global - LLDP resource module -- iosxr_lldp_interfaces - LLDP interfaces resource module -- iosxr_logging - Configuration management of system logging services on network devices +- iosxr_acl_interfaces - Resource module to configure ACL interfaces. +- iosxr_acls - Resource module to configure ACLs. +- iosxr_banner - Module to configure multiline banners. +- iosxr_command - Module to run commands on remote devices. +- iosxr_config - Module to manage configuration sections. +- iosxr_facts - Module to collect facts from remote devices. +- iosxr_interfaces - Resource module to configure interfaces. +- iosxr_l2_interfaces - Resource Module to configure L2 interfaces. +- iosxr_l3_interfaces - Resource module to configure L3 interfaces. +- iosxr_lacp - Resource module to configure LACP. +- iosxr_lacp_interfaces - Resource module to configure LACP interfaces. +- iosxr_lag_interfaces - Resource module to configure LAG interfaces. +- iosxr_lldp_global - Resource module to configure LLDP. +- iosxr_lldp_interfaces - Resource module to configure LLDP interfaces. - iosxr_netconf - Configures NetConf sub-system service on Cisco IOS-XR devices -- iosxr_ospfv2 - OSPFv2 resource module -- iosxr_static_routes - Static routes resource module -- iosxr_system - Manage the system attributes on Cisco IOS XR devices -- iosxr_user - Manage the aggregate of local users on Cisco IOS XR device +- iosxr_ospfv2 - Resource module to configure OSPFv2. +- iosxr_static_routes - Resource module to configure static routes. +- iosxr_system - Module to manage the system attributes. +- iosxr_user - Module to manage the aggregates of local users. diff --git a/ansible_collections/cisco/iosxr/FILES.json b/ansible_collections/cisco/iosxr/FILES.json index 6a5e295ed..cb0109374 100644 --- a/ansible_collections/cisco/iosxr/FILES.json +++ b/ansible_collections/cisco/iosxr/FILES.json @@ -8,80 +8,73 @@ "format": 1 }, { - "name": "codecov.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4aa7e485dd4db6f8a55b046088c745def2b3145d9499ccda4e9a3336467dcea2", + "name": ".github", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": ".zuul.yaml", + "name": ".github/dependabot.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "98905acf2eec9aa791cbf5a9effe6e7402bfaa3d2d204c30013120e00668da6e", + "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": ".yamllint", + "name": ".github/workflows/codecoverage.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "827ef9e031ecdcaf137be239d33ef93fcbbc3611cbb6b30b0e507d0e03373d0e", + "chksum_sha256": "57e1fa3c1edef3b462e23b36f5ea116f8675a71d7f49731193e38b708c859742", "format": 1 }, { - "name": "requirements.txt", + "name": ".github/workflows/draft_release.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0aaeda602db4a8ddfe5bc8dd02ee4f0b3f9bb6ca8cdbf621f182aa97684f9cf3", - "format": 1 - }, - { - "name": "meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "21ca3cc510cc10bdf4e5e307ddb88f579a61d9930590df5aa0f9651138e48c96", "format": 1 }, { - "name": "meta/runtime.yml", + "name": ".github/workflows/check_label.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "282baf25a62b30df4890c49e1c801e8cae2c99f5ae8fbc2b8cdfde9696b0fd86", + "chksum_sha256": "9eb6abad2038b10cd6ea70310aa88d163f10c374d1728df29bb553eff2acfaba", "format": 1 }, { - "name": "meta/__init__.py", + "name": ".github/workflows/tests.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b008151848bb3b3ae567b7e86cc9427a92d3d6a1251d5f5bcc8b006c43e1db00", "format": 1 }, { - "name": ".config", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": ".github/workflows/release.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2e3f90a3147d93b97347d8418352f23e201417e05539a466399dd258a65d699c", "format": 1 }, { - "name": ".config/ansible-lint.yml", + "name": ".github/CODEOWNERS", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f9938ba933b832ccd61f3871926f0e9f9380d87b1eae1b678f4faf8e2a43caaa", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "README.md", + "name": ".github/release-drafter.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc53e9f4e2f3828eb3c7759244b530b25b54fc4cc8d036b43110b170cd875d6d", + "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", "format": 1 }, { @@ -92,325 +85,346 @@ "format": 1 }, { - "name": "plugins/terminal", + "name": "plugins/doc_fragments", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/terminal/iosxr.py", + "name": "plugins/doc_fragments/iosxr.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d394b38929e905705fa833d4b590809c2af92af65a020d0ae91d5d2d1db72552", + "chksum_sha256": "183557f42150c3888baca407c30a651bb6d0c70a06ac55f409b271323dfcbacf", "format": 1 }, { - "name": "plugins/terminal/__init__.py", + "name": "plugins/doc_fragments/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/inventory", + "name": "plugins/lookup", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/inventory/__init__.py", + "name": "plugins/lookup/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/netconf", + "name": "plugins/action", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/netconf/iosxr.py", + "name": "plugins/action/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "73becb51b5fb1fb658f10fb8e769968743f8568c6e51dc1efda0849ca47eb8e0", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/netconf/__init__.py", + "name": "plugins/action/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/cache", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/hostname.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/cache/__init__.py", + "name": "plugins/action/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/cliconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/lacp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/cliconf/iosxr.py", + "name": "plugins/action/interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0f18b848a9e72c90c0ce622e251140d5f1382feb76ead150b765b21691ca271b", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/cliconf/__init__.py", + "name": "plugins/action/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/plugin_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/bgp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/plugin_utils/__init__.py", + "name": "plugins/action/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/lag_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_prefix_lists.py", + "name": "plugins/action/iosxr.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0b3f0327ec949a4b8ab7a5048a103a5cb3289b024622abec4bbe2b3492804c6c", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_lldp_global.py", + "name": "plugins/action/command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49bc5864ee42613d3a0cac34d9c146fb97297ef461d7fa497c94162662160e59", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_l3_interfaces.py", + "name": "plugins/action/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6c6340d2945f3e168b9a9fcd03b8abae7ee52871b76579ff65b0b4903da00f6", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_ntp_global.py", + "name": "plugins/action/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44b57fde643c0f5a18af667beb17595dfc30158fe67ca88402360fda946eceaa", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/iosxr_logging.py", + "name": "plugins/action/system.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb44b2574a5805f3a9c9a404975b04cf08a9904909005d03af66af013d84457c", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_ospf_interfaces.py", + "name": "plugins/action/bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab437abd41913bd6920581de125b9066482173009f6b622f626274d8836cda86", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_lag_interfaces.py", + "name": "plugins/action/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "569864637dc35847d5a0aacf66c5409fb65f4710a2e84e9799a80eab0339294b", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_config.py", + "name": "plugins/action/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba4792a4d08586afb467f7e0cf3dd6d6d5fcc47d36422a959f5184fc8d57cc06", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_bgp_templates.py", + "name": "plugins/action/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "40ee7eb47dd6a3033bc45b091baa7ae3fba0526bca4fe37df5bf10a6689db834", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_interfaces.py", + "name": "plugins/action/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1e798a795b46dff95909b6b4011b547615e62f5dc54386937db8295093e2d18", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_hostname.py", + "name": "plugins/action/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1f8d7e5854c1c58c1042dbccaa889a900ee6cea16e60d4e07bddedb78e6f47bf", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_bgp_global.py", + "name": "plugins/action/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bbdd49a43dc1e503dc098cee9c4674e6361f84ca2ed4322f61f8cb13cca170ad", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_banner.py", + "name": "plugins/action/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8eb8ad5c48dd48fad1e11367cd855dc063ce885756af15ffebdc7f532c4df8d0", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/__init__.py", + "name": "plugins/action/banner.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_command.py", + "name": "plugins/action/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "196518472d9b34a2a21ae411f2502cf727a43a514cd6ddc41c7f8901ba324d09", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_facts.py", + "name": "plugins/action/user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c6cb58faec6618afd00f86a150b6c988ec45eee37374b68dba4ebea2fbad540", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_acl_interfaces.py", + "name": "plugins/action/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "275c9849b7acc55cbe09e5e0f0ad131d5a5d353b81afae668cb09bf3790adf33", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_logging_global.py", + "name": "plugins/action/logging.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1077c960c02152e04c430f7cd1d297fb13561bdc69f57487aa1f5f1a4812c476", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_acls.py", + "name": "plugins/action/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc4cd90965c93b844a1f92b190ee7d7b04a9f9db28a3ffe06827f5019e37aace", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_ping.py", + "name": "plugins/action/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ef89908231a1608a01697d48679fa84d68ec3c15b92578121f404f992f261cb", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_l2_interfaces.py", + "name": "plugins/action/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c1d442ca73d5a3659890b219f3644d6f6017a1741a774003e21f8f9d93fdaec", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_snmp_server.py", + "name": "plugins/action/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61a2f4ec4c96619ce0f0a2a17e16c4b60782521b37c092a1d9e902e59b21743b", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_bgp_address_family.py", + "name": "plugins/action/config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4f4ad72baa6d8b68c826b6847e8a596f71412bc4df59baedadfa8442886de4b3", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_netconf.py", + "name": "plugins/action/netconf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e82057821034292044e1bf88de21e27e440ab0c733dabc12538937fffb0f92c6", + "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", "format": 1 }, { - "name": "plugins/modules/iosxr_user.py", + "name": "plugins/cache", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/cache/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d671a10633187ffc93ffaf4cecacc9f2075291f4c8d56507fd804cc3007e3bcd", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/iosxr_ospfv3.py", + "name": "plugins/inventory", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/inventory/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aa830b22d8c7b638523ce66b715e546f426f9fcde1ea6397d4fdf2475fe05610", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/iosxr_lacp_interfaces.py", + "name": "plugins/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/modules/iosxr_ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72e780af8c3b18294edbe23fd39c1a2a9d180b0866f61be108dc3e5ce40e7cf8", + "chksum_sha256": "aa830b22d8c7b638523ce66b715e546f426f9fcde1ea6397d4fdf2475fe05610", "format": 1 }, { - "name": "plugins/modules/iosxr_lacp.py", + "name": "plugins/modules/iosxr_bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a4e892df5e655246bac1268b8830f4aedabe3da7f5589cf658b88d81119e972", + "chksum_sha256": "bbdd49a43dc1e503dc098cee9c4674e6361f84ca2ed4322f61f8cb13cca170ad", "format": 1 }, { - "name": "plugins/modules/iosxr_ospfv2.py", + "name": "plugins/modules/iosxr_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f05278972e5a7fac3caea9d2373c1dc4c2cd13d8f686fd8fc14c46d86426e676", + "chksum_sha256": "ba4792a4d08586afb467f7e0cf3dd6d6d5fcc47d36422a959f5184fc8d57cc06", "format": 1 }, { - "name": "plugins/modules/iosxr_system.py", + "name": "plugins/modules/iosxr_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "193c0aa18d31526387e4b0c84826661613da5ebe5dca17b66ec02e3c21f6fc82", + "chksum_sha256": "d671a10633187ffc93ffaf4cecacc9f2075291f4c8d56507fd804cc3007e3bcd", "format": 1 }, { @@ -421,10 +435,66 @@ "format": 1 }, { - "name": "plugins/modules/iosxr_static_routes.py", + "name": "plugins/modules/iosxr_lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8101a07f18d5eb1098681b40627c3d64b660bb767040a59f81ab7655d785b0fb", + "chksum_sha256": "569864637dc35847d5a0aacf66c5409fb65f4710a2e84e9799a80eab0339294b", + "format": 1 + }, + { + "name": "plugins/modules/iosxr_command.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "196518472d9b34a2a21ae411f2502cf727a43a514cd6ddc41c7f8901ba324d09", + "format": 1 + }, + { + "name": "plugins/modules/iosxr_bgp_address_family.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4f4ad72baa6d8b68c826b6847e8a596f71412bc4df59baedadfa8442886de4b3", + "format": 1 + }, + { + "name": "plugins/modules/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/modules/iosxr_lacp_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "72e780af8c3b18294edbe23fd39c1a2a9d180b0866f61be108dc3e5ce40e7cf8", + "format": 1 + }, + { + "name": "plugins/modules/iosxr_ospf_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ab437abd41913bd6920581de125b9066482173009f6b622f626274d8836cda86", + "format": 1 + }, + { + "name": "plugins/modules/iosxr_acl_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "275c9849b7acc55cbe09e5e0f0ad131d5a5d353b81afae668cb09bf3790adf33", + "format": 1 + }, + { + "name": "plugins/modules/iosxr_ntp_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "44b57fde643c0f5a18af667beb17595dfc30158fe67ca88402360fda946eceaa", + "format": 1 + }, + { + "name": "plugins/modules/iosxr_static_routes.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8101a07f18d5eb1098681b40627c3d64b660bb767040a59f81ab7655d785b0fb", "format": 1 }, { @@ -435,140 +505,147 @@ "format": 1 }, { - "name": "plugins/sub_plugins", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/iosxr_logging_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1077c960c02152e04c430f7cd1d297fb13561bdc69f57487aa1f5f1a4812c476", "format": 1 }, { - "name": "plugins/sub_plugins/grpc", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/iosxr_acls.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bc4cd90965c93b844a1f92b190ee7d7b04a9f9db28a3ffe06827f5019e37aace", "format": 1 }, { - "name": "plugins/sub_plugins/grpc/iosxr.py", + "name": "plugins/modules/iosxr_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8003d9ffb32e5cd8ab1926463a1ff2f9443eb0566ada4a9150cbf3a82d231293", + "chksum_sha256": "c1e798a795b46dff95909b6b4011b547615e62f5dc54386937db8295093e2d18", "format": 1 }, { - "name": "plugins/sub_plugins/grpc/__init__.py", + "name": "plugins/modules/iosxr_lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8a4e892df5e655246bac1268b8830f4aedabe3da7f5589cf658b88d81119e972", "format": 1 }, { - "name": "plugins/sub_plugins/grpc/pb", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/iosxr_hostname.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1f8d7e5854c1c58c1042dbccaa889a900ee6cea16e60d4e07bddedb78e6f47bf", "format": 1 }, { - "name": "plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py", + "name": "plugins/modules/iosxr_lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "978c4404c6dd6bbbe494930f6aa0f8268e9d365e4e8c4cacc8a9eea40de96a41", + "chksum_sha256": "49bc5864ee42613d3a0cac34d9c146fb97297ef461d7fa497c94162662160e59", "format": 1 }, { - "name": "plugins/sub_plugins/grpc/pb/__init__.py", + "name": "plugins/modules/iosxr_snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "61a2f4ec4c96619ce0f0a2a17e16c4b60782521b37c092a1d9e902e59b21743b", "format": 1 }, { - "name": "plugins/doc_fragments", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/iosxr_prefix_lists.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0b3f0327ec949a4b8ab7a5048a103a5cb3289b024622abec4bbe2b3492804c6c", "format": 1 }, { - "name": "plugins/doc_fragments/iosxr.py", + "name": "plugins/modules/iosxr_bgp_templates.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "183557f42150c3888baca407c30a651bb6d0c70a06ac55f409b271323dfcbacf", + "chksum_sha256": "f4eebed9887f02d153af7ca98c7b890e9a76f31b0bdabe84a7a57b6c024eefec", "format": 1 }, { - "name": "plugins/doc_fragments/__init__.py", + "name": "plugins/modules/iosxr_l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8c1d442ca73d5a3659890b219f3644d6f6017a1741a774003e21f8f9d93fdaec", "format": 1 }, { - "name": "plugins/lookup", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/iosxr_facts.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5fda4a78e44200b1b3cd6bece6b0bb5990058dbd355c880e8d3fd8c8674e0d9c", "format": 1 }, { - "name": "plugins/lookup/__init__.py", + "name": "plugins/modules/iosxr_netconf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "e82057821034292044e1bf88de21e27e440ab0c733dabc12538937fffb0f92c6", "format": 1 }, { - "name": "plugins/filter", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/iosxr_banner.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8eb8ad5c48dd48fad1e11367cd855dc063ce885756af15ffebdc7f532c4df8d0", "format": 1 }, { - "name": "plugins/filter/__init__.py", + "name": "plugins/modules/iosxr_ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "6ef89908231a1608a01697d48679fa84d68ec3c15b92578121f404f992f261cb", "format": 1 }, { - "name": "plugins/test", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/iosxr_ospfv2.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f05278972e5a7fac3caea9d2373c1dc4c2cd13d8f686fd8fc14c46d86426e676", "format": 1 }, { - "name": "plugins/test/__init__.py", + "name": "plugins/modules/iosxr_l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c6c6340d2945f3e168b9a9fcd03b8abae7ee52871b76579ff65b0b4903da00f6", "format": 1 }, { - "name": "plugins/module_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/iosxr_system.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "193c0aa18d31526387e4b0c84826661613da5ebe5dca17b66ec02e3c21f6fc82", "format": 1 }, { - "name": "plugins/module_utils/common", + "name": "plugins/module_utils", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/common/__init__.py", + "name": "plugins/module_utils/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/__init__.py", + "name": "plugins/module_utils/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/common/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", @@ -596,31 +673,38 @@ "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates", + "name": "plugins/module_utils/network/iosxr/utils", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/bgp_global.py", + "name": "plugins/module_utils/network/iosxr/utils/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25b8c064cd99853d76b014b92f3c76a338938acf94adb3a72fa542472406b942", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/bgp_address_family.py", + "name": "plugins/module_utils/network/iosxr/utils/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f1e960a978c09f2a52b03c805161f233eb8ceae9410cec582fac8844654c34f1", + "chksum_sha256": "c445382425553068e00713ecd367720b9b4d4081558e4d8f5cb35c96d511fea9", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/bgp_neighbor_address_family.py", + "name": "plugins/module_utils/network/iosxr/iosxr.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ccb3f34513a75b6eb7f2935db597bea5be13fb3e4241c5fee2ba0b1b5ead559b", + "chksum_sha256": "f6657f778058c2d8d464841539530043d63499640944be209a90bbd886c1d55e", + "format": 1 + }, + { + "name": "plugins/module_utils/network/iosxr/rm_templates", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { @@ -631,17 +715,17 @@ "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/ntp_global.py", + "name": "plugins/module_utils/network/iosxr/rm_templates/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fac890a98ecef634dd387d338339354b7dc258f4263a5d54d3941e4acc94a17f", + "chksum_sha256": "6ade3f90bab09cd4105e319c9c003b9d9fc7f5a5c75b507bd3f4ec1f3f8089f3", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/snmp_server.py", + "name": "plugins/module_utils/network/iosxr/rm_templates/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d4e7c9a631f91d84ba1224891fe4397e69b51ba23d06c4c3469e2f8ec6b1fc2e", + "chksum_sha256": "fac890a98ecef634dd387d338339354b7dc258f4263a5d54d3941e4acc94a17f", "format": 1 }, { @@ -652,38 +736,45 @@ "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/ospfv3.py", + "name": "plugins/module_utils/network/iosxr/rm_templates/bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ea3917736e2a559bd42a445aba19a6995ea8667f10175ffe97a08bf503c8fbd2", + "chksum_sha256": "ccb3f34513a75b6eb7f2935db597bea5be13fb3e4241c5fee2ba0b1b5ead559b", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/bgp_templates.py", + "name": "plugins/module_utils/network/iosxr/rm_templates/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "876b6f3b7e30fee8a44bfebeab37157ea103bca3b352d0cdc70939ef2b8861eb", + "chksum_sha256": "d4e7c9a631f91d84ba1224891fe4397e69b51ba23d06c4c3469e2f8ec6b1fc2e", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/acl_interfaces.py", + "name": "plugins/module_utils/network/iosxr/rm_templates/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ade3f90bab09cd4105e319c9c003b9d9fc7f5a5c75b507bd3f4ec1f3f8089f3", + "chksum_sha256": "816f210592bb1df59561a09a6e8f8d785ec92aec48bcc5f0504b3dd47440cf58", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/ospfv2.py", + "name": "plugins/module_utils/network/iosxr/rm_templates/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "816f210592bb1df59561a09a6e8f8d785ec92aec48bcc5f0504b3dd47440cf58", + "chksum_sha256": "ea3917736e2a559bd42a445aba19a6995ea8667f10175ffe97a08bf503c8fbd2", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/ping.py", + "name": "plugins/module_utils/network/iosxr/rm_templates/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b790e08ba0a4c1a36274554607d74f62cb773680cd8a326075694d8eee4db64c", + "chksum_sha256": "25b8c064cd99853d76b014b92f3c76a338938acf94adb3a72fa542472406b942", + "format": 1 + }, + { + "name": "plugins/module_utils/network/iosxr/rm_templates/logging_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d486e4deec80e5b9ea169ffc09571cc1674c4dbe2029efff4ad3cb8fe683750a", "format": 1 }, { @@ -694,24 +785,31 @@ "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/logging_global.py", + "name": "plugins/module_utils/network/iosxr/rm_templates/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d486e4deec80e5b9ea169ffc09571cc1674c4dbe2029efff4ad3cb8fe683750a", + "chksum_sha256": "f1e960a978c09f2a52b03c805161f233eb8ceae9410cec582fac8844654c34f1", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/rm_templates/prefix_lists.py", + "name": "plugins/module_utils/network/iosxr/rm_templates/bgp_templates.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5f3032f6828fe63605f2360f996d3981b6d0677758ff33e87fc60ad2dda1f151", + "chksum_sha256": "876b6f3b7e30fee8a44bfebeab37157ea103bca3b352d0cdc70939ef2b8861eb", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/iosxr.py", + "name": "plugins/module_utils/network/iosxr/rm_templates/ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6657f778058c2d8d464841539530043d63499640944be209a90bbd886c1d55e", + "chksum_sha256": "b790e08ba0a4c1a36274554607d74f62cb773680cd8a326075694d8eee4db64c", + "format": 1 + }, + { + "name": "plugins/module_utils/network/iosxr/rm_templates/prefix_lists.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5f3032f6828fe63605f2360f996d3981b6d0677758ff33e87fc60ad2dda1f151", "format": 1 }, { @@ -729,367 +827,353 @@ "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_address_family", + "name": "plugins/module_utils/network/iosxr/facts/lacp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/iosxr/facts/lacp/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b24aa48cc4250d0c35970a15b79a1ebc374b3fb85ffa93ce1da93d50770faf6c", + "chksum_sha256": "080864178932c583b11f29ceec1d86ba31f0f4d4751dce9d4bcdb30a4136162e", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/lacp/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/static_routes", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "plugins/module_utils/network/iosxr/facts/static_routes/static_routes.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d0fa9a0327c99fbf0af8fe66e68927427e0550c651bd0c20d98a0867e64e4c17", - "format": 1 - }, - { - "name": "plugins/module_utils/network/iosxr/facts/static_routes/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "be87e4de33120eb7c34ddae26f81cce6b290a2031e890782af82ab5200bb953a", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/prefix_lists", + "name": "plugins/module_utils/network/iosxr/facts/legacy", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/legacy/base.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "1b3e042fe5528b6be3d3a3830e3856f36348a1ac02d9264774753c2feded3300", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/iosxr/facts/legacy/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0f5787451ba55b8bbb7d7e7bce4d4b63362f83fe13c7f6df8bacd71c26cc9e6f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/hostname", + "name": "plugins/module_utils/network/iosxr/facts/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/hostname/hostname.py", + "name": "plugins/module_utils/network/iosxr/facts/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "778551a6d5240dc85297041639ae94c4a4d6ec0d1781f44b2527081702e62fdc", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/hostname/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "21d2d34be3e88000fa4c64da457b2d85dc53800d3c45583ecc02842e31916163", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lldp_interfaces", + "name": "plugins/module_utils/network/iosxr/facts/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9a6f4b29fc202cb7c343598c50d0de15708207c98e723bea1333bf3451877ff2", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/iosxr/facts/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f4b71b3d54842146e02ab84d93e0d2616790e7039db63b04a3f6ffc618b15bca", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lacp", + "name": "plugins/module_utils/network/iosxr/facts/acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lacp/lacp.py", + "name": "plugins/module_utils/network/iosxr/facts/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "080864178932c583b11f29ceec1d86ba31f0f4d4751dce9d4bcdb30a4136162e", + "chksum_sha256": "1bbe7d9835d9c8d883a86444d77ea71c61bf0e9b5927bd4036c880b8b1e57e52", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lacp/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ospfv2", + "name": "plugins/module_utils/network/iosxr/facts/l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ospfv2/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "a92bb174bb343d43cc987bc2bef2c1a213be19c0b3fc775e1220d88961a1ab4e", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/iosxr/facts/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21d2d34be3e88000fa4c64da457b2d85dc53800d3c45583ecc02842e31916163", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/logging_global", + "name": "plugins/module_utils/network/iosxr/facts/lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/logging_global/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "0de675b8a438054c38af32059948d99e9aa80584cac4d3a862096c5733f8b8d1", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/logging_global/logging_global.py", + "name": "plugins/module_utils/network/iosxr/facts/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "50e7cebaa5d2b4073eb83908be1cdc2e616b90a76a3683fe4909ca55c9fe1e6a", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ospfv3", + "name": "plugins/module_utils/network/iosxr/facts/bgp_templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ospfv3/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/bgp_templates/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/iosxr/facts/bgp_templates/bgp_templates.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d9f7585ec696598b8adfbeb1d46670ea49ef94e4811fd41dd5d62cb9574460d", + "chksum_sha256": "ae637abb3b5e35bf8b0c7b9992af8918fe0dcd2086d99c193bc7242f765faa07", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_neighbor_address_family", + "name": "plugins/module_utils/network/iosxr/facts/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_neighbor_address_family/bgp_neighbor_address_family.py", + "name": "plugins/module_utils/network/iosxr/facts/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76c598a854f41b6c0b661c3b53e5f4d57577d5fe5055f67f291d92b08b612192", + "chksum_sha256": "778551a6d5240dc85297041639ae94c4a4d6ec0d1781f44b2527081702e62fdc", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_neighbor_address_family/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/legacy", + "name": "plugins/module_utils/network/iosxr/facts/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/legacy/base.py", + "name": "plugins/module_utils/network/iosxr/facts/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3eef25f6033d14eeac6bd15f29a4da63b9096c8acb1003688f66106100da3650", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/legacy/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/lldp_interfaces/lldp_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f4b71b3d54842146e02ab84d93e0d2616790e7039db63b04a3f6ffc618b15bca", + "format": 1 + }, + { + "name": "plugins/module_utils/network/iosxr/facts/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/l2_interfaces", + "name": "plugins/module_utils/network/iosxr/facts/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/iosxr/facts/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a92bb174bb343d43cc987bc2bef2c1a213be19c0b3fc775e1220d88961a1ab4e", + "chksum_sha256": "ec3fd5ec1b45f898ae1c2ff3d3e8d51351e2b1c3e8ab821a3848530eb623a538", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ospf_interfaces", + "name": "plugins/module_utils/network/iosxr/facts/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/iosxr/facts/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d04195c95a2e1ff3a77ee404f87cd42fd9483514de5b3feece08a22bdfe77724", + "chksum_sha256": "095dd110baacfacf73b1c5b46462eae782157028bfdf6609ddda26c5ce87ced3", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/acl_interfaces", + "name": "plugins/module_utils/network/iosxr/facts/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/iosxr/facts/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1bbe7d9835d9c8d883a86444d77ea71c61bf0e9b5927bd4036c880b8b1e57e52", + "chksum_sha256": "0f5787451ba55b8bbb7d7e7bce4d4b63362f83fe13c7f6df8bacd71c26cc9e6f", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lldp_global", + "name": "plugins/module_utils/network/iosxr/facts/ntp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lldp_global/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/module_utils/network/iosxr/facts/lldp_global/lldp_global.py", + "name": "plugins/module_utils/network/iosxr/facts/ntp_global/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec3fd5ec1b45f898ae1c2ff3d3e8d51351e2b1c3e8ab821a3848530eb623a538", + "chksum_sha256": "daff309945181af4af9bd9e063bb6a8271236a5fe810d11b95adeb9b5ff1e636", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/ntp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/snmp_server", + "name": "plugins/module_utils/network/iosxr/facts/bgp_neighbor_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/iosxr/facts/bgp_neighbor_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "095dd110baacfacf73b1c5b46462eae782157028bfdf6609ddda26c5ce87ced3", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/snmp_server/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/bgp_neighbor_address_family/bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "76c598a854f41b6c0b661c3b53e5f4d57577d5fe5055f67f291d92b08b612192", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lacp_interfaces", + "name": "plugins/module_utils/network/iosxr/facts/l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/iosxr/facts/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f3737faee14179f8265f8f1c3a2039bb32de6e6c884161801d09179a813568e", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "20944d6b40f8e0edb1fde36d862f69a34350dbe3a4277270dfd8b7fcaf8cac0e", "format": 1 }, { @@ -1114,136 +1198,150 @@ "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ntp_global", + "name": "plugins/module_utils/network/iosxr/facts/bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ntp_global/ntp_global.py", + "name": "plugins/module_utils/network/iosxr/facts/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "daff309945181af4af9bd9e063bb6a8271236a5fe810d11b95adeb9b5ff1e636", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/ntp_global/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "edf76eb5396aa5b5fd6bdc185a974f51a6ceae7020fd28b5a3cd1fd1a2a99ef4", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lag_interfaces", + "name": "plugins/module_utils/network/iosxr/facts/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/iosxr/facts/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0de675b8a438054c38af32059948d99e9aa80584cac4d3a862096c5733f8b8d1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "d0fa9a0327c99fbf0af8fe66e68927427e0550c651bd0c20d98a0867e64e4c17", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_templates", + "name": "plugins/module_utils/network/iosxr/facts/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_templates/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_templates/bgp_templates.py", + "name": "plugins/module_utils/network/iosxr/facts/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae637abb3b5e35bf8b0c7b9992af8918fe0dcd2086d99c193bc7242f765faa07", + "chksum_sha256": "50e7cebaa5d2b4073eb83908be1cdc2e616b90a76a3683fe4909ca55c9fe1e6a", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/interfaces", + "name": "plugins/module_utils/network/iosxr/facts/ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/interfaces/interfaces.py", + "name": "plugins/module_utils/network/iosxr/facts/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9a6f4b29fc202cb7c343598c50d0de15708207c98e723bea1333bf3451877ff2", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "d04195c95a2e1ff3a77ee404f87cd42fd9483514de5b3feece08a22bdfe77724", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/l3_interfaces", + "name": "plugins/module_utils/network/iosxr/facts/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/iosxr/facts/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "20944d6b40f8e0edb1fde36d862f69a34350dbe3a4277270dfd8b7fcaf8cac0e", + "chksum_sha256": "b24aa48cc4250d0c35970a15b79a1ebc374b3fb85ffa93ce1da93d50770faf6c", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_global", + "name": "plugins/module_utils/network/iosxr/facts/lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_global/bgp_global.py", + "name": "plugins/module_utils/network/iosxr/facts/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "edf76eb5396aa5b5fd6bdc185a974f51a6ceae7020fd28b5a3cd1fd1a2a99ef4", + "chksum_sha256": "9f3737faee14179f8265f8f1c3a2039bb32de6e6c884161801d09179a813568e", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/bgp_global/__init__.py", + "name": "plugins/module_utils/network/iosxr/facts/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/facts/facts.py", + "name": "plugins/module_utils/network/iosxr/facts/ospfv3", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/iosxr/facts/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be87e4de33120eb7c34ddae26f81cce6b290a2031e890782af82ab5200bb953a", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/iosxr/facts/ospfv3/ospfv3.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3d9f7585ec696598b8adfbeb1d46670ea49ef94e4811fd41dd5d62cb9574460d", "format": 1 }, { @@ -1254,535 +1352,535 @@ "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_address_family", + "name": "plugins/module_utils/network/iosxr/argspec/lacp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/iosxr/argspec/lacp/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb06c342c63aebbc811d95083567b4a051d9aa5a2f8c2fa952931e7a90777e5d", + "chksum_sha256": "a5927bb24072718bf3589f203dc59f01a12d588543b2c1b6073cae257a01a2af", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/lacp/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/static_routes", + "name": "plugins/module_utils/network/iosxr/argspec/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/static_routes/static_routes.py", + "name": "plugins/module_utils/network/iosxr/argspec/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc45db620ae60f0508046c12e231a33435e8d4b5433be6b778965e615173698d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/static_routes/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "41814b7565d7466df54c6a3163afd464f50ebadddc82be1d1fb82d117bb47ccb", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/prefix_lists", + "name": "plugins/module_utils/network/iosxr/argspec/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "844e1316a16a3118600072fc9204757d95ad0ed3162501085d8bac30a6e11804", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/iosxr/argspec/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b35f3445ce05129c8c3b771faf4db6ef5bafbadcdca4d865cd07ada52fac061", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/hostname", + "name": "plugins/module_utils/network/iosxr/argspec/acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/hostname/hostname.py", + "name": "plugins/module_utils/network/iosxr/argspec/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "87eada9722f328072f51f75820ced43c8024a3a195d275316144ecb833b8d8e2", + "chksum_sha256": "7759ff598b56bc07a99921ff4f94cd65b96ea927ddacf27c7ae00c237dc6c9ce", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/hostname/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lldp_interfaces", + "name": "plugins/module_utils/network/iosxr/argspec/l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "3ea8177f270f8a430fa3e62d2589406a854d350b1c732cf8ca27643c102a1c68", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/iosxr/argspec/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b762584a0f4d5b03103e4aa1d901bce30408fa11fce113cbc7941929490b852", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lacp", + "name": "plugins/module_utils/network/iosxr/argspec/lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lacp/lacp.py", + "name": "plugins/module_utils/network/iosxr/argspec/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a5927bb24072718bf3589f203dc59f01a12d588543b2c1b6073cae257a01a2af", + "chksum_sha256": "3212b99c8dc4190c1bd4fdf5b31ab6a0d0d70125bbc8c6f7b3594bd5753cb480", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lacp/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ospfv2", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ospfv2/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_templates/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_templates/bgp_templates.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "41814b7565d7466df54c6a3163afd464f50ebadddc82be1d1fb82d117bb47ccb", + "chksum_sha256": "f3ab5cccdddf5c608840b57b814d9b2d4631f0d376f380e8c2d5ef2832625976", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/logging_global", + "name": "plugins/module_utils/network/iosxr/argspec/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/logging_global/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "87eada9722f328072f51f75820ced43c8024a3a195d275316144ecb833b8d8e2", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/logging_global/logging_global.py", + "name": "plugins/module_utils/network/iosxr/argspec/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c5f27a3ff02a06978bf14912e0489587f9cbf17336065ed046ae66d020e98ea4", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ospfv3", + "name": "plugins/module_utils/network/iosxr/argspec/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ospfv3/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/iosxr/argspec/lldp_interfaces/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fda0edcc4ebdc1b2da68bc918fc9a72551c1f266dffe0999faab28934cca882d", + "chksum_sha256": "1b762584a0f4d5b03103e4aa1d901bce30408fa11fce113cbc7941929490b852", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_neighbor_address_family", + "name": "plugins/module_utils/network/iosxr/argspec/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/iosxr/argspec/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_neighbor_address_family/bgp_neighbor_address_family.py", + "name": "plugins/module_utils/network/iosxr/argspec/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0cd93cff30a775adcc07eaf0c792817bfe1562d83777cd6d6956a81e01750739", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_neighbor_address_family/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c698527971eb9394265200984d070719a047cd3c3c1443ab385510e99d39f74b", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/l2_interfaces", + "name": "plugins/module_utils/network/iosxr/argspec/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/iosxr/argspec/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ea8177f270f8a430fa3e62d2589406a854d350b1c732cf8ca27643c102a1c68", + "chksum_sha256": "6e8abca564d7d892efe70b5aaa391567175176cd5494cd1238029deffcc4174d", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ospf_interfaces", + "name": "plugins/module_utils/network/iosxr/argspec/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/iosxr/argspec/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "20b179841cf2cebbea24a8bda72e5edd74be5419bd476ca734567aa4499cbf52", + "chksum_sha256": "7b35f3445ce05129c8c3b771faf4db6ef5bafbadcdca4d865cd07ada52fac061", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/acl_interfaces", + "name": "plugins/module_utils/network/iosxr/argspec/ntp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/ntp_global/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b801e133d8d321e12dc7289bf1ccd9992d1d7502e683a2cd5d62ef4463ae784b", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/iosxr/argspec/ntp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7759ff598b56bc07a99921ff4f94cd65b96ea927ddacf27c7ae00c237dc6c9ce", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lldp_global", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_neighbor_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lldp_global/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_neighbor_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lldp_global/lldp_global.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c698527971eb9394265200984d070719a047cd3c3c1443ab385510e99d39f74b", - "format": 1 - }, - { - "name": "plugins/module_utils/network/iosxr/argspec/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_neighbor_address_family/bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "0cd93cff30a775adcc07eaf0c792817bfe1562d83777cd6d6956a81e01750739", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/snmp_server", + "name": "plugins/module_utils/network/iosxr/argspec/facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/iosxr/argspec/facts/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6e8abca564d7d892efe70b5aaa391567175176cd5494cd1238029deffcc4174d", + "chksum_sha256": "be8244aad794929184f824e21f498740f90b47f810cc1ed37cd07b37f8d596e3", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/snmp_server/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/facts/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ping", + "name": "plugins/module_utils/network/iosxr/argspec/l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ping/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ping/ping.py", + "name": "plugins/module_utils/network/iosxr/argspec/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3a9e672170633f82bf0c1323bc7431b6d88eff5f096c40fdfbed7f851d95ce7c", + "chksum_sha256": "e46afb2541c2aaec2fc690973b351f23ffbc3f07624616e61a7d13d57cf3798f", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/facts", + "name": "plugins/module_utils/network/iosxr/argspec/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/facts/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/facts/facts.py", + "name": "plugins/module_utils/network/iosxr/argspec/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be8244aad794929184f824e21f498740f90b47f810cc1ed37cd07b37f8d596e3", + "chksum_sha256": "0bb198af8188b36cb1235a3b0e1931f4910908076a5c8c3f5fd7d877cbc038d0", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lacp_interfaces", + "name": "plugins/module_utils/network/iosxr/argspec/ping", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/iosxr/argspec/ping/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9531600850e779f65072369be05a2dc142aa10b044864a5aecf72b8305afe1d9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/ping/ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "3a9e672170633f82bf0c1323bc7431b6d88eff5f096c40fdfbed7f851d95ce7c", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/acls", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/acls/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/acls/acls.py", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0bb198af8188b36cb1235a3b0e1931f4910908076a5c8c3f5fd7d877cbc038d0", + "chksum_sha256": "93b1c8d33c5d79a7efac59125f8af5ecca0009cf051810a1aac6234d38bdfaef", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ntp_global", + "name": "plugins/module_utils/network/iosxr/argspec/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ntp_global/ntp_global.py", + "name": "plugins/module_utils/network/iosxr/argspec/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b801e133d8d321e12dc7289bf1ccd9992d1d7502e683a2cd5d62ef4463ae784b", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/ntp_global/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "dc45db620ae60f0508046c12e231a33435e8d4b5433be6b778965e615173698d", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lag_interfaces", + "name": "plugins/module_utils/network/iosxr/argspec/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/iosxr/argspec/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3212b99c8dc4190c1bd4fdf5b31ab6a0d0d70125bbc8c6f7b3594bd5753cb480", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c5f27a3ff02a06978bf14912e0489587f9cbf17336065ed046ae66d020e98ea4", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_templates", + "name": "plugins/module_utils/network/iosxr/argspec/ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_templates/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_templates/bgp_templates.py", + "name": "plugins/module_utils/network/iosxr/argspec/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "83017eb412cf98eadb8eaefdf7460d6a39f7a634c36dd756b2634a02c8b73dab", + "chksum_sha256": "20b179841cf2cebbea24a8bda72e5edd74be5419bd476ca734567aa4499cbf52", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/interfaces", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/interfaces/interfaces.py", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "844e1316a16a3118600072fc9204757d95ad0ed3162501085d8bac30a6e11804", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "cb06c342c63aebbc811d95083567b4a051d9aa5a2f8c2fa952931e7a90777e5d", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/l3_interfaces", + "name": "plugins/module_utils/network/iosxr/argspec/lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9531600850e779f65072369be05a2dc142aa10b044864a5aecf72b8305afe1d9", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/iosxr/argspec/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e46afb2541c2aaec2fc690973b351f23ffbc3f07624616e61a7d13d57cf3798f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_global", + "name": "plugins/module_utils/network/iosxr/argspec/ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_global/bgp_global.py", + "name": "plugins/module_utils/network/iosxr/argspec/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "93b1c8d33c5d79a7efac59125f8af5ecca0009cf051810a1aac6234d38bdfaef", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/argspec/bgp_global/__init__.py", + "name": "plugins/module_utils/network/iosxr/argspec/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "fda0edcc4ebdc1b2da68bc918fc9a72551c1f266dffe0999faab28934cca882d", "format": 1 }, { @@ -1793,325 +1891,346 @@ "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_address_family", + "name": "plugins/module_utils/network/iosxr/config/lacp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/iosxr/config/lacp/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cf952b8205f5fb618712816947770ae4b88100b8a5206a5618b0403d2a17ad16", + "chksum_sha256": "5fb11d241da71d244fcc386e28fd4102d6b632c05f8f55f6259e8d9d72651048", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/lacp/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/static_routes", + "name": "plugins/module_utils/network/iosxr/config/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/static_routes/static_routes.py", + "name": "plugins/module_utils/network/iosxr/config/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e18a21b3b395e6a88135b71f877f41b66e9aeff88c534b832f45419817a8de1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/static_routes/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "531fb7ad8a7a997633095cb01ffc514865381c45d24e36d17eb553c391becf63", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/prefix_lists", + "name": "plugins/module_utils/network/iosxr/config/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "119d56ea0c0849feb466022d5905927a19c96299fcb1164078eb7481b26b1d59", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/iosxr/config/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2cd165d87a347df66575587a0221e4bd80c26bb6d12098fcf15244aa81c0cd7b", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/hostname", + "name": "plugins/module_utils/network/iosxr/config/acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/hostname/hostname.py", + "name": "plugins/module_utils/network/iosxr/config/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2baccb28e2ac374f4ff89eecd211fbfd3bb72b535ca95d424ce60f494eb47f5d", + "chksum_sha256": "26b0b473826e35e9f9ae20509e7c5f7bc00f095b3f487138b018a945291b0174", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/hostname/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lldp_interfaces", + "name": "plugins/module_utils/network/iosxr/config/l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "0a9eba4f5bf6d26f534ff9919152e939ce0cc21b8501a0d2df2b61b8890163ee", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/iosxr/config/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d43c06ced71873fc30c4be7d4f919e2c14207452bb1a365620516cf746b9fbcf", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lacp", + "name": "plugins/module_utils/network/iosxr/config/lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lacp/lacp.py", + "name": "plugins/module_utils/network/iosxr/config/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5fb11d241da71d244fcc386e28fd4102d6b632c05f8f55f6259e8d9d72651048", + "chksum_sha256": "e81b0808b1dd9667a81e09a4c39a1d9d2ae30c9d4848385d5222a801c6b9a9dc", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lacp/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ospfv2", + "name": "plugins/module_utils/network/iosxr/config/bgp_templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ospfv2/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/bgp_templates/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/iosxr/config/bgp_templates/bgp_templates.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "531fb7ad8a7a997633095cb01ffc514865381c45d24e36d17eb553c391becf63", + "chksum_sha256": "78761e9389083d5e2ad18725a37721ba994404b29e2f5fef0f83d5e626ed7eb7", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/logging_global", + "name": "plugins/module_utils/network/iosxr/config/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/logging_global/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "2baccb28e2ac374f4ff89eecd211fbfd3bb72b535ca95d424ce60f494eb47f5d", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/logging_global/logging_global.py", + "name": "plugins/module_utils/network/iosxr/config/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "781ef51a098b082d8e3d5cde9be910382c6acf0506270063e604d04a7237129b", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ospfv3", + "name": "plugins/module_utils/network/iosxr/config/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ospfv3/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/iosxr/config/lldp_interfaces/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b21b6481a508c8684ef679bb101893df292ff9b04af0b18b5cedaf3d2132ce3f", + "chksum_sha256": "d43c06ced71873fc30c4be7d4f919e2c14207452bb1a365620516cf746b9fbcf", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family", + "name": "plugins/module_utils/network/iosxr/config/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/iosxr/config/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py", + "name": "plugins/module_utils/network/iosxr/config/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cd69a43075b1e4572a1bb830d8efc31ba218141246e16cf7154725bc608e2da6", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "2b5809b893d79700a7ee8e10c0e36fc8c10ba66a4008abf07fc2e2548a360100", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/l2_interfaces", + "name": "plugins/module_utils/network/iosxr/config/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/iosxr/config/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a9eba4f5bf6d26f534ff9919152e939ce0cc21b8501a0d2df2b61b8890163ee", + "chksum_sha256": "e6aa8e4aaf697e464a933218032e82e3c0dc0f62308ba5d38c3d06ec154708af", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ospf_interfaces", + "name": "plugins/module_utils/network/iosxr/config/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/iosxr/config/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b75e4e77ddc6c397561c1c39fa7aa6608606ba2d815b2fd75f0b8ec9004162b8", + "chksum_sha256": "2cd165d87a347df66575587a0221e4bd80c26bb6d12098fcf15244aa81c0cd7b", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/acl_interfaces", + "name": "plugins/module_utils/network/iosxr/config/ntp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/ntp_global/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "4795017ccd58af737eddbd6554da38a0ddb5573f32dcb098a9d702120c2e4f72", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/iosxr/config/ntp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26b0b473826e35e9f9ae20509e7c5f7bc00f095b3f487138b018a945291b0174", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lldp_global", + "name": "plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lldp_global/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lldp_global/lldp_global.py", + "name": "plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b5809b893d79700a7ee8e10c0e36fc8c10ba66a4008abf07fc2e2548a360100", + "chksum_sha256": "cd69a43075b1e4572a1bb830d8efc31ba218141246e16cf7154725bc608e2da6", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/l3_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/iosxr/config/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/snmp_server", + "name": "plugins/module_utils/network/iosxr/config/l3_interfaces/l3_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "61ed9c696fa29d39b6efcb385d4d9e265370abf60a7b74116072c9e8cc715dfe", + "format": 1 + }, + { + "name": "plugins/module_utils/network/iosxr/config/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/iosxr/config/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6aa8e4aaf697e464a933218032e82e3c0dc0f62308ba5d38c3d06ec154708af", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/snmp_server/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "1b6c923aacec2f03fd8efd5566f5eb388817dafbe91a709a17286cfba77acfbb", "format": 1 }, { @@ -2136,444 +2255,430 @@ "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lacp_interfaces", + "name": "plugins/module_utils/network/iosxr/config/bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/iosxr/config/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72f8f047d8c9bc3795d281b6b3daf88886c6b12b5a0a4d30898daf923c92d4ec", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "d9e3408e81e0d8e65e9c623ec4262089393937bd354fcd42d1fa6cb0bfb88f0b", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/acls", + "name": "plugins/module_utils/network/iosxr/config/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/acls/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/acls/acls.py", + "name": "plugins/module_utils/network/iosxr/config/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b6c923aacec2f03fd8efd5566f5eb388817dafbe91a709a17286cfba77acfbb", + "chksum_sha256": "4e18a21b3b395e6a88135b71f877f41b66e9aeff88c534b832f45419817a8de1", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ntp_global", + "name": "plugins/module_utils/network/iosxr/config/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ntp_global/ntp_global.py", + "name": "plugins/module_utils/network/iosxr/config/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4795017ccd58af737eddbd6554da38a0ddb5573f32dcb098a9d702120c2e4f72", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/ntp_global/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "781ef51a098b082d8e3d5cde9be910382c6acf0506270063e604d04a7237129b", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lag_interfaces", + "name": "plugins/module_utils/network/iosxr/config/ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/iosxr/config/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e81b0808b1dd9667a81e09a4c39a1d9d2ae30c9d4848385d5222a801c6b9a9dc", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b75e4e77ddc6c397561c1c39fa7aa6608606ba2d815b2fd75f0b8ec9004162b8", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_templates", + "name": "plugins/module_utils/network/iosxr/config/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_templates/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_templates/bgp_templates.py", + "name": "plugins/module_utils/network/iosxr/config/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "78761e9389083d5e2ad18725a37721ba994404b29e2f5fef0f83d5e626ed7eb7", + "chksum_sha256": "cf952b8205f5fb618712816947770ae4b88100b8a5206a5618b0403d2a17ad16", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/interfaces", + "name": "plugins/module_utils/network/iosxr/config/lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/interfaces/interfaces.py", + "name": "plugins/module_utils/network/iosxr/config/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "119d56ea0c0849feb466022d5905927a19c96299fcb1164078eb7481b26b1d59", + "chksum_sha256": "72f8f047d8c9bc3795d281b6b3daf88886c6b12b5a0a4d30898daf923c92d4ec", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/l3_interfaces", + "name": "plugins/module_utils/network/iosxr/config/ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/iosxr/config/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/iosxr/config/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61ed9c696fa29d39b6efcb385d4d9e265370abf60a7b74116072c9e8cc715dfe", + "chksum_sha256": "b21b6481a508c8684ef679bb101893df292ff9b04af0b18b5cedaf3d2132ce3f", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_global", + "name": "plugins/terminal", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_global/bgp_global.py", + "name": "plugins/terminal/iosxr.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d9e3408e81e0d8e65e9c623ec4262089393937bd354fcd42d1fa6cb0bfb88f0b", + "chksum_sha256": "d394b38929e905705fa833d4b590809c2af92af65a020d0ae91d5d2d1db72552", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/config/bgp_global/__init__.py", + "name": "plugins/terminal/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/utils", + "name": "plugins/test", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/utils/__init__.py", + "name": "plugins/test/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/iosxr/utils/utils.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c445382425553068e00713ecd367720b9b4d4081558e4d8f5cb35c96d511fea9", - "format": 1 - }, - { - "name": "plugins/action", + "name": "plugins/cliconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/bgp_global.py", + "name": "plugins/cliconf/iosxr.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "9dd6b778419c39c2a0e4b6c9bd64572545e57159a016b8b9e48589d7beb0a672", "format": 1 }, { - "name": "plugins/action/lacp.py", + "name": "plugins/cliconf/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/lag_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "name": "plugins/plugin_utils", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/user.py", + "name": "plugins/plugin_utils/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "name": "plugins/sub_plugins", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/bgp_address_family.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "name": "plugins/sub_plugins/grpc", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/bgp_neighbor_address_family.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "name": "plugins/sub_plugins/grpc/pb", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/system.py", + "name": "plugins/sub_plugins/grpc/pb/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/static_routes.py", + "name": "plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "978c4404c6dd6bbbe494930f6aa0f8268e9d365e4e8c4cacc8a9eea40de96a41", "format": 1 }, { - "name": "plugins/action/netconf.py", + "name": "plugins/sub_plugins/grpc/iosxr.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "8003d9ffb32e5cd8ab1926463a1ff2f9443eb0566ada4a9150cbf3a82d231293", "format": 1 }, { - "name": "plugins/action/hostname.py", + "name": "plugins/sub_plugins/grpc/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/lacp_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", - "format": 1 - }, - { - "name": "plugins/action/logging.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "name": "plugins/filter", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/iosxr.py", + "name": "plugins/filter/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/ntp_global.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "name": "plugins/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/snmp_server.py", + "name": "plugins/netconf/iosxr.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "73becb51b5fb1fb658f10fb8e769968743f8568c6e51dc1efda0849ca47eb8e0", "format": 1 }, { - "name": "plugins/action/__init__.py", + "name": "plugins/netconf/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/interface.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "name": "meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/ospfv3.py", + "name": "meta/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/bgp.py", + "name": "meta/runtime.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "f1730a69a7cc01e0d832e312c991c5c72435ced82a8fccfdc027ed6596ed6751", "format": 1 }, { - "name": "plugins/action/l2_interfaces.py", + "name": ".ansible-lint", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "8e363e6b28b1163bc175b7be848ecf6925803462b9287745d1672dcfd098b095", "format": 1 }, { - "name": "plugins/action/command.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "name": ".config", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/acl_interfaces.py", + "name": ".config/ansible-lint.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "f9938ba933b832ccd61f3871926f0e9f9380d87b1eae1b678f4faf8e2a43caaa", "format": 1 }, { - "name": "plugins/action/ospfv2.py", + "name": ".pre-commit-config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "1320c5ff9b11290023c644644c9aabd686c2a042b82808a041c81b89709323b8", "format": 1 }, { - "name": "plugins/action/config.py", + "name": "pyproject.toml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "1cb6a45dfa2625123890b93ad7fdc156b063c16e8ae6dba11511a1d1986b0fcc", "format": 1 }, { - "name": "plugins/action/acls.py", + "name": "README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "02f71abaa2298e288406d32303715d8cf7ed39c626c68c0e7aa481629b4e8990", "format": 1 }, { - "name": "plugins/action/l3_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "name": "changelogs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/ospf_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "name": "changelogs/fragments", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/lldp_interfaces.py", + "name": "changelogs/fragments/.keep", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/logging_global.py", + "name": "changelogs/config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "e9313ae1bb365e94e03fc01e2c0bd2df437019a987f388ae98e8ec669d498984", "format": 1 }, { - "name": "plugins/action/prefix_lists.py", + "name": "changelogs/changelog.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "0cd0de0b505afc09149bad60bf51162f2c9129c378eebaecc7da9764f8f664cb", "format": 1 }, { - "name": "plugins/action/banner.py", + "name": ".isort.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "5328af170b936cfea2a47b7155e4647a89662e559bc2664cfb93dbab968aaea4", "format": 1 }, { - "name": "plugins/action/facts.py", + "name": ".yamllint", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "827ef9e031ecdcaf137be239d33ef93fcbbc3611cbb6b30b0e507d0e03373d0e", "format": 1 }, { - "name": "plugins/action/lldp_global.py", + "name": "test-requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03a1c33b41d1f37a93f576495b9755602337fe3b3014893847f232b37fd807d", + "chksum_sha256": "9827b21d24f3ff2ebbcc07b56cb49e610f901f22e0b5fe91fdb329ead368c1f4", "format": 1 }, { - "name": "test-requirements.txt", + "name": ".prettierignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "67ac8fa83eab8c43a702d5aa224225a1c5ff1e4de72df613c63cf60398e51058", + "chksum_sha256": "6fd3c3897f57e5447aa2809cf63ff611cbe624192bcc5e0f849cbb699a39eff8", "format": 1 }, { @@ -2584,6310 +2689,6072 @@ "format": 1 }, { - "name": "tests/sanity", + "name": "tests/integration", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.9.txt", + "name": "tests/integration/target-prefixes.network", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "158e0096bade515d4b5ffdf147a7d68dc5533c6bb8facd1e079639e7e49d9cfb", + "chksum_sha256": "d577d6580d29511474adecf53c2c66b66aced6b624c4f6c3781138d69870707a", "format": 1 }, { - "name": "tests/sanity/ignore-2.13.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8cb3b8f8fe3db0b589c4b3949ddbf715c7faa8917bc28c7d83958164dc2e9678", + "name": "tests/integration/targets", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.11.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a78ebdfd69db8e98d3c61a6296c6b69e1a854edff052dc62a418ee0b4f0c2f48", + "name": "tests/integration/targets/iosxr_ntp_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.10.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f5883f3880f187de0b2e7bcfd12f602d51ce7d2e5ce8b7950bf6be9b54625ea0", + "name": "tests/integration/targets/iosxr_ntp_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.14.txt", + "name": "tests/integration/targets/iosxr_ntp_global/defaults/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0874c9664e754bdf0781fc3ab4189276f92a38ed1ebd1c35c88063ee3b4badc", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/sanity/ignore-2.17.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4f6ecb77dad740fd70c0551acbed97a8df654127247051c541b091b07d1c415b", + "name": "tests/integration/targets/iosxr_ntp_global/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.16.txt", + "name": "tests/integration/targets/iosxr_ntp_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4f6ecb77dad740fd70c0551acbed97a8df654127247051c541b091b07d1c415b", + "chksum_sha256": "33b4175617133438627a3921128a558f7c3cfd5e70b930808c06634e4fe3cbc1", "format": 1 }, { - "name": "tests/sanity/ignore-2.12.txt", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "02023c72751a2b4b25bba12df7722b2546c2be0af2a2279ccccb43845bbf27b7", + "name": "tests/integration/targets/iosxr_ntp_global/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/sanity/ignore-2.15.txt", + "name": "tests/integration/targets/iosxr_ntp_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0874c9664e754bdf0781fc3ab4189276f92a38ed1ebd1c35c88063ee3b4badc", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/integration/targets/iosxr_ntp_global/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/config.yml", + "name": "tests/integration/targets/iosxr_ntp_global/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de5087316490411841c67aa3307cfdd3acaea09875c9b4dee6852bca7c120764", + "chksum_sha256": "37b4fdb1a797393df3d182478993235633244c539af30725013db77cec0d1178", "format": 1 }, { - "name": "tests/unit", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/_populate_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3ed2c59015cb8f315b1a7d5475e42fa855009b2e5d26f656eb6f80eaacf718da", "format": 1 }, { - "name": "tests/unit/requirements.txt", + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49ba996dc4735c3463e9af561344346dfae14bcc1a68096ce78364b377f0df1f", + "chksum_sha256": "be949100104e75250b3f92b5f02d93e8a471631a4ef398d2c24d2030c1b3a57a", "format": 1 }, { - "name": "tests/unit/__init__.py", + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c8999671a348fba3821b25049396c8971fe8a24a577d5d704c8c220c81d0ecf8", "format": 1 }, { - "name": "tests/unit/mock", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "07b3031d563cd5f7a06f39a5e4edb6f5b3334d8dd70070337cec600a6355b08f", "format": 1 }, { - "name": "tests/unit/mock/vault_helper.py", + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55bd0e924dcc22d050612c944bff0ef745e51faac9260dce9b9b2018c4c8a661", + "chksum_sha256": "5ecf37c4d4f8799590d36debba286353a94b76fc0f89929f5cef6cf762337fe3", "format": 1 }, { - "name": "tests/unit/mock/__init__.py", + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "12edb69044ee3a03f3bba8317b8d590ab8f7cb428e0b6047c6e86acbf91cfa23", "format": 1 }, { - "name": "tests/unit/mock/procenv.py", + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8355a91c013778f8b70896222e8223d67b743fd8ba2bf541f4ea4d7d460b01ef", + "chksum_sha256": "3116e5b1f3807158456527c7d2ec5c4ba73c2f53d75a464c9aa0257257279ef1", "format": 1 }, { - "name": "tests/unit/mock/loader.py", + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2343d1f644250d4b616f0bf0a826fdee8fe306243d8412d44dd0e033352b262b", + "chksum_sha256": "4c551ac7c741dcae87dfa4237c9c2387202c54e86e04d9140b8d7684d3560fb2", "format": 1 }, { - "name": "tests/unit/mock/yaml_helper.py", + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "134eef238c83a9611799871b743e49e9bfbcd8bdddf2cc6a7bf69fd1000345b3", + "chksum_sha256": "fd90f3a750d4f51a1d947cd1952156f4b8245d1d09d4741d57b882a9ee302c2f", "format": 1 }, { - "name": "tests/unit/mock/path.py", + "name": "tests/integration/targets/iosxr_ntp_global/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb57942afe0176fd422c5d6575f6b0bdbbd65d6293fe9709629b43febde81bef", + "chksum_sha256": "aa640d9b74a58c56f1bff39b0d710b0f9e072c59d1029e8028071ad927e83119", "format": 1 }, { - "name": "tests/unit/modules", + "name": "tests/integration/targets/iosxr_ntp_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/__init__.py", + "name": "tests/integration/targets/iosxr_ntp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", "format": 1 }, { - "name": "tests/unit/modules/conftest.py", + "name": "tests/integration/targets/iosxr_ntp_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0ae70fa7c2a5e56d7f02a47c3602398cff60c8eb021772ac59a76df2a234048", + "chksum_sha256": "73e48db0c23a63565816ea0d938e972a0a9daee404ea69b57fc39f403f1288ac", "format": 1 }, { - "name": "tests/unit/modules/utils.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "28eb2c4f6e6e313a757a627b1f895640d085503b0c65cbca688e55d8679a45de", + "name": "tests/integration/targets/iosxr_facts", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network", + "name": "tests/integration/targets/iosxr_facts/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/__init__.py", + "name": "tests/integration/targets/iosxr_facts/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr", + "name": "tests/integration/targets/iosxr_facts/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_lldp_global.py", + "name": "tests/integration/targets/iosxr_facts/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6c32855b7994966c3f0d9fe82b64d5da43c752733ad6d56ef317a9f589d484e", + "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_lacp_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2b12a50fc121b717616624ff7fc723da7e7b0763020c601f6e15efdaa882e14c", + "name": "tests/integration/targets/iosxr_facts/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_system.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "18ca4af2bfd36878d3dcc62621e3ac8867ed6bd633cb0eb67b9a8c6cd042e827", + "name": "tests/integration/targets/iosxr_facts/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_bgp_templates.py", + "name": "tests/integration/targets/iosxr_facts/tests/cli/not_hardware.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "06b203f1f68645ccb42a0209f60daefa26a2772027c6ec7d81ff0279ccdd2287", + "chksum_sha256": "d45c23f2fed05fea77e4d6081381f243f895035b72a52be4a28d46215dd9026a", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_prefix_lists.py", + "name": "tests/integration/targets/iosxr_facts/tests/cli/all_facts.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac76602c2d3f50846008443db4ccfa0e6d860026c8a4fece9d1eb314826f6a27", + "chksum_sha256": "09ddaf160ad114c35a1a1abee7ec06230e2c0c1c20a7e465aa479d25ec892e3a", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_ospfv2.py", + "name": "tests/integration/targets/iosxr_facts/tests/cli/default_facts.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b0b8f75d7702691fda578c450ab02ae3b7a82ed7618b118eff602993dbe27678", + "chksum_sha256": "1db28925de61b31d4d1494430b130beb85579fe7f3ac582b05ef26ced8161c28", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_bgp_address_family.py", + "name": "tests/integration/targets/iosxr_facts/tests/cli/invalid_subset.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a48bb138dd97608d6ed2fe493f87712a857546e88afde6d5a3e0e72e28ddd9b", + "chksum_sha256": "9dc93102aaeb6318fa47c746d0ef7e6eecfc39757b5e0af1e9503a309c6118db", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f4c979c923fc77ac99724a0e652ca77888ee74c2f8620fb1f87622b8d77a6aea", + "name": "tests/integration/targets/iosxr_facts/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_ospf_interfaces.py", + "name": "tests/integration/targets/iosxr_facts/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "029def7ced9274ddb6ffa947069e9b7f4cb67a481822387cf0ed13b79b5f3632", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_lldp_interfaces.py", + "name": "tests/integration/targets/iosxr_facts/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51ec0015ee4e9ad9303753f8ea77c9e4de1f1bd1108e5d3f45d878282e62ef2b", + "chksum_sha256": "aeaea690f4a27b4af77c33a24968cdc89de2ca73e590d9ec1db4b80842750bb7", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/integration/targets/iosxr_lacp_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_bgp_neighbor_address_family.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d79eaea2cf9e49a0f5459a044b8017451294cc841e1744632511511a2e7e2102", + "name": "tests/integration/targets/iosxr_lacp_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_ospfv3.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "40ffd132d0493144e4355bedf9abfeed11ac6856f166454f4e34469eace23dd6", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_snmp_server.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2f4639f4ce6651e4726f86fd0c52a432ce6a7398139f13531d7cf7f003923c3b", + "name": "tests/integration/targets/iosxr_lacp_interfaces/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_ntp_global.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f3f86a923d260fd853c936a01615c9626f63fe702759023143e80d2e169a24b", + "chksum_sha256": "29a8acf3766df1e54abe6a3dadfc393571647722393b132444952162b30a60ae", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_command.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f331cdaacfd4dae2f1efadeb247d7e38c8266cf3887c2550e6132f82c4afd9ea", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_utils.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/_populate.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d83cdd234712c9b7e4335f30089919d5e22887f7868d6213f8247f64f8b44de", + "chksum_sha256": "2b84773b00c039d32e50e18779dfd48fc98e4f0012351d6d6c1ecbd740d25936", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_bgp_global.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "22382fff971a2ef07e1ab7cb5fd0be7be02b4ef61d4ae226edd9dc32a3d1b550", + "chksum_sha256": "417f4d3094f95606aac731b14ae567a97c7b703114b88423cb677e0f6b2cc06c", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_l3_interfaces.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "87bcc3b439fe7a4d2166355b970e6bbd4ec1fd4dd11fecff65259938ed15fb4b", + "chksum_sha256": "9dad2238d7ee4b8fb78919028c1bb64ba29d4e2088f53ecf5fa99ea9c5e29c87", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_lacp.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3a62abd2facd0bdd05c83b5487b9e43bb14fb2b8a100202670f964b3cf928e6f", + "chksum_sha256": "d6ba2253349b074129effa793f31923b22ae2448ce58a9549023db855839460d", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_hostname.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "674a5e683e09243e122946f5964cee3109ae4d909e192aee76cd78523ca4e480", + "chksum_sha256": "14d91239138aa32bb7f451a89aefff422136e57427583623a172747eb5814453", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_logging_global.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc84941d8983e27592dd930181b352a71f143a67aa30e0db98642cd1ba575691", + "chksum_sha256": "81e585cfbf29f1293be9881382ce419c6a2b0cbf9c1f87be057a241de2f44f98", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_user.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4777b0df4a2e3ca72b179a9955d2d5ba8907f1b80e00f3be50699f3d8a90a61b", + "chksum_sha256": "be06b4f3cb25a95c6d1950c4919025c1cb15e114624d59b18c0eaa5a7d79b52f", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_ping.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b7870144513d4063568e7b3ae7b21b8e353b286252c43f7efcb3ff5f1b8e9fc", + "chksum_sha256": "ec8d829135a6074a8ad75ee76a2a1a4079e03325d92c0e830515cbf90f31eb6f", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_n540.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25af4a8b6f30f904cef024bfb673c553f73039ff3dc44dd31d4d5bdf5720e735", + "chksum_sha256": "a8d21a0b454b78c9643c6d1c47de95eafb44e9199b1a8bca7588c0d9c91cca02", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_acls.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f5f7deb3c6e2835f74cf3eaac1f8fca7893e84117071dba2f235b42fbf681c7", + "chksum_sha256": "6e7cf195c2dfadb34e7393d4c74acbbfcb568899d7461c2bb6b4fa5acbc48b70", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_banner.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08ca981cb107565a78d51790ad4d9fdccf1f744b6ce5098ce101da34b0294fad", + "chksum_sha256": "717d1fb8c96130db8d6288c45c7c8dc46222d03917bf77b322b871ffcafd3a99", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_static_routes.py", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "789b96b3f9a9a76acd2cf9e2eb4a2743203b8baf72ea8872b64f095189ffb659", + "chksum_sha256": "f5bdefcaae69fa3cffe08302fb9dc9f706c3fd00edd4d2c86d032983d66bedbf", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/show_lldp", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4135607fe98acfedbef4f2d3305b4ade7e5e833130f049f310b68f32ce451c66", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_config_config.cfg", + "name": "tests/integration/targets/iosxr_lacp_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6fe81e446733fef4e3643a80042ab4111b9b0c927599c4b5972ecea4c18b4ffd", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_l3_interface_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "50f889004120619f090c295fe5f40c5575c0a4feaed60a14d863d00bf25bd2a0", + "name": "tests/integration/targets/iosxr_lldp_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_ospfv3.cfg", + "name": "tests/integration/targets/iosxr_lldp_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lldp_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a6d31304503f7cd58289c7ab493bab726a003a69dbcfff3177f82e051180ff4", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/show_version", + "name": "tests/integration/targets/iosxr_lldp_interfaces/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lldp_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "089ab6658c475d1146f913b1cdee2671b46051958e2b7f562da626d327456726", + "chksum_sha256": "0dca88a635c4df7935a64b62dcc4e29afc8ea29e79c5a69790d9fa39248aa593", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/show_processes_cpu___include_CPU_utilization", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/_populate.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6eca4811fafb01f204de26b037fee16d63aca082ce05d57b9f0c52fb502ef66", + "chksum_sha256": "1fb4c8047c353cd10a83ff0a2f9eb2c3455e1b72e81165bfecb475a5969d11c1", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_lldp_interfaces_config.cfg", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c4e458ac2250cfbfacd5b53e5937c792bdf09a36bf42c7d27cb5add93ffb693", + "chksum_sha256": "e2d359d45a561dcc99db2945a7e3de3c4e3564caaac19c643672331b7a2c26e0", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_acl_interfaces_config.cfg", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a5870ad2392bc344f5d7c254ecf5f1b5d317527c2efa346a55a3a73fb0ccd10e", + "chksum_sha256": "095271b41184a0146f918498fb43a1d4808359cad386c08f3ff6ff8ae3991fc4", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_lacp_config.cfg", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ca4b510769bcfc42967e42d1b560e18908724b345676fb68e76571dfb84e847", + "chksum_sha256": "bac4a7214f9a2a43940bb7ea473ad5c479dfed034cb1f092169751886339a4ab", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_static_routes_config.cfg", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6e148c74b09c0b22e87e8e55b815a0250281aa8daabde38b951b425cfbec2442", + "chksum_sha256": "3c0a26973a1f425dcb788f4de6ffb431f0fb3cb439b285427e259545f81d6079", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/show_lldp_neighbors_detail", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4135607fe98acfedbef4f2d3305b4ade7e5e833130f049f310b68f32ce451c66", + "chksum_sha256": "09906ee86cc2c5b1a515dafa190e3576def507f53ed9563c471db011ab76eb54", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_lldp_global_config.cfg", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc8ece13d91edafdb680a275bf4c794d642f584b24963f75e91d399d26e90dce", + "chksum_sha256": "0bdd704c64456dc5bd746f258448a6c7c132cd3b2f06849f59bc8454e1b93189", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_lacp_interfaces_config.cfg", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "04b1c2fbc56979e8df559dc3a499adaff452c0815be45fe4a0e2b1b74f740831", + "chksum_sha256": "78ab712357d68b164ba677cffc2bc61cf9184dbe7eb616461b039880544c9d4f", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/show_memory_summary", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0fedc43463c95b152254b43d741b62c704ffc82b2707b758d1294283384c4e0", + "chksum_sha256": "2c10d1cc4272407919910b0b6c62badf94ef67f853fa1ac99a581603cc9ed7da", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/__init__.py", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "4c33155ba2ec1dea7921b926e4baa656122f8bdf75ab4e39c85fba98e981d7f6", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/show_running-config", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9442b8aa3e29caa5725d8968da29fa173e998d7c664c92b3ddd66a7aea76a71e", + "chksum_sha256": "aa7e3e3c95400ac64035e994ec52bc2663674bb98562dd66e70cd1a18cab813b", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_config_src.cfg", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "57d42d2e8e8b7a4b6cae566115ee42fecea077b525cace10cefc3b7dbd85f033", + "chksum_sha256": "6e0d64d1e1033c62bbc4da61e6f2e49fb79ca27eba372a6c557a6fabc8b01548", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_interface_config.cfg", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lldp_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cafb0268e9f22c966719d76a2b7267d966ef98748f68cf3594ea55a3efd03945", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/show_version_brief", + "name": "tests/integration/targets/iosxr_lldp_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e4eb1b26a35a3c5bcf1e45eab472c8d59ff0559cfbfe701cd60c17ee6d9d6957", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/cliconf", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/cliconf/iosxr", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/cliconf/iosxr/show_running-config_hostname", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "749f869982a235df56c1c7e404744c441340ff6da90dece0c8b83d63ff47e7af", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/cliconf/iosxr/show_version__utility_head_-n_20", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cc08220e9647a2a3d34640ffabc08fd34f9601e229ab7cdf5ce4224f62cc158b", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/show_version___utility_head_-n_20", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e4eb1b26a35a3c5bcf1e45eab472c8d59ff0559cfbfe701cd60c17ee6d9d6957", + "chksum_sha256": "f9a9d7ca96d490c22c02070c8c68ba92103e69f4a072341a141d204d7173fe9f", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_banner_config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "373fefe369cd647022df09438152a869d3c407cb05c51b3bd8214b81471d76e9", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/show_ipv6_interface", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "151235002e58119649b79a98cbacb5ce155225e31aa0188dd8085ee0961feacf", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_interface_gathered.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "06b46488db2b8cecffa505d7a8d7f3c0566df2beadef2fb795f3963e26bb1504", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_ospfv2.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "27b9a4a53478778c5781170c052ba66bcc09dcb40aab0709d28018f6cd332126", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_system_config.cfg", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "18ae20e11b3f557435b212a739a50c59c95e4162dc13989695e6c14ae35e58f7", + "chksum_sha256": "312204dc90b5c1572a58a7a44d7590f6da0274af0a9ac9102c9c1e762694d64f", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_acl_replace_config.cfg", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "197b575ae7d14aeb340f84bcb05ca1e4c7f84786dec07881afb650cc75106c20", + "chksum_sha256": "018ace52485c2b1609f5d7d8893cfe0b99b5204eecee7eea3d3b634d614a1e1e", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/show_interfaces", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_populate_vrf_base_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e37745f7a4d614d0aa5da44df8a0acaea5820a5900d65cabe9640ddcb7e6ccd1", + "chksum_sha256": "9d94b9491a045f06789eaaa96222a72a7dd8f65c48d45d88dba16fac049fd704", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_acls_config.cfg", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7415a69cdd33bff4395ad90a4cf6a930082691564493b998844e499a5039d13d", + "chksum_sha256": "52cb77efeb2277f2766261efd23be1b385eb0a279a4858a160fbb23e6790f898", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_l2_interface_config.cfg", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c18f829582b9ed3a84bc5226dfd05be9c736dc0c949d61f719c71284e747e1d", + "chksum_sha256": "9c36f82fabc3726780c6dcef3a0fa8d4d7fa7d019fef1d97e076b8fe18a443fa", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_ospf_interfaces.cfg", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_populate_base_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c3e8a76362099f436fe64dbd9dfc6401c862dac9c7b36be4ec83b36d125be2b8", - "format": 1 - }, - { - "name": "tests/unit/modules/network/iosxr/fixtures/cliconf_ncs540", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/unit/modules/network/iosxr/fixtures/cliconf_ncs540/iosxr", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "a6c17c3999a6aa6f3d39720a51223d01ceba114a4e704ed27bec76342cd0abe0", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/cliconf_ncs540/iosxr/show_running-config_hostname", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "749f869982a235df56c1c7e404744c441340ff6da90dece0c8b83d63ff47e7af", + "chksum_sha256": "bb4ab173f008550df0cc48f83ecb505db4299ee8a9f026dff12c5af63d14b7fb", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/cliconf_ncs540/iosxr/show_version__utility_head_-n_20", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ca53ef4a0ab10529e7d5df9fd669fae547be148b08ee7075141212ab90a1e929", + "chksum_sha256": "f559ed5b722bfebecf0cb6a696f9bbcb6ec56cf63c25e47be07bf9478e556e4e", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/dir_7all", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c5e2c218c5731bee3f874af0bc5d5694a426ceba650efc03795a5739235f0120", + "chksum_sha256": "faf8165e1aa4827820ee0e9a0ff2c418cf23c682592ada66b626266facf9d1b9", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_user_config.cfg", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e387d5d8b668b1f290872aab2a3e8f8de3d4bdcb99906b8bbf618b950f0c60e9", + "chksum_sha256": "c455861f770ac7341d3e29ba6804ffdd075bd6fac56f4e5f07b494eb12aa6cc7", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_lag_interface_config.cfg", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_populate_vrf_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25aaec36c88ca1c78bdae21f0a0e072929ce56e56f569967927ab6def72d972e", + "chksum_sha256": "19489912900216d55b30d715921bf8e1edad2d1945ce967383c9b10bf045aa1e", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_acl_interfaces.py", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8ec7f7a7253a073da59b55053ac9d52714a9f6ddfe55966a4333730f9fe6a355", + "chksum_sha256": "70746bef62da91f4d74143ebbaee0b443f901bda32a4f1e5a841b32d4c6f6f66", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_netconf.py", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "209aa02e404cf255e643c487b9c44442ed9b5e17ac62c5526c0c02825c6694d7", + "chksum_sha256": "80bdc3eb58879b59242b45b0227e215f0c14772fb790850a5c4614c1d040852d", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_facts.py", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_route_policy.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1949ff68f966a8319f8243b815ea48024ce7e72b3e98606155c205a40568280", + "chksum_sha256": "0357901519ac8ac68f6c7059838c4cec150ef91418cbe8f82efc4c0d43f6fa9c", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr.py", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "775a3f292dd11bbf06389c191e39f326f65655899f046cd2f9d0fc53c527b972", + "chksum_sha256": "cb254762f05493022cfab5268eb344f0aa9c5f62129bd422903006e890d1f01f", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/iosxr_module.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "44fe73a4355f43b735971cdf2927a17ca35a317d8d3dcf7eba3679e42f827bf7", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_interfaces.py", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "980a9645e0fb54365d3ba45c0965ee1c82884870a8cb239bbf38ac0910450a42", + "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_l2_interfaces.py", + "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fff7eae63c3d46e98264e6bdd9ab6c2009bd84bb53ff4a53575228f774a4036e", + "chksum_sha256": "73e48db0c23a63565816ea0d938e972a0a9daee404ea69b57fc39f403f1288ac", "format": 1 }, { - "name": "tests/unit/modules/network/iosxr/test_iosxr_lag_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e64ba104e28f652f4300a8e7c43d4aec50ab8bb28f8f97d5bde22099f8f20b6b", + "name": "tests/integration/targets/iosxr_hostname", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/compat", + "name": "tests/integration/targets/iosxr_hostname/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/compat/unittest.py", + "name": "tests/integration/targets/iosxr_hostname/defaults/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "727203a3846be41893b78a4b77852a1658925e936fb19539551958a5d8e8fb81", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/unit/compat/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/integration/targets/iosxr_hostname/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/compat/mock.py", + "name": "tests/integration/targets/iosxr_hostname/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4e0ca26e6e2982bc40db782db3a0d4950e8c5a749171c0da22c27c85acd23ea", + "chksum_sha256": "8fb0722d13cbb07c9e9d85b76efbdae857bfdd1801b6aa0501a52946e6b6d588", "format": 1 }, { - "name": "tests/integration", + "name": "tests/integration/targets/iosxr_hostname/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_hostname/meta/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner", + "name": "tests/integration/targets/iosxr_hostname/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tasks", + "name": "tests/integration/targets/iosxr_hostname/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_hostname/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "303b9dff6309fcb32b8eb1e05d36298973519248849c1ddb442a6ce54e4ae491", + "chksum_sha256": "823462a54fe9b7f711ce0331124bd72c3c4029547fd7d1c2e5bd1da25582cebf", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_hostname/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aeaea690f4a27b4af77c33a24968cdc89de2ca73e590d9ec1db4b80842750bb7", + "chksum_sha256": "b3905393cfeb5a880d6f501a9813b52d787c771504efb07291ea4bdf91a83457", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tasks/netconf.yaml", + "name": "tests/integration/targets/iosxr_hostname/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "74e0fd06296ba78b354273f00e39a2cb9f77e8102eddc40deb284d83c52255ba", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_banner/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "1fb084918ff5f04f5da804437d0287f888c6b225be719b39e7599e4d2928890d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/meta/main.yaml", + "name": "tests/integration/targets/iosxr_hostname/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_banner/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "348ce984e68aabc275d61e8143b23c6cc59765f2510b073a4c611fa62254a4b7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_hostname/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_banner/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "a89c158ee6a5732379e2b446d1d6e307cb116b5a4f602e32781b5e11598f3c9a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_hostname/tests/common/_parsed.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1b0de89ec88a4c3c844244ea9b8a24ef5d12fe4ec4932c525b720742d77334fd", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tests/cli/basic-login.yaml", + "name": "tests/integration/targets/iosxr_hostname/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "00656d9558735dc363fc4ba83a58620f10aa6ad82ab4554f00ed2655922f59bd", + "chksum_sha256": "0c727923bf03a87bd59efc3eb98d414cf99ea84ac3748d32412b7eee33996553", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tests/cli/basic-no-login.yaml", + "name": "tests/integration/targets/iosxr_hostname/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25e88c9b68237bdf23639108d7085f04bedec5592b86fb12467e7e3ba449ca2a", + "chksum_sha256": "33bb48f812aef67e24ce8cffc06916f7f8adbb8977853170aeb32dd150bf334e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tests/cli/basic-motd.yaml", + "name": "tests/integration/targets/iosxr_hostname/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a63b5980f97093dfa1ff3c6f3730f2ca0eb3c011af4430267f16cccdc0234d72", + "chksum_sha256": "e2591c3d8f9408a6d1879a028da5491a9275c44601b28d5d1341818ecab434a0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tests/netconf", + "name": "tests/integration/targets/iosxr_hostname/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tests/netconf/basic-login.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d831f48454277a06c4809abc0d238b1963f16278853be6be3eee834b0bffd3ba", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_banner/tests/netconf/basic-no-login.yaml", + "name": "tests/integration/targets/iosxr_hostname/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "50f1c5622a99ec54a98a3b978dee91614909adcedf67378c13cd2f3cb09e48b7", + "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_banner/tests/netconf/basic-motd.yaml", + "name": "tests/integration/targets/iosxr_hostname/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52cb507d481aa76f0a7685583fa5c7828e6271804fe2a90b34fa7159c24eae54", + "chksum_sha256": "2d3350be00fa2af0f217f369684578df724bcf9550402e7a54ef1b84f32dcb53", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces", + "name": "tests/integration/targets/iosxr_snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tasks", + "name": "tests/integration/targets/iosxr_snmp_server/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/defaults/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/meta", + "name": "tests/integration/targets/iosxr_snmp_server/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/meta/main.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "0f9c668532272c0b616e70d3d77dae2fb25871e3d07b04cc8702b25f51ec4ab1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/defaults", + "name": "tests/integration/targets/iosxr_snmp_server/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests", + "name": "tests/integration/targets/iosxr_snmp_server/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44b35581001d7173e1b8f2fb5c3f8804692c59c87594ba3f4bdf1458cdd56256", + "chksum_sha256": "990985bc43befcb4befb0737e5dc22784856b95aa04a8139dee5020628aca31d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/_overridden.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26eb03219bcc0caba6d5b3be37a6bce7fa846c1e5ea6d2df9a5fba581597d7af", + "chksum_sha256": "51190a6fdbc4b50898f72ccb49c0e3f7c8856ed9483e53bffbae15805d583c7c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/_deleted.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1264641b82c36fe0d15026aa6bcf379dcde00c183ca8f1283a7e9db9880c50d", + "chksum_sha256": "81d07f1d66f078236899a5e835c4d53479004393bfb1ca80caccd1afa0cdea90", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4b561e6501b1861665d181d39f4882f6c99b610c359d7294443b5e37722edf6b", + "chksum_sha256": "4d26d4eb07781e55845119a7c3513bc94bd975804d6a5e2f86a63086bffaea4a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e989cbdc6bc0299a75483abb2bc9f771224d13dbdd084992fd71e6ef57f1a5a", + "chksum_sha256": "d365f215fa2285f64eaffc334997ac4ba381ba0fe72d1f0ddcfecac8b076eda0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6957f1a450e714240cdf34121eaf5099db25f1bda037680c8af357fef80839b", + "chksum_sha256": "a4e26c01ab8c4e0f46bbacc76fc290c380ef19ae68f2f3e48db74c3f3e0554f8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2390ab9c8c2958dd0623138f888fa1db1e40d20023bb803e5a1fdc9906be8504", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "ae3ae2d79689b84f4e7d6094ce2e78a4ff7e4ab351b50893aa2ffbb47377e75d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7f495f2b2f098efc4830e55aecc165536ef8cacbf35fcefc030cfa3a6a5a345", + "chksum_sha256": "c84f687a0d23e760666157720b95281a7e02562f1304efbb9c904f542c7ef969", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3915314d2bb6a8c96a0f18c7cc4d1bdbb6a16e78a660baf7328ca5f6fc854a1", + "chksum_sha256": "92a61d453a67eba0f68f754f46ae9ef6b90567ad40e8555fd46868a595bef998", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d90b33bba17d4d2ae74d79879e9163f0c413e1d4f076d7817c3a856e456e41f", + "chksum_sha256": "d537c09198b49b391f157eba859faa21d25fe4e4db79228887b12586b2207ef7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c2426117bdd1320e641684a463c4b947c1864f76710eda7ed9a36c06c1b3615f", + "chksum_sha256": "a38d54a4fd46f4c94df79af4550ad013eb6cf28a11f2ddab930527a035c6349a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/vars", + "name": "tests/integration/targets/iosxr_snmp_server/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_interfaces/vars/main.yaml", + "name": "tests/integration/targets/iosxr_snmp_server/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "628f1746159ca78d2b44a74e2309d2db9b380b5a8582fb2c0f0b92c3ba38e95f", + "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_snmp_server/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2d3350be00fa2af0f217f369684578df724bcf9550402e7a54ef1b84f32dcb53", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tasks", + "name": "tests/integration/targets/iosxr_lacp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_ntp_global/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "73e48db0c23a63565816ea0d938e972a0a9daee404ea69b57fc39f403f1288ac", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_ntp_global/meta", + "name": "tests/integration/targets/iosxr_lacp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/meta/main.yml", + "name": "tests/integration/targets/iosxr_lacp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/defaults", + "name": "tests/integration/targets/iosxr_lacp/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/defaults/main.yml", + "name": "tests/integration/targets/iosxr_lacp/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "28efea0049957f8eb23160dce61b09a38b89b1fa61bc53f4f53b7f809b4eebd1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests", + "name": "tests/integration/targets/iosxr_lacp/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common", + "name": "tests/integration/targets/iosxr_lacp/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/_populate.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3116e5b1f3807158456527c7d2ec5c4ba73c2f53d75a464c9aa0257257279ef1", + "chksum_sha256": "fe0b5773fcd48afa2ba50bdb1cc2318f5d4dc3d46362db64195210f5ff26acf2", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/deleted.yaml", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "12edb69044ee3a03f3bba8317b8d590ab8f7cb428e0b6047c6e86acbf91cfa23", + "chksum_sha256": "c9445f3494ae6fab46f8a866ba98cccfa586ddf8b3c467ca3e6da1a757d83e7b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/gathered.yaml", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8999671a348fba3821b25049396c8971fe8a24a577d5d704c8c220c81d0ecf8", + "chksum_sha256": "3f35e7101f1490cb9fb6467b196a0b527dd72ef2a8d72925ec6567770bd58832", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/empty_config.yaml", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07b3031d563cd5f7a06f39a5e4edb6f5b3334d8dd70070337cec600a6355b08f", + "chksum_sha256": "ba2306dde118373ceb847e377f4d6017846446a5d4f20350f3dab7ef76ed6c9a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/merged.yaml", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd90f3a750d4f51a1d947cd1952156f4b8245d1d09d4741d57b882a9ee302c2f", + "chksum_sha256": "d208dc3d0e8a9a35951844e6a916db895790ccda6bd7bb550b824a7eb4477b30", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/overridden.yaml", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lacp/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c551ac7c741dcae87dfa4237c9c2387202c54e86e04d9140b8d7684d3560fb2", + "chksum_sha256": "b053b09f9388c7f6208c51e8b9e53867bd6352bf37c9688f28b02ab348ed3767", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/_parsed.cfg", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ecf37c4d4f8799590d36debba286353a94b76fc0f89929f5cef6cf762337fe3", + "chksum_sha256": "66d389919e87982a7de0c3a90adfb49bb46d953079385a160b96eade8ab816d0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ed2c59015cb8f315b1a7d5475e42fa855009b2e5d26f656eb6f80eaacf718da", + "chksum_sha256": "93f1a75fd2d40c2d5b43a04650b66fd0d98e638e951373de1fbe2f5e22b79ce8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/replaced.yaml", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aa640d9b74a58c56f1bff39b0d710b0f9e072c59d1029e8028071ad927e83119", + "chksum_sha256": "b8a5a0ab330416618101c508230864f1c4d2956b5d3babe9e74ac3c295439a3c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/parsed.yaml", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37b4fdb1a797393df3d182478993235633244c539af30725013db77cec0d1178", + "chksum_sha256": "26c4083f5bd77b0b8a4a7866d3a93116bb2f0a0e9a3620beb2651b37cd2eabbb", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/tests/common/rendered.yaml", + "name": "tests/integration/targets/iosxr_lacp/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be949100104e75250b3f92b5f02d93e8a471631a4ef398d2c24d2030c1b3a57a", + "chksum_sha256": "1539a41e787502ec7781cbcb2c00157799a196ce6da851d0565b96d14db4059b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/vars", + "name": "tests/integration/targets/iosxr_lacp/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ntp_global/vars/main.yaml", + "name": "tests/integration/targets/iosxr_lacp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "33b4175617133438627a3921128a558f7c3cfd5e70b930808c06634e4fe3cbc1", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_lacp/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tasks", + "name": "tests/integration/targets/iosxr_l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", + "name": "tests/integration/targets/iosxr_l2_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "73e48db0c23a63565816ea0d938e972a0a9daee404ea69b57fc39f403f1288ac", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/meta", + "name": "tests/integration/targets/iosxr_l2_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/meta/main.yml", + "name": "tests/integration/targets/iosxr_l2_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c659daf4218da5a2de29b769dc1250d37a6a80151c93a58fb3958289f5d8d59f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/defaults", + "name": "tests/integration/targets/iosxr_l2_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/defaults/main.yml", + "name": "tests/integration/targets/iosxr_l2_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6b79a9c0fb64ffb5ea3b2499161f3d284af835a1e17ff12cbfe838a09a936573", + "chksum_sha256": "9eb5c038a48458b36702ea94d1bc8172511a8eadeec71fe922d406cfebf4b5c7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/deleted.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "279dfdbc6e8e658f0034995198e414253f0a512c6590a311da073cae0a52d15b", + "chksum_sha256": "86dfa2d949109a946c52fca30228bdf700908e44f122a528c64d6952f5d45a78", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/gathered.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8149279cc0a1da197893f2b231b99e89d35f72f7eca43c0ded62a1f7938af73e", + "chksum_sha256": "ca461ff84f99d15126252d878ef50b92ce916783f8cb6ff91f2e2342144dcd7a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/empty_config.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b6b32698c946e6caf83b8d756358cf0fe146dcdf81efd2b020ce595eba38bd4", + "chksum_sha256": "133cc3a327728f918408d45c77742cd31e4cc17537871f0d02674a5a48c394c7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/merged.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8e2c26f79a8f6cc6611dd48d408df870cc43853b8d8dd9ebe0af83465119b0df", + "chksum_sha256": "a4d9508554b3caf42a189031a45bbe918f8d87ab46b49670f824f45e84f1f73b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/overridden.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d72b330e428d01f36ce0ba454497558efb2aaa4a3d2f4423378d93febb7025a4", + "chksum_sha256": "26b4e7ee16aab6f1a3a11e5b8dcd55412e8afba623415469b2aa057b23126745", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/_parsed.cfg", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e9111575d03ca3e8cae1744708bc4329dd05fdd40ab5468d722198a6728b1dac", + "chksum_sha256": "b908ec71d04a400c46745f5f6aa67edc06711a6fa409bb6ed2570d7b7bbc7f88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "909a21409e28a252b2c0d6fccf1e6c0e2cb51d710665aa7c0cafc11d6679a727", + "chksum_sha256": "50d4197872d8d2199638a7049cfcaac7c3d9332ccdc4b432d84ab9eac3fe0899", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/replaced.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "02dd8a9273d456e158f8810372ee5f70c1b4ea56d70cfa11eb6dab8f9023b558", + "chksum_sha256": "9b651c37d64cbc8d8ce70ebbf64f9edf9f32ec1b9986713f8e786bb8dd1a5b93", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/parsed.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "10bb238d21d24df6fe4e476d542492839c1943430ea17c6cf9275eb4790da423", + "chksum_sha256": "18a4c9c8fa0b4717435de1c5b0c06e1bcc37099d4e1e2f50cd52755b5382d90f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/tests/common/rendered.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "32b4a5eb23f7544ff53968c2f2f714963b86c198caa83facbb6e36be9cb85d49", + "chksum_sha256": "8735a17ccab3ecd1af096f3d1c722e7db3b0ae5c7e48667aba20f9ec6b155d08", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/vars", + "name": "tests/integration/targets/iosxr_l2_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging_global/vars/main.yaml", + "name": "tests/integration/targets/iosxr_l2_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a069b29e331858b268f0a2ab9ace19d5bf793703a8b5c452ac8724a6570506e", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, + "name": "tests/integration/targets/iosxr_l2_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "format": 1 + }, { - "name": "tests/integration/targets/iosxr_ospfv3/tasks", + "name": "tests/integration/targets/iosxr_bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_bgp_global/defaults/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_bgp_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "744a98c76b992e1adb641f9f1770a9d7aafe06e4c75ae8a26c889b6fd99b376f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/defaults", + "name": "tests/integration/targets/iosxr_bgp_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests", + "name": "tests/integration/targets/iosxr_bgp_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "46bf472822cc2a45ce47c1ac6c8059fc5f228be53f0ee692765832aa1541f811", + "chksum_sha256": "2ada9252d595d233bb3b7e2a01900965416d147291a2ac3b443c70c9478cad60", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/deleted.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b353f038fe3608efaa4fe240c2490e4d96479df9fac05c5e65b382b2b5eb45e5", + "chksum_sha256": "73d93464c7e118949c3a6da1e915242a227681ab6ba766d5de54953c3cd6dd9b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/deleted_af.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b74c20ce7b08e53ee2f6ad55e8964e7d763329b130c8a57f5962395f1daf2a13", + "chksum_sha256": "7c45590bfc752fc39a81b8b358968e75e75335e4c3d6449f6a8ca051999fd2ea", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "771f96cd83c9a893ed5ea4eb2d25b331fa2728f8399f0fb2327327a2eea69eb8", + "chksum_sha256": "05d664f2d11d59132b41ab8f93edcb49d06d8f827796db4c9dab60549b4166b3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/rtt.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe864b51e70814be13bf52e56f90108c6f6f874ddf23fc9c229019215bab349f", + "chksum_sha256": "0d3f42e30ecfd27dca2f459e67fcb29aa7eb221087dff2125a4b50e24de047c9", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/merged.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0432f28e01aa6fcf74a9f27e1d245b6e7368bdf7c4e6cada6911becc1a5d8cd6", + "chksum_sha256": "5dd7dce83c0f85059155d19b0844f40613a98e42f0718a0fa319c1bfafc0b775", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/overridden.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "296f132a73194b9b2d134f6cba1b69da8f2e1f3345c4cf5952c8fe686e1eac91", + "chksum_sha256": "69b28ec7e3b77375e263157ffdbc2e5c7dea56353f9a906f0efdab44aaba2efe", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97c41a9ab68d27a209106c1f47557a5659ca2e8914fdef8e29514b208c8c771b", + "chksum_sha256": "0fa5a58884c54913bb3233265309e71f17a41edebbb6e521712db35088bddcc8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "38ac896b32ffc759f2b4e498126f827b96d1cb0cec61a9c8e1669aee7d68af1c", + "chksum_sha256": "03ffdfe82c9b009133361192299521b9457798b577daa4aee23d17cdffc2d78e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_replaced_af.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "820c9d8378bc3893f82eef7b74466761336b9e7acf36c99a76ab549c03fefab0", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "959f73cb330969c6963963b3a9c6ced291c02803d8b43e0d280691e1abb94a88", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_ospfv3/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "6c983c5b8e7bdc4997dfda6709c7d4a8c719b507c82b73041b3159cca9d6a039", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/replaced_af.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "717d5351bebea57a2f0ccd874a2517595c2dda6c4ca8cb3c6de7c0902aa14b75", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_ospfv3/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "1adc26fbed5ebfa1eebe6013b93d3341c85b9e55a579bb5615cbf02e5a650536", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv3/vars/main.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_populate_vrf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fa66fb8ce0cc80369445c497f68d5e087540f12ad98f96f181e99c7500e5f232", + "chksum_sha256": "73cebb0d68942b9cebc4449c12ecdbf9d07ad5ab0375875f6b2dd9a03bd87ca8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "63d9fa98fdd8596f997fa6c705bf0ac62ad1f9d958b656b0c4b29f5ee7c2e3d3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/purged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2cce29019f0726c03e53a2daa42ff31d962e2df7b0bcb6b6a75cb120950ff68c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_populate_af.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "chksum_sha256": "d225cb9e1c413befc498bed1759effe731146fb93a8275cc5f28a9fb6cd62733", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tests/common/deleted_af_with_vrf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cdac5ecec5537510649ea64ca19a23351ebc7e9783ff4fe4f220079ed2c37bf7", + "chksum_sha256": "a04a3326feb2ff3aa7d9895fba630bba0d39c7e0ac0335c378d6c9c726dea9a7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/defaults", + "name": "tests/integration/targets/iosxr_bgp_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_bgp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_bgp_global/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "73e48db0c23a63565816ea0d938e972a0a9daee404ea69b57fc39f403f1288ac", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli", + "name": "tests/integration/targets/iosxr_cliconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/deleted_all.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3fe49d80821c922d19f9db8e41eb9a60b6328f43791322450bf5d78899332dcf", + "name": "tests/integration/targets/iosxr_cliconf/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_cliconf/defaults/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6950308b0007d4bd83a9207819818cafea411ea68e0e0d16cd0b142257082729", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e428186b1eddbc63e5395419d8183ba503bfb276767d1c1e7fff71da95af734d", + "name": "tests/integration/targets/iosxr_cliconf/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_cliconf/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "107424d86e345ce03603238560177493367356c6fa158092d8c272e20f8b3572", + "chksum_sha256": "9c35198fab18c93963cab948cace1ebf7409e6bfd720d8e3d2d39d40e9d20458", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ce73c16381b1f6d60eb2a28255e2c73d3e440383faf5b4c592be6a2a17ec4cf0", + "name": "tests/integration/targets/iosxr_cliconf/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/iosxr_cliconf/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ed9f2b98d464bf8603d35a074fe2d50eb66d3a2c595967f48de1264a2038dcab", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/_populate.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "25049f0c45154ecc9748bca191fbeb5239511e4a87cc68964b1899d9731f178b", + "name": "tests/integration/targets/iosxr_cliconf/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "646caf77a4a5a75a19987a0316b75e38bcdf89ee4cf21a2e7e6a0f2ff925eca0", + "name": "tests/integration/targets/iosxr_cliconf/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/iosxr_cliconf/tests/common/commit_conf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7dbd305d647109e42dac7d09473eab83bb832b522169b0d9ae7ae0a6a8e33d0", + "chksum_sha256": "e046c0d2eca053f31eafa4cedf5e98bb17332b8266cb6c88f0c2370ab7237d7e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/fixtures", + "name": "tests/integration/targets/iosxr_cliconf/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "85013bce86eea3299281d203601b99b8f56cc72e1ffe45075f6147bb5b090742", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_cliconf/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "47e2e6914d5891922ec91d009954863a86a6ce47df64b1db65d886ff8a9c7d0c", + "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_cliconf/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3e4615b224f5c3f3beb526a6112487ea2f90880deefa2eed6e7903c023dee300", + "chksum_sha256": "2d3350be00fa2af0f217f369684578df724bcf9550402e7a54ef1b84f32dcb53", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f86e8be0f7d1983eb2350200ecb588e258b5712eb5a6e027fbd540fb3664ebe9", + "name": "tests/integration/targets/iosxr_config", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/vars", + "name": "tests/integration/targets/iosxr_config/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acl_interfaces/vars/main.yaml", + "name": "tests/integration/targets/iosxr_config/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9c186e5b37c704de87faa743ec5ba48edef1722215a550914539801cc5f67fb", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf", + "name": "tests/integration/targets/iosxr_config/templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf/tasks", + "name": "tests/integration/targets/iosxr_config/templates/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_cliconf/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_config/templates/defaults/config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d3350be00fa2af0f217f369684578df724bcf9550402e7a54ef1b84f32dcb53", + "chksum_sha256": "c67459067166baed6059b02907fb2692e34868270185b09fcd9f5d7c3ec013d0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf/meta", + "name": "tests/integration/targets/iosxr_config/templates/basic", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf/meta/main.yml", + "name": "tests/integration/targets/iosxr_config/templates/basic/route_policy_clean.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "baa2f889363d8827d04378ac81e1516d840d64a721e4cc8284c937390206904c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_cliconf/defaults/main.yml", + "name": "tests/integration/targets/iosxr_config/templates/basic/config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "fed860520ec0b19850744af6be1c77939335d4a09539bf563d0c15aa6afc84ef", "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_config/templates/basic/interface_config.j2", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3209d667d131c751b8cb1954bceec81eccb663a5e257b81b7394a9edcb9e0d70", "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_config/templates/basic/route_policy.j2", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "83c3226c2070afbe01cde658ec7852261ac925abed96766989888c70a2f8bc92", "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf/tests/common/commit_conf.yaml", + "name": "tests/integration/targets/iosxr_config/templates/basic/init_prefix_set.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e046c0d2eca053f31eafa4cedf5e98bb17332b8266cb6c88f0c2370ab7237d7e", + "chksum_sha256": "92dec92ecf095d1c33c493f4769541caa745787d80e498d6ae81decc93351e0a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_config/templates/basic/change_prefix_set.j2", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "91a0239cde35ce8e75ad24c8f9c853014cd0c7a5554171ee3b0ad50cc8ed67f5", "format": 1 }, { - "name": "tests/integration/targets/iosxr_cliconf/vars/main.yaml", + "name": "tests/integration/targets/iosxr_config/templates/basic/configuration.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c35198fab18c93963cab948cace1ebf7409e6bfd720d8e3d2d39d40e9d20458", + "chksum_sha256": "1fd4692dc95cf561f544f8f680c9046add01c85c6fb83c17db2690cb854d3bb8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_config/templates/basic/route_policy_change.j2", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "95c74f6778f25c6385437de97ec5ffbbef5414ed42115d8b7ee276fe5d7fdd64", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tasks", + "name": "tests/integration/targets/iosxr_config/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_config/fixtures/config_add_interface.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "chksum_sha256": "ab5bf303021e5250cd67b0f4ad25b8127b74dd2d8630266a382d9ab2aa4c248b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_config/fixtures/config_del_interface.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "087d7655b24ffcd3191a5cab8015486b1da1488345f6e7617b0523f575b0400c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/defaults", + "name": "tests/integration/targets/iosxr_config/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_config/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests", + "name": "tests/integration/targets/iosxr_config/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli", + "name": "tests/integration/targets/iosxr_config/tests/redirection", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_config/tests/redirection/shortname.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "351ab25b2412eee119ffee510ebe0b70b40b13e8111e0c4b2b5c519bdda51634", + "chksum_sha256": "c82a2cf83917d7934e758a867235e53629945aa1739c3101bbf61adfb9f248cb", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "00f68885674a79797fd718487a3df7e70af4782785456212e76c50cf85495517", + "name": "tests/integration/targets/iosxr_config/tests/cli_config", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli_config/cli_backup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f40f0a57eb589df2ee64a1628873874408bf7504b5620c6b275450116f81dae0", + "chksum_sha256": "6c6e65aa217139078a0e172b54fc00eb2cfe51f2079cb7d9b0a5d9c5d2a74ca6", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli_config/cli_basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0b1cc12f4914b97b943e06edd3ffa0a27d298e50fdde3170dd1257a1c9fdf07c", + "chksum_sha256": "256bd79f69876e184c69f562b22d1954e91f78e0386e273f4f11c5cf74b1d350", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/rtt.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "98eb3a3642a23b70e1b74c890a478169edcb4a079cb75d158fceb89da2e9a16c", + "name": "tests/integration/targets/iosxr_config/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/merged.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/toplevel_after.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a43a99763a924f63fec89ac15da6a0e52887599d1f3c8c22df8e5b083fdf9f38", + "chksum_sha256": "75053a4dca4669bd74e8c0edca7056cd31c40751cba6379774c337e466203cd6", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/overridden.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/prefix_set_remark.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "293a473418d1ab4abe4b92f1ad395d0798f956c6e81b60b8a9c96ef6423702b9", + "chksum_sha256": "0fb66964d634451765de4922678ada90649e02acb0bc6f5b5ab6c723a506bc1d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/commit_confirmed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "faa07f9fa788bf1fe18e07fb1d06f797b05da7a822318916f969975dfaac5478", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "9653c9ff2afc35783f116961cb926bb5f1943c963d05125998cf71c2d18bc182", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_config/tests/cli/commit_label.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6124272ed18483b35ecc3e79e5dc7a97fb53f4cd02ad193d1d860f408711fd5b", + "chksum_sha256": "873e365af69c26af8ed84b963e8f670dfbf86dca68811b164b1465417160070a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/sublevel_exact.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "35f8c72cfa440d55ad5148e38ef607e05bbb6cd1632a6ac7425d351ac301680b", + "chksum_sha256": "e18cbd1b58ce8368d11e0948fc75860f2b21e4092c74129d894fb7e4fa46dda1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/comment.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0cd46bf6eb4382f30d13e184852377422958a6f882a49dd694b3a82709265ac8", + "chksum_sha256": "d78c09db16606b84fe8cadf629fe73ef6d41f3eb81db7a19fc53bc00bc936de1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/src_invalid.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2bc68f81719327ba9af3add49753b86806a773ae4d1dd82cc28b1d082056aa25", + "chksum_sha256": "ceaff4b3620df90e8208f020adfa3d1b12ca9bef955fd8e01ef5f0395b4fdcd1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_config/tests/cli/sublevel_strict_mul_parents.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8e641ad89ffb073b8597de019fae0ac2a48482a6a33ff9a3cadd97f364100c70", "format": 1 }, { - "name": "tests/integration/targets/iosxr_prefix_lists/vars/main.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/src_match_none.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "056300e86e33d8bd4c6a91441a5aebdb0f1c0aac51930895ad3862211ead4b78", + "chksum_sha256": "7d11c76ae5a12b13a67769e0b7b49d0817c69cff27bc564ea39869b8a2517840", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_config/tests/cli/sublevel.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "81d687e492374044859a0efcfa6dc922fb526648b8631faf70b621ae6742489d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_config/tests/cli/route_policy.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "604f5b5f96027a1c3e5768650bdfd7687d1fed0a5045a3e5b9805dddd5fae6a7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/backup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "chksum_sha256": "219bedf133ffab88c2bcd3bf803296ac143b96a71b45aad351811d07898f7c6d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/replace_config.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "520231e3fab8fd0eed892322eb5e630667f32730b89f1a06e01c22a72d33ff45", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_config/tests/cli/comment-too-long.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "441fd0dae9c75894224eb8056ba369437d96056005466872f0b850546eda0933", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/misplaced_sublevel.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "55ebc624d7356f89f6c2bb32d13aceff80e8df04d57c28f463023a7aca814ee3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_config/tests/cli/extcommunity_set_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cb9f1df2b57e8364e823fb60276e322bd994be2df12b42a7cfddb461bb3e0dc0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_config/tests/cli/toplevel_nonidempotent.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4b629cb3f6c037494f307266e968320063f5533907d7b2b73a2f4c0cb8b91508", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/toplevel.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b4377cdd354c797bde70b1ab79c25b8126309a735c3e52ada4dd3cf2c61db4c3", + "chksum_sha256": "98194ad2b27b0a9722de6305af5d2446201c488a21e52d33f31b82f51dcb9dbc", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/sublevel_strict.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a06cf74352024ffccea204ef3822fe08618aba04915148c8736f6387331f3662", + "chksum_sha256": "33a343c4930c4bd86c2f660177d059bdf6c44e52b4224ecd7e8ade878687544a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/toplevel_before.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "40b9f6860fef89f7797529730ca794a03fef91355da74053086820283a821df5", + "chksum_sha256": "19a5a9e3043bd0b74fd7e71956374e204626d4346262c0c4cd3d9c579bb89f87", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/src_basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52c1f9bebbf6821f0b098ff9cbcdb8a1b30b1044a88f3b89e8fb8e76ea9b37c8", + "chksum_sha256": "474793b496f46c63df13e87815973af49d18fbc707f1d8dcd47060dce4344005", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/replace_block.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b92b9c34db1ed38368a5daa18ab827267e694b837a278a42224c5652f0f3d876", + "chksum_sha256": "c25a28559f6b20688ba8f74a807251df375f9d3b938d100531569e723f908d1d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/iosxr_config/tests/cli/sublevel_block.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6627fdd69a02636b86a4d138377f7e54897986e3f16878ff6a55e573eeac3793", + "chksum_sha256": "45be4aed01d01d3a88065e21b231390a90c01575db70fe99bc373d253a483945", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b9a8c7d0bff4202802918716797b5c1a831da98ca2bebe674f77d3e13de6b1f6", + "name": "tests/integration/targets/iosxr_config/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_config/tasks/redirection.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96c0644d6833fa509126bfa843bb259b9c9963e2e53d5fee080bb3cdece99de7", + "chksum_sha256": "4dda061736323dd09fa0832d73a74f4dec4a7c4665357ad20c914f15778cf99f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_config/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4ea507d63e8a9cff4eb0a1fc7dbb6a4bf4e85fe8bf3f0075dbbc6e3505648d69", + "chksum_sha256": "3ba11d0a6ecc4c096ca24c09fc0f707954d3dc64ac8964ea17901fe60887213a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_config/tasks/cli_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1cd77375707ee0397f1efbd07a4f7fdfcfbec26c86042f65c7f29f3cca9a9c3", + "chksum_sha256": "c2b1c324c2399a7589d2fd4a7ed9b201f8a8299424924277b67298903db1d3cd", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_config/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "50f480556a54480a5cff156bcb4a8fad88e60404f4ca0ffd94df379667fd7bac", + "chksum_sha256": "aeaea690f4a27b4af77c33a24968cdc89de2ca73e590d9ec1db4b80842750bb7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/fixtures", + "name": "tests/integration/targets/iosxr_acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d11bd78a2d74e8dc46a2880b54b3500e2f88cc4e3e6fd42a249138556e94964a", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_ospf_interfaces/vars", + "name": "tests/integration/targets/iosxr_acls/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospf_interfaces/vars/main.yaml", + "name": "tests/integration/targets/iosxr_acls/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "934f6f7a277e34f616d5459e1989f9e0faeaf4e0a61444289abfaf37ee120659", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server", + "name": "tests/integration/targets/iosxr_acls/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_snmp_server/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_acls/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", + "chksum_sha256": "a07cda33c597dd4e76d3b812b962e5718c936287134221c1fbe55ff3a3490d6e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2d3350be00fa2af0f217f369684578df724bcf9550402e7a54ef1b84f32dcb53", + "name": "tests/integration/targets/iosxr_acls/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/meta", + "name": "tests/integration/targets/iosxr_acls/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/meta/main.yml", + "name": "tests/integration/targets/iosxr_acls/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "25ae2d218ceb84438e1135380d5e3f55dbede18338f5c4826bf253fbb1b91545", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_acls/tests/cli/_populate_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fad593c0a30c05a9399505505e33bb99d75913b2ca333fa0f5d198ecb52d3fc6", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/defaults/main.yml", + "name": "tests/integration/targets/iosxr_acls/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "8ba58ba01382b709d04ad2b8b0f82c2d53d7a71a6a1a3bbfbd2b68b09de23dd8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_acls/tests/cli/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a582c68cd840533e05aaf3367b334d02dd74684b0af6a23269ff0b208bf06f5c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common", + "name": "tests/integration/targets/iosxr_acls/tests/cli/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a3de6c6599cbd3a7950c303559545975838139e9c4b6899dc85727669925a168", + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_acls/tests/cli/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_acls/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c84f687a0d23e760666157720b95281a7e02562f1304efbb9c904f542c7ef969", + "chksum_sha256": "6edd326a3c4a5b18f2a041ef8e9313e870c9eff81940294307cc07a3ff90e5e5", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/deleted.yaml", + "name": "tests/integration/targets/iosxr_acls/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae3ae2d79689b84f4e7d6094ce2e78a4ff7e4ab351b50893aa2ffbb47377e75d", + "chksum_sha256": "3f167ba03527e52c6b3236cf547eaad59e5c22cbb7378a1a90eb2a8ab736633e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/gathered.yaml", + "name": "tests/integration/targets/iosxr_acls/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d26d4eb07781e55845119a7c3513bc94bd975804d6a5e2f86a63086bffaea4a", + "chksum_sha256": "60a105434aaf3d04dde592ece9cdf1017cb0b3172120288810d97715fe2fd431", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/empty_config.yaml", + "name": "tests/integration/targets/iosxr_acls/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d365f215fa2285f64eaffc334997ac4ba381ba0fe72d1f0ddcfecac8b076eda0", + "chksum_sha256": "1e4d53cd354dc5e35745d702bd43dc67c57ed1548f94168f687b0cd380e30432", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/merged.yaml", + "name": "tests/integration/targets/iosxr_acls/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d537c09198b49b391f157eba859faa21d25fe4e4db79228887b12586b2207ef7", + "chksum_sha256": "69c219c2446281fb3697154ddfb3a06e77f320193cd04d461a20b0362a4447e8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/overridden.yaml", + "name": "tests/integration/targets/iosxr_acls/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92a61d453a67eba0f68f754f46ae9ef6b90567ad40e8555fd46868a595bef998", + "chksum_sha256": "d324ad8894b55b2586831251fbedab24cb4924fb90a7bb9ebe42bf6e57437ff5", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/_parsed.cfg", + "name": "tests/integration/targets/iosxr_acls/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4e26c01ab8c4e0f46bbacc76fc290c380ef19ae68f2f3e48db74c3f3e0554f8", + "chksum_sha256": "fed7af68aca997e00c7816b282d84fe5b3858ba27497fdfb1f3f87fd1ad7c268", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "51190a6fdbc4b50898f72ccb49c0e3f7c8856ed9483e53bffbae15805d583c7c", + "name": "tests/integration/targets/iosxr_acls/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/replaced.yaml", + "name": "tests/integration/targets/iosxr_acls/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a38d54a4fd46f4c94df79af4550ad013eb6cf28a11f2ddab930527a035c6349a", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/parsed.yaml", + "name": "tests/integration/targets/iosxr_acls/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "990985bc43befcb4befb0737e5dc22784856b95aa04a8139dee5020628aca31d", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/tests/common/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "81d07f1d66f078236899a5e835c4d53479004393bfb1ca80caccd1afa0cdea90", + "name": "tests/integration/targets/iosxr_ospfv2", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/vars", + "name": "tests/integration/targets/iosxr_ospfv2/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_snmp_server/vars/main.yaml", + "name": "tests/integration/targets/iosxr_ospfv2/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0f9c668532272c0b616e70d3d77dae2fb25871e3d07b04cc8702b25f51ec4ab1", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts", + "name": "tests/integration/targets/iosxr_ospfv2/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/tasks", + "name": "tests/integration/targets/iosxr_ospfv2/vars/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "31050eb7af82aad96bdf748dc26f410fa56d0fc426e7a583ab9ea261e0a23000", + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_ospfv2/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_ospfv2/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "chksum_sha256": "7200105e66871ab7b8ae409eacde75f173708b19fbc46b5dfd512816beb5c0fd", "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aeaea690f4a27b4af77c33a24968cdc89de2ca73e590d9ec1db4b80842750bb7", + "name": "tests/integration/targets/iosxr_ospfv2/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/meta", + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/meta/main.yml", + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", + "chksum_sha256": "c081530d7ea0a30fdfefe7b92a48f9d7570b66ade21694b8faa1857d3624cfd4", "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/_populate_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "249c1fec66619c9576dd1c47f0b9abcd5377d408dc6f33b101639b8962161bc1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "b18aabdd28ded7ce5eaeb2fc8e20e3609e78091d172c9e4467e953cf15e3b2c6", "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "05982ef9644df8c28203ff858981fc5883a0c479fae9f391262eaf5dd2b976d4", "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "43bd5bb5c07bc5ce5ae41802cd97f60b7474505e994ad6e03d82b615f8bbc03f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/tests/cli/not_hardware.yaml", + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d45c23f2fed05fea77e4d6081381f243f895035b72a52be4a28d46215dd9026a", + "chksum_sha256": "bc3a8aadf532ef7cd6f55ca3fcc220ad1a1597d43b8927da151c3f8b6b3ab4f4", "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/tests/cli/default_facts.yaml", + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1db28925de61b31d4d1494430b130beb85579fe7f3ac582b05ef26ced8161c28", + "chksum_sha256": "58dd8f904e17dfd4fffd6a6e1e3a4d5387fa38bde6454ae2c5a53a34d058eca3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/tests/cli/invalid_subset.yaml", + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9dc93102aaeb6318fa47c746d0ef7e6eecfc39757b5e0af1e9503a309c6118db", + "chksum_sha256": "95564208ef074169b8b022b09f16f311333ff57c4c8dc16ea7c0a049441fdf7a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_facts/tests/cli/all_facts.yaml", + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09ddaf160ad114c35a1a1abee7ec06230e2c0c1c20a7e465aa479d25ec892e3a", + "chksum_sha256": "fb1d0eb3798a289e286e8175801c5c1e4624e15cde7976d5afe06bc98f677658", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fc50952bf32ba9c19dc8ce51fd6a75f07328b80b00e3105f3bd746797d027501", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tasks", + "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "88ca6319ff4d07831545abca9e5c0cfde8baa1013cbbcf73dd697ffad6ce0b79", + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_ospfv2/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_ospfv2/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_ospfv2/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d3350be00fa2af0f217f369684578df724bcf9550402e7a54ef1b84f32dcb53", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/meta", + "name": "tests/integration/targets/iosxr_prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/meta/main.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_prefix_lists/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/defaults", + "name": "tests/integration/targets/iosxr_prefix_lists/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "056300e86e33d8bd4c6a91441a5aebdb0f1c0aac51930895ad3862211ead4b78", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests", + "name": "tests/integration/targets/iosxr_prefix_lists/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "03ffdfe82c9b009133361192299521b9457798b577daa4aee23d17cdffc2d78e", + "chksum_sha256": "0cd46bf6eb4382f30d13e184852377422958a6f882a49dd694b3a82709265ac8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/deleted.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ff639e39ecc88528745c050f97fd0192efeec27230a6073001e29c5af17293a", + "chksum_sha256": "faa07f9fa788bf1fe18e07fb1d06f797b05da7a822318916f969975dfaac5478", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/gathered.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6eea25c602c2e11df4f7138d2d4836e224a971a6c3c971562d444b18724fe8a", + "chksum_sha256": "2bc68f81719327ba9af3add49753b86806a773ae4d1dd82cc28b1d082056aa25", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_populate_config1.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0090f727c6e68f3abf6755ad0c74d65c0a406d5de0675985e5109432903f9680", + "chksum_sha256": "f40f0a57eb589df2ee64a1628873874408bf7504b5620c6b275450116f81dae0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/empty_config.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14c0028b5d36b2482930e55607a441ae5e913ebf74e07cd5c086bb72e2a15b2d", + "chksum_sha256": "0b1cc12f4914b97b943e06edd3ffa0a27d298e50fdde3170dd1257a1c9fdf07c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_populate_base_vrf.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a90dce5c848e047ee6b15a9875807caf3834be025a1a84a912f385f650b8b083", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7ef8a2b601776d796e19b13b6a7d7f7e8c91da5c876488ce935e47976908dc4e", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/overridden.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0b7c84c2fb381806cbfc487a06b97ec8dff7f6e3533c44a2876d1b934b644e7d", + "chksum_sha256": "6124272ed18483b35ecc3e79e5dc7a97fb53f4cd02ad193d1d860f408711fd5b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_parsed.cfg", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b3130bb3936b59d324966976cb9028b960cefbeb74b0a4f57ee73f8b51f80e63", + "chksum_sha256": "00f68885674a79797fd718487a3df7e70af4782785456212e76c50cf85495517", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0912064fd6e2456af64546781d84b7e1463836226ef076f85276e67b9804fed2", + "chksum_sha256": "351ab25b2412eee119ffee510ebe0b70b40b13e8111e0c4b2b5c519bdda51634", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_populate_vrf.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8f4218bdca10a45c9080e2f6b03a0143e44e984ba634245ccd1bf8ba62dbbca3", + "chksum_sha256": "293a473418d1ab4abe4b92f1ad395d0798f956c6e81b60b8a9c96ef6423702b9", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/replaced.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2d812affc5ccd626806375d3324a9354d0bce0db2eeca99dc2142cb80f6534d", + "chksum_sha256": "a43a99763a924f63fec89ac15da6a0e52887599d1f3c8c22df8e5b083fdf9f38", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/parsed.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6756cc71ee7f4b36a79a2a9adc5d58b3f7ba4752d4bc7d0532adf8b203d01952", + "chksum_sha256": "35f8c72cfa440d55ad5148e38ef607e05bbb6cd1632a6ac7425d351ac301680b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/rendered.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f0831e2ebf2b374d0528523f153d63aa05c51c9427cd1d978e6bb1b3541fb30e", + "chksum_sha256": "98eb3a3642a23b70e1b74c890a478169edcb4a079cb75d158fceb89da2e9a16c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/vars", + "name": "tests/integration/targets/iosxr_prefix_lists/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_address_family/vars/main.yaml", + "name": "tests/integration/targets/iosxr_prefix_lists/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0afc6b42287dd3380bccf43815067aa662d4e3ea573c31bf16d78fa37d6ee429", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_prefix_lists/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tasks", + "name": "tests/integration/targets/iosxr_bgp_templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", + "name": "tests/integration/targets/iosxr_bgp_templates/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "73e48db0c23a63565816ea0d938e972a0a9daee404ea69b57fc39f403f1288ac", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/meta", + "name": "tests/integration/targets/iosxr_bgp_templates/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/meta/main.yml", + "name": "tests/integration/targets/iosxr_bgp_templates/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "74c848224ffad63d69ccdb5967ad262f67070521cc6e66d3e4a007f864e2971e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/defaults", + "name": "tests/integration/targets/iosxr_bgp_templates/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/defaults/main.yml", + "name": "tests/integration/targets/iosxr_bgp_templates/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests", + "name": "tests/integration/targets/iosxr_bgp_templates/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_replaced_af.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "03ffdfe82c9b009133361192299521b9457798b577daa4aee23d17cdffc2d78e", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0fa5a58884c54913bb3233265309e71f17a41edebbb6e521712db35088bddcc8", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0d3f42e30ecfd27dca2f459e67fcb29aa7eb221087dff2125a4b50e24de047c9", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/empty_config.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5dd7dce83c0f85059155d19b0844f40613a98e42f0718a0fa319c1bfafc0b775", + "chksum_sha256": "0c48041607d4f3f9751372d34ec71b765e96d62f3d2a162c324a5ef048958c4c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/replaced_af.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1adc26fbed5ebfa1eebe6013b93d3341c85b9e55a579bb5615cbf02e5a650536", + "chksum_sha256": "ff31325e71e86e7007d9b29d08c9f407956972156df495ac07024154d928513a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_populate_af.yml", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d225cb9e1c413befc498bed1759effe731146fb93a8275cc5f28a9fb6cd62733", + "chksum_sha256": "b943b447000b4e451ac3dc7544d79fe0691086f8eb2a4d34d1e248ad9934d378", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/deleted_af_with_vrf.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a04a3326feb2ff3aa7d9895fba630bba0d39c7e0ac0335c378d6c9c726dea9a7", + "chksum_sha256": "cfa2236ca0b46e39df7b3b571cee8c62dabba518ce4e518d0dafa7eb3a2600ec", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/merged.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c983c5b8e7bdc4997dfda6709c7d4a8c719b507c82b73041b3159cca9d6a039", + "chksum_sha256": "3dc246fb3ff4a02172d4d73bf3c4f014ea0093abfd61810dcc85900e37d693e4", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_parsed.cfg", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "69b28ec7e3b77375e263157ffdbc2e5c7dea56353f9a906f0efdab44aaba2efe", + "chksum_sha256": "90d0a8d5622c81922045271d739a7cb2dfcadfa85af7468cac5b06e8b365440a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "73d93464c7e118949c3a6da1e915242a227681ab6ba766d5de54953c3cd6dd9b", + "chksum_sha256": "48d0d8085ccfdfbdf58b9b8ddb7159d979047292981053056aa4028091d6f8bf", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/_populate_vrf.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "73cebb0d68942b9cebc4449c12ecdbf9d07ad5ab0375875f6b2dd9a03bd87ca8", + "chksum_sha256": "03ffdfe82c9b009133361192299521b9457798b577daa4aee23d17cdffc2d78e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/replaced.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63d9fa98fdd8596f997fa6c705bf0ac62ad1f9d958b656b0c4b29f5ee7c2e3d3", + "chksum_sha256": "797b55ca951af676c97415a0b258709a60f737dc9710f351380a10c9eacc5566", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/parsed.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2ada9252d595d233bb3b7e2a01900965416d147291a2ac3b443c70c9478cad60", + "chksum_sha256": "5bde50a48af939d0c8b43a2da46351d1acedb5dd33c69b5b2ded9f4a613f04b7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/purged.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2cce29019f0726c03e53a2daa42ff31d962e2df7b0bcb6b6a75cb120950ff68c", + "chksum_sha256": "6731146ad09a00a0ea8505b832cc08a897090e74ff69d2b5f37e3aec40689555", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "05d664f2d11d59132b41ab8f93edcb49d06d8f827796db4c9dab60549b4166b3", + "name": "tests/integration/targets/iosxr_bgp_templates/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/tests/common/deleted_af.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c45590bfc752fc39a81b8b358968e75e75335e4c3d6449f6a8ca051999fd2ea", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_bgp_global/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_global/vars/main.yaml", + "name": "tests/integration/targets/iosxr_bgp_templates/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "744a98c76b992e1adb641f9f1770a9d7aafe06e4c75ae8a26c889b6fd99b376f", + "chksum_sha256": "73e48db0c23a63565816ea0d938e972a0a9daee404ea69b57fc39f403f1288ac", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ping", + "name": "tests/integration/targets/prepare_iosxr_tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ping/tasks", + "name": "tests/integration/targets/prepare_iosxr_tests/templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ping/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_ping/tasks/cli.yaml", + "name": "tests/integration/targets/prepare_iosxr_tests/templates/config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "a21d7b66f513ecb424fd6e23df9f0737c855281f3a5d0be6c856a0d2ce7af23b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ping/defaults", + "name": "tests/integration/targets/prepare_iosxr_tests/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ping/defaults/main.yaml", + "name": "tests/integration/targets/prepare_iosxr_tests/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_ping/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "851860fe2ed1258710d7fcf89ac5b7d8c3c87755e89ca56fdd79bea022eb2b92", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ping/tests/cli", + "name": "tests/integration/targets/prepare_iosxr_tests/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ping/tests/cli/ping.yaml", + "name": "tests/integration/targets/prepare_iosxr_tests/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c196cce06bc05f3315cddb3f355cb0b4d6417314c420e64d3af66765d697551", + "chksum_sha256": "31ae6f9228a0fabc3db6d87215aa04e1cb642f5b96cf95d40056dba6ddfcbae0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces", + "name": "tests/integration/targets/iosxr_bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tasks", + "name": "tests/integration/targets/iosxr_bgp_address_family/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_l3_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/meta", + "name": "tests/integration/targets/iosxr_bgp_address_family/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/meta/main.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "0afc6b42287dd3380bccf43815067aa662d4e3ea573c31bf16d78fa37d6ee429", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/defaults", + "name": "tests/integration/targets/iosxr_bgp_address_family/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9aae7589fd152283c827668756aa807df73d6b0e3b02a39329aa5adb982a34aa", + "chksum_sha256": "6756cc71ee7f4b36a79a2a9adc5d58b3f7ba4752d4bc7d0532adf8b203d01952", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c4d2b031234ceb533507d437a610a5d19f6dc3b4622650baf62a06d21c864e1", + "chksum_sha256": "0912064fd6e2456af64546781d84b7e1463836226ef076f85276e67b9804fed2", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc7ca7650fea2420e7d244a0042773bcb8b71f6102996f7317d971038011f69e", + "chksum_sha256": "f0831e2ebf2b374d0528523f153d63aa05c51c9427cd1d978e6bb1b3541fb30e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a24591a78ea4cd2fedffa114fa012bf8f93071c26adf6e8810415f2c4121b18c", + "chksum_sha256": "d6eea25c602c2e11df4f7138d2d4836e224a971a6c3c971562d444b18724fe8a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13f8f39d5a62294c86bcb4d28e2d5ab0f307e32cfdd5b9790ba4d48b6f8b363d", + "chksum_sha256": "14c0028b5d36b2482930e55607a441ae5e913ebf74e07cd5c086bb72e2a15b2d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a05e793c4dee9a71aa7360480ff679ff1ac5901b01b5b8b847f0ee8919daa53", + "chksum_sha256": "b3130bb3936b59d324966976cb9028b960cefbeb74b0a4f57ee73f8b51f80e63", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c6bcba044debf2f522bd4cc8acc2be21c0534b4429bf491b01c7c4c4d6ba1e4", + "chksum_sha256": "9ff639e39ecc88528745c050f97fd0192efeec27230a6073001e29c5af17293a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_populate_config1.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cea9a33ea739964862b47059bb71915e721d9153f0ae11f448eb2aa0f3e63555", + "chksum_sha256": "0090f727c6e68f3abf6755ad0c74d65c0a406d5de0675985e5109432903f9680", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "03ffdfe82c9b009133361192299521b9457798b577daa4aee23d17cdffc2d78e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5b02fe37e4efac9a20e9480b4f9268dacac3fb2c1ed7b07b897606d06b353f53", + "chksum_sha256": "0b7c84c2fb381806cbfc487a06b97ec8dff7f6e3533c44a2876d1b934b644e7d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59dc8c2804a3b783878bb6af8d7c390e7ecd8c78e024aae5d329d253ae0439f0", + "chksum_sha256": "7ef8a2b601776d796e19b13b6a7d7f7e8c91da5c876488ce935e47976908dc4e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_populate_base_vrf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2012e92a9c0896356f0e74af36986c6f11b2e88c3d3f33eddd25202b5eff5450", + "chksum_sha256": "a90dce5c848e047ee6b15a9875807caf3834be025a1a84a912f385f650b8b083", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/_populate_vrf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac4d19dd0c70447823eab99d6b2c5f1007985f20bd560c8275ac1ae2f8bef43b", + "chksum_sha256": "8f4218bdca10a45c9080e2f6b03a0143e44e984ba634245ccd1bf8ba62dbbca3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/vars", + "name": "tests/integration/targets/iosxr_bgp_address_family/tests/common/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d2d812affc5ccd626806375d3324a9354d0bce0db2eeca99dc2142cb80f6534d", + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_bgp_address_family/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l3_interfaces/vars/main.yaml", + "name": "tests/integration/targets/iosxr_bgp_address_family/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7439fd1d36352ee12daaf2487b7e6c8c013a1f0fb366cf6e3900bfeb0580ec9", + "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_bgp_address_family/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2d3350be00fa2af0f217f369684578df724bcf9550402e7a54ef1b84f32dcb53", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tasks", + "name": "tests/integration/targets/iosxr_acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "name": "tests/integration/targets/iosxr_acl_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/defaults", + "name": "tests/integration/targets/iosxr_acl_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "c9c186e5b37c704de87faa743ec5ba48edef1722215a550914539801cc5f67fb", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/_populate.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "60a105434aaf3d04dde592ece9cdf1017cb0b3172120288810d97715fe2fd431", + "chksum_sha256": "25049f0c45154ecc9748bca191fbeb5239511e4a87cc68964b1899d9731f178b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/deleted.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3f167ba03527e52c6b3236cf547eaad59e5c22cbb7378a1a90eb2a8ab736633e", + "chksum_sha256": "3e4615b224f5c3f3beb526a6112487ea2f90880deefa2eed6e7903c023dee300", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/deleted_all.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a582c68cd840533e05aaf3367b334d02dd74684b0af6a23269ff0b208bf06f5c", + "chksum_sha256": "3fe49d80821c922d19f9db8e41eb9a60b6328f43791322450bf5d78899332dcf", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a3de6c6599cbd3a7950c303559545975838139e9c4b6899dc85727669925a168", + "chksum_sha256": "f86e8be0f7d1983eb2350200ecb588e258b5712eb5a6e027fbd540fb3664ebe9", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/rtt.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fed7af68aca997e00c7816b282d84fe5b3858ba27497fdfb1f3f87fd1ad7c268", + "chksum_sha256": "107424d86e345ce03603238560177493367356c6fa158092d8c272e20f8b3572", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/merged.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "69c219c2446281fb3697154ddfb3a06e77f320193cd04d461a20b0362a4447e8", + "chksum_sha256": "ce73c16381b1f6d60eb2a28255e2c73d3e440383faf5b4c592be6a2a17ec4cf0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/overridden.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e4d53cd354dc5e35745d702bd43dc67c57ed1548f94168f687b0cd380e30432", + "chksum_sha256": "85013bce86eea3299281d203601b99b8f56cc72e1ffe45075f6147bb5b090742", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fad593c0a30c05a9399505505e33bb99d75913b2ca333fa0f5d198ecb52d3fc6", + "chksum_sha256": "e428186b1eddbc63e5395419d8183ba503bfb276767d1c1e7fff71da95af734d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6950308b0007d4bd83a9207819818cafea411ea68e0e0d16cd0b142257082729", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6edd326a3c4a5b18f2a041ef8e9313e870c9eff81940294307cc07a3ff90e5e5", + "chksum_sha256": "e7dbd305d647109e42dac7d09473eab83bb832b522169b0d9ae7ae0a6a8e33d0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d324ad8894b55b2586831251fbedab24cb4924fb90a7bb9ebe42bf6e57437ff5", + "chksum_sha256": "646caf77a4a5a75a19987a0316b75e38bcdf89ee4cf21a2e7e6a0f2ff925eca0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25ae2d218ceb84438e1135380d5e3f55dbede18338f5c4826bf253fbb1b91545", + "chksum_sha256": "47e2e6914d5891922ec91d009954863a86a6ce47df64b1db65d886ff8a9c7d0c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8ba58ba01382b709d04ad2b8b0f82c2d53d7a71a6a1a3bbfbd2b68b09de23dd8", + "chksum_sha256": "ed9f2b98d464bf8603d35a074fe2d50eb66d3a2c595967f48de1264a2038dcab", "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/vars", + "name": "tests/integration/targets/iosxr_acl_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_acls/vars/main.yaml", + "name": "tests/integration/targets/iosxr_acl_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a07cda33c597dd4e76d3b812b962e5718c936287134221c1fbe55ff3a3490d6e", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_acl_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cdac5ecec5537510649ea64ca19a23351ebc7e9783ff4fe4f220079ed2c37bf7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tasks", + "name": "tests/integration/targets/iosxr_ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "303b9dff6309fcb32b8eb1e05d36298973519248849c1ddb442a6ce54e4ae491", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_system/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "226f3a6bf7002dddaa01371fffd0478b580563bdd21ca7212f2d768935f5be13", + "name": "tests/integration/targets/iosxr_ospfv3/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tasks/netconf.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2ec33b881eaf97c9bfd901055dc833ab4f2e49f22f124da655fb04ada98dc14e", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/meta", + "name": "tests/integration/targets/iosxr_ospfv3/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/meta/main.yml", + "name": "tests/integration/targets/iosxr_ospfv3/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", + "chksum_sha256": "fa66fb8ce0cc80369445c497f68d5e087540f12ad98f96f181e99c7500e5f232", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/defaults", + "name": "tests/integration/targets/iosxr_ospfv3/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "717d5351bebea57a2f0ccd874a2517595c2dda6c4ca8cb3c6de7c0902aa14b75", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests", + "name": "tests/integration/targets/iosxr_ospfv3/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/cli", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/cli/set_lookup_source.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "754a7df244f40b48ec9ff6d792154255135fd7b9be267890a273eff7ad9e9799", + "chksum_sha256": "820c9d8378bc3893f82eef7b74466761336b9e7acf36c99a76ab549c03fefab0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/cli/set_domain_name.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9076279454f7438bf2047b19f82ddffc2fe20c0e4d4e7ebfdd9e71d0b9ba408b", + "chksum_sha256": "97c41a9ab68d27a209106c1f47557a5659ca2e8914fdef8e29514b208c8c771b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/cli/set_name_servers.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "71122c961b8e1745598abef3fab16c200697475242a403da4a724d91a709ced8", + "chksum_sha256": "959f73cb330969c6963963b3a9c6ced291c02803d8b43e0d280691e1abb94a88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/cli/set_domain_list.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d754474af95b48e0e6357e87a0133cca7ad10883053223f12df8c5c049b8393", + "chksum_sha256": "b74c20ce7b08e53ee2f6ad55e8964e7d763329b130c8a57f5962395f1daf2a13", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/cli/set_hostname.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2897acaae31a983f24ec8d6f97a95190092a82f7af610ca8a18a3d7bc2805e75", + "chksum_sha256": "771f96cd83c9a893ed5ea4eb2d25b331fa2728f8399f0fb2327327a2eea69eb8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b353f038fe3608efaa4fe240c2490e4d96479df9fac05c5e65b382b2b5eb45e5", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/netconf/set_lookup_source.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d018618970e16e1784aaf8e1e1af0fe66be828e75ac88630726d2cb687f77e9c", + "chksum_sha256": "46bf472822cc2a45ce47c1ac6c8059fc5f228be53f0ee692765832aa1541f811", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/netconf/set_domain_name.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac4ac4212045c4d53698a46f935b4f7755174a0a59311ee6abfd47503af63425", + "chksum_sha256": "296f132a73194b9b2d134f6cba1b69da8f2e1f3345c4cf5952c8fe686e1eac91", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/netconf/set_name_servers.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ef987744cf3dad479a759862ff62b6bf3149a5fb8e0933ff023a92405af3146", + "chksum_sha256": "0432f28e01aa6fcf74a9f27e1d245b6e7368bdf7c4e6cada6911becc1a5d8cd6", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/netconf/set_domain_list.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72a77a732b1e7f734d27236d5339fe22dd7e4239f3bf8364df87140313fca83f", + "chksum_sha256": "38ac896b32ffc759f2b4e498126f827b96d1cb0cec61a9c8e1669aee7d68af1c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_system/tests/netconf/set_hostname.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f13d423556dcce1658d29446113c6e4da7fbe03defa9517c210b86100ddaba26", + "chksum_sha256": "fe864b51e70814be13bf52e56f90108c6f6f874ddf23fc9c229019215bab349f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp", + "name": "tests/integration/targets/iosxr_ospfv3/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_ospfv3/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/defaults/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "93f1a75fd2d40c2d5b43a04650b66fd0d98e638e951373de1fbe2f5e22b79ce8", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "66d389919e87982a7de0c3a90adfb49bb46d953079385a160b96eade8ab816d0", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ba2306dde118373ceb847e377f4d6017846446a5d4f20350f3dab7ef76ed6c9a", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d208dc3d0e8a9a35951844e6a916db895790ccda6bd7bb550b824a7eb4477b30", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/rtt.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1539a41e787502ec7781cbcb2c00157799a196ce6da851d0565b96d14db4059b", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/_populate.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fe0b5773fcd48afa2ba50bdb1cc2318f5d4dc3d46362db64195210f5ff26acf2", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b8a5a0ab330416618101c508230864f1c4d2956b5d3babe9e74ac3c295439a3c", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b053b09f9388c7f6208c51e8b9e53867bd6352bf37c9688f28b02ab348ed3767", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "26c4083f5bd77b0b8a4a7866d3a93116bb2f0a0e9a3620beb2651b37cd2eabbb", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c9445f3494ae6fab46f8a866ba98cccfa586ddf8b3c467ca3e6da1a757d83e7b", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/tests/cli/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3f35e7101f1490cb9fb6467b196a0b527dd72ef2a8d72925ec6567770bd58832", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp/vars/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "28efea0049957f8eb23160dce61b09a38b89b1fa61bc53f4f53b7f809b4eebd1", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_ospfv2", + "name": "tests/integration/targets/iosxr_system", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tasks", + "name": "tests/integration/targets/iosxr_system/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_ospfv2/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_system/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/defaults", + "name": "tests/integration/targets/iosxr_system/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_system/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests", + "name": "tests/integration/targets/iosxr_system/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli", + "name": "tests/integration/targets/iosxr_system/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_system/tests/cli/set_domain_name.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "58dd8f904e17dfd4fffd6a6e1e3a4d5387fa38bde6454ae2c5a53a34d058eca3", + "chksum_sha256": "9076279454f7438bf2047b19f82ddffc2fe20c0e4d4e7ebfdd9e71d0b9ba408b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/deleted.yaml", + "name": "tests/integration/targets/iosxr_system/tests/cli/set_hostname.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc3a8aadf532ef7cd6f55ca3fcc220ad1a1597d43b8927da151c3f8b6b3ab4f4", + "chksum_sha256": "2897acaae31a983f24ec8d6f97a95190092a82f7af610ca8a18a3d7bc2805e75", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_system/tests/cli/set_lookup_source.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05982ef9644df8c28203ff858981fc5883a0c479fae9f391262eaf5dd2b976d4", + "chksum_sha256": "754a7df244f40b48ec9ff6d792154255135fd7b9be267890a273eff7ad9e9799", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_system/tests/cli/set_domain_list.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43bd5bb5c07bc5ce5ae41802cd97f60b7474505e994ad6e03d82b615f8bbc03f", + "chksum_sha256": "2d754474af95b48e0e6357e87a0133cca7ad10883053223f12df8c5c049b8393", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/rtt.yaml", + "name": "tests/integration/targets/iosxr_system/tests/cli/set_name_servers.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "88ca6319ff4d07831545abca9e5c0cfde8baa1013cbbcf73dd697ffad6ce0b79", + "chksum_sha256": "71122c961b8e1745598abef3fab16c200697475242a403da4a724d91a709ced8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fb1d0eb3798a289e286e8175801c5c1e4624e15cde7976d5afe06bc98f677658", + "name": "tests/integration/targets/iosxr_system/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/overridden.yaml", + "name": "tests/integration/targets/iosxr_system/tests/netconf/set_domain_name.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95564208ef074169b8b022b09f16f311333ff57c4c8dc16ea7c0a049441fdf7a", + "chksum_sha256": "ac4ac4212045c4d53698a46f935b4f7755174a0a59311ee6abfd47503af63425", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_system/tests/netconf/set_hostname.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "249c1fec66619c9576dd1c47f0b9abcd5377d408dc6f33b101639b8962161bc1", + "chksum_sha256": "f13d423556dcce1658d29446113c6e4da7fbe03defa9517c210b86100ddaba26", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_system/tests/netconf/set_lookup_source.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc50952bf32ba9c19dc8ce51fd6a75f07328b80b00e3105f3bd746797d027501", + "chksum_sha256": "d018618970e16e1784aaf8e1e1af0fe66be828e75ac88630726d2cb687f77e9c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_system/tests/netconf/set_domain_list.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c081530d7ea0a30fdfefe7b92a48f9d7570b66ade21694b8faa1857d3624cfd4", + "chksum_sha256": "72a77a732b1e7f734d27236d5339fe22dd7e4239f3bf8364df87140313fca83f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_system/tests/netconf/set_name_servers.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b18aabdd28ded7ce5eaeb2fc8e20e3609e78091d172c9e4467e953cf15e3b2c6", + "chksum_sha256": "5ef987744cf3dad479a759862ff62b6bf3149a5fb8e0933ff023a92405af3146", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/fixtures", + "name": "tests/integration/targets/iosxr_system/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_system/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7200105e66871ab7b8ae409eacde75f173708b19fbc46b5dfd512816beb5c0fd", + "chksum_sha256": "303b9dff6309fcb32b8eb1e05d36298973519248849c1ddb442a6ce54e4ae491", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_system/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "226f3a6bf7002dddaa01371fffd0478b580563bdd21ca7212f2d768935f5be13", "format": 1 }, { - "name": "tests/integration/targets/iosxr_ospfv2/vars/main.yaml", + "name": "tests/integration/targets/iosxr_system/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "31050eb7af82aad96bdf748dc26f410fa56d0fc426e7a583ab9ea261e0a23000", + "chksum_sha256": "2ec33b881eaf97c9bfd901055dc833ab4f2e49f22f124da655fb04ada98dc14e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates", + "name": "tests/integration/targets/iosxr_l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tasks", + "name": "tests/integration/targets/iosxr_l3_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_bgp_templates/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "73e48db0c23a63565816ea0d938e972a0a9daee404ea69b57fc39f403f1288ac", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/meta", + "name": "tests/integration/targets/iosxr_l3_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/meta/main.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "a7439fd1d36352ee12daaf2487b7e6c8c013a1f0fb366cf6e3900bfeb0580ec9", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/defaults", + "name": "tests/integration/targets/iosxr_l3_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "03ffdfe82c9b009133361192299521b9457798b577daa4aee23d17cdffc2d78e", + "chksum_sha256": "2012e92a9c0896356f0e74af36986c6f11b2e88c3d3f33eddd25202b5eff5450", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/deleted.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "48d0d8085ccfdfbdf58b9b8ddb7159d979047292981053056aa4028091d6f8bf", + "chksum_sha256": "cea9a33ea739964862b47059bb71915e721d9153f0ae11f448eb2aa0f3e63555", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/gathered.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cfa2236ca0b46e39df7b3b571cee8c62dabba518ce4e518d0dafa7eb3a2600ec", + "chksum_sha256": "ac4d19dd0c70447823eab99d6b2c5f1007985f20bd560c8275ac1ae2f8bef43b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/empty_config.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3dc246fb3ff4a02172d4d73bf3c4f014ea0093abfd61810dcc85900e37d693e4", + "chksum_sha256": "dc7ca7650fea2420e7d244a0042773bcb8b71f6102996f7317d971038011f69e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/merged.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5bde50a48af939d0c8b43a2da46351d1acedb5dd33c69b5b2ded9f4a613f04b7", + "chksum_sha256": "a24591a78ea4cd2fedffa114fa012bf8f93071c26adf6e8810415f2c4121b18c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "797b55ca951af676c97415a0b258709a60f737dc9710f351380a10c9eacc5566", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/_parsed.cfg", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "90d0a8d5622c81922045271d739a7cb2dfcadfa85af7468cac5b06e8b365440a", + "chksum_sha256": "5b02fe37e4efac9a20e9480b4f9268dacac3fb2c1ed7b07b897606d06b353f53", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff31325e71e86e7007d9b29d08c9f407956972156df495ac07024154d928513a", + "chksum_sha256": "8c4d2b031234ceb533507d437a610a5d19f6dc3b4622650baf62a06d21c864e1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/replaced.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6731146ad09a00a0ea8505b832cc08a897090e74ff69d2b5f37e3aec40689555", + "chksum_sha256": "9aae7589fd152283c827668756aa807df73d6b0e3b02a39329aa5adb982a34aa", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/parsed.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0c48041607d4f3f9751372d34ec71b765e96d62f3d2a162c324a5ef048958c4c", + "chksum_sha256": "9c6bcba044debf2f522bd4cc8acc2be21c0534b4429bf491b01c7c4c4d6ba1e4", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/tests/common/rendered.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b943b447000b4e451ac3dc7544d79fe0691086f8eb2a4d34d1e248ad9934d378", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_bgp_templates/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "6a05e793c4dee9a71aa7360480ff679ff1ac5901b01b5b8b847f0ee8919daa53", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_templates/vars/main.yml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "74c848224ffad63d69ccdb5967ad262f67070521cc6e66d3e4a007f864e2971e", + "chksum_sha256": "59dc8c2804a3b783878bb6af8d7c390e7ecd8c78e024aae5d329d253ae0439f0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_l3_interfaces/tests/cli/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "13f8f39d5a62294c86bcb4d28e2d5ab0f307e32cfdd5b9790ba4d48b6f8b363d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/tasks", + "name": "tests/integration/targets/iosxr_l3_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "303b9dff6309fcb32b8eb1e05d36298973519248849c1ddb442a6ce54e4ae491", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_logging/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "226f3a6bf7002dddaa01371fffd0478b580563bdd21ca7212f2d768935f5be13", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/tasks/netconf.yaml", + "name": "tests/integration/targets/iosxr_l3_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fa9c4a9fe2092e91f2ea6b09ad81329cfee0b30084180265f361621d15caddfc", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/meta", + "name": "tests/integration/targets/iosxr_ping", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/meta/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_logging/defaults", + "name": "tests/integration/targets/iosxr_ping/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_ping/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/tests", + "name": "tests/integration/targets/iosxr_ping/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/tests/cli", + "name": "tests/integration/targets/iosxr_ping/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/tests/cli/basic.yaml", + "name": "tests/integration/targets/iosxr_ping/tests/cli/ping.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ed1aa824bbd24c758b317e46cea14e2b97fb05ab28b8699aa8f790bee3b9334", + "chksum_sha256": "5c196cce06bc05f3315cddb3f355cb0b4d6417314c420e64d3af66765d697551", "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/tests/netconf", + "name": "tests/integration/targets/iosxr_ping/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_logging/tests/netconf/basic.yaml", + "name": "tests/integration/targets/iosxr_ping/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9206e795c6094a95fd7200603ecda2c2320e0eb1420ecab9ae76c047d31a27f", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_static_routes", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_ping/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_static_routes/tasks", + "name": "tests/integration/targets/iosxr_netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_static_routes/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "132a5c51daf268caea032e927c4d608384e0e212a9d2db31417238aa9e7f7d06", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8c378f7a2ccabe54f2708379bb4258b6687e55d75f71f23690a7bf19a89895f5", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/defaults", + "name": "tests/integration/targets/iosxr_netconf/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_static_routes/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_netconf/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli", + "name": "tests/integration/targets/iosxr_netconf/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "db869687ce8a3c6f01b918be52a77e107f74116a43fe8fc9bcae14d5def7994b", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "00937ba6bd39c8d9b9d57e9afafa09812ac1f9be681301623220ce59ad57de5d", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f241eedfb974aee95dacdb64a7a2bd4120059f7854460bda9d3e4acf0d806fab", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "83dc069647949b99a4cbf01a41fce4b29ef2eb0e420bf3f27b8b7e40de474542", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/rtt.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9a63bcc02761c785c2d76ea2af8ec715510cab7a13e2cb65223a0b2dc105f290", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9dd1cf36a11cfb51274f12498a802efb7767a084a8c55f431f777060da24c70e", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "43f8d39f847501b94cbd8af0deb64f4e30353fc524822f2b2ed585fac61e0b63", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/delete_specific.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4f228479698428bdefd45f559f3bfe6413dc9f46f01c8ceb54a6474dbf16b5c9", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1735d21dcfcca3b2e613b10c51eb2a0ecaad2a6f6f44fc71baae6e3a8704c0ff", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2feedb5681526e889cbf30419b57f28143f328d184b986a53fcd106a3014b490", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f6db71c5ade8ac5f359f7bb484d517f21dd6c163ee24c64d281992184ee4c783", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_netconf/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "854e3935b164f2f04624c7fef6c59a8dca0808cd4d063a9da2f632f85f94dc3e", + "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", "format": 1 }, { - "name": "tests/integration/targets/iosxr_static_routes/fixtures", + "name": "tests/integration/targets/iosxr_netconf/tests", "ftype": "dir", "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_static_routes/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6e148c74b09c0b22e87e8e55b815a0250281aa8daabde38b951b425cfbec2442", + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_static_routes/vars", + "name": "tests/integration/targets/iosxr_netconf/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_static_routes/vars/main.yaml", + "name": "tests/integration/targets/iosxr_netconf/tests/cli/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2335eeeaa4ace8094a5daa3fa60d634693f9b07c483babba9e3c6c265d77508", + "chksum_sha256": "e68ba6599b56873a91e4b0002751395d61ce254351af0256b215d553229d0984", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family", + "name": "tests/integration/targets/iosxr_netconf/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_netconf/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_netconf/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", + "chksum_sha256": "19f48e1c0e26a39016c6e5d4b89a0cb15fdaa31aa34a29e64f7e595e3c1fe967", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "73e48db0c23a63565816ea0d938e972a0a9daee404ea69b57fc39f403f1288ac", + "name": "tests/integration/targets/iosxr_banner", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/meta", + "name": "tests/integration/targets/iosxr_banner/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/meta/main.yaml", + "name": "tests/integration/targets/iosxr_banner/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/defaults", + "name": "tests/integration/targets/iosxr_banner/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_banner/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests", + "name": "tests/integration/targets/iosxr_banner/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common", + "name": "tests/integration/targets/iosxr_banner/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_route_policy.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0357901519ac8ac68f6c7059838c4cec150ef91418cbe8f82efc4c0d43f6fa9c", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_banner/tests/cli/basic-motd.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c455861f770ac7341d3e29ba6804ffdd075bd6fac56f4e5f07b494eb12aa6cc7", + "chksum_sha256": "a63b5980f97093dfa1ff3c6f3730f2ca0eb3c011af4430267f16cccdc0234d72", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_populate_vrf_base_config.yaml", + "name": "tests/integration/targets/iosxr_banner/tests/cli/basic-login.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d94b9491a045f06789eaaa96222a72a7dd8f65c48d45d88dba16fac049fd704", + "chksum_sha256": "00656d9558735dc363fc4ba83a58620f10aa6ad82ab4554f00ed2655922f59bd", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/deleted.yaml", + "name": "tests/integration/targets/iosxr_banner/tests/cli/basic-no-login.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "faf8165e1aa4827820ee0e9a0ff2c418cf23c682592ada66b626266facf9d1b9", + "chksum_sha256": "25e88c9b68237bdf23639108d7085f04bedec5592b86fb12467e7e3ba449ca2a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9c36f82fabc3726780c6dcef3a0fa8d4d7fa7d019fef1d97e076b8fe18a443fa", + "name": "tests/integration/targets/iosxr_banner/tests/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/empty_config.yaml", + "name": "tests/integration/targets/iosxr_banner/tests/netconf/basic-motd.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb4ab173f008550df0cc48f83ecb505db4299ee8a9f026dff12c5af63d14b7fb", + "chksum_sha256": "52cb507d481aa76f0a7685583fa5c7828e6271804fe2a90b34fa7159c24eae54", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_populate_base_config.yaml", + "name": "tests/integration/targets/iosxr_banner/tests/netconf/basic-login.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a6c17c3999a6aa6f3d39720a51223d01ceba114a4e704ed27bec76342cd0abe0", + "chksum_sha256": "d831f48454277a06c4809abc0d238b1963f16278853be6be3eee834b0bffd3ba", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/merged.yaml", + "name": "tests/integration/targets/iosxr_banner/tests/netconf/basic-no-login.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "80bdc3eb58879b59242b45b0227e215f0c14772fb790850a5c4614c1d040852d", + "chksum_sha256": "50f1c5622a99ec54a98a3b978dee91614909adcedf67378c13cd2f3cb09e48b7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "70746bef62da91f4d74143ebbaee0b443f901bda32a4f1e5a841b32d4c6f6f66", + "name": "tests/integration/targets/iosxr_banner/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_parsed.cfg", + "name": "tests/integration/targets/iosxr_banner/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f559ed5b722bfebecf0cb6a696f9bbcb6ec56cf63c25e47be07bf9478e556e4e", + "chksum_sha256": "303b9dff6309fcb32b8eb1e05d36298973519248849c1ddb442a6ce54e4ae491", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_banner/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "018ace52485c2b1609f5d7d8893cfe0b99b5204eecee7eea3d3b634d614a1e1e", + "chksum_sha256": "aeaea690f4a27b4af77c33a24968cdc89de2ca73e590d9ec1db4b80842750bb7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/_populate_vrf_config.yaml", + "name": "tests/integration/targets/iosxr_banner/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "19489912900216d55b30d715921bf8e1edad2d1945ce967383c9b10bf045aa1e", + "chksum_sha256": "74e0fd06296ba78b354273f00e39a2cb9f77e8102eddc40deb284d83c52255ba", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cb254762f05493022cfab5268eb344f0aa9c5f62129bd422903006e890d1f01f", + "name": "tests/integration/targets/iosxr_command", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "312204dc90b5c1572a58a7a44d7590f6da0274af0a9ac9102c9c1e762694d64f", + "name": "tests/integration/targets/iosxr_command/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/tests/common/rendered.yaml", + "name": "tests/integration/targets/iosxr_command/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52cb77efeb2277f2766261efd23be1b385eb0a279a4858a160fbb23e6790f898", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/vars", + "name": "tests/integration/targets/iosxr_command/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_bgp_neighbor_address_family/vars/main.yml", + "name": "tests/integration/targets/iosxr_command/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f9a9d7ca96d490c22c02070c8c68ba92103e69f4a072341a141d204d7173fe9f", + "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", "format": 1 }, { - "name": "tests/integration/targets/prepare_iosxr_tests", + "name": "tests/integration/targets/iosxr_command/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_iosxr_tests/tasks", + "name": "tests/integration/targets/iosxr_command/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_iosxr_tests/tasks/main.yml", + "name": "tests/integration/targets/iosxr_command/tests/cli/invalid.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "31ae6f9228a0fabc3db6d87215aa04e1cb642f5b96cf95d40056dba6ddfcbae0", + "chksum_sha256": "985f58c4989f203f257c68725a9877e3ee3b5f4783af27429698e9a335d40605", "format": 1 }, { - "name": "tests/integration/targets/prepare_iosxr_tests/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_command/tests/cli/timeout.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "96843e537eee47517c5049885b84061a141b2eeba5680c11c5b66693d7be09b5", "format": 1 }, { - "name": "tests/integration/targets/prepare_iosxr_tests/meta/main.yaml", + "name": "tests/integration/targets/iosxr_command/tests/cli/cli_command.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "851860fe2ed1258710d7fcf89ac5b7d8c3c87755e89ca56fdd79bea022eb2b92", + "chksum_sha256": "36008ced825f92916c9c1a8063d7d3af07a89cc64d6692a28d825eb1c6a020be", "format": 1 }, { - "name": "tests/integration/targets/prepare_iosxr_tests/templates", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_command/tests/cli/bad_operator.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9d53587f24caf85f74a90aa38d629e1821967b99c42a52603745a2536000bc64", "format": 1 }, { - "name": "tests/integration/targets/prepare_iosxr_tests/templates/config.j2", + "name": "tests/integration/targets/iosxr_command/tests/cli/output.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a21d7b66f513ecb424fd6e23df9f0737c855281f3a5d0be6c856a0d2ce7af23b", + "chksum_sha256": "53ebb6e7f4ab53c74c9baa8d4f0bb7b62453e6cdd0e974df88dc334d573aaf6f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_command/tests/cli/prompt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1c2d2d6c07d37bbd84190440034126fc5d74de4e55e824813974e059a9413ec2", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tasks", + "name": "tests/integration/targets/iosxr_command/tests/cli/contains.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7d9716e753ba5366a03ac74d4787a8cc31547382904b1316605503d481afb1b7", + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_command/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_command/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_command/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "2dbe0b4a48613e36db6dc24d1cc5587a9339d560c7be5fb830643a5e9a97f6db", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/meta", + "name": "tests/integration/targets/iosxr_lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/meta/main.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lag_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/defaults", + "name": "tests/integration/targets/iosxr_lag_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "e2e959c351c31c2016e6bb08f5f6ebad88c3e8bf6525d6f67c5d64e998fa9d82", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "50d4197872d8d2199638a7049cfcaac7c3d9332ccdc4b432d84ab9eac3fe0899", + "chksum_sha256": "9b815ed33546d40ccc361d9255a0b79a50a034a48262a0e9d92fea684e83938c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b908ec71d04a400c46745f5f6aa67edc06711a6fa409bb6ed2570d7b7bbc7f88", + "chksum_sha256": "64195a6619101530f2cd471d76d6dbfea7ab3165c4f2763346f3c7ce3162077b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "133cc3a327728f918408d45c77742cd31e4cc17537871f0d02674a5a48c394c7", + "chksum_sha256": "9f9e3fec02b4ecb3c5316ec824369cfea049c05a0b2a95443a63d6afdac4d4bd", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4d9508554b3caf42a189031a45bbe918f8d87ab46b49670f824f45e84f1f73b", + "chksum_sha256": "4077106b1998d758480ba741ca583bcea9685e8d9df81838902a74f5da0b4e4f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "18a4c9c8fa0b4717435de1c5b0c06e1bcc37099d4e1e2f50cd52755b5382d90f", + "chksum_sha256": "f847af0e5e79e0763bed170eb13e60c0cb994688d0b70f14d0ac7bd371ab1d1d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b651c37d64cbc8d8ce70ebbf64f9edf9f32ec1b9986713f8e786bb8dd1a5b93", + "chksum_sha256": "161c4405c145118f98f3efc7f81cd20f53fd4eca7c0604a2e06824676426191b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "86dfa2d949109a946c52fca30228bdf700908e44f122a528c64d6952f5d45a78", + "chksum_sha256": "4662bfa7d0b5cf776e2fbaedb8b5302d292f0454cacdea054518fd1e337d9fef", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bd4e56a2a6fc4c69833fbdf6b198e6b2cc36e62ae656d53286ff5a1e22189951", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26b4e7ee16aab6f1a3a11e5b8dcd55412e8afba623415469b2aa057b23126745", + "chksum_sha256": "05b0d34519c01bd8145069ef131b8c42b2d948fb308f4bd50c8d5cae88b6e285", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8735a17ccab3ecd1af096f3d1c722e7db3b0ae5c7e48667aba20f9ec6b155d08", + "chksum_sha256": "75580d3b17d3e54d3542f54410a63f647fd78e4e1167a42b01095baf6681164d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9eb5c038a48458b36702ea94d1bc8172511a8eadeec71fe922d406cfebf4b5c7", + "chksum_sha256": "0e74e052ae15e52a8d70aa1788ea86e4a2ca5287a18231c67c4fb8b65e3fc63f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ca461ff84f99d15126252d878ef50b92ce916783f8cb6ff91f2e2342144dcd7a", + "chksum_sha256": "44b26adc92992ebff6de4aa4d43b0ccd72c5efb44b09416469866ca3eda28180", "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/vars", + "name": "tests/integration/targets/iosxr_lag_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_l2_interfaces/vars/main.yaml", + "name": "tests/integration/targets/iosxr_lag_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c659daf4218da5a2de29b769dc1250d37a6a80151c93a58fb3958289f5d8d59f", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_lag_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tasks", + "name": "tests/integration/targets/iosxr_lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "name": "tests/integration/targets/iosxr_lldp_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/defaults", + "name": "tests/integration/targets/iosxr_lldp_global/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "3a4ed71b399bcf1bbc0fd2978888ebf6d151bee360e2ab4d1c87fbe35198c936", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests", + "name": "tests/integration/targets/iosxr_lldp_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/_populate.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd4e56a2a6fc4c69833fbdf6b198e6b2cc36e62ae656d53286ff5a1e22189951", + "chksum_sha256": "ad57db9e94ca2aadfd2f45b32c2e81e8e1704d7d5a195ce520512c16821edda5", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4662bfa7d0b5cf776e2fbaedb8b5302d292f0454cacdea054518fd1e337d9fef", + "chksum_sha256": "1fc1699dbbe7a8cbfdf21bf4f22fb223de156d8a7d23ca00d8f623a4bb3e7837", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4077106b1998d758480ba741ca583bcea9685e8d9df81838902a74f5da0b4e4f", + "chksum_sha256": "8f1df41b44d45fac6172c094147565b4e877bb60cfae594134a6b1c43bca0f3b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f847af0e5e79e0763bed170eb13e60c0cb994688d0b70f14d0ac7bd371ab1d1d", + "chksum_sha256": "eb7802fd324a06c4462213a656f1cf305b31210533f51e9d741eb2d2493d289c", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44b26adc92992ebff6de4aa4d43b0ccd72c5efb44b09416469866ca3eda28180", + "chksum_sha256": "c142d0fed11008b1a62e7486b30db686dba853439164655fafdef54909bc63bd", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75580d3b17d3e54d3542f54410a63f647fd78e4e1167a42b01095baf6681164d", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05b0d34519c01bd8145069ef131b8c42b2d948fb308f4bd50c8d5cae88b6e285", + "chksum_sha256": "cc8ece13d91edafdb680a275bf4c794d642f584b24963f75e91d399d26e90dce", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/_populate_config.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64195a6619101530f2cd471d76d6dbfea7ab3165c4f2763346f3c7ce3162077b", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "e7f5a8b2f177d64272fc6a947921672ba402efae9f50df985f9b026c4ed26f59", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "161c4405c145118f98f3efc7f81cd20f53fd4eca7c0604a2e06824676426191b", + "chksum_sha256": "95e5e93bdf0c29777aa2b210fd1cf1890625966262998e2661116ec817049717", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0e74e052ae15e52a8d70aa1788ea86e4a2ca5287a18231c67c4fb8b65e3fc63f", + "chksum_sha256": "e49f9c535fa7caa99d4f479101a39f837189d97b785fb02af518895f2c0fe9f1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b815ed33546d40ccc361d9255a0b79a50a034a48262a0e9d92fea684e83938c", + "chksum_sha256": "a9dcf714eef59cc87ef2c4f4f117074297213b19694e6a8cedbd50760f2b39b3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f9e3fec02b4ecb3c5316ec824369cfea049c05a0b2a95443a63d6afdac4d4bd", + "chksum_sha256": "c23d2dbb51d7164eab5fed3e834136b9c58d8912110cde108a85f0e20e091aac", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/vars", + "name": "tests/integration/targets/iosxr_lldp_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lag_interfaces/vars/main.yaml", + "name": "tests/integration/targets/iosxr_lldp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2e959c351c31c2016e6bb08f5f6ebad88c3e8bf6525d6f67c5d64e998fa9d82", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_lldp_global/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tasks", + "name": "tests/integration/targets/iosxr_ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "name": "tests/integration/targets/iosxr_ospf_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2dbe0b4a48613e36db6dc24d1cc5587a9339d560c7be5fb830643a5e9a97f6db", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/meta", + "name": "tests/integration/targets/iosxr_ospf_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/meta/main.yml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", + "chksum_sha256": "934f6f7a277e34f616d5459e1989f9e0faeaf4e0a61444289abfaf37ee120659", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/defaults", + "name": "tests/integration/targets/iosxr_ospf_interfaces/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "d11bd78a2d74e8dc46a2880b54b3500e2f88cc4e3e6fd42a249138556e94964a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tests", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tests/cli", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tests/cli/prompt.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c2d2d6c07d37bbd84190440034126fc5d74de4e55e824813974e059a9413ec2", + "chksum_sha256": "c1cd77375707ee0397f1efbd07a4f7fdfcfbec26c86042f65c7f29f3cca9a9c3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tests/cli/invalid.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "985f58c4989f203f257c68725a9877e3ee3b5f4783af27429698e9a335d40605", + "chksum_sha256": "96c0644d6833fa509126bfa843bb259b9c9963e2e53d5fee080bb3cdece99de7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tests/cli/contains.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d9716e753ba5366a03ac74d4787a8cc31547382904b1316605503d481afb1b7", + "chksum_sha256": "50f480556a54480a5cff156bcb4a8fad88e60404f4ca0ffd94df379667fd7bac", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tests/cli/bad_operator.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d53587f24caf85f74a90aa38d629e1821967b99c42a52603745a2536000bc64", + "chksum_sha256": "40b9f6860fef89f7797529730ca794a03fef91355da74053086820283a821df5", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tests/cli/output.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "53ebb6e7f4ab53c74c9baa8d4f0bb7b62453e6cdd0e974df88dc334d573aaf6f", + "chksum_sha256": "52c1f9bebbf6821f0b098ff9cbcdb8a1b30b1044a88f3b89e8fb8e76ea9b37c8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tests/cli/timeout.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96843e537eee47517c5049885b84061a141b2eeba5680c11c5b66693d7be09b5", + "chksum_sha256": "a06cf74352024ffccea204ef3822fe08618aba04915148c8736f6387331f3662", "format": 1 }, { - "name": "tests/integration/targets/iosxr_command/tests/cli/cli_command.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "36008ced825f92916c9c1a8063d7d3af07a89cc64d6692a28d825eb1c6a020be", + "chksum_sha256": "b4377cdd354c797bde70b1ab79c25b8126309a735c3e52ada4dd3cf2c61db4c3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b9a8c7d0bff4202802918716797b5c1a831da98ca2bebe674f77d3e13de6b1f6", "format": 1 }, { - "name": "tests/integration/targets/iosxr_netconf/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6627fdd69a02636b86a4d138377f7e54897986e3f16878ff6a55e573eeac3793", "format": 1 }, { - "name": "tests/integration/targets/iosxr_netconf/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "chksum_sha256": "4ea507d63e8a9cff4eb0a1fc7dbb6a4bf4e85fe8bf3f0075dbbc6e3505648d69", "format": 1 }, { - "name": "tests/integration/targets/iosxr_netconf/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "19f48e1c0e26a39016c6e5d4b89a0cb15fdaa31aa34a29e64f7e595e3c1fe967", + "chksum_sha256": "b92b9c34db1ed38368a5daa18ab827267e694b837a278a42224c5652f0f3d876", "format": 1 }, { - "name": "tests/integration/targets/iosxr_netconf/meta", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_netconf/meta/main.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_netconf/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_netconf/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_ospf_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", "format": 1 }, { - "name": "tests/integration/targets/iosxr_netconf/tests", + "name": "tests/integration/targets/iosxr_static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_netconf/tests/cli", + "name": "tests/integration/targets/iosxr_static_routes/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_netconf/tests/cli/basic.yaml", + "name": "tests/integration/targets/iosxr_static_routes/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e68ba6599b56873a91e4b0002751395d61ce254351af0256b215d553229d0984", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lldp_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tasks", + "name": "tests/integration/targets/iosxr_static_routes/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lldp_global/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_static_routes/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "d2335eeeaa4ace8094a5daa3fa60d634693f9b07c483babba9e3c6c265d77508", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/defaults", + "name": "tests/integration/targets/iosxr_static_routes/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_static_routes/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "6e148c74b09c0b22e87e8e55b815a0250281aa8daabde38b951b425cfbec2442", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests", + "name": "tests/integration/targets/iosxr_static_routes/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95e5e93bdf0c29777aa2b210fd1cf1890625966262998e2661116ec817049717", + "chksum_sha256": "f6db71c5ade8ac5f359f7bb484d517f21dd6c163ee24c64d281992184ee4c783", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/deleted.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7f5a8b2f177d64272fc6a947921672ba402efae9f50df985f9b026c4ed26f59", + "chksum_sha256": "1735d21dcfcca3b2e613b10c51eb2a0ecaad2a6f6f44fc71baae6e3a8704c0ff", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb7802fd324a06c4462213a656f1cf305b31210533f51e9d741eb2d2493d289c", + "chksum_sha256": "854e3935b164f2f04624c7fef6c59a8dca0808cd4d063a9da2f632f85f94dc3e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c142d0fed11008b1a62e7486b30db686dba853439164655fafdef54909bc63bd", + "chksum_sha256": "f241eedfb974aee95dacdb64a7a2bd4120059f7854460bda9d3e4acf0d806fab", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/rtt.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c23d2dbb51d7164eab5fed3e834136b9c58d8912110cde108a85f0e20e091aac", + "chksum_sha256": "83dc069647949b99a4cbf01a41fce4b29ef2eb0e420bf3f27b8b7e40de474542", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/_populate.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ad57db9e94ca2aadfd2f45b32c2e81e8e1704d7d5a195ce520512c16821edda5", + "chksum_sha256": "00937ba6bd39c8d9b9d57e9afafa09812ac1f9be681301623220ce59ad57de5d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/merged.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e49f9c535fa7caa99d4f479101a39f837189d97b785fb02af518895f2c0fe9f1", + "chksum_sha256": "db869687ce8a3c6f01b918be52a77e107f74116a43fe8fc9bcae14d5def7994b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "43f8d39f847501b94cbd8af0deb64f4e30353fc524822f2b2ed585fac61e0b63", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc8ece13d91edafdb680a275bf4c794d642f584b24963f75e91d399d26e90dce", + "chksum_sha256": "9dd1cf36a11cfb51274f12498a802efb7767a084a8c55f431f777060da24c70e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/delete_specific.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a9dcf714eef59cc87ef2c4f4f117074297213b19694e6a8cedbd50760f2b39b3", + "chksum_sha256": "4f228479698428bdefd45f559f3bfe6413dc9f46f01c8ceb54a6474dbf16b5c9", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1fc1699dbbe7a8cbfdf21bf4f22fb223de156d8a7d23ca00d8f623a4bb3e7837", + "chksum_sha256": "2feedb5681526e889cbf30419b57f28143f328d184b986a53fcd106a3014b490", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tests/cli/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8f1df41b44d45fac6172c094147565b4e877bb60cfae594134a6b1c43bca0f3b", + "chksum_sha256": "9a63bcc02761c785c2d76ea2af8ec715510cab7a13e2cb65223a0b2dc105f290", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/vars", + "name": "tests/integration/targets/iosxr_static_routes/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_global/vars/main.yaml", + "name": "tests/integration/targets/iosxr_static_routes/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3a4ed71b399bcf1bbc0fd2978888ebf6d151bee360e2ab4d1c87fbe35198c936", + "chksum_sha256": "132a5c51daf268caea032e927c4d608384e0e212a9d2db31417238aa9e7f7d06", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces", + "name": "tests/integration/targets/iosxr_static_routes/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8c378f7a2ccabe54f2708379bb4258b6687e55d75f71f23690a7bf19a89895f5", + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tasks", + "name": "tests/integration/targets/iosxr_logging_global/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_logging_global/defaults/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_logging_global/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_logging_global/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "4a069b29e331858b268f0a2ab9ace19d5bf793703a8b5c452ac8724a6570506e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/defaults", + "name": "tests/integration/targets/iosxr_logging_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_logging_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests", + "name": "tests/integration/targets/iosxr_logging_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli", + "name": "tests/integration/targets/iosxr_logging_global/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "78ab712357d68b164ba677cffc2bc61cf9184dbe7eb616461b039880544c9d4f", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0bdd704c64456dc5bd746f258448a6c7c132cd3b2f06849f59bc8454e1b93189", + "chksum_sha256": "10bb238d21d24df6fe4e476d542492839c1943430ea17c6cf9275eb4790da423", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bac4a7214f9a2a43940bb7ea473ad5c479dfed034cb1f092169751886339a4ab", + "chksum_sha256": "909a21409e28a252b2c0d6fccf1e6c0e2cb51d710665aa7c0cafc11d6679a727", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c0a26973a1f425dcb788f4de6ffb431f0fb3cb439b285427e259545f81d6079", + "chksum_sha256": "32b4a5eb23f7544ff53968c2f2f714963b86c198caa83facbb6e36be9cb85d49", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6e0d64d1e1033c62bbc4da61e6f2e49fb79ca27eba372a6c557a6fabc8b01548", + "chksum_sha256": "8149279cc0a1da197893f2b231b99e89d35f72f7eca43c0ded62a1f7938af73e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/_populate.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1fb4c8047c353cd10a83ff0a2f9eb2c3455e1b72e81165bfecb475a5969d11c1", + "chksum_sha256": "2b6b32698c946e6caf83b8d756358cf0fe146dcdf81efd2b020ce595eba38bd4", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/_parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c33155ba2ec1dea7921b926e4baa656122f8bdf75ab4e39c85fba98e981d7f6", + "chksum_sha256": "e9111575d03ca3e8cae1744708bc4329dd05fdd40ab5468d722198a6728b1dac", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c10d1cc4272407919910b0b6c62badf94ef67f853fa1ac99a581603cc9ed7da", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "279dfdbc6e8e658f0034995198e414253f0a512c6590a311da073cae0a52d15b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09906ee86cc2c5b1a515dafa190e3576def507f53ed9563c471db011ab76eb54", + "chksum_sha256": "6b79a9c0fb64ffb5ea3b2499161f3d284af835a1e17ff12cbfe838a09a936573", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aa7e3e3c95400ac64035e994ec52bc2663674bb98562dd66e70cd1a18cab813b", + "chksum_sha256": "d72b330e428d01f36ce0ba454497558efb2aaa4a3d2f4423378d93febb7025a4", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2d359d45a561dcc99db2945a7e3de3c4e3564caaac19c643672331b7a2c26e0", + "chksum_sha256": "8e2c26f79a8f6cc6611dd48d408df870cc43853b8d8dd9ebe0af83465119b0df", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "095271b41184a0146f918498fb43a1d4808359cad386c08f3ff6ff8ae3991fc4", + "chksum_sha256": "02dd8a9273d456e158f8810372ee5f70c1b4ea56d70cfa11eb6dab8f9023b558", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/vars", + "name": "tests/integration/targets/iosxr_logging_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lldp_interfaces/vars/main.yaml", + "name": "tests/integration/targets/iosxr_logging_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0dca88a635c4df7935a64b62dcc4e29afc8ea29e79c5a69790d9fa39248aa593", + "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke", + "name": "tests/integration/targets/iosxr_logging_global/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "73e48db0c23a63565816ea0d938e972a0a9daee404ea69b57fc39f403f1288ac", + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_user", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/tasks", + "name": "tests/integration/targets/iosxr_user/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_user/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "303b9dff6309fcb32b8eb1e05d36298973519248849c1ddb442a6ce54e4ae491", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "40afb148ddcbe35a254f1ce45c8ba687b3b892aab717f66681c6be8bde22e308", + "name": "tests/integration/targets/iosxr_user/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/tasks/netconf.yaml", + "name": "tests/integration/targets/iosxr_user/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4ad5dae3d18e72e98b8a55fdd73f3b01d51db09ebb761501da3b84d54a36a945", + "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/meta", + "name": "tests/integration/targets/iosxr_user/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/meta/main.yaml", + "name": "tests/integration/targets/iosxr_user/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_user/tests/common/_auth.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", + "chksum_sha256": "00191a8605978a3eb0394bd610914da6e741774b1c863542f02e33e0c1684187", "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/defaults", + "name": "tests/integration/targets/iosxr_user/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_user/tests/cli/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "c0e5876713521246628445bdb96a184c1e60d03021606d7a36756530776b349e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/tests", + "name": "tests/integration/targets/iosxr_user/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/tests/cli", + "name": "tests/integration/targets/iosxr_user/tests/netconf/basic.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9d98246d4804b3d836796e4bba10fe7ebf0fa0ecd3c991fb0e1273feba169520", + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_user/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/tests/cli/common_config.yaml", + "name": "tests/integration/targets/iosxr_user/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1090b517c30bb3086c8e82909cafae786ef234aa5e49db4073cd7ed94a1339be", + "chksum_sha256": "303b9dff6309fcb32b8eb1e05d36298973519248849c1ddb442a6ce54e4ae491", "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/tests/cli/caching.yaml", + "name": "tests/integration/targets/iosxr_user/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e1dba81f68c64f197ee9bf87378ce1306b01740319f063a555bc3ed23ede1a01", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_smoke/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "70521f927ee1761e08f277a254437be92c536918337892bcf0c5c0368957d99a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_smoke/tests/netconf/common_netconf.yaml", + "name": "tests/integration/targets/iosxr_user/tasks/netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "101eb3edf7114ed0a02320acc9b5a3d91add238079336f8e6a020bead66924d0", + "chksum_sha256": "6650a55f6db383c6dea0285df827b038a5080894e176da4ff5ba05a71d8f007d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces", + "name": "tests/integration/targets/iosxr_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tasks", + "name": "tests/integration/targets/iosxr_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", + "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_interfaces/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_interfaces/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "chksum_sha256": "628f1746159ca78d2b44a74e2309d2db9b380b5a8582fb2c0f0b92c3ba38e95f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/defaults", + "name": "tests/integration/targets/iosxr_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_interfaces/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests", + "name": "tests/integration/targets/iosxr_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/_remove_config.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec8d829135a6074a8ad75ee76a2a1a4079e03325d92c0e830515cbf90f31eb6f", + "chksum_sha256": "9d90b33bba17d4d2ae74d79879e9163f0c413e1d4f076d7817c3a856e456e41f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/deleted.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be06b4f3cb25a95c6d1950c4919025c1cb15e114624d59b18c0eaa5a7d79b52f", + "chksum_sha256": "2390ab9c8c2958dd0623138f888fa1db1e40d20023bb803e5a1fdc9906be8504", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/gathered.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6ba2253349b074129effa793f31923b22ae2448ce58a9549023db855839460d", + "chksum_sha256": "c2426117bdd1320e641684a463c4b947c1864f76710eda7ed9a36c06c1b3615f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/empty_config.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14d91239138aa32bb7f451a89aefff422136e57427583623a172747eb5814453", + "chksum_sha256": "4b561e6501b1861665d181d39f4882f6c99b610c359d7294443b5e37722edf6b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/rtt.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f5bdefcaae69fa3cffe08302fb9dc9f706c3fd00edd4d2c86d032983d66bedbf", + "chksum_sha256": "9e989cbdc6bc0299a75483abb2bc9f771224d13dbdd084992fd71e6ef57f1a5a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/_populate.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2b84773b00c039d32e50e18779dfd48fc98e4f0012351d6d6c1ecbd740d25936", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/merged.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6e7cf195c2dfadb34e7393d4c74acbbfcb568899d7461c2bb6b4fa5acbc48b70", + "chksum_sha256": "e7f495f2b2f098efc4830e55aecc165536ef8cacbf35fcefc030cfa3a6a5a345", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/overridden.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a8d21a0b454b78c9643c6d1c47de95eafb44e9199b1a8bca7588c0d9c91cca02", - "format": 1 - }, - { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "44b35581001d7173e1b8f2fb5c3f8804692c59c87594ba3f4bdf1458cdd56256", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/fixtures/parsed.cfg", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "81e585cfbf29f1293be9881382ce419c6a2b0cbf9c1f87be057a241de2f44f98", + "chksum_sha256": "f6957f1a450e714240cdf34121eaf5099db25f1bda037680c8af357fef80839b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/replaced.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/_overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "717d1fb8c96130db8d6288c45c7c8dc46222d03917bf77b322b871ffcafd3a99", + "chksum_sha256": "26eb03219bcc0caba6d5b3be37a6bce7fa846c1e5ea6d2df9a5fba581597d7af", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/parsed.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "417f4d3094f95606aac731b14ae567a97c7b703114b88423cb677e0f6b2cc06c", + "chksum_sha256": "d3915314d2bb6a8c96a0f18c7cc4d1bdbb6a16e78a660baf7328ca5f6fc854a1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/tests/cli/rendered.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tests/cli/_deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9dad2238d7ee4b8fb78919028c1bb64ba29d4e2088f53ecf5fa99ea9c5e29c87", + "chksum_sha256": "d1264641b82c36fe0d15026aa6bcf379dcde00c183ca8f1283a7e9db9880c50d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/vars", + "name": "tests/integration/targets/iosxr_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_lacp_interfaces/vars/main.yaml", + "name": "tests/integration/targets/iosxr_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29a8acf3766df1e54abe6a3dadfc393571647722393b132444952162b30a60ae", + "chksum_sha256": "c1f2494ffa73842d0da2f38e4744624c2aa88ee473d24e33d626e7cb28b2d822", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config", + "name": "tests/integration/targets/iosxr_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84d6592471825e4bcaa55452b39c090fd8c05d17695f8ace236d00772df9af88", + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_smoke", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tasks", + "name": "tests/integration/targets/iosxr_smoke/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tasks/main.yaml", + "name": "tests/integration/targets/iosxr_smoke/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ba11d0a6ecc4c096ca24c09fc0f707954d3dc64ac8964ea17901fe60887213a", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tasks/cli.yaml", + "name": "tests/integration/targets/iosxr_smoke/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_smoke/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aeaea690f4a27b4af77c33a24968cdc89de2ca73e590d9ec1db4b80842750bb7", + "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tasks/cli_config.yaml", + "name": "tests/integration/targets/iosxr_smoke/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_smoke/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/iosxr_smoke/tests/cli/common_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c2b1c324c2399a7589d2fd4a7ed9b201f8a8299424924277b67298903db1d3cd", + "chksum_sha256": "1090b517c30bb3086c8e82909cafae786ef234aa5e49db4073cd7ed94a1339be", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tasks/redirection.yaml", + "name": "tests/integration/targets/iosxr_smoke/tests/cli/caching.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4dda061736323dd09fa0832d73a74f4dec4a7c4665357ad20c914f15778cf99f", + "chksum_sha256": "e1dba81f68c64f197ee9bf87378ce1306b01740319f063a555bc3ed23ede1a01", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/meta", + "name": "tests/integration/targets/iosxr_smoke/tests/netconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/meta/main.yml", + "name": "tests/integration/targets/iosxr_smoke/tests/netconf/common_netconf.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", + "chksum_sha256": "9a5d023cd3bf0c576500f9f1e668d87d626b8d7c36d45771b7f02837bcfcbbc4", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/defaults", + "name": "tests/integration/targets/iosxr_smoke/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/defaults/main.yaml", + "name": "tests/integration/targets/iosxr_smoke/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "303b9dff6309fcb32b8eb1e05d36298973519248849c1ddb442a6ce54e4ae491", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/iosxr_smoke/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "40afb148ddcbe35a254f1ce45c8ba687b3b892aab717f66681c6be8bde22e308", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli", + "name": "tests/integration/targets/iosxr_smoke/tasks/netconf.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4ad5dae3d18e72e98b8a55fdd73f3b01d51db09ebb761501da3b84d54a36a945", + "format": 1 + }, + { + "name": "tests/sanity", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/toplevel_before.yaml", + "name": "tests/sanity/ignore-2.15.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "19a5a9e3043bd0b74fd7e71956374e204626d4346262c0c4cd3d9c579bb89f87", + "chksum_sha256": "b7a7260f01ad97d899400efb85c91ed3a63d922bc40a0dfda0d99a9f7f55b995", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/toplevel_after.yaml", + "name": "tests/sanity/ignore-2.14.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75053a4dca4669bd74e8c0edca7056cd31c40751cba6379774c337e466203cd6", + "chksum_sha256": "b7a7260f01ad97d899400efb85c91ed3a63d922bc40a0dfda0d99a9f7f55b995", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/sublevel_strict.yaml", + "name": "tests/sanity/ignore-2.18.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "33a343c4930c4bd86c2f660177d059bdf6c44e52b4224ecd7e8ade878687544a", + "chksum_sha256": "a8ce632758a8bb8372e36359bbc44782b2b964f48b353e18ad5a9fd3cc91a67f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/extcommunity_set_config.yaml", + "name": "tests/sanity/ignore-2.17.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb9f1df2b57e8364e823fb60276e322bd994be2df12b42a7cfddb461bb3e0dc0", + "chksum_sha256": "a8ce632758a8bb8372e36359bbc44782b2b964f48b353e18ad5a9fd3cc91a67f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/commit_label.yaml", + "name": "tests/sanity/ignore-2.16.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "873e365af69c26af8ed84b963e8f670dfbf86dca68811b164b1465417160070a", + "chksum_sha256": "a8ce632758a8bb8372e36359bbc44782b2b964f48b353e18ad5a9fd3cc91a67f", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/commit_confirmed.yaml", + "name": "tests/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9653c9ff2afc35783f116961cb926bb5f1943c963d05125998cf71c2d18bc182", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/src_match_none.yaml", + "name": "tests/config.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21a37a276566385dcce522dd5b49dbcc7615ee5ef44b197b753875c469efa34a", + "chksum_sha256": "4129945061440c8d8c281590b8054b194f5958833c722aa40e878b09038c380e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/sublevel_block.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "45be4aed01d01d3a88065e21b231390a90c01575db70fe99bc373d253a483945", + "name": "tests/unit", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/toplevel_nonidempotent.yaml", + "name": "tests/unit/mock", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/mock/loader.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4b629cb3f6c037494f307266e968320063f5533907d7b2b73a2f4c0cb8b91508", + "chksum_sha256": "2343d1f644250d4b616f0bf0a826fdee8fe306243d8412d44dd0e033352b262b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/toplevel.yaml", + "name": "tests/unit/mock/yaml_helper.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "98194ad2b27b0a9722de6305af5d2446201c488a21e52d33f31b82f51dcb9dbc", + "chksum_sha256": "134eef238c83a9611799871b743e49e9bfbcd8bdddf2cc6a7bf69fd1000345b3", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/sublevel_strict_mul_parents.yaml", + "name": "tests/unit/mock/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8e641ad89ffb073b8597de019fae0ac2a48482a6a33ff9a3cadd97f364100c70", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/comment.yaml", + "name": "tests/unit/mock/vault_helper.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1880bcdadc904a2cb1d98478fc780763371648a392c6e383eb2102d26bff1ba1", + "chksum_sha256": "55bd0e924dcc22d050612c944bff0ef745e51faac9260dce9b9b2018c4c8a661", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/prefix_set_remark.yaml", + "name": "tests/unit/mock/procenv.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0fb66964d634451765de4922678ada90649e02acb0bc6f5b5ab6c723a506bc1d", + "chksum_sha256": "8355a91c013778f8b70896222e8223d67b743fd8ba2bf541f4ea4d7d460b01ef", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/replace_block.yaml", + "name": "tests/unit/mock/path.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "864b44dbf232d2e1d731ad33a2fb89523b94a21ebba2b8fa9cf1d87f53d4a4d3", + "chksum_sha256": "110552d5ab0ffabe2bc6b6c57e9f389be3920da2e0f37ea5b628795d1b426bfd", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/sublevel_exact.yaml", + "name": "tests/unit/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/modules/conftest.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e18cbd1b58ce8368d11e0948fc75860f2b21e4092c74129d894fb7e4fa46dda1", + "chksum_sha256": "e0ae70fa7c2a5e56d7f02a47c3602398cff60c8eb021772ac59a76df2a234048", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/comment-too-long.yaml", + "name": "tests/unit/modules/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3620ac43ca5135f0c0a49e2aeba5ab73a4c2704554d27c87ee4284f87f784bfc", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/src_basic.yaml", + "name": "tests/unit/modules/network", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/modules/network/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5cd6945ede088394c6599ee3b5f2aeddc0c3ed856db44fd8864a626576b79c38", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/route_policy.yaml", + "name": "tests/unit/modules/network/iosxr", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/modules/network/iosxr/test_iosxr_snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "604f5b5f96027a1c3e5768650bdfd7687d1fed0a5045a3e5b9805dddd5fae6a7", + "chksum_sha256": "85bff5db9dde7093986838c4c2d7772f2efc2b64ffcd04b6757f2986d63c16ca", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/backup.yaml", + "name": "tests/unit/modules/network/iosxr/test_iosxr_bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e89b8bf2ae0c1dd3d859a77494f6f89abfccbfb1e6be30c2d5d17d3296b0cb8b", + "chksum_sha256": "a20f0580ae955a5fc59f6a8d7bf0c85eb26a62b2145b1e6c398944ba46badd90", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/src_invalid.yaml", + "name": "tests/unit/modules/network/iosxr/test_iosxr_netconf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ceaff4b3620df90e8208f020adfa3d1b12ca9bef955fd8e01ef5f0395b4fdcd1", + "chksum_sha256": "9bb0d664660d05259b1bdbb4f443cae4233eed8bcbdd0f694024b367a195e892", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/misplaced_sublevel.yaml", + "name": "tests/unit/modules/network/iosxr/iosxr_module.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55ebc624d7356f89f6c2bb32d13aceff80e8df04d57c28f463023a7aca814ee3", + "chksum_sha256": "44fe73a4355f43b735971cdf2927a17ca35a317d8d3dcf7eba3679e42f827bf7", + "format": 1 + }, + { + "name": "tests/unit/modules/network/iosxr/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/replace_config.yml", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_system_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "520231e3fab8fd0eed892322eb5e630667f32730b89f1a06e01c22a72d33ff45", + "chksum_sha256": "18ae20e11b3f557435b212a739a50c59c95e4162dc13989695e6c14ae35e58f7", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli/sublevel.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/show_memory_summary", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "81d687e492374044859a0efcfa6dc922fb526648b8631faf70b621ae6742489d", + "chksum_sha256": "c0fedc43463c95b152254b43d741b62c704ffc82b2707b758d1294283384c4e0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/redirection", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_l3_interface_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "50f889004120619f090c295fe5f40c5575c0a4feaed60a14d863d00bf25bd2a0", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/redirection/shortname.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/show_lldp", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c82a2cf83917d7934e758a867235e53629945aa1739c3101bbf61adfb9f248cb", + "chksum_sha256": "4135607fe98acfedbef4f2d3305b4ade7e5e833130f049f310b68f32ce451c66", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli_config", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_ospfv3.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8a6d31304503f7cd58289c7ab493bab726a003a69dbcfff3177f82e051180ff4", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli_config/cli_backup.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_acl_interfaces_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c6e65aa217139078a0e172b54fc00eb2cfe51f2079cb7d9b0a5d9c5d2a74ca6", + "chksum_sha256": "a5870ad2392bc344f5d7c254ecf5f1b5d317527c2efa346a55a3a73fb0ccd10e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/tests/cli_config/cli_basic.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/dir_7all", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "256bd79f69876e184c69f562b22d1954e91f78e0386e273f4f11c5cf74b1d350", + "chksum_sha256": "c5e2c218c5731bee3f874af0bc5d5694a426ceba650efc03795a5739235f0120", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_l2_interface_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1c18f829582b9ed3a84bc5226dfd05be9c736dc0c949d61f719c71284e747e1d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/fixtures/config_add_interface.txt", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_config_src.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab5bf303021e5250cd67b0f4ad25b8127b74dd2d8630266a382d9ab2aa4c248b", + "chksum_sha256": "57d42d2e8e8b7a4b6cae566115ee42fecea077b525cace10cefc3b7dbd85f033", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/fixtures/config_del_interface.txt", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_config_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "087d7655b24ffcd3191a5cab8015486b1da1488345f6e7617b0523f575b0400c", + "chksum_sha256": "6fe81e446733fef4e3643a80042ab4111b9b0c927599c4b5972ecea4c18b4ffd", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates", + "name": "tests/unit/modules/network/iosxr/fixtures/cliconf_ncs540", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/basic", + "name": "tests/unit/modules/network/iosxr/fixtures/cliconf_ncs540/iosxr", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/basic/init_prefix_set.j2", + "name": "tests/unit/modules/network/iosxr/fixtures/cliconf_ncs540/iosxr/show_version__utility_head_-n_20", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92dec92ecf095d1c33c493f4769541caa745787d80e498d6ae81decc93351e0a", + "chksum_sha256": "ca53ef4a0ab10529e7d5df9fd669fae547be148b08ee7075141212ab90a1e929", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/basic/configuration.j2", + "name": "tests/unit/modules/network/iosxr/fixtures/cliconf_ncs540/iosxr/show_running-config_hostname", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1fd4692dc95cf561f544f8f680c9046add01c85c6fb83c17db2690cb854d3bb8", + "chksum_sha256": "749f869982a235df56c1c7e404744c441340ff6da90dece0c8b83d63ff47e7af", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/basic/route_policy_change.j2", + "name": "tests/unit/modules/network/iosxr/fixtures/show_cdp_neighbors_detail", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95c74f6778f25c6385437de97ec5ffbbef5414ed42115d8b7ee276fe5d7fdd64", + "chksum_sha256": "bbc4b792c6b18344cac105ae9b0d6916d5f170dd4b0413de0faecc9a845c46e9", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/basic/route_policy_clean.j2", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_ospf_interfaces.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "baa2f889363d8827d04378ac81e1516d840d64a721e4cc8284c937390206904c", + "chksum_sha256": "c3e8a76362099f436fe64dbd9dfc6401c862dac9c7b36be4ec83b36d125be2b8", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/basic/interface_config.j2", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_ospfv2.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3209d667d131c751b8cb1954bceec81eccb663a5e257b81b7394a9edcb9e0d70", + "chksum_sha256": "27b9a4a53478778c5781170c052ba66bcc09dcb40aab0709d28018f6cd332126", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/basic/config.j2", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_static_routes_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fed860520ec0b19850744af6be1c77939335d4a09539bf563d0c15aa6afc84ef", + "chksum_sha256": "6e148c74b09c0b22e87e8e55b815a0250281aa8daabde38b951b425cfbec2442", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/basic/route_policy.j2", + "name": "tests/unit/modules/network/iosxr/fixtures/show_running-config", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "83c3226c2070afbe01cde658ec7852261ac925abed96766989888c70a2f8bc92", + "chksum_sha256": "9442b8aa3e29caa5725d8968da29fa173e998d7c664c92b3ddd66a7aea76a71e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/basic/change_prefix_set.j2", + "name": "tests/unit/modules/network/iosxr/fixtures/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91a0239cde35ce8e75ad24c8f9c853014cd0c7a5554171ee3b0ad50cc8ed67f5", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/fixtures/show_interfaces", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e37745f7a4d614d0aa5da44df8a0acaea5820a5900d65cabe9640ddcb7e6ccd1", "format": 1 }, { - "name": "tests/integration/targets/iosxr_config/templates/defaults/config.j2", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_banner_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c67459067166baed6059b02907fb2692e34868270185b09fcd9f5d7c3ec013d0", + "chksum_sha256": "373fefe369cd647022df09438152a869d3c407cb05c51b3bd8214b81471d76e9", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname", + "name": "tests/unit/modules/network/iosxr/fixtures/cliconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tasks", + "name": "tests/unit/modules/network/iosxr/fixtures/cliconf/iosxr", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tasks/main.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/cliconf/iosxr/show_version__utility_head_-n_20", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afc73a39f8a8861930e2a6a542ccd07426663ec0584b218987ef2b456d8c00d7", + "chksum_sha256": "cc08220e9647a2a3d34640ffabc08fd34f9601e229ab7cdf5ce4224f62cc158b", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tasks/cli.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/cliconf/iosxr/show_running-config_hostname", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d3350be00fa2af0f217f369684578df724bcf9550402e7a54ef1b84f32dcb53", + "chksum_sha256": "749f869982a235df56c1c7e404744c441340ff6da90dece0c8b83d63ff47e7af", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/fixtures/show_ipv6_interface", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "151235002e58119649b79a98cbacb5ce155225e31aa0188dd8085ee0961feacf", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/meta/main.yml", + "name": "tests/unit/modules/network/iosxr/fixtures/show_version_brief", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "e4eb1b26a35a3c5bcf1e45eab472c8d59ff0559cfbfe701cd60c17ee6d9d6957", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/fixtures/show_version", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "089ab6658c475d1146f913b1cdee2671b46051958e2b7f562da626d327456726", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/defaults/main.yml", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_interface_gathered.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "06b46488db2b8cecffa505d7a8d7f3c0566df2beadef2fb795f3963e26bb1504", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/fixtures/show_version___utility_head_-n_20", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e4eb1b26a35a3c5bcf1e45eab472c8d59ff0559cfbfe701cd60c17ee6d9d6957", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_acls_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7415a69cdd33bff4395ad90a4cf6a930082691564493b998844e499a5039d13d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests/common/_remove_config.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_acl_replace_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "33bb48f812aef67e24ce8cffc06916f7f8adbb8977853170aeb32dd150bf334e", + "chksum_sha256": "197b575ae7d14aeb340f84bcb05ca1e4c7f84786dec07881afb650cc75106c20", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests/common/deleted.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_lacp_interfaces_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0c727923bf03a87bd59efc3eb98d414cf99ea84ac3748d32412b7eee33996553", + "chksum_sha256": "04b1c2fbc56979e8df559dc3a499adaff452c0815be45fe4a0e2b1b74f740831", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests/common/gathered.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_interface_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "348ce984e68aabc275d61e8143b23c6cc59765f2510b073a4c611fa62254a4b7", + "chksum_sha256": "cafb0268e9f22c966719d76a2b7267d966ef98748f68cf3594ea55a3efd03945", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests/common/empty_config.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_lag_interface_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a89c158ee6a5732379e2b446d1d6e307cb116b5a4f602e32781b5e11598f3c9a", + "chksum_sha256": "25aaec36c88ca1c78bdae21f0a0e072929ce56e56f569967927ab6def72d972e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests/common/merged.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_lacp_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2591c3d8f9408a6d1879a028da5491a9275c44601b28d5d1341818ecab434a0", + "chksum_sha256": "1ca4b510769bcfc42967e42d1b560e18908724b345676fb68e76571dfb84e847", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests/common/_parsed.cfg", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_lldp_interfaces_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b0de89ec88a4c3c844244ea9b8a24ef5d12fe4ec4932c525b720742d77334fd", + "chksum_sha256": "1c4e458ac2250cfbfacd5b53e5937c792bdf09a36bf42c7d27cb5add93ffb693", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests/common/_populate_config.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_user_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b3905393cfeb5a880d6f501a9813b52d787c771504efb07291ea4bdf91a83457", + "chksum_sha256": "e387d5d8b668b1f290872aab2a3e8f8de3d4bdcb99906b8bbf618b950f0c60e9", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests/common/parsed.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/show_cdp", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "823462a54fe9b7f711ce0331124bd72c3c4029547fd7d1c2e5bd1da25582cebf", + "chksum_sha256": "56578d8143a06834835f0c9cd4901a573514adf51a4dc5cbd2db1e02afcddecc", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/tests/common/rendered.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/show_processes_cpu___include_CPU_utilization", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1fb084918ff5f04f5da804437d0287f888c6b225be719b39e7599e4d2928890d", + "chksum_sha256": "c6eca4811fafb01f204de26b037fee16d63aca082ce05d57b9f0c52fb502ef66", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/fixtures/iosxr_lldp_global_config.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cc8ece13d91edafdb680a275bf4c794d642f584b24963f75e91d399d26e90dce", "format": 1 }, { - "name": "tests/integration/targets/iosxr_hostname/vars/main.yaml", + "name": "tests/unit/modules/network/iosxr/fixtures/show_lldp_neighbors_detail", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8fb0722d13cbb07c9e9d85b76efbdae857bfdd1801b6aa0501a52946e6b6d588", + "chksum_sha256": "4135607fe98acfedbef4f2d3305b4ade7e5e833130f049f310b68f32ce451c66", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/test_iosxr_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "72a840bc71e4264bd1a81b5bf3fc850b33c72e2420d5b26c6f6f2cfdaa165ba9", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/test_iosxr_ospf_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e4159ca266e4725a08075ed053970e7717d718d59ab1629983de5735b62ca572", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tasks/main.yaml", + "name": "tests/unit/modules/network/iosxr/test_iosxr_prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "303b9dff6309fcb32b8eb1e05d36298973519248849c1ddb442a6ce54e4ae491", + "chksum_sha256": "201a085820e80e365853eeea7e5ae7132161640c42d5fdc2ec89ea753c012956", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tasks/cli.yaml", + "name": "tests/unit/modules/network/iosxr/test_iosxr_ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "70521f927ee1761e08f277a254437be92c536918337892bcf0c5c0368957d99a", + "chksum_sha256": "fb9665da189a72020612074ebc184341d968bbb7bdaf1a4414694bcac34c1f40", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tasks/netconf.yaml", + "name": "tests/unit/modules/network/iosxr/test_iosxr_n540.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6650a55f6db383c6dea0285df827b038a5080894e176da4ff5ba05a71d8f007d", + "chksum_sha256": "0b919ddfe1c043e96a522c559cd58e30b83e0f57482e7c5cfe678667d52b3581", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/test_iosxr_utils.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9aa4570454de5df5c836f3753f9575b9c603179c3f5ef19a462c839d7127b828", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/meta/main.yaml", + "name": "tests/unit/modules/network/iosxr/test_hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55144d29457d670189e343c566fbc6b465b90dbd9f2028efbb12d7fcc9f07b06", + "chksum_sha256": "b404fb2dd81ef767eca09da0717a897bedce394093c59c560243ec214b8baede", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/defaults/main.yaml", + "name": "tests/unit/modules/network/iosxr/test_iosxr_config.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9df1284eb7eaca076e95f4179209490ebe211e2854674581e324ac1a68beadb7", + "format": 1 + }, + { + "name": "tests/unit/modules/network/iosxr/test_iosxr_ntp_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c39b59d0219d7b96f78476b4625257ca7fb4d89273d8f542f399a0fd2fefb202", + "format": 1 + }, + { + "name": "tests/unit/modules/network/iosxr/test_iosxr_lag_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e698d9b46a555dd444d0cdc3a9cde31f4e6255cb3d759731d35ee2e74fe1c020", + "format": 1 + }, + { + "name": "tests/unit/modules/network/iosxr/test_iosxr_l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9894ee154c7a39aa7a1e65d027dfc12b8643e1a3df53d3c09bbab9eeb44a1cf1", + "chksum_sha256": "0a9e70c90e5013c4ae5f95db8385aa9792fc6d96e162e0c099d65567044f42ad", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/test_iosxr_l3_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7d4dc15bbd36b2fd13614fe0f17a7c1a78b28b96e94ea23a6500ee19d5ba6ba6", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tests/cli", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/test_iosxr_bgp_templates.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "51bd0785d9cb6469acd19065c39fb967bbaee9d75f85084252250554a8b2bc83", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tests/cli/basic.yaml", + "name": "tests/unit/modules/network/iosxr/test_iosxr_ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0e5876713521246628445bdb96a184c1e60d03021606d7a36756530776b349e", + "chksum_sha256": "11e41d28a210b25f2aea3efd0a0bdbcf015c4cecd0a586340f992227e82030b9", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/test_iosxr_acl_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ce14623a4c3e37f8c14004433cebbecc403d06c15ae5f64892f6a9a33631e74d", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tests/common/_auth.yaml", + "name": "tests/unit/modules/network/iosxr/test_iosxr_lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "00191a8605978a3eb0394bd610914da6e741774b1c863542f02e33e0c1684187", + "chksum_sha256": "2f0d30736ba724eee2381c4ce5ae75ff01281d35aff2bacae346da46da882d9e", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tests/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/test_iosxr.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e53a9b97ed71efe4d13d2cf2cdc93150e445de631cbfe0a4f4c64cefeff8afda", "format": 1 }, { - "name": "tests/integration/targets/iosxr_user/tests/netconf/basic.yaml", + "name": "tests/unit/modules/network/iosxr/test_iosxr_static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d98246d4804b3d836796e4bba10fe7ebf0fa0ecd3c991fb0e1273feba169520", + "chksum_sha256": "29e8d1a1ebd78e1948636089a5718df28352c184bc0e8a57027722f233af6360", "format": 1 }, { - "name": "tests/integration/target-prefixes.network", + "name": "tests/unit/modules/network/iosxr/test_iosxr_ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d577d6580d29511474adecf53c2c66b66aced6b624c4f6c3781138d69870707a", + "chksum_sha256": "8bd300600cc88de9c552cf0acae09599bfd57d8e9d51d8cdf05d4f16de2401f0", "format": 1 }, { - "name": "tests/.gitignore", + "name": "tests/unit/modules/network/iosxr/test_iosxr_system.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600", + "chksum_sha256": "7a7d249b267878c22d1e203c143f0257eda70400430a66a411bb311fcbed2af3", "format": 1 }, { - "name": "docs", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/iosxr/test_iosxr_lldp_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8a8fd8d3f0f5a65e3c9e14f9907552807790a2533152908c54838f35c95f6c3b", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_lldp_interfaces_module.rst", + "name": "tests/unit/modules/network/iosxr/test_iosxr_lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ac0f31d37234a72b543f93f7ac0a450f3dc4ae546bfa977161f2f15d2551f56", + "chksum_sha256": "5c18cc9367c3191297149b09fd742c033fc40ac7aca25a703afbb6015f1537bb", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_lacp_interfaces_module.rst", + "name": "tests/unit/modules/network/iosxr/test_iosxr_banner.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0b647afa59f64aeee6894c9088b7308974fc414e7e23e658026873a24b8a9249", + "chksum_sha256": "c22af0082f2d6cb3a525a6ca1d7562b9e0bd8ed37fc928f240739c6626b40d75", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_system_module.rst", + "name": "tests/unit/modules/network/iosxr/test_iosxr_lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e984064df11389a31575a893fca5484dc0a7c5a46f2d633d92bfdd6a7363cf2", + "chksum_sha256": "c90118c8b1d123933864ae2181ad608629acc06fc31d849ce8f199d968bb9131", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_bgp_neighbor_address_family_module.rst", + "name": "tests/unit/modules/network/iosxr/test_iosxr_bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d4402f555478741555de21a719d386b18a93465ab53f9301eb225f6a0d9f3e4", + "chksum_sha256": "c2a8af31151fc6ec159c192680357aab10f7c2234dbdef373e2e8230c11efbf7", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_hostname_module.rst", + "name": "tests/unit/modules/network/iosxr/test_iosxr_acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5e7b8fab433bbc77ff1728579757a6fa910da23694cc9df130ce78b4a1047efa", + "chksum_sha256": "b4b0aff697838d6cd8552f95ceca804d51560600a65df2e22026614b83362cff", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_netconf_module.rst", + "name": "tests/unit/modules/network/iosxr/test_iosxr_logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c0d51a2477850b2fe3dacdf3a7a86e3a66d83491ee38884d3227bb0981eaf02", + "chksum_sha256": "0e403d68e915e02a54ddbc2c6d90065fcd5d9fd2af866677b2342c6144fa0416", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_ntp_global_module.rst", + "name": "tests/unit/modules/network/iosxr/test_iosxr_command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21803ea95dc8bd9481c16547a13548692719410c79f470f354489ea69b05488b", + "chksum_sha256": "0e21f0d4d325acf2084bdc7580e19d64276ed471790a682ed01302b95a761955", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_facts_module.rst", + "name": "tests/unit/modules/network/iosxr/test_iosxr_facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "31f06265ded0f87434512141f0963fad1518d2e4df40e2e8b30d9f40cb2d75e3", + "chksum_sha256": "4caa9e85526ba68c371adff54e6eb2d89f6471724fb923e5e2d63d2b6bc93e81", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_bgp_global_module.rst", + "name": "tests/unit/modules/network/iosxr/test_iosxr_bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52486dc2a51c8e9a5760ce0654d1693b6cc8ec80b5104a007947ec95fb8fac9a", + "chksum_sha256": "8b04aafaccea128b0597ca289d0ce7a622614781c33d779cca796b87735d6c23", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_netconf.rst", + "name": "tests/unit/modules/network/iosxr/test_iosxr_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0c190697f6cc86e85c2b5466ee2dfdf6e9d7eaa1ab5c6c2147fbd4fd0938b26a", + "chksum_sha256": "54918ff415a77cc2092955e95f0e7ccd02b5a29709ac6f7f9520c09530290e5f", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_bgp_templates_module.rst", + "name": "tests/unit/modules/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ca7c2b348e99ac02421edb09380bf101963bb79fda9e32e073669e25735bbf6", + "chksum_sha256": "414c272e9a403bb6009460ec9502c5acfaa9c80b2159c742f6cb2e225938be3e", "format": 1 }, { - "name": "docs/__init__.py", + "name": "tests/unit/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_ospfv2_module.rst", + "name": "tests/unit/requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16da0dca6fbf081710785720a1330ebc2479d82d5df650d9712db2a522e49588", + "chksum_sha256": "49ba996dc4735c3463e9af561344346dfae14bcc1a68096ce78364b377f0df1f", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_cliconf.rst", + "name": "tests/.gitignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf973787bc7e3ac2a44b4e471927a7e6b2186420238ee9f27cbef8dae306866a", + "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_acls_module.rst", + "name": "codecov.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d4afc88d6043512adaffacbf40c44076ee62380e5422f43f4a0a2802aef4b604", + "chksum_sha256": "4aa7e485dd4db6f8a55b046088c745def2b3145d9499ccda4e9a3336467dcea2", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_logging_module.rst", + "name": "tox-ansible.ini", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b4a9a387516f3d29f7ef2d355413e6c9c0ea1ef8588fdfbd2d17aaa7285df542", + "chksum_sha256": "08d5fd8d860231d520993f5378cfbb0e2c45a7820d106fa98b70432b0dd176ad", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_snmp_server_module.rst", + "name": ".gitignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc4ff48b6712e8a8a3ad4aa28f231af4f1eb7d18d142f3a7a547ae8b061ef2ca", + "chksum_sha256": "445eae124a1f5bb47770dec970cb756d2b736e0e009182ea2175dd3f0d7b7317", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_static_routes_module.rst", + "name": "LICENSE", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "17abfc815e8cac2fa27575cdfb234bcdcff2a44567e59c381428cd3dfccb3fad", + "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_config_module.rst", + "name": ".flake8", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f36139e13012d02ddabb4b106ff5433ef077ca470939452787493bd525a18743", + "chksum_sha256": "f357bc604a44fe8a5912ec2b9067b734a88d1026da98d5993905d7b34ab44357", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_l3_interfaces_module.rst", + "name": "CHANGELOG.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6001a54a3c3a4d44389bd470e1e82bc968dde9d7922793b93f4ec89456f4c24a", + "chksum_sha256": "473b4e2b68fa9cfa86e77c8eba3aa95a5f714b50b73fe14b811134fc738eb1b8", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_interfaces_module.rst", + "name": "requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "70ef6ab2e8fd9ab59c0c45b853f816813fec388c87ff35629154fabfd54f40a3", + "chksum_sha256": "45e66d4e5704d00efce212a99c21642d4eda970004696b8093a828bb497209a9", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_prefix_lists_module.rst", + "name": "docs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "docs/cisco.iosxr.iosxr_facts_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba764ceaf2356282fe17c4cf7df068ae3339d07df3d81c91fbc23fe5ad7951cb", + "chksum_sha256": "e748f7bc1f61cce1d02d6b8b3e4e86a124292bbdfa2d45211448bed244c42864", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_lag_interfaces_module.rst", + "name": "docs/cisco.iosxr.iosxr_netconf_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b6f3e0597d0625fb21bd166f2c1b409bd4d90872d920162c8d643df5d60ef92", + "chksum_sha256": "1c0d51a2477850b2fe3dacdf3a7a86e3a66d83491ee38884d3227bb0981eaf02", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_banner_module.rst", + "name": "docs/cisco.iosxr.iosxr_prefix_lists_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "18e15247958616f04c733b6838245151c89899fed09a3f4b0146c1ddbd83a9bd", + "chksum_sha256": "ba764ceaf2356282fe17c4cf7df068ae3339d07df3d81c91fbc23fe5ad7951cb", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_l2_interfaces_module.rst", + "name": "docs/cisco.iosxr.iosxr_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e8e3f37f93dec6ab14536eeb00486c9836f73c76769ec1099ebd79c20b69f847", + "chksum_sha256": "70ef6ab2e8fd9ab59c0c45b853f816813fec388c87ff35629154fabfd54f40a3", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_command_module.rst", + "name": "docs/cisco.iosxr.iosxr_lacp_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef6d1d76c704c41ff290d36be0bb1bbd2bdd68d92e32678b0bbc57883a78749e", + "chksum_sha256": "afc49ad783441204b9377be2ac4c983368b19289652ab0d867325d685fc9077b", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_lldp_global_module.rst", + "name": "docs/cisco.iosxr.iosxr_netconf.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff7037fcf3fd8987c0e71216600f3949e1b11184082913afff8b72ac12bbc47a", + "chksum_sha256": "0c190697f6cc86e85c2b5466ee2dfdf6e9d7eaa1ab5c6c2147fbd4fd0938b26a", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_acl_interfaces_module.rst", + "name": "docs/cisco.iosxr.iosxr_ospf_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7f7abe113adc1764008bc79eebf7ac78076880bcc0ebee420afb3b8321b3e2a", + "chksum_sha256": "e7c12b32cef21b93bc8f868383bb30fdf93d9d5cf766ec60b49eb07f7f57abe1", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_ping_module.rst", + "name": "docs/cisco.iosxr.iosxr_cliconf.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a3a86ad5aed7136b5e903410f4fbff2ebf126d6aed75957418e47f7ffb2cb604", + "chksum_sha256": "bf973787bc7e3ac2a44b4e471927a7e6b2186420238ee9f27cbef8dae306866a", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_user_module.rst", + "name": "docs/cisco.iosxr.iosxr_lldp_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "911e6a05d509cfc18aed89a68d87f72bb7de50beae350ea2d0f237703868ea8f", + "chksum_sha256": "6ac0f31d37234a72b543f93f7ac0a450f3dc4ae546bfa977161f2f15d2551f56", "format": 1 }, { @@ -8898,10 +8765,10 @@ "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_ospf_interfaces_module.rst", + "name": "docs/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7c12b32cef21b93bc8f868383bb30fdf93d9d5cf766ec60b49eb07f7f57abe1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { @@ -8912,171 +8779,171 @@ "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_lacp_module.rst", + "name": "docs/cisco.iosxr.iosxr_acl_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afc49ad783441204b9377be2ac4c983368b19289652ab0d867325d685fc9077b", + "chksum_sha256": "f7f7abe113adc1764008bc79eebf7ac78076880bcc0ebee420afb3b8321b3e2a", "format": 1 }, { - "name": "docs/cisco.iosxr.iosxr_ospfv3_module.rst", + "name": "docs/cisco.iosxr.iosxr_user_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "753bba432a6306fc9ae8c89d9718e3e0c58d054d5968408509c4a37fb881e5ae", + "chksum_sha256": "911e6a05d509cfc18aed89a68d87f72bb7de50beae350ea2d0f237703868ea8f", "format": 1 }, { - "name": ".isort.cfg", + "name": "docs/cisco.iosxr.iosxr_bgp_neighbor_address_family_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5328af170b936cfea2a47b7155e4647a89662e559bc2664cfb93dbab968aaea4", + "chksum_sha256": "3d4402f555478741555de21a719d386b18a93465ab53f9301eb225f6a0d9f3e4", "format": 1 }, { - "name": "pyproject.toml", + "name": "docs/cisco.iosxr.iosxr_ntp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1cb6a45dfa2625123890b93ad7fdc156b063c16e8ae6dba11511a1d1986b0fcc", + "chksum_sha256": "21803ea95dc8bd9481c16547a13548692719410c79f470f354489ea69b05488b", "format": 1 }, { - "name": "bindep.txt", + "name": "docs/cisco.iosxr.iosxr_l3_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8083c02374503e9616216aa195dcdeb6aaac7725e7640896d650699cedda309b", + "chksum_sha256": "6001a54a3c3a4d44389bd470e1e82bc968dde9d7922793b93f4ec89456f4c24a", "format": 1 }, { - "name": "changelogs", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.iosxr.iosxr_banner_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "18e15247958616f04c733b6838245151c89899fed09a3f4b0146c1ddbd83a9bd", "format": 1 }, { - "name": "changelogs/fragments", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.iosxr.iosxr_command_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ef6d1d76c704c41ff290d36be0bb1bbd2bdd68d92e32678b0bbc57883a78749e", "format": 1 }, { - "name": "changelogs/fragments/.keep", + "name": "docs/cisco.iosxr.iosxr_static_routes_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "17abfc815e8cac2fa27575cdfb234bcdcff2a44567e59c381428cd3dfccb3fad", "format": 1 }, { - "name": "changelogs/config.yaml", + "name": "docs/cisco.iosxr.iosxr_l2_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e9313ae1bb365e94e03fc01e2c0bd2df437019a987f388ae98e8ec669d498984", + "chksum_sha256": "e8e3f37f93dec6ab14536eeb00486c9836f73c76769ec1099ebd79c20b69f847", "format": 1 }, { - "name": "changelogs/changelog.yaml", + "name": "docs/cisco.iosxr.iosxr_ping_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "795742b55284cd4cefb6a93d05c7c8e0f5abca0b69b5534a0d4c759c6c205d86", + "chksum_sha256": "a3a86ad5aed7136b5e903410f4fbff2ebf126d6aed75957418e47f7ffb2cb604", "format": 1 }, { - "name": "tox.ini", + "name": "docs/cisco.iosxr.iosxr_bgp_templates_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "beb3313789623e5570d0871f6115ba563a0d92ea75e8e89cbd9f79045b4fe279", + "chksum_sha256": "644270907997388095cdb1b35c1864863928522ded5aae20493210e6ecf1637e", "format": 1 }, { - "name": "CHANGELOG.rst", + "name": "docs/cisco.iosxr.iosxr_snmp_server_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ad5482a0acf65d41f9a8301da8a300b656513dd7a88e472b54e5c70c402b4b32", + "chksum_sha256": "fc4ff48b6712e8a8a3ad4aa28f231af4f1eb7d18d142f3a7a547ae8b061ef2ca", "format": 1 }, { - "name": ".gitignore", + "name": "docs/cisco.iosxr.iosxr_lag_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "445eae124a1f5bb47770dec970cb756d2b736e0e009182ea2175dd3f0d7b7317", + "chksum_sha256": "1b6f3e0597d0625fb21bd166f2c1b409bd4d90872d920162c8d643df5d60ef92", "format": 1 }, { - "name": ".pre-commit-config.yaml", + "name": "docs/cisco.iosxr.iosxr_lacp_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "80ef9ec70ebb46afce8478d35821ab901c609c1b588a7ed569f9c16864925dd5", + "chksum_sha256": "0b647afa59f64aeee6894c9088b7308974fc414e7e23e658026873a24b8a9249", "format": 1 }, { - "name": ".prettierignore", + "name": "docs/cisco.iosxr.iosxr_lldp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6fd3c3897f57e5447aa2809cf63ff611cbe624192bcc5e0f849cbb699a39eff8", + "chksum_sha256": "ff7037fcf3fd8987c0e71216600f3949e1b11184082913afff8b72ac12bbc47a", "format": 1 }, { - "name": ".github", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.iosxr.iosxr_config_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f36139e13012d02ddabb4b106ff5433ef077ca470939452787493bd525a18743", "format": 1 }, { - "name": ".github/dependabot.yml", + "name": "docs/cisco.iosxr.iosxr_system_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "11ceee3c57116e9fd08bc423414b1095ff002aa012d6fb325b1a7e24d7e28461", + "chksum_sha256": "2e984064df11389a31575a893fca5484dc0a7c5a46f2d633d92bfdd6a7363cf2", "format": 1 }, { - "name": ".github/workflows", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.iosxr.iosxr_ospfv2_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "16da0dca6fbf081710785720a1330ebc2479d82d5df650d9712db2a522e49588", "format": 1 }, { - "name": ".github/workflows/codecoverage.yml", + "name": "docs/cisco.iosxr.iosxr_hostname_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a56c8aba05b81d2e1d6575b37963f40df663387030de5eaac6f5c9dfd7af54f1", + "chksum_sha256": "5e7b8fab433bbc77ff1728579757a6fa910da23694cc9df130ce78b4a1047efa", "format": 1 }, { - "name": ".github/workflows/ack.yml", + "name": "docs/cisco.iosxr.iosxr_acls_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24c6fbafaa69e3e3ee696f2cefa5120794b62cef7e870553dddce8b8af0a127c", + "chksum_sha256": "d4afc88d6043512adaffacbf40c44076ee62380e5422f43f4a0a2802aef4b604", "format": 1 }, { - "name": ".github/workflows/release.yml", + "name": "docs/cisco.iosxr.iosxr_ospfv3_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9b7dba505905600bbb9f0d8e9956b7cc20f80edfa742dfdae9395542f417aa1", + "chksum_sha256": "753bba432a6306fc9ae8c89d9718e3e0c58d054d5968408509c4a37fb881e5ae", "format": 1 }, { - "name": ".github/workflows/push.yml", + "name": "docs/cisco.iosxr.iosxr_bgp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b93de6df12229238cd1602c455495a2aea451d19587dc5e5577494952ca0259e", + "chksum_sha256": "52486dc2a51c8e9a5760ce0654d1693b6cc8ec80b5104a007947ec95fb8fac9a", "format": 1 }, { - "name": ".github/workflows/tests.yml", + "name": "bindep.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ee42432cfaad14365f08d6fc523b659b7a525adae305e7fe1a09f1f2b812853b", + "chksum_sha256": "8083c02374503e9616216aa195dcdeb6aaac7725e7640896d650699cedda309b", "format": 1 }, { - "name": ".github/release-drafter.yml", + "name": "platform_guide.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", + "chksum_sha256": "eccb3723be471b48b077a4d0846ab3ab73b495381c790002dd4b912aa1dc7cb7", "format": 1 } ], diff --git a/ansible_collections/cisco/iosxr/MANIFEST.json b/ansible_collections/cisco/iosxr/MANIFEST.json index 26ee696ab..9b9ad05bd 100644 --- a/ansible_collections/cisco/iosxr/MANIFEST.json +++ b/ansible_collections/cisco/iosxr/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "cisco", "name": "iosxr", - "version": "6.1.1", + "version": "9.0.0", "authors": [ "Ansible Network Community (ansible-network)" ], @@ -17,7 +17,7 @@ "license": [], "license_file": "LICENSE", "dependencies": { - "ansible.netcommon": ">=2.5.1" + "ansible.netcommon": ">=6.1.0" }, "repository": "https://github.com/ansible-collections/cisco.iosxr", "documentation": null, @@ -28,7 +28,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6842c6d4bd7595b6479ad71eacc2c175ee732d5cde0b2186886403a61789c05", + "chksum_sha256": "95a6a70ea5566f1972993cf3c06c9ab39d00d22b5433ab9d88e02cfecf9a52cf", "format": 1 }, "format": 1 diff --git a/ansible_collections/cisco/iosxr/README.md b/ansible_collections/cisco/iosxr/README.md index e17005579..d3e158bba 100644 --- a/ansible_collections/cisco/iosxr/README.md +++ b/ansible_collections/cisco/iosxr/README.md @@ -5,12 +5,12 @@ The Ansible Cisco IOSXR collection includes a variety of Ansible content to help automate the management of Cisco IOSXR network appliances. -This collection has been tested against Cisco IOSXR version 7.0.2. +This collection has been tested against Cisco IOS-XR version 7.0.2 ## Ansible version compatibility -This collection has been tested against following Ansible versions: **>=2.9.10**. +This collection has been tested against following Ansible versions: **>=2.14.0**. For collections that support Ansible 2.9, please ensure you update your `network_os` to use the fully qualified collection name (for example, `cisco.ios.ios`). @@ -20,7 +20,8 @@ PEP440 is the schema used to describe the versions of Ansible. ### Supported connections -The Cisco IOSXR collection supports ``network_cli`` and ``netconf`` connections. + +The Cisco IOS-XR collection supports ``network_cli`` and ``netconf`` connections. A detailed platform guide can be found [here](https://github.com/ansible-collections/cisco.iosxr/blob/main/platform_guide.rst). ## Included content @@ -56,7 +57,6 @@ Name | Description [cisco.iosxr.iosxr_lag_interfaces](https://github.com/ansible-collections/cisco.iosxr/blob/main/docs/cisco.iosxr.iosxr_lag_interfaces_module.rst)|Resource module to configure LAG interfaces. [cisco.iosxr.iosxr_lldp_global](https://github.com/ansible-collections/cisco.iosxr/blob/main/docs/cisco.iosxr.iosxr_lldp_global_module.rst)|Resource module to configure LLDP. [cisco.iosxr.iosxr_lldp_interfaces](https://github.com/ansible-collections/cisco.iosxr/blob/main/docs/cisco.iosxr.iosxr_lldp_interfaces_module.rst)|Resource module to configure LLDP interfaces. -[cisco.iosxr.iosxr_logging](https://github.com/ansible-collections/cisco.iosxr/blob/main/docs/cisco.iosxr.iosxr_logging_module.rst)|(deprecated, removed after 2023-08-01) Configuration management of system logging services on network devices [cisco.iosxr.iosxr_logging_global](https://github.com/ansible-collections/cisco.iosxr/blob/main/docs/cisco.iosxr.iosxr_logging_global_module.rst)|Resource module to configure logging. [cisco.iosxr.iosxr_netconf](https://github.com/ansible-collections/cisco.iosxr/blob/main/docs/cisco.iosxr.iosxr_netconf_module.rst)|Configures NetConf sub-system service on Cisco IOS-XR devices [cisco.iosxr.iosxr_ntp_global](https://github.com/ansible-collections/cisco.iosxr/blob/main/docs/cisco.iosxr.iosxr_ntp_global_module.rst)|Resource module to configure NTP. @@ -76,7 +76,7 @@ Click the ``Content`` button to see the list of content included in this collect ## Installing this collection -You can install the Cisco IOSXR collection with the Ansible Galaxy CLI: +You can install the Cisco IOS-XR collection with the Ansible Galaxy CLI: ansible-galaxy collection install cisco.iosxr diff --git a/ansible_collections/cisco/iosxr/changelogs/changelog.yaml b/ansible_collections/cisco/iosxr/changelogs/changelog.yaml index 6f1007dbb..15db67c54 100644 --- a/ansible_collections/cisco/iosxr/changelogs/changelog.yaml +++ b/ansible_collections/cisco/iosxr/changelogs/changelog.yaml @@ -2,74 +2,61 @@ ancestor: null releases: 1.0.0: modules: - - description: ACL interfaces resource module + - description: Resource module to configure ACL interfaces. name: iosxr_acl_interfaces namespace: "" - - description: ACLs resource module + - description: Resource module to configure ACLs. name: iosxr_acls namespace: "" - - description: Manage multiline banners on Cisco IOS XR devices + - description: Module to configure multiline banners. name: iosxr_banner namespace: "" - - description: Configure global BGP protocol settings on Cisco IOS-XR - name: iosxr_bgp - namespace: "" - - description: Run commands on remote devices running Cisco IOS XR + - description: Module to run commands on remote devices. name: iosxr_command namespace: "" - - description: Manage Cisco IOS XR configuration sections + - description: Module to manage configuration sections. name: iosxr_config namespace: "" - - description: Get facts about iosxr devices. + - description: Module to collect facts from remote devices. name: iosxr_facts namespace: "" - - description: - (deprecated, removed after 2022-06-01) Manage Interface on Cisco - IOS XR network devices - name: iosxr_interface - namespace: "" - - description: Interfaces resource module + - description: Resource module to configure interfaces. name: iosxr_interfaces namespace: "" - - description: L2 interfaces resource module + - description: Resource Module to configure L2 interfaces. name: iosxr_l2_interfaces namespace: "" - - description: L3 interfaces resource module + - description: Resource module to configure L3 interfaces. name: iosxr_l3_interfaces namespace: "" - - description: LACP resource module + - description: Resource module to configure LACP. name: iosxr_lacp namespace: "" - - description: LACP interfaces resource module + - description: Resource module to configure LACP interfaces. name: iosxr_lacp_interfaces namespace: "" - - description: LAG interfaces resource module + - description: Resource module to configure LAG interfaces. name: iosxr_lag_interfaces namespace: "" - - description: LLDP resource module + - description: Resource module to configure LLDP. name: iosxr_lldp_global namespace: "" - - description: LLDP interfaces resource module + - description: Resource module to configure LLDP interfaces. name: iosxr_lldp_interfaces namespace: "" - - description: - Configuration management of system logging services on network - devices - name: iosxr_logging - namespace: "" - description: Configures NetConf sub-system service on Cisco IOS-XR devices name: iosxr_netconf namespace: "" - - description: OSPFv2 resource module + - description: Resource module to configure OSPFv2. name: iosxr_ospfv2 namespace: "" - - description: Static routes resource module + - description: Resource module to configure static routes. name: iosxr_static_routes namespace: "" - - description: Manage the system attributes on Cisco IOS XR devices + - description: Module to manage the system attributes. name: iosxr_system namespace: "" - - description: Manage the aggregate of local users on Cisco IOS XR device + - description: Module to manage the aggregates of local users. name: iosxr_user namespace: "" plugins: @@ -135,7 +122,7 @@ releases: - 54_iosxr_ospfv3_module_added.yaml - provide_fuctionality_to_utilize_remarks.yaml modules: - - description: ospfv3 resource module + - description: Resource module to configure OSPFv3. name: iosxr_ospfv3 namespace: "" release_date: "2020-10-01" @@ -154,7 +141,7 @@ releases: - galaxy-version.yaml - ospf_interfaces_resource_module_added.yaml modules: - - description: OSPF Interfaces Resource Module. + - description: Resource module to configure OSPF interfaces. name: iosxr_ospf_interfaces namespace: "" release_date: "2020-11-26" @@ -201,13 +188,13 @@ releases: - single_user_mode.yaml - unittest-fix-for-resource-module-base.yaml modules: - - description: Manages BGP Address Family resource module. + - description: Resource module to configure BGP Address family. name: iosxr_bgp_address_family namespace: "" - - description: Manages BGP global resource module. + - description: Resource module to configure BGP. name: iosxr_bgp_global namespace: "" - - description: Manages BGP neighbor address family resource module. + - description: Resource module to configure BGP Neighbor Address family. name: iosxr_bgp_neighbor_address_family namespace: "" release_date: "2021-02-24" @@ -288,7 +275,7 @@ releases: - update_bgp_nbr_af_route_policy.yaml - update_readme_freenode_to_libera.yml modules: - - description: Prefix-Lists resource module. + - description: Resource module to configure prefix lists. name: iosxr_prefix_lists namespace: "" release_date: "2021-06-22" @@ -306,7 +293,7 @@ releases: - 162-fix-prefix-list-facts.yaml - add-iosxr-logging-global-module.yaml modules: - - description: Manages logging attributes of Cisco IOSXR network devices + - description: Resource module to configure logging. name: iosxr_logging_global namespace: "" release_date: "2021-07-26" @@ -349,7 +336,7 @@ releases: - fix_sanity.yml - iosxr_snmp_server.yaml modules: - - description: Manages snmp-server resource module + - description: Resource module to configure snmp server. name: iosxr_snmp_server namespace: "" release_date: "2021-12-07" @@ -361,7 +348,7 @@ releases: - add_hostname_rm.yaml - add_redirects_hostname.yaml modules: - - description: Manages hostname resource module + - description: Resource module to configure hostname. name: iosxr_hostname namespace: "" release_date: "2022-01-31" @@ -688,3 +675,60 @@ releases: - fix_python_version.yaml - revert_pylibssh_depn.yaml release_date: "2023-11-27" + 7.0.0: + changes: + major_changes: + - Bumping `requires_ansible` to `>=2.14.0`, since previous ansible-core versions + are EoL now. + release_summary: + Starting from this release, the minimum `ansible-core` version + this collection requires is `2.14.0`. The last known version compatible with + ansible-core<2.14 is `v6.1.1`. + fragments: + - trivial_lint.yaml + - update_ansible_version.yaml + release_date: "2023-11-30" + 7.1.0: + changes: + minor_changes: + - iosxr_facts - Add cdp neighbors in ansible_net_neighbors dictionary (https://github.com/ansible-collections/cisco.iosxr/pull/457). + fragments: + - fix_add_cdp_neighbors.yaml + - fix_iosxr_config.yaml + release_date: "2024-01-08" + 7.2.0: + changes: + bugfixes: + - Fix 'afi' value in bgp_templates RM to valid values. + minor_changes: + - Add missing options in afi and safi in address-family of bgp_templates RM. + fragments: + - bugfix_bgp_templates.yaml + - fix_bgp_template.yaml + - fix_nightly.yaml + release_date: "2024-03-01" + 8.0.0: + changes: + major_changes: + - This release removes previously deprecated module and attributes from this + collection. Please refer to the **Removed Features** section for details. + removed_features: + - Remove deprecated iosxr_logging module which is replaced with iosxr_logging_global + resource module. + fragments: + - remove_deprecated.yaml + - trivial_tests_updates.yaml + release_date: "2024-03-27" + 9.0.0: + changes: + major_changes: + - Update the netcommon base version to support cli_restore plugin. + minor_changes: + - Add support for cli_restore functionality. + - Please refer the PR to know more about core changes (https://github.com/ansible-collections/ansible.netcommon/pull/618). + - cli_restore module is part of netcommon. + fragments: + - add_2.18.yaml + - add_cli_restore_supprt.yaml + - remove_tests.yaml + release_date: "2024-04-12" diff --git a/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_bgp_templates_module.rst b/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_bgp_templates_module.rst index ed91c05d2..72440deaa 100644 --- a/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_bgp_templates_module.rst +++ b/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_bgp_templates_module.rst @@ -225,6 +225,10 @@ Parameters
      Choices:
    • ipv4
    • ipv6
    • +
    • vpnv4
    • +
    • vpnv6
    • +
    • link-state
    • +
    • l2vpn
    @@ -1419,6 +1423,10 @@ Parameters
  • unicast
  • labeled-unicast
  • sr-policy
  • +
  • link-state
  • +
  • evpn
  • +
  • mspw
  • +
  • vpls-vpws
  • diff --git a/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_facts_module.rst b/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_facts_module.rst index 07ad7bd41..827a769bf 100644 --- a/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_facts_module.rst +++ b/ansible_collections/cisco/iosxr/docs/cisco.iosxr.iosxr_facts_module.rst @@ -381,7 +381,7 @@ Common return values are documented `here when interfaces is configured -
    The list of LLDP neighbors from the remote device
    +
    The list of LLDP and CDP neighbors from the remote device. If both, CDP and LLDP neighbor data is present on one port, CDP is preferred.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterChoices/DefaultsComments
    -
    - aggregate - -
    - list - / elements=dictionary -
    -
    - -
    List of syslog logging configuration definitions.
    -
    -
    - dest - -
    - string -
    -
    -
      Choices: -
    • host
    • -
    • console
    • -
    • monitor
    • -
    • buffered
    • -
    • file
    • -
    -
    -
    Destination for system logging (syslog) messages.
    -
    -
    - facility - -
    - string -
    -
    - -
    To configure the type of syslog facility in which system logging (syslog) messages are sent to syslog servers Optional config for dest = host
    -
    -
    - hostnameprefix - -
    - string -
    -
    - -
    To append a hostname prefix to system logging (syslog) messages logged to syslog servers. Optional config for dest = host
    -
    -
    - level - -
    - string -
    -
    -
      Choices: -
    • emergencies
    • -
    • alerts
    • -
    • critical
    • -
    • errors
    • -
    • warning
    • -
    • notifications
    • -
    • informational
    • -
    • debugging
    • -
    -
    -
    Specifies the severity level for the logging.
    -

    aliases: severity
    -
    -
    - name - -
    - string -
    -
    - -
    When dest = file name indicates file-name
    -
    When dest = host name indicates the host-name or ip-address of syslog server.
    -
    -
    - path - -
    - string -
    -
    - -
    Set file path.
    -
    -
    - size - -
    - integer -
    -
    - -
    Size of buffer when dest = buffered. The acceptable value is in the range 307200 to 125000000 bytes. Default 307200
    -
    Size of file when dest = file. The acceptable value is in the range 1 to 2097152KB. Default 2 GB
    -
    -
    - state - -
    - string -
    -
    -
      Choices: -
    • present
    • -
    • absent
    • -
    -
    -
    Existential state of the logging configuration on the node.
    -
    -
    - vrf - -
    - string -
    -
    - -
    vrf name when syslog server is configured, dest = host
    -
    -
    - dest - -
    - string -
    -
    -
      Choices: -
    • host
    • -
    • console
    • -
    • monitor
    • -
    • buffered
    • -
    • file
    • -
    -
    -
    Destination for system logging (syslog) messages.
    -
    -
    - facility - -
    - string -
    -
    - Default:
    "local7"
    -
    -
    To configure the type of syslog facility in which system logging (syslog) messages are sent to syslog servers Optional config for dest = host
    -
    -
    - hostnameprefix - -
    - string -
    -
    - -
    To append a hostname prefix to system logging (syslog) messages logged to syslog servers. Optional config for dest = host
    -
    -
    - level - -
    - string -
    -
    -
      Choices: -
    • emergencies
    • -
    • alerts
    • -
    • critical
    • -
    • errors
    • -
    • warning
    • -
    • notifications
    • -
    • informational
    • -
    • debugging ←
    • -
    -
    -
    Specifies the severity level for the logging.
    -

    aliases: severity
    -
    -
    - name - -
    - string -
    -
    - -
    When dest = file name indicates file-name
    -
    When dest = host name indicates the host-name or ip-address of syslog server.
    -
    -
    - path - -
    - string -
    -
    - -
    Set file path.
    -
    -
    - size - -
    - integer -
    -
    - -
    Size of buffer when dest = buffered. The acceptable value is in the range 307200 to 125000000 bytes. Default 307200
    -
    Size of file when dest = file. The acceptable value is in the range 1 to 2097152KB. Default 2 GB
    -
    -
    - state - -
    - string -
    -
    -
      Choices: -
    • present ←
    • -
    • absent
    • -
    -
    -
    Existential state of the logging configuration on the node.
    -
    -
    - vrf - -
    - string -
    -
    - Default:
    "default"
    -
    -
    vrf name when syslog server is configured, dest = host
    -
    -
    - - -Notes ------ - -.. note:: - - This module works with connection ``network_cli`` and ``netconf``. See `the IOS-XR Platform Options <../network/user_guide/platform_iosxr.html>`_. - - For more information on using Ansible to manage network devices see the :ref:`Ansible Network Guide ` - - For more information on using Ansible to manage Cisco devices see the `Cisco integration page `_. - - - -Examples --------- - -.. code-block:: yaml - - - name: configure logging for syslog server host - cisco.iosxr.iosxr_logging: - dest: host - name: 10.10.10.1 - level: critical - state: present - - - name: add hostnameprefix configuration - cisco.iosxr.iosxr_logging: - hostnameprefix: host1 - state: absent - - - name: add facility configuration - cisco.iosxr.iosxr_logging: - facility: local1 - state: present - - - name: configure console logging level - cisco.iosxr.iosxr_logging: - dest: console - level: debugging - state: present - - - name: configure monitor logging level - cisco.iosxr.iosxr_logging: - dest: monitor - level: errors - state: present - - - name: configure syslog to a file - cisco.iosxr.iosxr_logging: - dest: file - name: file_name - size: 2048 - level: errors - state: present - - - name: configure buffered logging with size - cisco.iosxr.iosxr_logging: - dest: buffered - size: 5100000 - - - name: Configure logging using aggregate - cisco.iosxr.iosxr_logging: - aggregate: - - {dest: console, level: warning} - - {dest: buffered, size: 4800000} - - {dest: file, name: file3, size: 2048} - - {dest: host, name: host3, level: critical} - - - name: Delete logging using aggregate - cisco.iosxr.iosxr_logging: - aggregate: - - {dest: console, level: warning} - - {dest: buffered, size: 4800000} - - {dest: file, name: file3, size: 2048} - - {dest: host, name: host3, level: critical} - state: absent - - - -Return Values -------------- -Common return values are documented `here `_, the following are the fields unique to this module: - -.. raw:: html - - - - - - - - - - - - - - - - - -
    KeyReturnedDescription
    -
    - commands - -
    - list -
    -
    always (empty list when no commands to send) -
    The list of configuration mode commands to send to the device
    -
    -
    Sample:
    -
    ['logging 10.10.10.1 vrf default severity debugging', 'logging facility local7', 'logging hostnameprefix host1', 'logging console critical', 'logging buffered 2097153', 'logging buffered warnings', 'logging monitor errors', 'logging file log_file maxfilesize 1024 severity info']
    -
    -
    - xml - -
    - list -
    -
    always (empty list when no xml rpc to send) -
    NetConf rpc xml sent to device with transport netconf
    -
    -
    Sample:
    -
    ['<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"> <syslog xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-infra-syslog-cfg"> <files> <file xc:operation="delete"> <file-name>file1</file-name> <file-log-attributes> <max-file-size>2097152</max-file-size> <severity>2</severity> </file-log-attributes> </file> </files> </syslog> </config>']
    -
    -

    - - -Status ------- - - -- This module will be removed in a release after 2023-08-01. *[deprecated]* -- For more information see `DEPRECATED`_. - - -Authors -~~~~~~~ - -- Trishna Guha (@trishnaguha) -- Kedar Kekan (@kedarX) diff --git a/ansible_collections/cisco/iosxr/meta/runtime.yml b/ansible_collections/cisco/iosxr/meta/runtime.yml index d2e135969..5bf8ab65f 100644 --- a/ansible_collections/cisco/iosxr/meta/runtime.yml +++ b/ansible_collections/cisco/iosxr/meta/runtime.yml @@ -1,5 +1,5 @@ --- -requires_ansible: ">=2.9.10" +requires_ansible: ">=2.14.0" plugin_routing: modules: acl_interfaces: @@ -30,15 +30,6 @@ plugin_routing: redirect: cisco.iosxr.iosxr_lldp_global lldp_interfaces: redirect: cisco.iosxr.iosxr_lldp_interfaces - logging: - redirect: cisco.iosxr.iosxr_logging - deprecation: - removal_date: "2023-08-01" - warning_text: See the plugin documentation for more details - iosxr_logging: - deprecation: - removal_date: "2023-08-01" - warning_text: See the plugin documentation for more details logging_global: redirect: cisco.iosxr.iosxr_logging_global netconf: diff --git a/ansible_collections/cisco/iosxr/platform_guide.rst b/ansible_collections/cisco/iosxr/platform_guide.rst new file mode 100644 index 000000000..f1e8996ca --- /dev/null +++ b/ansible_collections/cisco/iosxr/platform_guide.rst @@ -0,0 +1,142 @@ +.. _iosxr_platform_options: + +*************************************** +IOS-XR Platform Options +*************************************** + +The `Cisco IOS-XR collection `_ supports multiple connections. This page offers details on how each connection works in Ansible and how to use it. + +.. contents:: + :local: + +Connections available +================================================================================ + +.. table:: + :class: documentation-table + + ==================== ========================================== ============================================================================================================ + .. CLI NETCONF + only for modules ``iosxr_banner``, ``iosxr_interface``, ``iosxr_logging``, ``iosxr_system``, ``iosxr_user`` + ==================== ========================================== ============================================================================================================ + Protocol SSH XML over SSH + + Credentials uses SSH keys / SSH-agent if present uses SSH keys / SSH-agent if present + accepts ``-u myuser -k`` if using password accepts ``-u myuser -k`` if using password + + Indirect Access by a bastion (jump host) by a bastion (jump host) + + Connection Settings ``ansible_connection:`` ``ansible_connection:`` + ``ansible.netcommon.network_cli`` ``ansible.netcommon.netconf`` + + Enable Mode not supported not supported + (Privilege Escalation) + + Returned Data Format Refer to individual module documentation Refer to individual module documentation + ==================== ========================================== ============================================================================================================ + + +The ``ansible_connection: local`` has been deprecated. Please use ``ansible_connection: ansible.netcommon.network_cli`` or ``ansible_connection: ansible.netcommon.netconf`` instead. + +Using CLI in Ansible +==================== + +Example CLI inventory ``[iosxr:vars]`` +---------------------------------------- + +.. code-block:: yaml + + [iosxr:vars] + ansible_connection=ansible.netcommon.network_cli + ansible_network_os=cisco.iosxr.iosxr + ansible_user=myuser + ansible_password=!vault... + ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q bastion01"' + +- If you are using SSH keys (including an ssh-agent) you can remove the ``ansible_password`` configuration. +- If you are accessing your host directly (not through a bastion/jump host) you can remove the ``ansible_ssh_common_args`` configuration. +- If you are accessing your host through a bastion/jump host, you cannot include your SSH password in the ``ProxyCommand`` directive. To prevent secrets from leaking out (for example in ``ps`` output), SSH does not support providing passwords through environment variables. + +Example CLI task +---------------- + +.. code-block:: yaml + + - name: Retrieve IOS-XR version + cisco.iosxr.iosxr_command: + commands: show version + when: ansible_network_os == 'cisco.iosxr.iosxr' + +Using NETCONF in Ansible +========================== + +Enabling NETCONF +--------------- + +Before you can use NETCONF to connect to a switch, you must: + + - install the ``ncclient`` python package on your control node(s) with ``pip install ncclient`` + - enable NETCONF on the Cisco IOS-XR device(s) + +To enable NETCONF on a new switch with Ansible, use the ``cisco.iosxr.iosxr_netconf`` module through the CLI connection. Set up your platform-level variables just like in the CLI example above, then run a playbook task like this: + +.. code-block:: yaml + + - name: Enable NETCONF + connection: ansible.netcommon.network_cli + cisco.iosxr.iosxr_netconf: + when: ansible_network_os == 'cisco.iosxr.iosxr' + +Once NETCONF is enabled, change your variables to use the NETCONF connection. + +Example NETCONF inventory ``[iosxr:vars]`` +------------------------------------------ + +.. code-block:: yaml + + [iosxr:vars] + ansible_connection=ansible.netcommon.netconf + ansible_network_os=cisco.iosxr.iosxr + ansible_user=myuser + ansible_password=!vault | + ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q bastion01"' + + +Example NETCONF task +----------------------- + +.. code-block:: yaml + + - name: Configure hostname and domain-name + cisco.iosxr.iosxr_system: + hostname: iosxr01 + domain_name: test.example.com + domain_search: + - ansible.com + - redhat.com + - cisco.com + + +Warning +-------- +Never store passwords in plain text. We recommend using SSH keys to authenticate SSH connections. Ansible supports ssh-agent to manage your SSH keys. If you must use passwords to authenticate SSH connections, we recommend encrypting them with Ansible Vault. + +Cisco IOS-XR platform support matrix +=================================== + +The following platforms and software versions have been certified by Cisco to work with this version of Ansible. + +.. table:: Platform / Software Minimum Requirements + :align: center + + =================== ====================== + Supported Platforms Minimum IOS-XR Version + =================== ====================== + Cisco IOS-XR 7.0.2 and later + =================== ====================== + + +Notes +----- + +`Setting Timeout Option `_ diff --git a/ansible_collections/cisco/iosxr/plugins/cliconf/iosxr.py b/ansible_collections/cisco/iosxr/plugins/cliconf/iosxr.py index 6b569ae2a..8a4e8a850 100644 --- a/ansible_collections/cisco/iosxr/plugins/cliconf/iosxr.py +++ b/ansible_collections/cisco/iosxr/plugins/cliconf/iosxr.py @@ -358,6 +358,15 @@ class Cliconf(CliconfBase): resp["response"] = results return resp + def restore(self, filename=None, path=""): + if not filename: + raise ValueError("'file_name' value is required for restore") + self.configure() + cmd = f"load {path}{filename}" + resp = self.send_command(cmd) + self.commit() + return resp + def get_diff( self, candidate=None, @@ -452,7 +461,9 @@ class Cliconf(CliconfBase): if self.get_option("commit_confirmed"): cmd_obj["command"] = "commit replace confirmed" if self.get_option("commit_confirmed_timeout"): - cmd_obj["command"] += " {0}".format(self.get_option("commit_confirmed_timeout")) + cmd_obj["command"] += " {0}".format( + self.get_option("commit_confirmed_timeout"), + ) cmd_obj[ "prompt" @@ -462,11 +473,17 @@ class Cliconf(CliconfBase): elif self.get_option("commit_confirmed"): cmd_obj["command"] = "commit confirmed" if self.get_option("commit_confirmed_timeout"): - cmd_obj["command"] += " {0}".format(self.get_option("commit_confirmed_timeout")) + cmd_obj["command"] += " {0}".format( + self.get_option("commit_confirmed_timeout"), + ) if self.get_option("commit_label"): - cmd_obj["command"] += " label {0}".format(self.get_option("commit_label")) + cmd_obj["command"] += " label {0}".format( + self.get_option("commit_label"), + ) if self.get_option("commit_comment"): - cmd_obj["command"] += " comment {0}".format(self.get_option("commit_comment")) + cmd_obj["command"] += " comment {0}".format( + self.get_option("commit_comment"), + ) else: label = label or self.get_option("commit_label") @@ -498,7 +515,9 @@ class Cliconf(CliconfBase): output = cmd.pop("output", None) if output: - raise ValueError("'output' value %s is not supported for run_commands" % output) + raise ValueError( + "'output' value %s is not supported for run_commands" % output, + ) try: out = self.send_command(**cmd) diff --git a/ansible_collections/cisco/iosxr/plugins/module_utils/network/iosxr/argspec/bgp_templates/bgp_templates.py b/ansible_collections/cisco/iosxr/plugins/module_utils/network/iosxr/argspec/bgp_templates/bgp_templates.py index 793f26282..51a70c5fd 100644 --- a/ansible_collections/cisco/iosxr/plugins/module_utils/network/iosxr/argspec/bgp_templates/bgp_templates.py +++ b/ansible_collections/cisco/iosxr/plugins/module_utils/network/iosxr/argspec/bgp_templates/bgp_templates.py @@ -48,7 +48,14 @@ class Bgp_templatesArgs(object): # pylint: disable=R0903 "options": { "afi": { "type": "str", - "choices": ["ipv4", "ipv6"], + "choices": [ + "ipv4", + "ipv6", + "vpnv4", + "vpnv6", + "link-state", + "l2vpn", + ], }, "safi": { "type": "str", @@ -62,6 +69,10 @@ class Bgp_templatesArgs(object): # pylint: disable=R0903 "unicast", "labeled-unicast", "sr-policy", + "link-state", + "evpn", + "mspw", + "vpls-vpws", ], }, "signalling": { diff --git a/ansible_collections/cisco/iosxr/plugins/module_utils/network/iosxr/facts/legacy/base.py b/ansible_collections/cisco/iosxr/plugins/module_utils/network/iosxr/facts/legacy/base.py index cc657f42a..2baf42c9f 100644 --- a/ansible_collections/cisco/iosxr/plugins/module_utils/network/iosxr/facts/legacy/base.py +++ b/ansible_collections/cisco/iosxr/plugins/module_utils/network/iosxr/facts/legacy/base.py @@ -123,6 +123,8 @@ class Interfaces(FactsBase): "show ipv6 interface", "show lldp", "show lldp neighbors detail", + "show cdp", + "show cdp neighbors detail", ] def populate(self): @@ -142,6 +144,10 @@ class Interfaces(FactsBase): neighbors = self.responses[3] self.facts["neighbors"] = self.parse_neighbors(neighbors) + if "CDP is not enabled" not in self.responses[4]: + neighbors = self.responses[5] + self.facts["neighbors"] = self.parse_cdp_neighbors(neighbors) + def populate_interfaces(self, interfaces): facts = dict() for key, value in iteritems(interfaces): @@ -200,6 +206,25 @@ class Interfaces(FactsBase): facts[intf].append(fact) return facts + def parse_cdp_neighbors(self, neighbors): + facts = dict() + for entry in neighbors.split("-------------------------"): + if entry == "": + continue + intf_port = self.parse_cdp_intf_port(entry) + if intf_port is None: + return facts + intf, port = intf_port + if intf not in facts: + facts[intf] = list() + fact = dict() + fact["host"] = self.parse_cdp_host(entry) + fact["platform"] = self.parse_cdp_platform(entry) + fact["port"] = port + fact["ip"] = self.parse_cdp_ip(entry) + facts[intf].append(fact) + return facts + def parse_interfaces(self, data): parsed = dict() key = "" @@ -281,3 +306,23 @@ class Interfaces(FactsBase): match = re.search(r"Port id: (.+)$", data, re.M) if match: return match.group(1) + + def parse_cdp_intf_port(self, data): + match = re.search(r"^Interface: (.+), Port ID \(outgoing port\): (.+)$", data, re.M) + if match: + return match.group(1), match.group(2) + + def parse_cdp_host(self, data): + match = re.search(r"^Device ID: (.+)$", data, re.M) + if match: + return match.group(1) + + def parse_cdp_platform(self, data): + match = re.search(r"^Platform: (.+),", data, re.M) + if match: + return match.group(1) + + def parse_cdp_ip(self, data): + match = re.search(r"^ IP address: (.+)$", data, re.M) + if match: + return match.group(1) diff --git a/ansible_collections/cisco/iosxr/plugins/modules/iosxr_bgp_templates.py b/ansible_collections/cisco/iosxr/plugins/modules/iosxr_bgp_templates.py index 5db2cb2ad..b57ac4f9f 100644 --- a/ansible_collections/cisco/iosxr/plugins/modules/iosxr_bgp_templates.py +++ b/ansible_collections/cisco/iosxr/plugins/modules/iosxr_bgp_templates.py @@ -46,11 +46,12 @@ options: afi: description: address family. type: str - choices: [ 'ipv4', 'ipv6' ] + choices: [ 'ipv4', 'ipv6', 'vpnv4', 'vpnv6', 'link-state', 'l2vpn'] safi: description: Address Family modifier type: str - choices: [ 'flowspec', 'mdt', 'multicast', 'mvpn', 'rt-filter', 'tunnel', 'unicast', 'labeled-unicast' , 'sr-policy'] + choices: [ 'flowspec', 'mdt', 'multicast', 'mvpn', 'rt-filter', 'tunnel', + 'unicast', 'labeled-unicast' , 'sr-policy', 'link-state', 'evpn', 'mspw', 'vpls-vpws'] signalling: type: dict description: Signalling protocols to disable, BGP or LDP diff --git a/ansible_collections/cisco/iosxr/plugins/modules/iosxr_facts.py b/ansible_collections/cisco/iosxr/plugins/modules/iosxr_facts.py index c406a18b7..a85328ab2 100644 --- a/ansible_collections/cisco/iosxr/plugins/modules/iosxr_facts.py +++ b/ansible_collections/cisco/iosxr/plugins/modules/iosxr_facts.py @@ -172,7 +172,8 @@ ansible_net_interfaces: returned: when interfaces is configured type: dict ansible_net_neighbors: - description: The list of LLDP neighbors from the remote device + description: The list of LLDP and CDP neighbors from the remote device. If both, + CDP and LLDP neighbor data is present on one port, CDP is preferred. returned: when interfaces is configured type: dict diff --git a/ansible_collections/cisco/iosxr/plugins/modules/iosxr_logging.py b/ansible_collections/cisco/iosxr/plugins/modules/iosxr_logging.py deleted file mode 100644 index abca845df..000000000 --- a/ansible_collections/cisco/iosxr/plugins/modules/iosxr_logging.py +++ /dev/null @@ -1,1270 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# (c) 2017, Ansible by Red Hat, inc -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - - -DOCUMENTATION = """ -module: iosxr_logging -author: -- Trishna Guha (@trishnaguha) -- Kedar Kekan (@kedarX) -short_description: (deprecated, removed after 2023-08-01) Configuration management of system logging services on network - devices -description: -- This module provides declarative management configuration of system logging (syslog) - on Cisco IOS XR devices. -version_added: 1.0.0 -deprecated: - alternative: iosxr_logging_global - why: Updated module released with more functionality. - removed_at_date: '2023-08-01' -requirements: -- ncclient >= 0.5.3 when using netconf -- lxml >= 4.1.1 when using netconf -notes: -- This module works with connection C(network_cli) and C(netconf). See L(the IOS-XR - Platform Options,../network/user_guide/platform_iosxr.html). -options: - dest: - description: - - Destination for system logging (syslog) messages. - choices: - - host - - console - - monitor - - buffered - - file - type: str - name: - description: - - When C(dest) = I(file) name indicates file-name - - When C(dest) = I(host) name indicates the host-name or ip-address of syslog - server. - type: str - vrf: - description: - - vrf name when syslog server is configured, C(dest) = C(host) - type: str - default: default - size: - description: - - Size of buffer when C(dest) = C(buffered). The acceptable value is in the range - I(307200 to 125000000 bytes). Default 307200 - - Size of file when C(dest) = C(file). The acceptable value is in the range I(1 - to 2097152)KB. Default 2 GB - type: int - facility: - description: - - To configure the type of syslog facility in which system logging (syslog) messages - are sent to syslog servers Optional config for C(dest) = C(host) - default: local7 - type: str - hostnameprefix: - description: - - To append a hostname prefix to system logging (syslog) messages logged to syslog - servers. Optional config for C(dest) = C(host) - type: str - level: - description: - - Specifies the severity level for the logging. - type: str - default: debugging - aliases: - - severity - choices: ["emergencies", "alerts", "critical", "errors", "warning", "notifications", "informational", "debugging"] - path: - description: - Set file path. - type: str - aggregate: - description: List of syslog logging configuration definitions. - type: list - elements: dict - suboptions: - dest: - description: - - Destination for system logging (syslog) messages. - choices: - - host - - console - - monitor - - buffered - - file - type: str - name: - description: - - When C(dest) = I(file) name indicates file-name - - When C(dest) = I(host) name indicates the host-name or ip-address of syslog - server. - type: str - path: - description: - Set file path. - type: str - vrf: - description: - - vrf name when syslog server is configured, C(dest) = C(host) - type: str - size: - description: - - Size of buffer when C(dest) = C(buffered). The acceptable value is in the range - I(307200 to 125000000 bytes). Default 307200 - - Size of file when C(dest) = C(file). The acceptable value is in the range I(1 - to 2097152)KB. Default 2 GB - type: int - facility: - description: - - To configure the type of syslog facility in which system logging (syslog) messages - are sent to syslog servers Optional config for C(dest) = C(host) - type: str - hostnameprefix: - description: - - To append a hostname prefix to system logging (syslog) messages logged to syslog - servers. Optional config for C(dest) = C(host) - type: str - level: - description: - - Specifies the severity level for the logging. - type: str - aliases: - - severity - choices: ["emergencies", "alerts", "critical", "errors", "warning", "notifications", "informational", "debugging"] - state: - description: - - Existential state of the logging configuration on the node. - choices: - - present - - absent - type: str - state: - description: - - Existential state of the logging configuration on the node. - default: present - choices: - - present - - absent - type: str -extends_documentation_fragment: -- cisco.iosxr.iosxr -""" - -EXAMPLES = """ -- name: configure logging for syslog server host - cisco.iosxr.iosxr_logging: - dest: host - name: 10.10.10.1 - level: critical - state: present - -- name: add hostnameprefix configuration - cisco.iosxr.iosxr_logging: - hostnameprefix: host1 - state: absent - -- name: add facility configuration - cisco.iosxr.iosxr_logging: - facility: local1 - state: present - -- name: configure console logging level - cisco.iosxr.iosxr_logging: - dest: console - level: debugging - state: present - -- name: configure monitor logging level - cisco.iosxr.iosxr_logging: - dest: monitor - level: errors - state: present - -- name: configure syslog to a file - cisco.iosxr.iosxr_logging: - dest: file - name: file_name - size: 2048 - level: errors - state: present - -- name: configure buffered logging with size - cisco.iosxr.iosxr_logging: - dest: buffered - size: 5100000 - -- name: Configure logging using aggregate - cisco.iosxr.iosxr_logging: - aggregate: - - {dest: console, level: warning} - - {dest: buffered, size: 4800000} - - {dest: file, name: file3, size: 2048} - - {dest: host, name: host3, level: critical} - -- name: Delete logging using aggregate - cisco.iosxr.iosxr_logging: - aggregate: - - {dest: console, level: warning} - - {dest: buffered, size: 4800000} - - {dest: file, name: file3, size: 2048} - - {dest: host, name: host3, level: critical} - state: absent -""" - -RETURN = """ -commands: - description: The list of configuration mode commands to send to the device - returned: always (empty list when no commands to send) - type: list - sample: - - logging 10.10.10.1 vrf default severity debugging - - logging facility local7 - - logging hostnameprefix host1 - - logging console critical - - logging buffered 2097153 - - logging buffered warnings - - logging monitor errors - - logging file log_file maxfilesize 1024 severity info -xml: - description: NetConf rpc xml sent to device with transport C(netconf) - returned: always (empty list when no xml rpc to send) - type: list - sample: - - ' - - - - file1 - - 2097152 - 2 - - - - - ' -""" - -import collections -import re - -from copy import deepcopy - -from ansible.module_utils._text import to_text -from ansible.module_utils.basic import AnsibleModule -from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import ( - remove_default_spec, -) - -from ansible_collections.cisco.iosxr.plugins.module_utils.network.iosxr.iosxr import ( - build_xml, - etree_find, - etree_findall, - get_capabilities, - get_config, - get_os_version, - is_cliconf, - is_netconf, - load_config, -) -from ansible_collections.cisco.iosxr.plugins.module_utils.network.iosxr.utils.utils import Version - - -severity_level = { - "emergency": "0", - "alert": "1", - "critical": "2", - "error": "3", - "warning": "4", - "notice": "5", - "info": "6", - "debug": "7", - "disable": "15", -} - -severity_transpose = { - "emergencies": "emergency", - "alerts": "alert", - "critical": "critical", - "errors": "error", - "warning": "warning", - "notifications": "notice", - "informational": "info", - "debugging": "debug", -} - - -class ConfigBase(object): - def __init__(self, module): - self._flag = None - self._module = module - self._result = {"changed": False, "warnings": []} - self._want = list() - self._have = list() - - def validate_size(self, value, type=None): - if value: - if type == "buffer": - if value and not int(307200) <= value <= int(125000000): - self._module.fail_json( - msg="buffer size must be between 307200 and 125000000", - ) - elif type == "file": - if value and not int(1) <= value <= int(2097152): - self._module.fail_json( - msg="file size must be between 1 and 2097152", - ) - return value - - def map_params_to_obj(self, required_if=None): - aggregate = self._module.params.get("aggregate") - if aggregate: - for item in aggregate: - for key in item: - if item.get(key) is None: - item[key] = self._module.params[key] - - d = item.copy() - - if d["dest"] not in ("host", "file"): - d["name"] = None - - if d["dest"] == "buffered": - if d["size"] is not None: - d["size"] = str( - self.validate_size(d["size"], "buffer"), - ) - else: - d["size"] = str(307200) - elif d["dest"] == "file": - if d["size"] is not None: - d["size"] = str(self.validate_size(d["size"], "file")) - else: - d["size"] = str(2097152) - else: - d["size"] = None - - if self._flag == "NC": - d["level"] = severity_transpose[d["level"]] - - self._want.append(d) - - else: - params = self._module.params - if params["dest"] not in ("host", "file"): - params["name"] = None - - if params["dest"] == "buffered": - if params["size"] is not None: - params["size"] = str( - self.validate_size(params["size"], "buffer"), - ) - else: - params["size"] = str(307200) - elif params["dest"] == "file": - if params["size"] is not None: - params["size"] = str( - self.validate_size(params["size"], "file"), - ) - else: - params["size"] = str(2097152) - else: - params["size"] = None - - if self._flag == "NC": - params["level"] = severity_transpose[params["level"]] - - self._want.append( - { - "dest": params["dest"], - "name": params["name"], - "vrf": params["vrf"], - "size": params["size"], - "path": params["path"], - "facility": params["facility"], - "level": params["level"], - "hostnameprefix": params["hostnameprefix"], - "state": params["state"], - }, - ) - - -class CliConfiguration(ConfigBase): - def __init__(self, module): - super(CliConfiguration, self).__init__(module) - self._file_list = set() - self._host_list = set() - - def map_obj_to_commands(self, os_version): - commands = list() - for want_item in self._want: - dest = want_item["dest"] - name = want_item["name"] - size = want_item["size"] - path = want_item["path"] - facility = want_item["facility"] - level = want_item["level"] - vrf = want_item["vrf"] - hostnameprefix = want_item["hostnameprefix"] - state = want_item["state"] - del want_item["state"] - - have_size = None - have_console_level = None - have_monitor_level = None - have_prefix = None - have_facility = None - - for item in self._have: - if item["dest"] == "buffered": - have_size = item["size"] - if item["dest"] == "console": - have_console_level = item["level"] - if item["dest"] == "monitor": - have_monitor_level = item["level"] - if item["dest"] is None and item["hostnameprefix"] is not None: - have_prefix = item["hostnameprefix"] - if ( - item["dest"] is None - and item["hostnameprefix"] is None - and item["facility"] is not None - ): - have_facility = item["facility"] - - if state == "absent": - if dest == "host" and name in self._host_list: - commands.append("no logging {0} vrf {1}".format(name, vrf)) - elif dest == "file" and name in self._file_list: - commands.append("no logging file {0}".format(name)) - elif dest == "console" and have_console_level is not None: - commands.append("no logging {0}".format(dest)) - elif dest == "monitor" and have_monitor_level: - commands.append("no logging {0}".format(dest)) - elif dest == "buffered" and have_size: - commands.append("no logging {0}".format(dest)) - - if dest is None and hostnameprefix is not None and have_prefix == hostnameprefix: - commands.append( - "no logging hostnameprefix {0}".format(hostnameprefix), - ) - if dest is None and facility is not None and have_facility == facility: - commands.append("no logging facility {0}".format(facility)) - - if state == "present": - if dest == "host" and name not in self._host_list: - if level == "errors" or level == "informational": - level = severity_transpose[level] - commands.append( - "logging {0} vrf {1} severity {2}".format( - name, - vrf, - level, - ), - ) - elif dest == "file" and name not in self._file_list: - if level == "errors" or level == "informational": - level = severity_transpose[level] - if os_version and Version(os_version) > Version("7.0"): - commands.append( - "logging file {0} path {1} maxfilesize {2} severity {3}".format( - name, - path, - size, - level, - ), - ) - else: - commands.append( - "logging file {0} maxfilesize {1} severity {2}".format( - name, - size, - level, - ), - ) - elif dest == "buffered" and ( - have_size is None or (have_size is not None and size != have_size) - ): - commands.append("logging buffered {0}".format(size)) - elif dest == "console" and ( - have_console_level is None - or (have_console_level is not None and have_console_level != level) - ): - commands.append("logging console {0}".format(level)) - elif dest == "monitor" and ( - have_monitor_level is None - or (have_monitor_level is not None and have_monitor_level != level) - ): - commands.append("logging monitor {0}".format(level)) - - if ( - dest is None - and hostnameprefix is not None - and ( - have_prefix is None - or (have_prefix is not None and hostnameprefix != have_prefix) - ) - ): - commands.append( - "logging hostnameprefix {0}".format(hostnameprefix), - ) - if dest is None and hostnameprefix is None and facility != have_facility: - commands.append("logging facility {0}".format(facility)) - - self._result["commands"] = commands - if commands: - commit = not self._module.check_mode - diff = load_config(self._module, commands, commit=commit) - if diff: - self._result["diff"] = dict(prepared=diff) - self._result["changed"] = True - - def parse_facility(self, line): - match = re.search(r"logging facility (\S+)", line, re.M) - facility = None - if match: - facility = match.group(1) - - return facility - - def parse_size(self, line, dest): - size = None - - if dest == "buffered": - match = re.search(r"logging buffered (\S+)", line, re.M) - if match: - try: - int_size = int(match.group(1)) - except ValueError: - int_size = None - - if int_size is not None: - if isinstance(int_size, int): - size = str(match.group(1)) - if dest == "file": - match = re.search( - r"logging file (\S+) (path\s\S+\s)?maxfilesize (\S+)", - line, - re.M, - ) - if match: - try: - if "path" in line: - int_size = int(match.group(2)) - else: - int_size = int(match.group(1)) - except ValueError: - int_size = None - - if int_size is not None: - if isinstance(int_size, int): - size = str(int_size) - - return size - - def parse_path(self, line, dest): - path = None - - if dest == "file": - match = re.search(r"logging file (\S+) (path\s\S+\s)", line, re.M) - if match: - try: - path = to_text( - match.group(2), - errors="surrogate_or_strict", - ) - except ValueError: - path = None - - return path - - def parse_hostnameprefix(self, line): - prefix = None - match = re.search(r"logging hostnameprefix (\S+)", line, re.M) - if match: - prefix = match.group(1) - return prefix - - def parse_name(self, line, dest): - name = None - if dest == "file": - match = re.search(r"logging file (\S+)", line, re.M) - if match: - name = match.group(1) - elif dest == "host": - match = re.search(r"logging (\S+)", line, re.M) - if match: - name = match.group(1) - - return name - - def parse_level(self, line, dest): - level_group = ( - "emergencies", - "alerts", - "critical", - "errors", - "warning", - "notifications", - "informational", - "debugging", - ) - - level = None - match = re.search(r"logging {0} (\S+)".format(dest), line, re.M) - if match: - if match.group(1) in level_group: - level = match.group(1) - - return level - - def parse_dest(self, line, group): - dest_group = ("console", "monitor", "buffered", "file") - dest = None - if group in dest_group: - dest = group - elif "vrf" in line: - dest = "host" - - return dest - - def parse_vrf(self, line, dest): - vrf = None - if dest == "host": - match = re.search(r"logging (\S+) vrf (\S+)", line, re.M) - if match: - vrf = match.group(2) - return vrf - - def map_config_to_obj(self): - data = get_config(self._module, config_filter="logging") - lines = data.split("\n") - - for line in lines: - match = re.search(r"logging (\S+)", line, re.M) - if match: - dest = self.parse_dest(line, match.group(1)) - name = self.parse_name(line, dest) - if dest == "host" and name is not None: - self._host_list.add(name) - if dest == "file" and name is not None: - self._file_list.add(name) - - self._have.append( - { - "dest": dest, - "name": name, - "size": self.parse_size(line, dest), - "path": self.parse_path(line, dest), - "facility": self.parse_facility(line), - "level": self.parse_level(line, dest), - "vrf": self.parse_vrf(line, dest), - "hostnameprefix": self.parse_hostnameprefix(line), - }, - ) - - def run(self, os_version): - self.map_params_to_obj() - self.map_config_to_obj() - self.map_obj_to_commands(os_version) - - return self._result - - -class NCConfiguration(ConfigBase): - def __init__(self, module): - super(NCConfiguration, self).__init__(module) - self._flag = "NC" - self._log_file_meta = collections.OrderedDict() - self._log_host_meta = collections.OrderedDict() - self._log_console_meta = collections.OrderedDict() - self._log_monitor_meta = collections.OrderedDict() - self._log_buffered_meta = collections.OrderedDict() - self._log_facility_meta = collections.OrderedDict() - self._log_prefix_meta = collections.OrderedDict() - - def map_obj_to_xml_rpc(self, os_version): - file_attribute_path = "file-log-attributes" - if os_version and Version(os_version) > Version("7.0.0"): - file_attribute_path = "file-specification" - self._log_file_meta.update( - [ - ( - "files", - { - "xpath": "syslog/files", - "tag": True, - "operation": "edit", - }, - ), - ( - "file", - { - "xpath": "syslog/files/file", - "tag": True, - "operation": "edit", - "attrib": "operation", - }, - ), - ( - "a:name", - { - "xpath": "syslog/files/file/file-name", - "operation": "edit", - }, - ), - ( - "file-attrib", - { - "xpath": "syslog/files/file/" + file_attribute_path, - "tag": True, - "operation": "edit", - }, - ), - ( - "a:size", - { - "xpath": "syslog/files/file/" + file_attribute_path + "/max-file-size", - "operation": "edit", - }, - ), - ( - "a:level", - { - "xpath": "syslog/files/file/" + file_attribute_path + "/severity", - "operation": "edit", - }, - ), - ( - "a:path", - { - "xpath": "syslog/files/file/" + file_attribute_path + "/path", - "operation": "edit", - }, - ), - ], - ) - else: - self._log_file_meta.update( - [ - ( - "files", - { - "xpath": "syslog/files", - "tag": True, - "operation": "edit", - }, - ), - ( - "file", - { - "xpath": "syslog/files/file", - "tag": True, - "operation": "edit", - "attrib": "operation", - }, - ), - ( - "a:name", - { - "xpath": "syslog/files/file/file-name", - "operation": "edit", - }, - ), - ( - "file-attrib", - { - "xpath": "syslog/files/file/" + file_attribute_path, - "tag": True, - "operation": "edit", - }, - ), - ( - "a:size", - { - "xpath": "syslog/files/file/" + file_attribute_path + "/max-file-size", - "operation": "edit", - }, - ), - ( - "a:level", - { - "xpath": "syslog/files/file/" + file_attribute_path + "/severity", - "operation": "edit", - }, - ), - ], - ) - self._log_host_meta.update( - [ - ( - "host-server", - { - "xpath": "syslog/host-server", - "tag": True, - "operation": "edit", - }, - ), - ( - "vrfs", - { - "xpath": "syslog/host-server/vrfs", - "tag": True, - "operation": "edit", - }, - ), - ( - "vrf", - { - "xpath": "syslog/host-server/vrfs/vrf", - "tag": True, - "operation": "edit", - }, - ), - ( - "a:vrf", - { - "xpath": "syslog/host-server/vrfs/vrf/vrf-name", - "operation": "edit", - }, - ), - ( - "ipv4s", - { - "xpath": "syslog/host-server/vrfs/vrf/ipv4s", - "tag": True, - "operation": "edit", - }, - ), - ( - "ipv4", - { - "xpath": "syslog/host-server/vrfs/vrf/ipv4s/ipv4", - "tag": True, - "operation": "edit", - "attrib": "operation", - }, - ), - ( - "a:name", - { - "xpath": "syslog/host-server/vrfs/vrf/ipv4s/ipv4/address", - "operation": "edit", - }, - ), - ( - "ipv4-sev", - { - "xpath": "syslog/host-server/vrfs/vrf/ipv4s/ipv4/ipv4-severity-port", - "tag": True, - "operation": "edit", - }, - ), - ( - "a:level", - { - "xpath": "syslog/host-server/vrfs/vrf/ipv4s/ipv4/ipv4-severity-port/severity", - "operation": "edit", - }, - ), - ], - ) - self._log_console_meta.update( - [ - ( - "a:enable-console", - { - "xpath": "syslog/enable-console-logging", - "operation": "edit", - "attrib": "operation", - }, - ), - ( - "console", - { - "xpath": "syslog/console-logging", - "tag": True, - "operation": "edit", - "attrib": "operation", - }, - ), - ( - "a:console-level", - { - "xpath": "syslog/console-logging/logging-level", - "operation": "edit", - }, - ), - ], - ) - self._log_monitor_meta.update( - [ - ( - "monitor", - { - "xpath": "syslog/monitor-logging", - "tag": True, - "operation": "edit", - "attrib": "operation", - }, - ), - ( - "a:monitor-level", - { - "xpath": "syslog/monitor-logging/logging-level", - "operation": "edit", - }, - ), - ], - ) - self._log_buffered_meta.update( - [ - ( - "buffered", - { - "xpath": "syslog/buffered-logging", - "tag": True, - "operation": "edit", - "attrib": "operation", - }, - ), - ( - "a:size", - { - "xpath": "syslog/buffered-logging/buffer-size", - "operation": "edit", - }, - ), - ( - "a:level", - { - "xpath": "syslog/buffered-logging/logging-level", - "operation": "edit", - }, - ), - ], - ) - self._log_facility_meta.update( - [ - ( - "facility", - { - "xpath": "syslog/logging-facilities", - "tag": True, - "operation": "edit", - "attrib": "operation", - }, - ), - ( - "a:facility", - { - "xpath": "syslog/logging-facilities/facility-level", - "operation": "edit", - }, - ), - ], - ) - self._log_prefix_meta.update( - [ - ( - "a:hostnameprefix", - { - "xpath": "syslog/host-name-prefix", - "operation": "edit", - "attrib": "operation", - }, - ), - ], - ) - - state = self._module.params["state"] - - _get_filter = build_xml("syslog", opcode="filter") - running = get_config( - self._module, - source="running", - config_filter=_get_filter, - ) - - file_ele = etree_findall(running, "file") - file_list = list() - if len(file_ele): - for file in file_ele: - file_name = etree_find(file, "file-name") - file_list.append( - file_name.text if file_name is not None else None, - ) - vrf_ele = etree_findall(running, "vrf") - host_list = list() - for vrf in vrf_ele: - host_ele = etree_findall(vrf, "ipv4") - for host in host_ele: - host_name = etree_find(host, "address") - host_list.append( - host_name.text if host_name is not None else None, - ) - - console_ele = etree_find(running, "console-logging") - console_level = ( - etree_find(console_ele, "logging-level") if console_ele is not None else None - ) - have_console = console_level.text if console_level is not None else None - - monitor_ele = etree_find(running, "monitor-logging") - monitor_level = ( - etree_find(monitor_ele, "logging-level") if monitor_ele is not None else None - ) - have_monitor = monitor_level.text if monitor_level is not None else None - - buffered_ele = etree_find(running, "buffered-logging") - buffered_size = ( - etree_find(buffered_ele, "buffer-size") if buffered_ele is not None else None - ) - have_buffered = buffered_size.text if buffered_size is not None else None - - facility_ele = etree_find(running, "logging-facilities") - facility_level = ( - etree_find(facility_ele, "facility-level") if facility_ele is not None else None - ) - have_facility = facility_level.text if facility_level is not None else None - - prefix_ele = etree_find(running, "host-name-prefix") - have_prefix = prefix_ele.text if prefix_ele is not None else None - - file_params = list() - host_params = list() - console_params = dict() - monitor_params = dict() - buffered_params = dict() - facility_params = dict() - prefix_params = dict() - - opcode = None - if state == "absent": - opcode = "delete" - for item in self._want: - if item["dest"] == "file" and item["name"] in file_list: - item["level"] = severity_level[item["level"]] - file_params.append(item) - elif item["dest"] == "host" and item["name"] in host_list: - item["level"] = severity_level[item["level"]] - host_params.append(item) - elif item["dest"] == "console" and have_console: - console_params.update({"console-level": item["level"]}) - elif item["dest"] == "monitor" and have_monitor: - monitor_params.update({"monitor-level": item["level"]}) - elif item["dest"] == "buffered" and have_buffered: - buffered_params["size"] = str(item["size"]) if item["size"] else None - buffered_params["level"] = item["level"] if item["level"] else None - elif ( - item["dest"] is None - and item["hostnameprefix"] is None - and item["facility"] is not None - and have_facility - ): - facility_params.update({"facility": item["facility"]}) - elif item["dest"] is None and item["hostnameprefix"] is not None and have_prefix: - prefix_params.update( - {"hostnameprefix": item["hostnameprefix"]}, - ) - elif state == "present": - opcode = "merge" - for item in self._want: - if item["dest"] == "file": - item["level"] = severity_level[item["level"]] - file_params.append(item) - elif item["dest"] == "host": - item["level"] = severity_level[item["level"]] - host_params.append(item) - elif item["dest"] == "console": - console_params.update({"console-level": item["level"]}) - elif item["dest"] == "monitor": - monitor_params.update({"monitor-level": item["level"]}) - elif item["dest"] == "buffered": - buffered_params["size"] = str(item["size"]) if item["size"] else None - buffered_params["level"] = item["level"] if item["level"] else None - elif ( - item["dest"] is None - and item["hostnameprefix"] is None - and item["facility"] is not None - ): - facility_params.update({"facility": item["facility"]}) - elif item["dest"] is None and item["hostnameprefix"] is not None: - prefix_params.update( - {"hostnameprefix": item["hostnameprefix"]}, - ) - - self._result["xml"] = [] - _edit_filter_list = list() - if opcode: - if len(file_params): - _edit_filter_list.append( - build_xml( - "syslog", - xmap=self._log_file_meta, - params=file_params, - opcode=opcode, - ), - ) - if len(host_params): - _edit_filter_list.append( - build_xml( - "syslog", - xmap=self._log_host_meta, - params=host_params, - opcode=opcode, - ), - ) - if len(console_params): - _edit_filter_list.append( - build_xml( - "syslog", - xmap=self._log_console_meta, - params=console_params, - opcode=opcode, - ), - ) - if len(monitor_params): - _edit_filter_list.append( - build_xml( - "syslog", - xmap=self._log_monitor_meta, - params=monitor_params, - opcode=opcode, - ), - ) - if len(buffered_params): - _edit_filter_list.append( - build_xml( - "syslog", - xmap=self._log_buffered_meta, - params=buffered_params, - opcode=opcode, - ), - ) - if len(facility_params): - _edit_filter_list.append( - build_xml( - "syslog", - xmap=self._log_facility_meta, - params=facility_params, - opcode=opcode, - ), - ) - if len(prefix_params): - _edit_filter_list.append( - build_xml( - "syslog", - xmap=self._log_prefix_meta, - params=prefix_params, - opcode=opcode, - ), - ) - - diff = None - if len(_edit_filter_list): - commit = not self._module.check_mode - diff = load_config( - self._module, - _edit_filter_list, - commit=commit, - running=running, - nc_get_filter=_get_filter, - ) - if diff: - if self._module._diff: - self._result["diff"] = dict(prepared=diff) - - self._result["xml"] = _edit_filter_list - self._result["changed"] = True - - def run(self, os_version): - self.map_params_to_obj() - self.map_obj_to_xml_rpc(os_version) - - return self._result - - -def main(): - """main entry point for module execution""" - element_spec = dict( - dest=dict( - type="str", - choices=["host", "console", "monitor", "buffered", "file"], - ), - name=dict(type="str"), - size=dict(type="int"), - path=dict(type="str"), - vrf=dict(type="str", default="default"), - facility=dict(type="str", default="local7"), - hostnameprefix=dict(type="str"), - level=dict( - type="str", - default="debugging", - aliases=["severity"], - choices=[ - "emergencies", - "alerts", - "critical", - "errors", - "warning", - "notifications", - "informational", - "debugging", - ], - ), - state=dict(default="present", choices=["present", "absent"]), - ) - - aggregate_spec = deepcopy(element_spec) - - # remove default in aggregate spec, to handle common arguments - remove_default_spec(aggregate_spec) - - mutually_exclusive = [("dest", "facility", "hostnameprefix")] - - required_if = [ - ("dest", "host", ["name"]), - ("dest", "file", ["name"]), - ("dest", "buffered", ["size"]), - ("dest", "console", ["level"]), - ("dest", "monitor", ["level"]), - ] - - argument_spec = dict( - aggregate=dict( - type="list", - elements="dict", - options=aggregate_spec, - mutually_exclusive=mutually_exclusive, - required_if=required_if, - ), - ) - - argument_spec.update(element_spec) - - module = AnsibleModule( - argument_spec=argument_spec, - mutually_exclusive=mutually_exclusive, - required_if=required_if, - supports_check_mode=True, - ) - config_object = None - if is_cliconf(module): - config_object = CliConfiguration(module) - os_version = get_os_version(module) - elif is_netconf(module): - config_object = NCConfiguration(module) - os_version = get_capabilities(module).get("device_info").get("network_os_version") - - if config_object: - result = config_object.run(os_version) - module.exit_json(**result) - - -if __name__ == "__main__": - main() diff --git a/ansible_collections/cisco/iosxr/requirements.txt b/ansible_collections/cisco/iosxr/requirements.txt index 2fb85f407..ece31d550 100644 --- a/ansible_collections/cisco/iosxr/requirements.txt +++ b/ansible_collections/cisco/iosxr/requirements.txt @@ -1,6 +1,5 @@ ncclient paramiko -ipaddress grpcio protobuf ansible-pylibssh diff --git a/ansible_collections/cisco/iosxr/test-requirements.txt b/ansible_collections/cisco/iosxr/test-requirements.txt index 2f1724f01..b8dae64f8 100644 --- a/ansible_collections/cisco/iosxr/test-requirements.txt +++ b/ansible_collections/cisco/iosxr/test-requirements.txt @@ -1,11 +1,12 @@ -black==22.3.0 ; python_version > '3.5' +black==23.3.0 flake8 mock pexpect -pytest-xdist yamllint coverage==4.5.4 google-api-python-client grpcio protobuf -git+https://github.com/ansible-community/pytest-ansible-units.git +pytest-ansible +pytest-xdist +pytest-cov diff --git a/ansible_collections/cisco/iosxr/tests/config.yml b/ansible_collections/cisco/iosxr/tests/config.yml index 41f529264..c26ea5966 100644 --- a/ansible_collections/cisco/iosxr/tests/config.yml +++ b/ansible_collections/cisco/iosxr/tests/config.yml @@ -1,3 +1,3 @@ --- modules: - python_requires: ">=3.6" + python_requires: ">=3.9" diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/backup.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/backup.yaml index f33fedff6..26ecf9931 100644 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/backup.yaml +++ b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/backup.yaml @@ -19,7 +19,7 @@ - ansible.builtin.assert: that: - result.changed == true - - result.updates is not defined + - result.updates is defined - name: Delete configurable backup file path ansible.builtin.file: diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/comment-too-long.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/comment-too-long.yaml index cbb59f6e8..b361b6c32 100644 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/comment-too-long.yaml +++ b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/comment-too-long.yaml @@ -20,7 +20,6 @@ - ansible.builtin.assert: that: - result.changed == false - - result.updates is not defined - "'comment argument cannot be more than 60 characters' in result.msg" - ansible.builtin.debug: msg="END cli/comment-too-long.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/comment.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/comment.yaml index dcbbe78a8..7b8ba6dec 100644 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/comment.yaml +++ b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/comment.yaml @@ -20,7 +20,7 @@ - ansible.builtin.assert: that: - result.changed == true - - result.updates is not defined + - result.updates is defined - name: Check device with configuration register: result @@ -31,7 +31,6 @@ - ansible.builtin.assert: that: - result.changed == false - - result.updates is not defined - name: Assert accurately report configuration failure during pseudo-atomic operation register: result diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/replace_block.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/replace_block.yaml index b5dce6496..e3977bb74 100644 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/replace_block.yaml +++ b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/replace_block.yaml @@ -31,3 +31,9 @@ that: - result2.changed == true - result1.commands == result2.commands + +- name: Cleanup + cisco.iosxr.iosxr_config: + commands: + - no interface GigabitEthernet 0/0/0/5 + ignore_errors: true diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/src_basic.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/src_basic.yaml index dd79ebe07..e4a7e9393 100644 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/src_basic.yaml +++ b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/src_basic.yaml @@ -18,7 +18,7 @@ - ansible.builtin.assert: that: - result.changed == true - - result.updates is not defined + - result.updates is defined - name: Check device with configuration register: result @@ -28,6 +28,5 @@ - ansible.builtin.assert: that: - result.changed == false - - result.updates is not defined - ansible.builtin.debug: msg="END cli/src_basic.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/src_match_none.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/src_match_none.yaml index 7794ab371..3e804679c 100644 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/src_match_none.yaml +++ b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_config/tests/cli/src_match_none.yaml @@ -19,7 +19,7 @@ - ansible.builtin.assert: that: - result.changed == true - - result.updates is not defined + - result.updates is defined - name: Check device with configuration register: result @@ -29,6 +29,5 @@ - ansible.builtin.assert: that: - result.changed == false - - result.updates is not defined - ansible.builtin.debug: msg="END cli/src_match_none.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/defaults/main.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/defaults/main.yaml deleted file mode 100644 index 9ef5ba516..000000000 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/defaults/main.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -testcase: "*" -test_items: [] diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/meta/main.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/meta/main.yaml deleted file mode 100644 index be631e5d8..000000000 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/meta/main.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - prepare_iosxr_tests diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/cli.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/cli.yaml deleted file mode 100644 index 88e4708f8..000000000 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/cli.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -- name: Collect all CLI test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/cli" - patterns: "{{ testcase }}.yaml" - register: test_cases - delegate_to: localhost - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test case (connection=ansible.netcommon.network_cli) - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - vars: - ansible_connection: ansible.netcommon.network_cli - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - tags: - - network_cli - -- name: Reset connection - ansible.builtin.meta: reset_connection diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/main.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/main.yaml deleted file mode 100644 index 419a6cde6..000000000 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/main.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- name: Include the CLI tasks - ansible.builtin.include_tasks: cli.yaml - -- name: Include the netconf tasks - ansible.builtin.include_tasks: netconf.yaml diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/netconf.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/netconf.yaml deleted file mode 100644 index 26f9ab49a..000000000 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tasks/netconf.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -- name: Collect all CLI test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/netconf" - patterns: "{{ testcase }}.yaml" - register: test_cases - delegate_to: localhost - -- name: Set test_items - 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 }}" - vars: - ansible_connection: ansible.netcommon.netconf - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - tags: - - netconf - -- name: Reset connection - ansible.builtin.meta: reset_connection diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tests/cli/basic.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tests/cli/basic.yaml deleted file mode 100644 index 02280f4a0..000000000 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tests/cli/basic.yaml +++ /dev/null @@ -1,140 +0,0 @@ ---- -- name: Remove host logging - cisco.iosxr.iosxr_logging: - dest: host - name: 172.16.0.1 - state: absent - -- name: Remove console logging - register: result - cisco.iosxr.iosxr_logging: - dest: console - state: absent - -- name: Remove buffered logging - register: result - cisco.iosxr.iosxr_logging: - dest: buffered - size: 2097155 - state: absent - -- name: Set up syslog host logging - register: result - cisco.iosxr.iosxr_logging: &id001 - dest: host - name: 172.16.0.1 - level: errors - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging 172.16.0.1 vrf default severity error" in result.commands' - -- name: Set up syslog host logging (idempotent) - register: result - cisco.iosxr.iosxr_logging: *id001 -- ansible.builtin.assert: &id003 - that: - - result.changed == false - -- name: Delete/disable syslog host logging - register: result - cisco.iosxr.iosxr_logging: &id002 - dest: host - name: 172.16.0.1 - state: absent - -- ansible.builtin.assert: - that: - - result.changed == true - - '"no logging 172.16.0.1 vrf default" in result.commands' - -- name: Delete/disable syslog host logging (idempotent) - register: result - cisco.iosxr.iosxr_logging: *id002 -- ansible.builtin.assert: *id003 -- name: Add console logging with level warning - register: result - cisco.iosxr.iosxr_logging: &id004 - dest: console - level: warning - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging console warning" in result.commands' - -- name: Console logging with level warning (idempotent) - register: result - cisco.iosxr.iosxr_logging: *id004 -- ansible.builtin.assert: *id003 -- name: Remove console logging with level warning - register: result - cisco.iosxr.iosxr_logging: - dest: console - level: warning - state: absent - -- ansible.builtin.assert: &id006 - that: - - result.changed == true - -- name: Configure buffered logging size - register: result - cisco.iosxr.iosxr_logging: &id005 - dest: buffered - size: 4800000 - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging buffered 4800000" in result.commands' - -- name: Configure buffered logging size (idempotence) - register: result - cisco.iosxr.iosxr_logging: *id005 -- ansible.builtin.assert: *id003 -- name: Remove buffered logging size - register: result - cisco.iosxr.iosxr_logging: - dest: buffered - size: 4800000 - state: absent - -- ansible.builtin.assert: *id006 -- name: Change logging parameters using aggregate - register: result - cisco.iosxr.iosxr_logging: - aggregate: - - dest: console - level: notifications - - - dest: buffered - size: 4700000 - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging buffered 4700000" in result.commands' - - '"logging console notifications" in result.commands' - -- name: Remove logging parameters using aggregate - register: result - cisco.iosxr.iosxr_logging: - aggregate: - - dest: console - level: notifications - - - dest: buffered - size: 4700000 - state: absent - -- ansible.builtin.assert: - that: - - result.changed == true - - '"no logging console" in result.commands' - - '"no logging buffered" in result.commands' diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tests/netconf/basic.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tests/netconf/basic.yaml deleted file mode 100644 index 2bd05e511..000000000 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_logging/tests/netconf/basic.yaml +++ /dev/null @@ -1,208 +0,0 @@ ---- -- name: Remove host logging - cisco.iosxr.iosxr_logging: - dest: host - name: 172.16.0.1 - state: absent - -- name: Remove console logging - register: result - cisco.iosxr.iosxr_logging: - dest: console - level: warning - state: absent - -- name: Remove buffered logging - register: result - cisco.iosxr.iosxr_logging: - dest: buffered - size: 2097155 - state: absent - -- name: Set up syslog host logging - register: result - cisco.iosxr.iosxr_logging: &id001 - dest: host - name: 172.16.0.1 - level: errors - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"172.16.0.1" in result.xml[0]' - -- name: Set up syslog host logging (idempotent) - register: result - cisco.iosxr.iosxr_logging: *id001 -- ansible.builtin.assert: &id003 - that: - - result.changed == false - -- name: Delete/disable syslog host logging - register: result - cisco.iosxr.iosxr_logging: &id002 - dest: host - name: 172.16.0.1 - state: absent - -- ansible.builtin.assert: - that: - - result.changed == true - - '"172.16.0.1" in result.xml[0]' - - '"delete" in result.xml[0]' - -- name: Delete/disable syslog host logging (idempotent) - register: result - cisco.iosxr.iosxr_logging: *id002 -- ansible.builtin.assert: *id003 -- name: Add console logging with level warning - register: result - cisco.iosxr.iosxr_logging: &id004 - dest: console - level: warning - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"console" in result.xml[0]' - - '"warning" in result.xml[0]' - -- name: Console logging with level warning (idempotent) - register: result - cisco.iosxr.iosxr_logging: *id004 -- ansible.builtin.assert: *id003 -- name: Remove console logging with level warning - register: result - cisco.iosxr.iosxr_logging: - dest: console - level: warning - state: absent - -- ansible.builtin.assert: &id006 - that: - - result.changed == true - -- name: Configure buffered logging size - register: result - cisco.iosxr.iosxr_logging: &id005 - dest: buffered - size: 4800000 - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"buffered" in result.xml[0]' - - '"4800000" in result.xml[0]' - -- name: Configure buffered logging size (idempotence) - register: result - cisco.iosxr.iosxr_logging: *id005 -- ansible.builtin.assert: *id003 -- name: Remove buffered logging size - register: result - cisco.iosxr.iosxr_logging: - dest: buffered - size: 4800000 - state: absent - -- ansible.builtin.assert: *id006 -- name: Change logging parameters using aggregate - register: result - cisco.iosxr.iosxr_logging: - aggregate: - - dest: console - level: notifications - - - dest: buffered - size: 4700000 - - - dest: monitor - level: alerts - - - dest: host - name: 10.10.10.1 - level: errors - - - dest: host - name: 10.10.10.2 - - - dest: file - name: file1 - size: 2048 - level: critical - path: /file1 - - - dest: file - name: file2 - size: 2048 - path: /file2 - - - facility: local3 - - - hostnameprefix: host3 - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"file1" in result.xml[0]' - - '"file2" in result.xml[0]' - - '"10.10.10.1" in result.xml[1]' - - '"10.10.10.2" in result.xml[1]' - - '"notice" in result.xml[2]' - - '"alert" in result.xml[3]' - - '"4700000" in result.xml[4]' - - '"debug" in result.xml[4]' - - '"local3" in result.xml[5]' - - '"host3" in result.xml[6]' - -- name: Remove logging parameters using aggregate - register: result - cisco.iosxr.iosxr_logging: - aggregate: - - dest: console - level: notifications - - - dest: buffered - size: 4700000 - - - dest: monitor - level: alerts - - - dest: host - name: 10.10.10.1 - level: errors - - - dest: host - name: 10.10.10.2 - - - dest: file - name: file1 - size: 2048 - level: critical - - - dest: file - name: file2 - size: 2048 - - - facility: local3 - - - hostnameprefix: host3 - state: absent - -- ansible.builtin.assert: - that: - - result.changed == true - - '"file1" in result.xml[0]' - - '"file2" in result.xml[0]' - - '"10.10.10.1" in result.xml[1]' - - '"10.10.10.2" in result.xml[1]' - - '"notice" in result.xml[2]' - - '"alert" in result.xml[3]' - - '"4700000" in result.xml[4]' - - '"debug" in result.xml[4]' - - '"local3" in result.xml[5]' - - '"host3" in result.xml[6]' diff --git a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_smoke/tests/netconf/common_netconf.yaml b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_smoke/tests/netconf/common_netconf.yaml index 2ab0957ae..5f08fd677 100644 --- a/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_smoke/tests/netconf/common_netconf.yaml +++ b/ansible_collections/cisco/iosxr/tests/integration/targets/iosxr_smoke/tests/netconf/common_netconf.yaml @@ -23,24 +23,4 @@ - "'this is my login banner' in result.xml" - "'that has a multiline' in result.xml" -# hit etree_findall() -- name: Remove host logging - cisco.iosxr.iosxr_logging: - dest: host - name: 172.16.0.1 - state: absent - -- name: Set up syslog host logging - cisco.iosxr.iosxr_logging: - dest: host - name: 172.16.0.1 - level: errors - state: present - register: result - -- ansible.builtin.assert: - that: - - "result.changed == true" - - '"172.16.0.1" in result.xml[0]' - - ansible.builtin.debug: msg="END iosxr netconf/common_netconf.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.10.txt b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.10.txt deleted file mode 100644 index c2f1a6018..000000000 --- a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.10.txt +++ /dev/null @@ -1,28 +0,0 @@ -plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local -plugins/module_utils/network/iosxr/config/acl_interfaces/acl_interfaces.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv2/ospfv2.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/logging_global/logging_global.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/acl_interfaces/acl_interfaces.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv2/ospfv2.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv3/ospfv3.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/iosxr/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/iosxr/config/logging_global/logging_global.py import-2.6!skip -plugins/modules/iosxr_acl_interfaces.py import-2.6!skip -plugins/modules/iosxr_ospf_interfaces.py import-2.6!skip -plugins/modules/iosxr_ospfv2.py import-2.6!skip -plugins/modules/iosxr_ospfv3.py import-2.6!skip -plugins/modules/iosxr_bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/iosxr_bgp_address_family.py import-2.6!skip -plugins/modules/iosxr_bgp_global.py import-2.6!skip -plugins/modules/iosxr_prefix_lists.py import-2.6!skip -plugins/modules/iosxr_logging_global.py import-2.6!skip diff --git a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.11.txt b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.11.txt deleted file mode 100644 index b492817fc..000000000 --- a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.11.txt +++ /dev/null @@ -1,31 +0,0 @@ -plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local -plugins/module_utils/network/iosxr/config/acl_interfaces/acl_interfaces.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv2/ospfv2.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/logging_global/logging_global.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/acl_interfaces/acl_interfaces.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv2/ospfv2.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv3/ospfv3.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/iosxr/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/iosxr/config/logging_global/logging_global.py import-2.6!skip -plugins/modules/iosxr_acl_interfaces.py import-2.6!skip -plugins/modules/iosxr_ospf_interfaces.py import-2.6!skip -plugins/modules/iosxr_ospfv2.py import-2.6!skip -plugins/modules/iosxr_ospfv3.py import-2.6!skip -plugins/modules/iosxr_bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/iosxr_bgp_address_family.py import-2.6!skip -plugins/modules/iosxr_bgp_global.py import-2.6!skip -plugins/modules/iosxr_prefix_lists.py import-2.6!skip -plugins/modules/iosxr_logging_global.py import-2.6!skip -plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.7!skip -plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.8!skip -plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.9!skip diff --git a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.12.txt b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.12.txt deleted file mode 100644 index 14952a817..000000000 --- a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.12.txt +++ /dev/null @@ -1,31 +0,0 @@ -plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local -plugins/module_utils/network/iosxr/config/acl_interfaces/acl_interfaces.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv2/ospfv2.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/logging_global/logging_global.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/acl_interfaces/acl_interfaces.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv2/ospfv2.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv3/ospfv3.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/iosxr/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/iosxr/config/logging_global/logging_global.py import-2.6!skip -plugins/modules/iosxr_acl_interfaces.py import-2.6!skip -plugins/modules/iosxr_ospf_interfaces.py import-2.6!skip -plugins/modules/iosxr_ospfv2.py import-2.6!skip -plugins/modules/iosxr_ospfv3.py import-2.6!skip -plugins/modules/iosxr_bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/iosxr_bgp_address_family.py import-2.6!skip -plugins/modules/iosxr_bgp_global.py import-2.6!skip -plugins/modules/iosxr_prefix_lists.py import-2.6!skip -plugins/modules/iosxr_logging_global.py import-2.6!skip -plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.8!skip -plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.9!skip -plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.10!skip diff --git a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.13.txt b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.13.txt deleted file mode 100644 index 5d99b9b08..000000000 --- a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.13.txt +++ /dev/null @@ -1,4 +0,0 @@ -plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local -plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.8!skip -plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.9!skip -plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.10!skip diff --git a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.14.txt b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.14.txt index 63b93ff5a..1e8023a57 100644 --- a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.14.txt +++ b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.14.txt @@ -1,4 +1,4 @@ -plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local +plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.9!skip plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.10!skip plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.11!skip diff --git a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.15.txt b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.15.txt index 63b93ff5a..1e8023a57 100644 --- a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.15.txt +++ b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.15.txt @@ -1,4 +1,4 @@ -plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local +plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.9!skip plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.10!skip plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.11!skip diff --git a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.16.txt b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.16.txt index 450f3eab7..6d49e3dcb 100644 --- a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.16.txt +++ b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.16.txt @@ -1,4 +1,4 @@ -plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local +plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.10!skip plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.11!skip plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.12!skip diff --git a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.17.txt b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.17.txt index 450f3eab7..6d49e3dcb 100644 --- a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.17.txt +++ b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.17.txt @@ -1,4 +1,4 @@ -plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local +plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.10!skip plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.11!skip plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.12!skip diff --git a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.18.txt b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.18.txt new file mode 100644 index 000000000..6d49e3dcb --- /dev/null +++ b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.18.txt @@ -0,0 +1,4 @@ +plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.10!skip +plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.11!skip +plugins/sub_plugins/grpc/pb/ems_grpc_pb2.py import-3.12!skip diff --git a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.9.txt b/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.9.txt deleted file mode 100644 index aab3e8dfc..000000000 --- a/ansible_collections/cisco/iosxr/tests/sanity/ignore-2.9.txt +++ /dev/null @@ -1,30 +0,0 @@ -plugins/action/iosxr.py action-plugin-docs # base class for deprecated network platform modules using `connection: local -plugins/modules/iosxr_logging.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/iosxr_logging.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict -plugins/module_utils/network/iosxr/config/acl_interfaces/acl_interfaces.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv2/ospfv2.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/logging_global/logging_global.py compile-2.6!skip -plugins/module_utils/network/iosxr/config/acl_interfaces/acl_interfaces.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv2/ospfv2.py import-2.6!skip -plugins/module_utils/network/iosxr/config/ospfv3/ospfv3.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py import-2.6!skip -plugins/module_utils/network/iosxr/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/iosxr/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/iosxr/config/logging_global/logging_global.py import-2.6!skip -plugins/modules/iosxr_acl_interfaces.py import-2.6!skip -plugins/modules/iosxr_ospf_interfaces.py import-2.6!skip -plugins/modules/iosxr_ospfv2.py import-2.6!skip -plugins/modules/iosxr_ospfv3.py import-2.6!skip -plugins/modules/iosxr_bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/iosxr_bgp_address_family.py import-2.6!skip -plugins/modules/iosxr_bgp_global.py import-2.6!skip -plugins/modules/iosxr_prefix_lists.py import-2.6!skip -plugins/modules/iosxr_logging_global.py import-2.6!skip diff --git a/ansible_collections/cisco/iosxr/tests/unit/compat/__init__.py b/ansible_collections/cisco/iosxr/tests/unit/compat/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/iosxr/tests/unit/compat/mock.py b/ansible_collections/cisco/iosxr/tests/unit/compat/mock.py deleted file mode 100644 index e4ce72b34..000000000 --- a/ansible_collections/cisco/iosxr/tests/unit/compat/mock.py +++ /dev/null @@ -1,129 +0,0 @@ -# (c) 2014, Toshio Kuratomi -# -# 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 . - -# Make coding more python3-ish -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -""" -Compat module for Python3.x's unittest.mock module -""" -import sys - -import _io - - -# Python 2.7 - -# Note: Could use the pypi mock library on python3.x as well as python2.x. It -# is the same as the python3 stdlib mock library - -try: - # Allow wildcard import because we really do want to import all of mock's - # symbols into this compat shim - # pylint: disable=wildcard-import,unused-wildcard-import - from unittest.mock import * -except ImportError: - # Python 2 - # pylint: disable=wildcard-import,unused-wildcard-import - try: - from mock import * - except ImportError: - print("You need the mock library installed on python2.x to run tests") - - -# Prior to 3.4.4, mock_open cannot handle binary read_data -if sys.version_info >= (3,) and sys.version_info < (3, 4, 4): - file_spec = None - - def _iterate_read_data(read_data): - # Helper for mock_open: - # Retrieve lines from read_data via a generator so that separate calls to - # readline, read, and readlines are properly interleaved - sep = b"\n" if isinstance(read_data, bytes) else "\n" - data_as_list = [l + sep for l in read_data.split(sep)] - - if data_as_list[-1] == sep: - # If the last line ended in a newline, the list comprehension will have an - # extra entry that's just a newline. Remove this. - data_as_list = data_as_list[:-1] - else: - # If there wasn't an extra newline by itself, then the file being - # emulated doesn't have a newline to end the last line remove the - # newline that our naive format() added - data_as_list[-1] = data_as_list[-1][:-1] - - for line in data_as_list: - yield line - - def mock_open(mock=None, read_data=""): - """ - A helper function to create a mock to replace the use of `open`. It works - for `open` called directly or used as a context manager. - - The `mock` argument is the mock object to configure. If `None` (the - default) then a `MagicMock` will be created for you, with the API limited - to methods or attributes available on standard file handles. - - `read_data` is a string for the `read` methoddline`, and `readlines` of the - file handle to return. This is an empty string by default. - """ - - def _readlines_side_effect(*args, **kwargs): - if handle.readlines.return_value is not None: - return handle.readlines.return_value - return list(_data) - - def _read_side_effect(*args, **kwargs): - if handle.read.return_value is not None: - return handle.read.return_value - return type(read_data)().join(_data) - - def _readline_side_effect(): - if handle.readline.return_value is not None: - while True: - yield handle.readline.return_value - for line in _data: - yield line - - global file_spec - if file_spec is None: - file_spec = list( - set(dir(_io.TextIOWrapper)).union(set(dir(_io.BytesIO))), - ) - - if mock is None: - mock = MagicMock(name="open", spec=open) - - handle = MagicMock(spec=file_spec) - handle.__enter__.return_value = handle - - _data = _iterate_read_data(read_data) - - handle.write.return_value = None - handle.read.return_value = None - handle.readline.return_value = None - handle.readlines.return_value = None - - handle.read.side_effect = _read_side_effect - handle.readline.side_effect = _readline_side_effect() - handle.readlines.side_effect = _readlines_side_effect - - mock.return_value = handle - return mock diff --git a/ansible_collections/cisco/iosxr/tests/unit/compat/unittest.py b/ansible_collections/cisco/iosxr/tests/unit/compat/unittest.py deleted file mode 100644 index df4266ec9..000000000 --- a/ansible_collections/cisco/iosxr/tests/unit/compat/unittest.py +++ /dev/null @@ -1,41 +0,0 @@ -# (c) 2014, Toshio Kuratomi -# -# 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 . - -# Make coding more python3-ish -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -""" -Compat module for Python2.7's unittest module -""" - -import sys - - -# Allow wildcard import because we really do want to import all of -# unittests's symbols into this compat shim -# pylint: disable=wildcard-import,unused-wildcard-import -if sys.version_info < (2, 7): - try: - # Need unittest2 on python2.6 - from unittest2 import * - except ImportError: - print("You need unittest2 installed on python2.6.x to run tests") -else: - from unittest import * diff --git a/ansible_collections/cisco/iosxr/tests/unit/mock/path.py b/ansible_collections/cisco/iosxr/tests/unit/mock/path.py index 0c87896da..7d287a5fb 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/mock/path.py +++ b/ansible_collections/cisco/iosxr/tests/unit/mock/path.py @@ -2,9 +2,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible.utils.path import unfrackpath +from unittest.mock import MagicMock -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import MagicMock +from ansible.utils.path import unfrackpath mock_unfrackpath_noop = MagicMock( diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/fixtures/show_cdp b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/fixtures/show_cdp new file mode 100644 index 000000000..cd5d89cee --- /dev/null +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/fixtures/show_cdp @@ -0,0 +1,4 @@ +Global CDP information: + Sending CDP packets every 60 seconds + Sending a holdtime value of 30 seconds + Sending CDPv2 advertisements is not enabled diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/fixtures/show_cdp_neighbors_detail b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/fixtures/show_cdp_neighbors_detail new file mode 100644 index 000000000..f1ab85923 --- /dev/null +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/fixtures/show_cdp_neighbors_detail @@ -0,0 +1,16 @@ +------------------------- +Device ID: device2.cisco.com +Entry address(es): + IP address: 171.68.162.134 +Platform: cisco 4500, Capabilities: Router +Interface: Ethernet0/1, Port ID (outgoing port): Ethernet0 +Holdtime : 156 sec + +Version : +Cisco Internetwork Operating System Software +IOS (tm) 4500 Software (C4500-J-M), Version 11.1(10.4), MAINTENANCE INTERIM SOFTWARE +Copyright (c) 1986-1997 by Cisco Systems, Inc. +Compiled Mon 07-Apr-97 19:51 by dschwart + + +Total cdp entries displayed : 1 diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_hostname.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_hostname.py index 7c676530b..9eda36615 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_hostname.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_hostname.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_hostname -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr.py index af2fd3a5c..32eb85797 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr.py @@ -22,15 +22,15 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from os import path +from unittest import TestCase from ansible.module_utils._text import to_bytes, to_text from mock import MagicMock from ansible_collections.cisco.iosxr.plugins.cliconf import iosxr -from ansible_collections.cisco.iosxr.tests.unit.compat import unittest -class TestPluginCLIConfIOSXR(unittest.TestCase): +class TestPluginCLIConfIOSXR(TestCase): """Test class for IOSXR CLI Conf Methods""" def setUp(self): diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_acl_interfaces.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_acl_interfaces.py index 8500c0733..0c29c6c13 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_acl_interfaces.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_acl_interfaces.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_acl_interfaces -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_acls.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_acls.py index 181b239d8..d301bda7b 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_acls.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_acls.py @@ -8,8 +8,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_acls -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_banner.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_banner.py index 5dcbada13..32085d51e 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_banner.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_banner.py @@ -38,9 +38,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_banner -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_address_family.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_address_family.py index 57770b59d..ce8d12c95 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_address_family.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_address_family.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_bgp_address_family -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_global.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_global.py index 901b5b4d8..6527fb48d 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_global.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_global.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_bgp_global -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_neighbor_address_family.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_neighbor_address_family.py index d6fd0610d..6714adee8 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_neighbor_address_family.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_neighbor_address_family.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_bgp_neighbor_address_family -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_templates.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_templates.py index 4efc04503..58cec9977 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_templates.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_bgp_templates.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_bgp_templates -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule @@ -239,6 +239,22 @@ class TestIosxrBgptemplatesModule(TestIosxrModule): safi="unicast", advertise=dict(local_labeled_route=dict(set=True)), ), + dict( + afi="vpnv4", + safi="unicast", + ), + dict( + afi="vpnv6", + safi="unicast", + ), + dict( + afi="link-state", + safi="link-state", + ), + dict( + afi="l2vpn", + safi="evpn", + ), ], ), dict( @@ -324,6 +340,10 @@ class TestIosxrBgptemplatesModule(TestIosxrModule): "bfd fast-detect strict-mode", "internal-vpn-client", "precedence critical", + "address-family vpnv4 unicast", + "address-family vpnv6 unicast", + "address-family link-state link-state", + "address-family l2vpn evpn", "address-family ipv4 unicast", "advertise local-labeled-route", "neighbor-group test1", @@ -1128,6 +1148,14 @@ class TestIosxrBgptemplatesModule(TestIosxrModule): precedence critical advertisement-interval 10 internal-vpn-client + address-family vpnv4 unicast + ! + address-family vpnv6 unicast + ! + address-family link-state link-state + ! + address-family l2vpn evpn + ! address-family ipv4 unicast advertise local-labeled-route ! @@ -1199,6 +1227,10 @@ class TestIosxrBgptemplatesModule(TestIosxrModule): "advertisement_interval": 10, "internal_vpn_client": True, "address_family": [ + {"afi": "vpnv4", "safi": "unicast"}, + {"afi": "vpnv6", "safi": "unicast"}, + {"afi": "link-state", "safi": "link-state"}, + {"afi": "l2vpn", "safi": "evpn"}, { "afi": "ipv4", "safi": "unicast", diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_command.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_command.py index cd691d6c4..b3787e600 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_command.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_command.py @@ -21,8 +21,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_command -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_config.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_config.py index 9ac6866af..dffd4b4c9 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_config.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_config.py @@ -21,10 +21,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import MagicMock, patch from ansible_collections.cisco.iosxr.plugins.cliconf.iosxr import Cliconf from ansible_collections.cisco.iosxr.plugins.modules import iosxr_config -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import MagicMock, patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_facts.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_facts.py index da7d597ae..6c0e02e0f 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_facts.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_facts.py @@ -23,8 +23,9 @@ __metaclass__ = type import json +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_facts -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture @@ -131,3 +132,19 @@ class TestIosxrFacts(TestIosxrModule): ansible_facts["ansible_net_cpu_utilization"], cpu_utilization_data, ) + + def test_iosxr_facts_neighbors(self): + set_module_args(dict(gather_subset="interfaces")) + result = self.execute_module() + ansible_facts = result["ansible_facts"]["ansible_net_neighbors"] + expected_neighbors = { + "Ethernet0/1": [ + { + "host": "device2.cisco.com", + "platform": "cisco 4500", + "port": "Ethernet0", + "ip": "171.68.162.134", + }, + ], + } + self.assertCountEqual(ansible_facts.keys(), expected_neighbors.keys()) diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_interfaces.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_interfaces.py index bff925c60..15a8de4e5 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_interfaces.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_interfaces.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_interfaces -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_l2_interfaces.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_l2_interfaces.py index f28561777..9bef80c39 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_l2_interfaces.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_l2_interfaces.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_l2_interfaces -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_l3_interfaces.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_l3_interfaces.py index 071b16b8f..14b5a1e51 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_l3_interfaces.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_l3_interfaces.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_l3_interfaces -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lacp.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lacp.py index 23c4b8cd9..09e7fa8ec 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lacp.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lacp.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_lacp -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lacp_interfaces.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lacp_interfaces.py index 55358a061..d6bb57c40 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lacp_interfaces.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lacp_interfaces.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_lacp_interfaces -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lag_interfaces.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lag_interfaces.py index b0d68fc62..032539115 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lag_interfaces.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lag_interfaces.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_lag_interfaces -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lldp_global.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lldp_global.py index 4830058df..d2b74103b 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lldp_global.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lldp_global.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_lldp_global -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lldp_interfaces.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lldp_interfaces.py index 78b6d79f0..889eb8e57 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lldp_interfaces.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_lldp_interfaces.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_lldp_interfaces -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_logging_global.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_logging_global.py index bffee2b17..205740f19 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_logging_global.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_logging_global.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_logging_global -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_n540.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_n540.py index d2820cfa1..e7ec26877 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_n540.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_n540.py @@ -22,15 +22,15 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from os import path +from unittest import TestCase from ansible.module_utils._text import to_bytes, to_text from mock import MagicMock from ansible_collections.cisco.iosxr.plugins.cliconf import iosxr -from ansible_collections.cisco.iosxr.tests.unit.compat import unittest -class TestPluginCLIConfIOSXR(unittest.TestCase): +class TestPluginCLIConfIOSXR(TestCase): """Test class for IOSXR CLI Conf Methods""" def setUp(self): diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_netconf.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_netconf.py index 727752948..db1f03449 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_netconf.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_netconf.py @@ -21,8 +21,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_netconf -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ntp_global.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ntp_global.py index 702e2a007..e9e0e66fd 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ntp_global.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ntp_global.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_ntp_global -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospf_interfaces.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospf_interfaces.py index 5b967be00..f5030c703 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospf_interfaces.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospf_interfaces.py @@ -8,8 +8,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_ospf_interfaces -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospfv2.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospfv2.py index b51727dbd..3d4e26298 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospfv2.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospfv2.py @@ -8,8 +8,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_ospfv2 -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospfv3.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospfv3.py index 23c9d071b..447323e7f 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospfv3.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ospfv3.py @@ -8,8 +8,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_ospfv3 -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ping.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ping.py index d0ceda0fb..87ffc4f13 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ping.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_ping.py @@ -9,9 +9,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_ping -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule @@ -135,7 +135,7 @@ class TestIosxrPingModule(TestIosxrModule): } self.assertEqual(result, mock_res) - def test_iosxr_ping_state_absent_pass(self): + def test_iosxr_ping_state_absent_pass_1(self): self.execute_show_command.return_value = dedent( """\ Type escape sequence to abort. diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_prefix_lists.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_prefix_lists.py index 6dca5d920..9c2f895ac 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_prefix_lists.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_prefix_lists.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_prefix_lists -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_snmp_server.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_snmp_server.py index 148625190..eaad485d8 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_snmp_server.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_snmp_server.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.iosxr.plugins.modules import iosxr_snmp_server -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_static_routes.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_static_routes.py index a185b0c4f..4cce2eb6e 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_static_routes.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_static_routes.py @@ -8,8 +8,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_static_routes -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_system.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_system.py index 253725979..973f07066 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_system.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_system.py @@ -21,8 +21,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_system -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_user.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_user.py index 0d783d4cd..0ab53a529 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_user.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_user.py @@ -21,8 +21,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.iosxr.plugins.modules import iosxr_user -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch from ansible_collections.cisco.iosxr.tests.unit.modules.utils import set_module_args from .iosxr_module import TestIosxrModule, load_fixture diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_utils.py b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_utils.py index 7707adf41..c63e57030 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_utils.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/network/iosxr/test_iosxr_utils.py @@ -7,11 +7,13 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type + +from unittest import TestCase + from ansible_collections.cisco.iosxr.plugins.module_utils.network.iosxr.utils.utils import Version -from ansible_collections.cisco.iosxr.tests.unit.compat import unittest -class TestIosxrUtils(unittest.TestCase): +class TestIosxrUtils(TestCase): def setUp(self): pass diff --git a/ansible_collections/cisco/iosxr/tests/unit/modules/utils.py b/ansible_collections/cisco/iosxr/tests/unit/modules/utils.py index d63a86922..87be9cf8e 100644 --- a/ansible_collections/cisco/iosxr/tests/unit/modules/utils.py +++ b/ansible_collections/cisco/iosxr/tests/unit/modules/utils.py @@ -4,12 +4,12 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type import json +from unittest import TestCase +from unittest.mock import patch + from ansible.module_utils import basic from ansible.module_utils._text import to_bytes -from ansible_collections.cisco.iosxr.tests.unit.compat import unittest -from ansible_collections.cisco.iosxr.tests.unit.compat.mock import patch - def set_module_args(args): if "_ansible_remote_tmp" not in args: @@ -40,7 +40,7 @@ def fail_json(*args, **kwargs): raise AnsibleFailJson(kwargs) -class ModuleTestCase(unittest.TestCase): +class ModuleTestCase(TestCase): def setUp(self): self.mock_module = patch.multiple( basic.AnsibleModule, diff --git a/ansible_collections/cisco/iosxr/tox-ansible.ini b/ansible_collections/cisco/iosxr/tox-ansible.ini new file mode 100644 index 000000000..b49a359f9 --- /dev/null +++ b/ansible_collections/cisco/iosxr/tox-ansible.ini @@ -0,0 +1,3 @@ +[ansible] + +skip = "" diff --git a/ansible_collections/cisco/iosxr/tox.ini b/ansible_collections/cisco/iosxr/tox.ini deleted file mode 100644 index 6ada631cb..000000000 --- a/ansible_collections/cisco/iosxr/tox.ini +++ /dev/null @@ -1,31 +0,0 @@ -[tox] -minversion = 1.4.2 -envlist = linters -skipsdist = True - -[testenv] -deps = -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt - -[testenv:black] -install_command = pip install {opts} {packages} -commands = - black -v {toxinidir} - -[testenv:linters] -install_command = pip install {opts} {packages} -commands = - black -v --diff --check {toxinidir} - flake8 {posargs} - -[testenv:venv] -commands = {posargs} - -[flake8] -# E123, E125 skipped as they are invalid PEP-8. - -show-source = True -ignore = E123,E125,E203,E402,E501,E741,F401,F811,F841,W503 -max-line-length = 160 -builtins = _ -exclude = .git,.tox,tests/unit/compat/ diff --git a/ansible_collections/cisco/ise/.DS_Store b/ansible_collections/cisco/ise/.DS_Store new file mode 100644 index 000000000..f79cfc1f5 Binary files /dev/null and b/ansible_collections/cisco/ise/.DS_Store differ diff --git a/ansible_collections/cisco/ise/.github/workflows/sanity_tests.yml b/ansible_collections/cisco/ise/.github/workflows/sanity_tests.yml index dd455afad..a98328054 100644 --- a/ansible_collections/cisco/ise/.github/workflows/sanity_tests.yml +++ b/ansible_collections/cisco/ise/.github/workflows/sanity_tests.yml @@ -14,8 +14,9 @@ jobs: strategy: matrix: ansible: - - stable-2.14 - stable-2.15 + - stable-2.16 + - stable-2.17 - devel runs-on: ubuntu-20.04 steps: diff --git a/ansible_collections/cisco/ise/.vscode/launch.json b/ansible_collections/cisco/ise/.vscode/launch.json new file mode 100644 index 000000000..306f58eb3 --- /dev/null +++ b/ansible_collections/cisco/ise/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python: Current File", + "type": "python", + "request": "launch", + "program": "${file}", + "console": "integratedTerminal", + "justMyCode": true + } + ] +} \ No newline at end of file diff --git a/ansible_collections/cisco/ise/.vscode/settings.json b/ansible_collections/cisco/ise/.vscode/settings.json new file mode 100644 index 000000000..4f6146612 --- /dev/null +++ b/ansible_collections/cisco/ise/.vscode/settings.json @@ -0,0 +1,24 @@ +{ + "esbonio.sphinx.confDir": "", + "ansible.python.interpreterPath": "/usr/local/bin/python3.10", + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#65c89b", + "activityBar.background": "#65c89b", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#945bc4", + "activityBarBadge.foreground": "#e7e7e7", + "commandCenter.border": "#15202b99", + "sash.hoverBorder": "#65c89b", + "statusBar.background": "#42b883", + "statusBar.foreground": "#15202b", + "statusBarItem.hoverBackground": "#359268", + "statusBarItem.remoteBackground": "#42b883", + "statusBarItem.remoteForeground": "#15202b", + "titleBar.activeBackground": "#42b883", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveBackground": "#42b88399", + "titleBar.inactiveForeground": "#15202b99" + }, + "peacock.remoteColor": "#42b883" +} \ No newline at end of file diff --git a/ansible_collections/cisco/ise/FILES.json b/ansible_collections/cisco/ise/FILES.json index 68d896522..72c9d6a53 100644 --- a/ansible_collections/cisco/ise/FILES.json +++ b/ansible_collections/cisco/ise/FILES.json @@ -7,6 +7,13 @@ "chksum_sha256": null, "format": 1 }, + { + "name": ".DS_Store", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "437cf9da8611bcc8837aef2444e9e00fc44f8f071f750224be185a74168f2e5f", + "format": 1 + }, { "name": "LICENSE", "ftype": "file", @@ -18,7 +25,7 @@ "name": "requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5a620581f1eb701a6e7bce54457bc44c196732cc5b8d82ae728c285e8d51264", + "chksum_sha256": "b600386bb9438017eed5b1eec6a8cfc7ea2879afef9adb1013e15ebf581deb12", "format": 1 }, { @@ -28,6 +35,13 @@ "chksum_sha256": null, "format": 1 }, + { + "name": "plugins/.DS_Store", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "389b6b15b162e5db97c1c6d4ddc0f1161590c016eb06e49734d10373aabc3c56", + "format": 1 + }, { "name": "plugins/doc_fragments", "ftype": "dir", @@ -67,889 +81,1057 @@ "name": "plugins/action/device_administration_local_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25b5da09d0ea52097cbb4f353dfb78b1120527e4c1eab6a749097f9607cc52ab", + "chksum_sha256": "a4ba9cdacad6befa4e7f2b181a1d324c1fd998dfac9f8f216ea3a2ff764bca26", "format": 1 }, { "name": "plugins/action/device_administration_dictionary_attributes_authentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fce24fbf7df39e961b11241a54e93c64204d0e734b2b7cdc5ac6f21d7fc29dd8", + "chksum_sha256": "6a85ce7f52141a38752b4b48bc6fe706ce39529622fe4b5ec4331a6987bb0876", "format": 1 }, { "name": "plugins/action/licensing_tier_state_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efe8167ebc7915126cbe60f37d7bd49a188d3e86a6a3563f41022468ce412cee", + "chksum_sha256": "5d8b70394ca660dcebaa66bbdd82f0daded331ded0d8135ee044350ca1c4d50f", "format": 1 }, { "name": "plugins/action/trusted_certificate_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1914c7faa9abb01416c2951f49e15502d66d1fc192b1db3239b0cf34edecb2ef", + "chksum_sha256": "e70e1786f6bcb1a2ca6170d0285c05758c39c90916a617bed244bfa26e701b61", "format": 1 }, { - "name": "plugins/action/test_connector.py", + "name": "plugins/action/network_device_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f16380be3ff68f3e263a612f4a051c045e84dda1eeb5f635d5317b26ec9b8c7e", + "chksum_sha256": "36bf61970a68e7d79fa06fecf2583de7b7eec6728b16850cd08940162259e6e5", "format": 1 }, { - "name": "plugins/action/network_device_group_info.py", + "name": "plugins/action/px_grid_direct_sync_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1a4ae7b73a246e2c6d970ab18cf35223fce247589dc9b278f6c444b433ca34c", + "chksum_sha256": "29cf00d1089c4a78e9f858078053c138520d01c0e98fae4689bd50df38eab40d", "format": 1 }, { "name": "plugins/action/sxp_connections.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eaac021792b3ac8b1b94fbf874fb2e4ce4a518ca6365c37cc639d647ce6f09b7", + "chksum_sha256": "f05f1fc25c14e1a3ddf9db853d16ef4f2652b8f5c17a955d13c171e9e4fb9ba9", "format": 1 }, { "name": "plugins/action/guest_ssid.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a5e918558117a5da2af0bd8d3917a54fb376068d98f5a2f28e8a853666077d05", + "chksum_sha256": "4c611ad0ea29d90a81812554160fd6f5c50a126335483706084269f1ecd675d3", "format": 1 }, { "name": "plugins/action/proxy_connection_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07e682acd78773d77c24af74347e1c73df6cd0697b74d2e9c71c22ce8b2da385", + "chksum_sha256": "415615360f329c5f406496e49084e50624204e414010a789a9aac5bda5a28edf", "format": 1 }, { "name": "plugins/action/node_services_profiler_probe_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7be342544dfbae8faf4f698ecd0038b92d8570831cff0667502502894d496bc9", + "chksum_sha256": "c950b782e6d6cfd4bcf5c9ef9c1de1024cd789ad221c62981eb7de6a837f3c07", "format": 1 }, { "name": "plugins/action/network_access_dictionary_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff9271ecc8c45dbadfa9658c499608e1e7398d82bee75d7484533ff7bf765e9e", + "chksum_sha256": "0a1d2d449ba06fd0b49068ddbf3a9c3905025e6cac26cdaa5b6bf4f913fc2ce0", "format": 1 }, { "name": "plugins/action/network_access_policy_set.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2108f17089a82191a3f545588c4fd7bc81d575824bed8d033f75ea760c19c7ac", + "chksum_sha256": "9d12c30b13e428d10c06289d6bad5359f405636d529b09886f052726fa0b3eed", "format": 1 }, { "name": "plugins/action/repository_files_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "721c8d823402e1857e78e90df19b0f6a9a43c43c325b00fc99a3ce664b44143a", + "chksum_sha256": "c0d3261207a5c5a94b63c94aa614f311c15d34740a112d515c1650cf9a1c01c5", "format": 1 }, { "name": "plugins/action/repository_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09c065fc28692f5340f915b18b0e7431d5cbfa9cd01b2e1c64888c32f520faf5", + "chksum_sha256": "4c18857c59a72a310664cfb0be574846a76005d47bd71b1c678f25cb67e142fd", "format": 1 }, { "name": "plugins/action/rest_id_store_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ebac6dccebccaf3b64050b6e1b8ac794f8fb37a4f8901c72e953275168c47fa", + "chksum_sha256": "ac4e3e69ac971fd5a5dbe940ade928d0324911bec1faf29ff001d3740c8480f0", "format": 1 }, { - "name": "plugins/action/dictionary_references_info.py", + "name": "plugins/action/anc_policy_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03f8b3e5467296dee3f555d61ebed7b93c74a7e7e527b40fa52a42d90164819", + "chksum_sha256": "19f41a929abdcd34687f76ed11f00949706aee935f6c57ca4f4c7a773372ca12", "format": 1 }, { - "name": "plugins/action/anc_policy_info.py", + "name": "plugins/action/tasks_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a8f2de5f6d90c48814dabe242a5d498fd5c0084a848c57ba2a6b2509decd8c6", + "chksum_sha256": "8d13632289066a4e0a0c4810e9c37473e5b4c3cb13be56cc9ff07e50902882c0", "format": 1 }, { - "name": "plugins/action/tasks_info.py", + "name": "plugins/action/configuration.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d0521f7d5e3a5203aaaa628422e7933838a410b6b1ee9179f0dc3f605186a2c", + "chksum_sha256": "b03ca6301a30a01bd8a649762cb29a962aaa3da4df90a0e2d151da5f9cf3ca2c", "format": 1 }, { - "name": "plugins/action/configuration.py", + "name": "plugins/action/trustsec_sg_vn_mapping_bulk_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28c31c878ee196752d7c003c4c69720b4dd5251739ca70de97cc0001547dfdad", + "chksum_sha256": "b63c63bd64d89a8babfd3699a2fe5c05d0d902f15aadad59f75074401652a618", "format": 1 }, { "name": "plugins/action/device_administration_authorization_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "93a8218bd6642a7a08242a341e5934dd6e6c025ff84d0eb10289adeede6ec2de", + "chksum_sha256": "b2de3e41d31c52fe68f1202cb2bfd557120cfc27ad7fb238c7bf2700f2cb2c0a", "format": 1 }, { "name": "plugins/action/guest_user_email.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5030c3871becf22e728dc276e501620c04127417cfd8de9137a5d61cf2c0a461", + "chksum_sha256": "35ebe17629dc4c15af5be81b2d385a76447dfaeeb3aa5023cbb15deefffa7cc5", "format": 1 }, { "name": "plugins/action/node_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e2b504a05ceac5488d9c6c76334f7462f0e9e6bfefb9e9e163a4ea834256f94", + "chksum_sha256": "2d16019fb10178b806f52fd1f912b5637cbb69e03c7ae511aa313ffbfae34d4e", "format": 1 }, { "name": "plugins/action/mnt_authentication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "83a9b888282c1de0e79ed9c61a8e3f87a76ef7a17f6de89f0b670cbeb5d61e07", + "chksum_sha256": "b891a17b88c0da08c35a393f3edbf3cb2eb7155d0beb98a1b951d5d15eea4107", "format": 1 }, { "name": "plugins/action/pxgrid_healths_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49627a9fbf52a238801d10d814d98dd9d581cb3e59cf40a4bd0d2d09d29524f1", + "chksum_sha256": "6e01bc11d8fbaee1757b5792912463e8671250caf56693320728b54e68744d06", "format": 1 }, { "name": "plugins/action/hotspot_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "01d064f8b2a5ad4530662a0660618fbfaa360d33f7e9c9b6cc9f3f148d0e707c", + "chksum_sha256": "22ca652e0a6eb62c593e536e4794ad5adafc7894c8bdc1cfc8de0a40814dfcb1", "format": 1 }, { "name": "plugins/action/authorization_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af00fbb10e16cf2826d39538c2a434d4da1168192ab516ed32d70e425447ea1d", + "chksum_sha256": "30f03d5d4672f2ea1930c3f6c8c5bb34eaaa664cc7c96f51118e658f18b72b73", + "format": 1 + }, + { + "name": "plugins/action/reservation.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "48a30fa2dc9213e5b044d5c7fafd727de6696636a770cbf883e7f5e0a37b6275", "format": 1 }, { "name": "plugins/action/hotpatch_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f5815fa047d4f5c5030e9f6fd22271d4c906a0aa93c882102d51c841fb8c2ad8", + "chksum_sha256": "aaf766118a77bbab4d05e85f13374a0c214c48750a64a90c6508b194f9346359", + "format": 1 + }, + { + "name": "plugins/action/trustsec_sg_vn_mapping_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5910d1083cde4e24cddba783606e273f1cfc5a8e5a24617422526d9dbc4b3cf1", "format": 1 }, { "name": "plugins/action/node_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1e3ab5405a5ac12557b4d7c3c52689b9f5ff2562fb47deab64c6c14ed3bc963", + "chksum_sha256": "3951289a17c428330df70c3c4f770b784dd4a5aa28fad32a3571dc49b5b5c03a", "format": 1 }, { "name": "plugins/action/personas_export_certs.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b73decde11488e39b11d2d7605b69a91d8987967b41b900a42dea24d85e02e0f", + "chksum_sha256": "18e69825d50e3a9b2376151d9962144cc67c308ab3e4907aa39a441206477d3f", "format": 1 }, { "name": "plugins/action/network_access_dictionary_attributes_authentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4224839be0e82ecf2a24067ca29bbb614b1808fcfd192fb2eb455469aad30b82", + "chksum_sha256": "0ac7f731ad3bad49217bad9d738c45b742dd8c04cb72e3319861c3f5e224ae09", "format": 1 }, { "name": "plugins/action/aci_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c69c9fa563713ae0196edb0ab26909b9f8c71b39c0a2980bf3f99fe1fb0f8455", + "chksum_sha256": "fbc5ff3668cab815fb35936ffb16f4b5999487c0d4215acde4e1e3e6a1061ae2", "format": 1 }, { "name": "plugins/action/network_access_policy_set_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55faa4563f57c55897c27380a0798c232274d59243b261436eb710d2d2bd4c5c", + "chksum_sha256": "7a307c6922a7a679a31fd953dbf14d2fb54ab89c8d6220dd5e1de49eb9da3b72", "format": 1 }, { "name": "plugins/action/subscriber_imsi_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91ef4ff7daa43a4895cc80a845d0c66f2ccaa9e1b57d833e651e4a6557374f8f", + "chksum_sha256": "ec6dc7ba756214ca444fa61b09b8e31702f7e6f376743b17982a32b813f6bda3", "format": 1 }, { "name": "plugins/action/id_store_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7d047ef40d9fb2da4c9a2f27d797e59b6d8a52a113bd11e16967e490ea1ce16", + "chksum_sha256": "147d1e11a94a6e30b66063c3fe05b02f8f561ff5b32f11c85c4b6d1e4578ef2f", "format": 1 }, { "name": "plugins/action/device_administration_policy_set_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afffe8d167c5a86cb35b87ceca420d6bbf6e1f48fd4d016068b442dcc0b5fee1", + "chksum_sha256": "0aeeecbaa19ad0e822573333b9f02b30ad10068fbeb5facdc2dd9c835f6fbc8e", "format": 1 }, { "name": "plugins/action/sxp_local_bindings_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "48574b6a1762eadd7eed6cd9ec83f6d373bfb2dd5c4a6433cab399bb0c2f66ba", + "chksum_sha256": "51b555624c34ae0135ded07ac479a3be687a3a86d9ad0f2d7aa54667d33b9186", "format": 1 }, { "name": "plugins/action/ise_root_ca_regenerate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7e8d218cb0dee5730fdf28a5ed44e180b65794c9f13a16f0de328fb2b952f28e", + "chksum_sha256": "a8af7ecb3f43e653a59bb9a8e74ab0fe2d268bf28bf63339645fc108843e931e", "format": 1 }, { "name": "plugins/action/mnt_sessions_by_session_id_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f82df0e267c51914a535393b2550d4fd98d345070aae567899a8941e3262bd2f", + "chksum_sha256": "e4bf061e1839498549a2c013189b905767b10a9d58871ac35999a89e77e39026", "format": 1 }, { "name": "plugins/action/network_access_service_name_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "911ef6ffb6250d40249d3f87ff5be07d46349d0ea634514b88d8e20f0c9cc0e6", + "chksum_sha256": "284ac01392a34dadd263cc169314dc60d51b23b6d70bcd26bd1d08072a8b1f56", "format": 1 }, { "name": "plugins/action/configuration_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec026ed478f51cedfce03de9d8ed59e78f59d414f74061f0d324ae128f93a082", + "chksum_sha256": "a4426989ff59c9dead8dcee8fa0627bfcac52c8c8d2c524f4899ede418fdf92f", + "format": 1 + }, + { + "name": "plugins/action/custom_attributes.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "183d163bde8841a9e33dfdca4e4ae0bc9540819dbd7249c293b1dcf4fd84376d", "format": 1 }, { "name": "plugins/action/guest_user_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3106158cb218b1b5120b5efaff83f99a7bfd01560fadf51c52edf29b7ff0a17f", + "chksum_sha256": "c2bb34516ca07c993cbeba1b2e887826018e5f0cc2763b1e593624193454a5ee", "format": 1 }, { "name": "plugins/action/aci_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "906352b851ba4a6319c4ee40299376b7cae96a730d53f4887544a182db1845f1", + "chksum_sha256": "89fef53b8f2019a2a4af26f074b473c6169e23ba1804ec5b66f6f0f51066b175", "format": 1 }, { "name": "plugins/action/bind_signed_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd1230b7fb053ebc156c10c5f01424a24c5ad23a50b704fd488790827e923fa3", + "chksum_sha256": "21790152fe2313e3d74019a4d1592eaf5dae440d1777882153747ce2c706467b", "format": 1 }, { "name": "plugins/action/endpoint_register.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b89858a9744fc7bf7b17549c05928da46c9b5e6fbff70be3c95e90095b246ffe", + "chksum_sha256": "cfda17738b96fb5210c004eea32ee9b97138abd512c72421bd468c6563a49f74", "format": 1 }, { "name": "plugins/action/px_grid_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2f5ad212cbaa6145289d836b0cf4c9c550ae2945526a744785deb32b0ed3bde", + "chksum_sha256": "2cd5eece8549d0bf1428c8ae8d6ed948f5a03cfcb9e2e97c58eb9a7edd028486", + "format": 1 + }, + { + "name": "plugins/action/px_grid_direct_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "95184c8ff3fc07b2661eb4296d355b4552a939023b6b915f4016bc8fec02b8d6", "format": 1 }, { "name": "plugins/action/device_administration_network_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52aa8a8a8b067fc670a3255d6abd7121313e05af4a5bc3ca9781461faa861261", + "chksum_sha256": "1236ed9d78da3ccd1844a81c83b1b04637fbc63c7297fdd644496e7137fdcdec", "format": 1 }, { "name": "plugins/action/node_primary_to_standalone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43bbca7b7f51510a95fef2d707cbeee0f752c9697b7cb5e2d8f977c0d776b9c8", + "chksum_sha256": "a4a49eecf67384d49785445a7bea3b359b1855125d27ad01eb6ee72778792a35", "format": 1 }, { "name": "plugins/action/active_directory_leave_domain_with_all_nodes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ebd5bd36ce8f89952b10bfc992eace59fdd6a821141d1b119bd24da98827a242", + "chksum_sha256": "78b3c44fe04ce977b1f0339545c9a363964220be85d809d9817ec2e81b2a0169", "format": 1 }, { "name": "plugins/action/trusted_certificate_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8aa467083afc591c8f70fbaa783c6952ac17256d9a0b94bb07c7b81c55716cba", + "chksum_sha256": "a66a26e20d00aad8c66afe6cdb0173313db3c1741b6ec57a64d1d971ca5fc056", "format": 1 }, { "name": "plugins/action/licensing_connection_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb9b4d3ee8eddfa9509fa548f932e147b598aabc1c2c5d6243032786ff73ee1e", + "chksum_sha256": "59e9752ea1aeb93e5b34f77a952e2ad85ff0a45d708a0eac599196927e5f95b2", "format": 1 }, { "name": "plugins/action/mnt_account_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55d7613d3bf2fcc696d292f47dad21361dbe8d255ab7757bc395abaae4fcacba", + "chksum_sha256": "b8cb07afb64bd3941ab053d5c5e1fc2eb116554692786ab3864f8367fbb3778e", + "format": 1 + }, + { + "name": "plugins/action/trustsec_sg_vn_mapping_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "74ff79ba7961ac4536852979f3fe570189c3cb33b70a408306581b6efce8e691", "format": 1 }, { "name": "plugins/action/node_deployment_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "58c048cec4d4f1f244137605d60a27c494aa193d3f13781a9fbddfda20a5db99", + "chksum_sha256": "6ee7a4e0b16503e6e2962e4a296fb8477bbec34a54ee01cde92f876784140597", "format": 1 }, { "name": "plugins/action/subscriber_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16469a8610935851ae04741fd71adc955a98359756b03e0084d0d3f5e285fb0a", + "chksum_sha256": "bab5542d237a2a0b7e2525f7574fbdab0e4bfe2e3554fb22b912a86bec5bd4f6", "format": 1 }, { "name": "plugins/action/pxgrid_failures_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7962c2045e6210f5febb237640f7f01547a953fb11e6442a0291d5061239349", + "chksum_sha256": "75b17986f17d8fac536b37d6277fc63220384a8c95cab02ba16fc75ad4a6b9f9", "format": 1 }, { "name": "plugins/action/network_access_global_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52fb7c5f93a202647ac8b09439393e99a0442b4be074194ef2aa8d422df7a72e", + "chksum_sha256": "a681a7ab605be6b1367942e77fc045e636a273ad9d4733d4934f33e2779368a8", "format": 1 }, { "name": "plugins/action/device_administration_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3278a1f4e11231dc4df15b6de5b54a1141008bf04802d9ddf965dd516fa0afd3", + "chksum_sha256": "a5783fa88fb75ff61997dc275f3bdd3add89df7300b472bb3e791bb41444443d", "format": 1 }, { "name": "plugins/action/pxgrid_security_group_acls_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f55ae36b728fddbb4152b495bb496725fd8f1e56aed353dfddca5d89b9dfac9e", + "chksum_sha256": "9ac05feba25e8e7689d07751923e569c1a80ec9431dee9cdfa28fdf8f92305cc", "format": 1 }, { "name": "plugins/action/guest_user_deny.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9341c445e56691abbee98190f112a79c938ced37ebb4c8ad5c9bc788d6c69f5f", + "chksum_sha256": "ad287a6bef105a2ef5d31316b31a90aa6f58e20b323e9ee1297534bede1e9d63", "format": 1 }, { "name": "plugins/action/admin_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf0d4570a1871a36dee60c90c9d152dc6012693df6efe8d367ead00ddd90e48d", + "chksum_sha256": "9b3dc97aad0a58b7c3159316507ea4221b98ae8262d4cf7814cb6ca972927a31", "format": 1 }, { "name": "plugins/action/endpoint_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "492e636e3f10e6a60399d5a9e714410bca46f9c13f7df1ed3870d4d7fdae44ff", + "chksum_sha256": "ebce91118e808fdced33e40054540822887d03235972b0facbae4d9ba384dc73", "format": 1 }, { "name": "plugins/action/threat_vulnerabilities_clear.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8235d926add067ecf8b6cab89fbace6e127bd4a1b01dd7c29700c06484abad06", + "chksum_sha256": "72dcd4b20d5fa4f2bf5bbe4cf986e192bd03997112c12cbe43776b85c549ac2b", "format": 1 }, { "name": "plugins/action/identity_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3fa884e91832b84541847850e92ff6760b3576fa53a432b331e4dcecb278ea86", + "chksum_sha256": "4a1faa49e121840e580095d18a2b0d8a5ff30265472229a7bedbf59c6ef0e8c5", + "format": 1 + }, + { + "name": "plugins/action/duo_mfa_testconnection.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f65d2bdb2ccf8f2ce89d50dd4ed1ec2cbb2ae13e82a373b0ead91d0aebae50a2", "format": 1 }, { "name": "plugins/action/network_access_dictionary_attribute_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d327a3b52d0235995e69c72af2c0deb12d46a116c8d89dc33bb2caa8e2298184", + "chksum_sha256": "2d4a57d5126356219e8ca1f0e413ecf361bd77f8b3dd4fe474b9fb84f4427706", "format": 1 }, { "name": "plugins/action/sxp_vpns_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2d57a86fdca49908d160a8da4a8a69e6b4173680111034b2772890880fab56c", + "chksum_sha256": "71263fe3b550fb446c6a80c3fec61f674dda8e4368a2f7aadd5a0c7d4fdff9d6", "format": 1 }, { "name": "plugins/action/network_access_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bdb109d68e3d2699c5991c4c8a090d81175010616ece761a5740e421be73ea13", + "chksum_sha256": "12264cfc5e755dbb71c9d896f910c1225cff5aa676ff2103ca8d63893e818b2e", + "format": 1 + }, + { + "name": "plugins/action/user_equipment_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "eb4d0e25e806cc5e2c066b438326b65a7205c4105f87890752cb21e709df630a", "format": 1 }, { "name": "plugins/action/certificate_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3740f776ae855110e2af32d04e91fff3709dfb8daa10e894dc5e28f75aad333c", + "chksum_sha256": "1d841388b7ef6be82f7c3fbbdab61d9bdd3b53dded4edc3cee25705b35c24975", "format": 1 }, { "name": "plugins/action/pxgrid_settings_auto_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c8809c6072c47aed001af0490373c4c1cb665959ce6e0196b0e9aaee6e53990", + "chksum_sha256": "5027e7c607587d0959f40e813505bed43c62690a0099de22ca4c150d4fcf9f31", "format": 1 }, { "name": "plugins/action/guest_location_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6c34b166c24c0a9d24b0e638fb4f6987a8f774b15be50627cf106128cf74915", + "chksum_sha256": "7722fbce450a9c04c5fba37031864480939ea498656d374a34fdb6708012a0bb", "format": 1 }, { "name": "plugins/action/native_supplicant_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e8ffc1fa4ba22956fcd6dc57b7fbfb8019515e2c19c7f0a8fdd64880333ddfda", + "chksum_sha256": "3dc014c1b44792244514097d83626d31a6e293a4b50c4e8bcad5f0b5eb5f4fd8", "format": 1 }, { "name": "plugins/action/device_administration_dictionary_attributes_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ae4e89b4dcbf281fe5d377f6817fd1afca83e40bf6494a0caf2210fcf3ad6d2", + "chksum_sha256": "f1aa9759ad6c0e1b9a2c631ce922e67f519374188492c8d12e3031a8907af9e4", "format": 1 }, { "name": "plugins/action/network_access_conditions_for_authentication_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd6fe7a8624953d683789be2ada4391c73d325c305530210e9161c4b8438e6fe", + "chksum_sha256": "f319ce7d8b51713456505b2c43ba909adb9b9544fec9e85df4878d067e3b5496", + "format": 1 + }, + { + "name": "plugins/action/ipsec_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "40121e3fb31fa04ca837123a8fb86cdfe1f59e6d220e845a2bd689448018aafe", "format": 1 }, { "name": "plugins/action/mnt_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8af439cf0c6a976e3b1cda03b2db9ce0c22c43925bbcad1133c9cfc15073aba", + "chksum_sha256": "e5c02e43a649432488b9dccd4d37298c8de5e5e97d9e12cbb3178eb2ab9de06a", "format": 1 }, { "name": "plugins/action/sponsor_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "891973ebfd794e3f4841c2f3ad38d5b4e2aef0e1d48fa2f1e1f76e8180f08eef", + "chksum_sha256": "a83bdf93b5ba5bf1903b3d0e5a874486349e1bd31a7c01200895bc0c555cb0b2", "format": 1 }, { "name": "plugins/action/device_administration_local_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2dbdf71eddcf95352dc2964af1fd12c4557f7b40d43d639ab4608882d6050a9b", + "chksum_sha256": "0b1c39e2553b049af64e5e01240448d348a156fa28be692add0b15021944294c", "format": 1 }, { "name": "plugins/action/system_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc4b608a73575c36fdaa8f1c7beedcc9dd121f1165e999acf4082e8b93e7dc18", + "chksum_sha256": "49941e9f3d87069c75b7bbcfd85ea647e23a2d00193aa2802f6bf2b2c38186b2", "format": 1 }, { "name": "plugins/action/pxgrid_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3093776a619d92a1d7dc5a43eed1862b576a52255a20da943b28d9555dfafbb", + "chksum_sha256": "ab5dbdefe42bb4ac5f7e9c516625db2ccbf19c62871264153f0679960f9b4ecc", + "format": 1 + }, + { + "name": "plugins/action/ipsec_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "af1cad8030c51882043f2f7c252f7ca74e18a36935cd8096a8bd337ea78826f9", "format": 1 }, { "name": "plugins/action/tacacs_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "513312a04d04fce8c9b5bba32561b70a3762eaa488df80163f4596fccd5ea9a9", + "chksum_sha256": "85b7a3f145ff2a89b7b51096df4f293b471cb4be1c325bb442118c3b65a88014", + "format": 1 + }, + { + "name": "plugins/action/trustsec_nbar_app_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8c1531dcb4e4609977610bda033f05e8f60af0962f296017b1b4fd727e0239d5", "format": 1 }, { "name": "plugins/action/tacacs_server_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d0fada35eb399f88fbbce525a5db969e10e8c19f1057b6c0d9f80b2e82903b59", + "chksum_sha256": "6a7e15499bddb79cf8126bd7a3b2de5b625ff7e735dc369ead610a438a571e25", "format": 1 }, { "name": "plugins/action/network_access_global_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "33690d3b6b97fd8bea631e080ed394827ebac5007ee7a4f0c57eaac4cb8b4310", + "chksum_sha256": "2cdb6222f63d019bc208af8bfe6508d8f95896222416c5185312f2afd83e5090", "format": 1 }, { "name": "plugins/action/mnt_session_profiler_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff290aa82f395e53dc32d479a40219dbda575545cc63312d40c6e6eab980e7b8", + "chksum_sha256": "658a8d44a3b93cfafb947c6b87dc49fca8b983f77bce894f97807338492e6fb7", + "format": 1 + }, + { + "name": "plugins/action/duo_mfa_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "71fb29724cc90453134274a7c21952318a26d119c89a12024fda69125c88a8fe", "format": 1 }, { "name": "plugins/action/external_radius_server_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "953cd1cdfa03ca919d8a730334e638c9337704107f9e3c0eaa1c689f27686dec", + "chksum_sha256": "e59a35fa1e1192a892c43fea891cf36de10c40cddc8cb995d3b691165e8ff204", + "format": 1 + }, + { + "name": "plugins/action/custom_attributes_rename.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f498342b060a57849d0f5e9475d5ae1402b75b1e5328ffaedecc4de9cac718b7", "format": 1 }, { "name": "plugins/action/session_service_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d0a5f020030946d7d60025b6e5e7629866019fdeaa14c62dfe8f8c92ed075438", + "chksum_sha256": "5145d72eb8d35c45d572b4d0a0c1415d45aafdc423da35ea556591991476562f", "format": 1 }, { "name": "plugins/action/network_access_global_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2ad4f96a0e00267a93cf134a1e1606bc3446c245ca04ba650a83525b20e2820", + "chksum_sha256": "2655515cfb1e80d5a99909bbba5632a30afd58cf534a9080be5d29e60cf8b4c8", + "format": 1 + }, + { + "name": "plugins/action/user_equipment_subscriber_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "49d7d5506aff2c129b6d57bef5aceeb8ac786895f9f95bed95672c0e00e820b5", "format": 1 }, { "name": "plugins/action/sxp_local_bindings_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "50d9d9adcaad9725c9ed0c80f9faeca32b0cce45ca365255bae21d599af60685", + "chksum_sha256": "72e50a3738b5b7e9444483f6995c53589f9cc0e6b5f7eb866afd1d2f1a7acc28", "format": 1 }, { "name": "plugins/action/pxgrid_performances_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd6e479403908fea8682b2ca17f98708fcda4fdce7d70380e9e5ed4e1f3c8416", + "chksum_sha256": "7f8b2f4a2f1ce2d4493a54c02c3a01c3d09ac0914455954c18297e616c86d350", "format": 1 }, { "name": "plugins/action/csr_generate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5f3e097ef6b174ace0776ea2d2829c0cf9a0b318942e42d54d51d096b72ffc6d", + "chksum_sha256": "3613c6b5d139b8371db30e91cae630c8990fdfece6fb4101f61c65dae83b4f2c", + "format": 1 + }, + { + "name": "plugins/action/duo_identitysync_sync_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a913aeefaaa32c10c51568e902cc0bd08b720572c387a88e702c63aa0ea098c5", "format": 1 }, { "name": "plugins/action/dataconnect_settings_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "767abf8104ce3772b9657a8a4be56f87c97dc33355572e59587f828d29c01770", + "chksum_sha256": "459e452436d6f386d4f19d614518ee7adc11bee010020e70941ceb4c4936a821", "format": 1 }, { "name": "plugins/action/pan_ha_update.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ee7ca29e528c5de211e91462f0a9f019f3cc06e61cdcf3fd6691b481b9562d3", + "chksum_sha256": "4f1c3981d89fd64dd8170304609b97c39972ba6804175cad43a7dc03cc42448e", "format": 1 }, { "name": "plugins/action/mnt_session_by_username_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5015521c73fb5adc5bc8039744a55f37eef160209b828adec9b002f3d9a0211b", + "chksum_sha256": "e6e29aef1ca8807fde2c480bdeadf9f40429f4e67e0edc55bafd94ebe5310405", + "format": 1 + }, + { + "name": "plugins/action/duo_identity_sync_status.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "02b9bb18dd136f7fcff904d8c848b00eceb48f0df86dc8376d2df6680d938199", + "format": 1 + }, + { + "name": "plugins/action/duo_identity_sync.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "416ab59ccec77137d046bac48fd17ac40062bc252160d998792468f73f4aab9a", + "format": 1 + }, + { + "name": "plugins/action/ipsec_enable_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1163b19b6a1d420764586e5e99295210cb396b1b1ab578b5b84f6e8856453d77", "format": 1 }, { "name": "plugins/action/network_access_time_date_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd6181558a6ab7b5e026b3ec098cedea9ba109d00ecf61e8b400c3d147698963", + "chksum_sha256": "41644a2deeae783330076fc9ba34989e4d6426c214e6e8fc8915c8834b9c2431", "format": 1 }, { "name": "plugins/action/device_administration_time_date_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7adf3188769d12e91f1a0c0832d8acfe994fad2f6196a081507adcb52221ae7", + "chksum_sha256": "7d16ee38cba9332789edb2dd14f5b7522a1a97287cc8ddaab55ce906a6868510", "format": 1 }, { "name": "plugins/action/byod_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59e40e852f601c9b982254a41f3f0b739bb39a009f4544617537f0404c939a18", + "chksum_sha256": "b0c0c073fe84d690b8ece4b07c8cf6923e3a4af912e4e934d6f91db7419e931d", "format": 1 }, { "name": "plugins/action/node_services_interfaces_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be2f02885115277c3851b16a7a67bb149f7d16656c9cfb19daab5a7850a3b9f3", + "chksum_sha256": "d236d7ed4f580dd1763d4e6e46ef52cc83a1c04034c0d07c8adb50ceb665b6d2", "format": 1 }, { "name": "plugins/action/pxgrid_endpoints_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24897493a3bc5736d92adf6e19c0f4ddf9f533344e062e5a65aad03153f324bf", + "chksum_sha256": "505de7df53fc9bbabbe6138537daafe41f22f3392a1b315c89d8a8d935aabb4a", "format": 1 }, { "name": "plugins/action/portal_theme_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "919ddea9316dd1b4e7fab48a8473ec866e0fa23f02583b559554162f810a0c51", + "chksum_sha256": "9b3e2354dddb639abd160bcad0bf8c31c4fc080779a0252210a7c83cd0c5d7b8", "format": 1 }, { "name": "plugins/action/guest_user_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a93dabf221402a365bd997f349a7da7133427e667f8ce8ca901b4918d9be2e5d", + "chksum_sha256": "b9e5cf77f37351e460f87af41f7bb14b8bf433e6ebc550841945ad7243e9116d", "format": 1 }, { "name": "plugins/action/pxgrid_session_for_recovery_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e1bf34ecf38817436326271284760afed434a45c003e5e9aafe9577b2bbece62", + "chksum_sha256": "32b0172ee1547a0499eb32bf340b30f90b6acd28afcdf7d5b02a08c6bad0e95e", "format": 1 }, { "name": "plugins/action/licensing_registration_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "328de7bf06b1bd5a47ebc97cd0979790e588c1c0d41522ba8249a9bb9eb06d13", + "chksum_sha256": "9824913ac61f9f2260d4fd918728bcc18991360390e415b418eaf6cc583b03a7", + "format": 1 + }, + { + "name": "plugins/action/stop_replication_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "19a1187bc04148eef2488ac63c7818f9a58454aea783d791a9076b787e349bbd", + "format": 1 + }, + { + "name": "plugins/action/trustsec_sg_vn_mapping_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6b8626cbb36ac1f667d42db48eda1c331c1ad1afa03c9c3613cb4857a041a85e", "format": 1 }, { "name": "plugins/action/tacacs_server_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "008f9abdadca0fb0e8bbb1109a6f070042b8329d4005b54f64c22057107953f8", + "chksum_sha256": "0e315f3c362a23c22ee91a415598d057d950aef3c37e138172c558a9e7611bb2", "format": 1 }, { "name": "plugins/action/sg_mapping_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b23dc598542aea533c99eacce9a84756cafaf372c951daac5c82ef8450adae9c", + "chksum_sha256": "42f75e1dc8001f6c9feb6bf8853c9ef08c7a832589cea213205b0a8b10976885", "format": 1 }, { "name": "plugins/action/dataconnect_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54c74d4796a53e5dcf6ddee6510b309ce8e2037f91eb6aa2929c394de2192ee4", + "chksum_sha256": "135ad8464c5485784b121ba38ec27b21f206a7fa22deb745c7ab8342eaaa93ad", "format": 1 }, { "name": "plugins/action/system_certificate_import.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fbd926c55f5d8c54ae2ecf10741b5c9fef2fb8290d549cdb6c0ed85de6715410", + "chksum_sha256": "c1c146c93ab6812c946b046f29938b1e4e80631f1516be20dc0b1b1c9e321b21", "format": 1 }, { "name": "plugins/action/mnt_failure_reasons_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6f50536e256d0f4e8bb52ef61754c0dd9d1540f864743ffa60e781e2648b3b22", + "chksum_sha256": "87738b6b641b717d01af9fcd88edbb573118baf7488fc5969d6e343088de437a", "format": 1 }, { "name": "plugins/action/transport_gateway_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c294b21def715ca2ae632ce6fa0b543c8023d292031ac3c1c2f762f21b8a6795", + "chksum_sha256": "bb095e45a24a1356c82390710bd0ca16c1000723d22c385c6ef99b2adb81b8b7", "format": 1 }, { "name": "plugins/action/network_access_network_condition_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1645fc6a8c79d2ad5e105db65ffe4ecb9fcd51d01d7e0f46a80ade0da0ac0ec7", + "chksum_sha256": "fd6579a75bb2c494578796730af6582a66de23bf3202589f20759678d8fdfecb", "format": 1 }, { "name": "plugins/action/device_administration_authentication_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c93ef8fc9e50d073a8c5c6f47f6eae589b6e32462f27d950cdbf16928f953005", + "chksum_sha256": "d901cd1dd85ce95dee607e0b2937527596b63128b74ac88f35047f4ea540abeb", + "format": 1 + }, + { + "name": "plugins/action/user_equipment.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "658f7de30108028f421ad1d3d1d868d510d715b1f93c40c5276dc0a67a8a4ff7", + "format": 1 + }, + { + "name": "plugins/action/trustsec_sg_vn_mapping.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b5c35fedc2499b31c3a9ff40ecf551b5676d1b7ef3ea9847f3422c6d244ef47c", "format": 1 }, { "name": "plugins/action/backup_schedule_config_update.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "12aeba065f115bb76b595e14eddc280626a0a01e72ba4e2e36967da33ab7fbf7", + "chksum_sha256": "118f468450a435540ab33419e5752b26fe12685abc32a0a607a7f725e252dfa2", "format": 1 }, { "name": "plugins/action/network_access_authentication_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e7b8a6fa1ea028935242cd364d7f34397e63d5ad1eadacfd98bdfc4af61bc84", + "chksum_sha256": "942eae4a9089efdb004e53f7960eaebfb83e6605ad5453929047e16a55774bdd", "format": 1 }, { "name": "plugins/action/anc_endpoint_apply.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "81bec6614af12f67e56d58d807857ee1b4889a38321a247fed7fc93f70e88b1b", + "chksum_sha256": "ede7c08b13c27370a3c17d827cb973efcc73b17ccb19c02f25242f274de91a3a", "format": 1 }, { "name": "plugins/action/endpoint_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5f3977aa95a7424a7b43f346c90e2af3205df338391b9ce12b454077d5a43497", + "chksum_sha256": "5f47ff9b112ec0d673aa6bd6743ecd5922cb62d3d4538b66ba225e1221fbcd2f", "format": 1 }, { "name": "plugins/action/guest_type_email.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "236988cebd9fc7912726d597a884cd6e2c120a27c56e4845aefcdc0a4b3014c2", + "chksum_sha256": "5d736aeeb528b30bee803631be62f935d392059ba44e415a3319424922640de8", + "format": 1 + }, + { + "name": "plugins/action/duo_identity_sync_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "deaad4ac1d69a799c51965e2814c37bfba38d2bcbcff4c4cd254c2498163a08d", "format": 1 }, { "name": "plugins/action/rest_id_store.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3da2434a0c5bfe546c46cd039174d8377690efe131403da72df075285d98a2d9", + "chksum_sha256": "4937cca746d107f00c11f03bc119d4db14139708abf41eeeee4b7dd2dff73b2a", "format": 1 }, { "name": "plugins/action/licensing_registration_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9fde6f7ea5be674349cfdeb4ee6c002c71ffa777ccf50ebe26e881368a270dd5", + "chksum_sha256": "b71bcf6c47a5ecb972417588410624f790569185490a4f036bc7f4f283175e6b", "format": 1 }, { "name": "plugins/action/my_device_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "486f298e42a584033cd03593b32b24f27ad192e8963156c7c09198056517d9d9", + "chksum_sha256": "b2be21207cf94dcb81b9e102f45ca0ca0545bdfb5cc36a3d33ed204ff81be663", "format": 1 }, { "name": "plugins/action/network_access_authorization_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6afbc0c55506af063a3a29ef7b2ab07640811656d02cbb77d843469e5a7a7b5d", + "chksum_sha256": "bdebaa94f2fb6578d5ddfaf7b2cce124c595fc570d9ac41d48db1f3ddae16d79", "format": 1 }, { "name": "plugins/action/pxgrid_egress_matrices_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c328babbe6b06d9bc574418235371cf56518d824e2bae38c57e9c9189ac125e", + "chksum_sha256": "69583b01cf001f1335d1fa1a242fc0d55784f8596e89aa60c39ef2706ef0e032", "format": 1 }, { "name": "plugins/action/active_directory_join_domain.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc11558964b4f2c0eb0e4a09d7667ea21234e1163aab3cac0f9e458ecfafe2b7", + "chksum_sha256": "6ce0a8e1af758625958be9555d26d60fd33a9480cb57c20461f055220a1cc041", "format": 1 }, { "name": "plugins/action/device_administration_conditions_for_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "62451a4dfff28303d406124c1682823258db90ce1f427ebccf019f6fb54a0d99", + "chksum_sha256": "07db1ee2d4c25e9efb9447de80c725bbe4587368ecf8c443d7ac90fc6e09dbe3", "format": 1 }, { "name": "plugins/action/mnt_session_reauthentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f921ac8a4958de2f80bcc09f2094fadc3ebfcafa264d6b72a8e5954667cd66ca", + "chksum_sha256": "a63a695162d8e6367a1384cf42c0c9f626102476095de501d21651b00496a67e", "format": 1 }, { "name": "plugins/action/support_bundle.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61aa1b6e7e2edb49ac7d1366c2cad08e9c6515c83d97366074b4aa398722881f", + "chksum_sha256": "a668e1d019e1ec843bb34b4b8d083027e55a3c09193ba94b426421233472655f", "format": 1 }, { "name": "plugins/action/device_administration_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54e51a7b9bd46c33ebc3d3c77ed0fa037fb354ef5c9c54df0811b34c1c16c760", + "chksum_sha256": "e0fc78f346a8d56b06dcd74e3795d04138bf691feb82c7e374f3298c71927af3", "format": 1 }, { "name": "plugins/action/subscriber.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "029e75c9c59feedc8a1dbb5bf26e453f5728b2100bc92587708ac63a40e57bbb", + "chksum_sha256": "f628bbd70db236c45167acb19e71e6e192eb3b9755de08d4eb4606f27464d420", "format": 1 }, { "name": "plugins/action/pxgrid_endpoints_by_os_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f5eb537d596fac3fb45f1934b4bfb46c05499216fac5f119315f479f4ed005c6", + "chksum_sha256": "4758580f7e5a64644b0ec991c711e94a1b3acbcfdbac4b65d800abfde6a14a2b", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d07149ede80bcb613244811e3809d73c9ef5f3bfb7e5d77124195702aecc4881", + "chksum_sha256": "47f885327398492e8b59e0514efe822baf4e1399cf095c2261a76046b73b9850", + "format": 1 + }, + { + "name": "plugins/action/upgrade_stage_start_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "62b0a8930f7335d69a2761021b31346b6d14f7d18d90fbb938ba21a806b2f1a4", "format": 1 }, { "name": "plugins/action/node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c18e0f918c1234a162ee6cffe9b6ddbd559f07fa1fbe8f3cb278270be66847f6", + "chksum_sha256": "03d5838168f4341e94a074c90d541fb76457eb17a1605a19b00315120f980520", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_vlan_mapping_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c9a3313e12028defd1d8037421747a28a5f7f33b2583d278508a8067102362be", "format": 1 }, { "name": "plugins/action/licensing_smart_state_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85b7566a0d12c964623facff701541483b4e555feba429f9252c836b0f5f0dfc", + "chksum_sha256": "87852fb6d40c288685e5dda1f9cdb3a897e5aa139240e92e5c6b9509739f69bf", "format": 1 }, { "name": "plugins/action/sxp_connections_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef75c7b7cb3547f7bb3b4026b7cb0f91b69378bf75c480a7eb9f102134051e56", + "chksum_sha256": "0f4e8cd24b1806fb1339c8c02df52d846221437ed971c38d11f5b0147408e171", "format": 1 }, { @@ -963,1771 +1145,2051 @@ "name": "plugins/action/guest_user_sms.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d5d01f13a01ae7498cc7f4b6fa838e502368322cec7683b0feb3238ef6cccb2e", + "chksum_sha256": "a9a04070720a5b532975c194c6aab7cd2ee6f85f59b2c7e875e7360858b59cee", "format": 1 }, { "name": "plugins/action/pxgrid_user_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c12083f264581005534005b21c392dbdde0172c9e395bec849ee63dc3721550", + "chksum_sha256": "7de87e9be438b0b67ab5dbb346b62906961ebce69a228643e11e49a47cfebb2d", "format": 1 }, { "name": "plugins/action/pxgrid_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e30fb1331d33b09bbba2cdd041effabeb47ccf5071acd403a840676e9dc101ab", + "chksum_sha256": "8778b5c586a6b3740fe909c48909cd8d4469bade161061caa8d709df4ac2ec7f", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_vlan_mapping_bulk_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1968ba582863c958f17469a832661d0ddef0ac77d4f038c57936faab5978c0b8", "format": 1 }, { "name": "plugins/action/licensing_eval_license_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "137f8a9a10d2e8b99ca9fdc8259fd84d2028b90b10e6e2d8bb6b352b8124bac6", + "chksum_sha256": "1ed3dc405c9ee87e1a79815e9faa973007726f6f8137cb491c90f97b2481a6ce", "format": 1 }, { "name": "plugins/action/guest_user_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "77ca503988a06be7b97fec0316a8e146441a7b54ee1cddbf636f226e3b7cecb0", + "chksum_sha256": "4080f239c92775b9f7a009570df764ccc654ab2647bb0f03f48fa96ba85b89da", + "format": 1 + }, + { + "name": "plugins/action/endpoints_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1eb7a0b67a086b26de08a772cbaa8996a022bf26002c36868ce7170d97cf736", "format": 1 }, { "name": "plugins/action/node_services_sxp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ced864beb7f33934d3f24afddff8bb59133f4b5d1ee451bd7b3808e7beee2f4d", + "chksum_sha256": "9c4d84e6debad53a1715cbe9296ee4da2651f302969dab83459d2cd96ae21b59", "format": 1 }, { "name": "plugins/action/sg_mapping_group_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96763934d6763639d6eda043dea775fa0cd20fa014806a651377a1b0a7c3febb", + "chksum_sha256": "aad7d35674765a27a9e7c6d428486ebb7067ebcbe48aa0ff807c3a5116cad3f4", + "format": 1 + }, + { + "name": "plugins/action/upgrade_proceed.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7bfc89066dd3553e09de1cebdea398ea7c127db8c065a809261e8f1e90100b53", "format": 1 }, { "name": "plugins/action/network_access_conditions_for_authorization_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b800eded78302c6a06bc05e2a809c6f12100019368d5afa88c57a399e1bbe4a0", + "chksum_sha256": "4dd486cd8cd95f07f3cbbdb29fc88f2a67a6ac104da660b300203aff773f428c", "format": 1 }, { "name": "plugins/action/network_access_identity_stores_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "377bb02c2049a6041aa3799a19ac58e1cb78af59596b2f3b9655a3599ab766e5", + "chksum_sha256": "74943440409ab2b0405a7bdee42d58576528d3b52761c8853608ac04f9f2178f", "format": 1 }, { "name": "plugins/action/pxgrid_account_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0473093397a4c16cfec4c63349dfee71b640b24e850a146e67d5060d292c20e1", + "chksum_sha256": "abb8b038fe8fa42ea0c3249f77435535619da31321cb9fb6cad2c5652a94d3cc", "format": 1 }, { "name": "plugins/action/pxgrid_access_secret.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec11c17ea9a18f7d4cc7ad14e0e9c610ffe1f65da35b2b749b1cc42858664014", + "chksum_sha256": "cc82a60bd082d23542db0a261c6f7d29f23c6729bb3997c833eb1564b8ca49b7", "format": 1 }, { "name": "plugins/action/personas_check_standalone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7ac40aebabdc8ad0861b2fd777eb42d02d46f86d2bcc6c11555c430c638a3c5", + "chksum_sha256": "648402929285735fe1c76f366bca26b040f7f7652d641061a00ecd594e873d96", "format": 1 }, { "name": "plugins/action/device_administration_authentication_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4dfaeb4ab84310cd5b4bb002ec4238247262fed038d4c4b5b8dcec53182f9eae", + "chksum_sha256": "addfddb289ae1e8540c8afb30c3c23c9aaf3f2141317dbcf6c89c20e609470a1", "format": 1 }, { "name": "plugins/action/active_directory_is_user_member_of_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ad5b9aac210f4f2a63a336bcdceb77d9dadfa369096e1afb982ad18f7688d181", + "chksum_sha256": "67d55446e1ab6e467bb0b2349052a000be1108d393aeb72d93d3121bf6e2b366", "format": 1 }, { "name": "plugins/action/sms_provider_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6604538f4e954ee42b51cba53bbdee8292f7dcce1287ec95ebc34dc55c65714", + "chksum_sha256": "986e95384a1b500e8d851553593d14c22eab2ca4b14c6c5030bef8b4544fe868", "format": 1 }, { "name": "plugins/action/sxp_local_bindings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3a1c1c6a03b8a85a8d2a03c825e97a85093bc023f222e122223db3572881734", + "chksum_sha256": "55e8a07292ca09f5cbdf33c724b3c88aa6ce4d043480c18a902c982b657a05b3", "format": 1 }, { "name": "plugins/action/aci_test_connectivity.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65be27b52efa48cbdcce9102991394c06e1bb96416262228084045c0e9550f4f", + "chksum_sha256": "21f4106f8e580fc5b28c7816ae4a235e569c488b821a20ac6be2e4d1eed76214", + "format": 1 + }, + { + "name": "plugins/action/upgrade_proceed_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "009296d074e18f962aed9f6c1164568ac482cea93be39371130d0573bddaa4b7", "format": 1 }, { "name": "plugins/action/device_administration_identity_stores_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "db6b95a00401320d47f853d7d6f736a98dca9d63a408dbe062bff492d0b67932", + "chksum_sha256": "58ce0eb794a10e5f269ce6a028cdd6aac9c761ad2d27fe2b01ca6fa55f13ff35", "format": 1 }, { "name": "plugins/action/id_store_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51f0a679ed4baa143507d3fecd75156800061106d552b21e2480fb317d479cb1", + "chksum_sha256": "208d2fefe6f32cd3a44217bc8995f19083704feb6c699ca445beb153df3a3e57", "format": 1 }, { "name": "plugins/action/sg_acl_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4189580510d2efe03ed31822f9e374c8da18cae6dd556f8d928865e89a8cd346", + "chksum_sha256": "1e798dd9aabe1cfa55bac7e2aade7937d6bf0afa134a40268fd60a45d9329d55", "format": 1 }, { "name": "plugins/action/pxgrid_egress_policies_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "06aed10db4eea3997a4cbc3bb144d19ef3791ca06997268518037a75367421f0", + "chksum_sha256": "3191020f82ce67ad277c7b6b52afaa33b91c0ec045e289255af332b569546ac0", "format": 1 }, { "name": "plugins/action/anc_endpoint_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97bc52a139f913d6aa117f719bd2d4bcbe6e7ad2b18ced3a2394c7712a6cd2eb", + "chksum_sha256": "7cbcf540883eacb0c870644890bc93f27ee8a3daba74b295a028052d6fb8c6d3", "format": 1 }, { "name": "plugins/action/guest_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e658c24410a6a0b9c412f69da7491047caadf7c5ac7c89bdff162fb6699adc54", + "chksum_sha256": "fdd828f6a53af0da89e2163738635ba621e2f0f85d1933c1c95e1b24c851fa9e", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_vlan_mapping.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ec0c4de4fc33b86f10c9064dc67772b0253e43e590551675e490d6e8cae7f240", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_vlan_mapping_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5a0708ee8060548538a92445cf68155918fe0dbfbb8692378a1647732b10ba30", "format": 1 }, { "name": "plugins/action/sponsor_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6f12ca65af1120e9637bb107e9a075a55b915e11b352f9faf682b47ec22b43c", + "chksum_sha256": "7f71b8ce19994b57822f6f1cc96c29cabd9c1b4a4ab84d494c5b900321305477", "format": 1 }, { "name": "plugins/action/system_certificate_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a86f6e4c18d57b01d705f6e93dca4b640e30d9255589e4f53cbf629328a09f9f", + "chksum_sha256": "6b94bce023f557413eb8c5bf4c2ace8313ef8b30de1fa9cada49f66c6f4375f4", "format": 1 }, { "name": "plugins/action/network_access_dictionary_attributes_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc87569f66316141c43c549a768e4cb64b5235197b297d9407acadff604ec7a4", + "chksum_sha256": "36b77071d7941ab0cdad7d30aef544fb09ed8346e15f239e6bc2e5505330bc8b", "format": 1 }, { "name": "plugins/action/px_grid_node_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4691ab3f8b78cc6f03511232876dabce7890a98b144dbee8c405b6081cc76785", + "chksum_sha256": "43fabd816b62ef1cc8861ab0c6f2833ac8b9c14592378311f754706633192a67", "format": 1 }, { "name": "plugins/action/device_administration_global_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "71f7f337b4f2e125fcadcb5edb8ba618a8e121ccf35abd7e8813cda903073205", + "chksum_sha256": "a02b6de4b11bc5d003a7dfaa40c610eb349afed1df4df8b4ffebc5e4cfa58100", "format": 1 }, { "name": "plugins/action/sg_acl_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f115fdf62481647f4eeceed207e437fae9327c42c72051f4a564d00b3e8d64e9", + "chksum_sha256": "fe71751cb69e064ef6ce445f69cc1c51a6cabae5218072a8ae3e9b8019ed5466", "format": 1 }, { "name": "plugins/action/hotpatch_install.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "841a5f1484910ab249e2d67a0327931bf83d40cb27aadc4e7883fb6d1b558eaf", + "chksum_sha256": "d5c60e4b9971e65f517f0f178b6e219b4b7fe3832fb01363db4cb77f51fdda74", "format": 1 }, { "name": "plugins/action/active_directory_user_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "32f96d8ffe0cfdc346f6b21416fd17cceef2e826934e20630f7d6ad97725f15d", + "chksum_sha256": "aaaad9669db6a42a656fe15e87006b8db335a1e930bbe3505cdec10bd73beff4", "format": 1 }, { "name": "plugins/action/pxgrid_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2f5ad212cbaa6145289d836b0cf4c9c550ae2945526a744785deb32b0ed3bde", + "chksum_sha256": "2cd5eece8549d0bf1428c8ae8d6ed948f5a03cfcb9e2e97c58eb9a7edd028486", "format": 1 }, { "name": "plugins/action/personas_register_node.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08ebf1dcb40cadfe6b938a7622443bca291a46a5b3bbc7e2c8be1566dc63a0e7", + "chksum_sha256": "f0d104340c2f26f68794410613ed9877477a3ee5b366ebfe77f21d9aaa46e2e4", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "aa32b01dac813559b6365d95aad350196f466e3a737bd503a7958149b49573cc", "format": 1 }, { "name": "plugins/action/backup_last_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2cf3b261fce8a2feee6636bae3d3a9d4a5ddede52754001aaad55de0a161f526", + "chksum_sha256": "e79188112d82ca5e120670d6f77b89e9c337d42a065f1e7fbf867f5d035dfab7", "format": 1 }, { "name": "plugins/action/deployment_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ea06557d917f1d5b20eaccf8430bf164fb025f785049042854205811539d3d2e", + "chksum_sha256": "51be649203f8669decac7aabb114468d09abbd5088382b6e6d57652b89e25d02", "format": 1 }, { "name": "plugins/action/sponsor_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2dc4f5e84b3b4e897fc70bde7ccfca13055191a39d8f66c00fcdff5da6b91ea", + "chksum_sha256": "a4b8be4ec35e3fee83eee4814b8c90bef11752d2a9abbe0fb34710eb9fe17225", + "format": 1 + }, + { + "name": "plugins/action/duo_identity_sync_cancel_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "517b8d935b6c7dd3e6188b5d99fbd7817dcba4ca427ed7666d6647564a9bd4b2", "format": 1 }, { "name": "plugins/action/csr_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07c019bced417d3dbb0a491d5f21a23b69a41a0078c672e871e51a72eb24d0eb", + "chksum_sha256": "af84064d676e0a13624c5c5a2214fe4e2c5e6fce5c1fb009c01b4bad295ddb58", "format": 1 }, { "name": "plugins/action/personas_promote_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "281be6dd4a9d2ef171ad7451f32e782b6a9682588244a5fd9c870ad15d3f2b80", + "chksum_sha256": "e1bcee6c4e5e6820e27e11f848380138fcb6ae23ef81c5d43175d999b822015a", + "format": 1 + }, + { + "name": "plugins/action/ipsec.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1019bb6c2b251598f0bf735f586a435723664dcf7cb3929f26d8d4a2754b5c86", "format": 1 }, { "name": "plugins/action/pxgrid_session_by_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b6fd8d5212751802f62b7bc385be8c971ebeec299919368184382b2cce8e6b5", + "chksum_sha256": "7badadf5fbf2c85d5c4faf43bf0798f515b67616ae6f8e9068ac328b2730ef41", "format": 1 }, { "name": "plugins/action/node_replication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b14f04fc660905c91d132e4893292394f10c04c8cf9aaa8bcc1af06ef9db4c55", + "chksum_sha256": "24038dd7603a167ad22cbf14e4da6bfcbdcd8611619026ddbc590d2eac1d06b1", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97e517bc059ba29cb31b96a35970bd2ebc79e2df113118f05f80e75086c86d9e", + "chksum_sha256": "1ef155efe5fd75c40688536a8407ee2929371a119e3be48848e7e494025dd0b5", "format": 1 }, { "name": "plugins/action/guest_smtp_notification_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3aaafebb630ff8b6039da968413e8e3a218965d30740a62e25ad14db9d6a6063", + "chksum_sha256": "8bb41eecf7408831483247d4a62d9ba3fcb9447026c19eb09efb5197d2966c91", "format": 1 }, { "name": "plugins/action/node_standalone_to_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "883c2bea469a9a8ee73608d94aa033e31e154704347caac07130b04b9483dd7d", + "chksum_sha256": "97fae9ea0d32b489cd92f1e22a0802c0611b9d47133d4e09b00b5ab755cb23bb", "format": 1 }, { "name": "plugins/action/endpoint_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2b2e8da191845dfd03ac61e1bb249c8db96a51661fa58c9b7ad5da71a2b4df1", + "chksum_sha256": "7888102dc8f7c6c625efd7844154e63814549b4f24f6c644a25370c229006b2a", "format": 1 }, { "name": "plugins/action/sg_mapping_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4fe01960c8bd83eb0f06c81dd5f447374fc61ad4cd6d48a721575d0693c5adb0", + "chksum_sha256": "0b40e296d6bde384cda1fb2796c8f48dfb277d16371dd0e321bc19d4426f536a", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_set_all_status.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "882027e49f14f3731ddd1ee4368fe1bf8d43185c018f7b4029c14526d13f6504", + "chksum_sha256": "833be63abcd92dd09b697dd05473d58099b9d7a29dae5d05061ecfccc4144596", "format": 1 }, { "name": "plugins/action/pxgrid_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "527031a4bb8825baafb40a2316c6f5667e2938d46c98fcda310666822b8b59f5", + "chksum_sha256": "7caa0ca7d19c6f6afdbd71b271b9c0a03b3fd963df482e6b8b90fc421cd40c45", "format": 1 }, { "name": "plugins/action/sg_to_vn_to_vlan_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "707e4e97807c6ad12c5025c3ec05fd1380f68a8439cf147b37e8556790ea05ab", + "chksum_sha256": "c5bcabcf3f1ee6e7afde1f1b1df57cb9ede100962e90d715e2530926b4fba28c", "format": 1 }, { "name": "plugins/action/trusted_certificate_import.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c24c7c5d3c6e64ae2fa866b2dba44c919b3122296032b4a08bcab99f34cbc15e", + "chksum_sha256": "3a527f6dc0dc792b35d5cee2bf9d10be14d4c9567ae5a425e1d5f437bd852161", "format": 1 }, { "name": "plugins/action/network_access_network_condition.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "906dda5e785d909b4a00a8d1691be6d4e60e132dd89f14a8a2502d62777c2f6a", + "chksum_sha256": "1ec607570f8179d31c5a87e7478d1904c1538a3a7654de26fd6783826c01ed00", "format": 1 }, { "name": "plugins/action/device_administration_authorization_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e83b48036a3a794e48993214700fb9ec5946ead5e127b523a403d13cffa8093d", + "chksum_sha256": "ffa716aec1ff60059d5e75e9ee891a402ca6cf59199e5690e56a77a0048b162b", "format": 1 }, { "name": "plugins/action/backup_schedule_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9771efa4438fc058f6ca3026e7565e4e3ebb7b35ca83d0e8186f4c9fdf40e8c9", + "chksum_sha256": "d1a66c9e1ed6a3fc65e1e63b94a90405ebc621b2d69b5a303c65943cb31bbacd", "format": 1 }, { "name": "plugins/action/pxgrid_session_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8586b78a6585d526d3d660592c98f6f4c53201c047a040396dd07f0f4bf49860", + "chksum_sha256": "a4438204bf65d872dde9cbfc4fb671f44e827be4b0bedd6c296c258777bce17a", "format": 1 }, { "name": "plugins/action/network_access_local_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21c2f6057be6e3e1da5195f37d7fc15898ad043baf50893163c58d406c2bf617", + "chksum_sha256": "b9d3f568b45babc52c2aac233e7a3f6acf5647252932aa0dbf179058452836cb", "format": 1 }, { "name": "plugins/action/sg_mapping_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0428b5b353f7c58c7d41f8051ff0bc836cf9888be9034084c3be2e61d4b37115", + "chksum_sha256": "35490e5f76dd72b112b0e4bdaeb95bfee8d93b2c7ec80764d0aad0f962e93276", "format": 1 }, { "name": "plugins/action/network_access_security_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6d5e12d17071818146bacbab7acd3ef3cb5172c949ebbeb36e1553d826ec60f6", + "chksum_sha256": "f04850aa85790a2ae4131164f81cc60548f62af9ea958a2996ebcbd6a37f41c1", "format": 1 }, { "name": "plugins/action/device_administration_global_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0add95d4a29e2e7dbee7367adfd57a3832962261ef5941b59c239938942eced0", + "chksum_sha256": "0784b8498f68672218c1bef5214bebea3949e1311469c3d6d8747fa799f1354a", "format": 1 }, { "name": "plugins/action/device_administration_network_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7be2ed7ba81700afed9ebd90249dec20fb76324623b6fa695a619e8c92283995", + "chksum_sha256": "74870b8df8fc343cdb26687e04d0947a1dafecefef185715a587119f2cebf513", "format": 1 }, { "name": "plugins/action/network_access_dictionary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "221b6b7ea9290a11dd2725fb9bb9812e83b676ded45fe30a7d02d084d108f0a2", + "chksum_sha256": "266672eebdb36359f80fa15229b428186947188814572996414b090dc601202f", "format": 1 }, { "name": "plugins/action/sponsored_guest_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6777bb2489b7264db145ebca7e71faea0bbb38c89fc8f7b932849a9923e2e1fb", + "chksum_sha256": "082b7102bfa4d0e0155f39bb04e5731947630cc76b6098bf09dacca392c2ee0b", "format": 1 }, { "name": "plugins/action/node_group_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ba71e78e750e8d7a418da1d02aa6ebab1db9b8e59d4b7eba3e8c4c96ad6ea98", + "chksum_sha256": "7151f2931deb33b8d6853969402c7c8a7ebf6dd4091d83593d02f9a4bd918b62", "format": 1 }, { "name": "plugins/action/sg_mapping_group_deploy_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "540642fb0b7ba1f346b6fad72b7b59560d74bb6eb30a277956937539544f19c5", + "chksum_sha256": "846060e545a0ca748c0595471f6be952cba61fda60feec8f95c16ba587527ec2", "format": 1 }, { "name": "plugins/action/mnt_session_disconnect_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc6285c85c08a28fe20a13e5dedb554f1348a4b7ab8ba757b69731b5e8e38c6c", + "chksum_sha256": "ea98b6dbf3f3062f067566d18532afb77a584551e8a10b857916f36cfb154a04", + "format": 1 + }, + { + "name": "plugins/action/px_grid_direct_test_connector.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fdef71a2b4f2dd3e2be341c047a0290781981e5d8968e6f9c81bec1cfd059314", "format": 1 }, { "name": "plugins/action/mnt_session_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9aeb743e09eed3a6581247a9b833173d98496657ec4c94d940581b26ced16073", + "chksum_sha256": "7aee5b2a5f243d908fa461fcbb9af1779fd5e84b3dc309962b62bf64ffd2a1f3", "format": 1 }, { "name": "plugins/action/aci_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "86a3e778c6ec172ca6c168a8ed2ccf82b52e799d0f8f70362497e1ebb91a46d7", + "chksum_sha256": "be0f9765feb99857f77b3040ee4948c53244fcd34d8eac37995c6169af6323e0", "format": 1 }, { "name": "plugins/action/network_access_dictionary_attribute.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "27b81df2fae2aa6b55748d830277a32448407f876ae775bb5990a4024d00c0f2", + "chksum_sha256": "cfee13f4c9c74ad7d03735660b146957fbfa8bc7c1f834d8256653289c80166c", "format": 1 }, { "name": "plugins/action/node_sync.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cfc559303f3c3fb60705520b7addf8d7d3e071b495d0061bb363ec1b52cb499c", + "chksum_sha256": "ad9091f497a7025793779008c8fd5ad9d07349dfe7aa70f54b2bd242631bdb08", "format": 1 }, { "name": "plugins/action/endpoint_get_rejected_endpoints_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "256e6b53e158da430e1431d91d1246325841ee051f8031ab5400da13918d0895", + "chksum_sha256": "edf3988f5dbdd14c543534432161170a8d679686e0c147b3597741ec89e3d15e", "format": 1 }, { "name": "plugins/action/anc_endpoint_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91e3840214cdf1060d68ff1b8d1fa7161ad9cf069fdb8e2db66a7c6ece0724d0", + "chksum_sha256": "f622fe386ac75330949a9b906d59a33900615385290e0634702242057ecee730", "format": 1 }, { "name": "plugins/action/licensing_feature_to_tier_mapping_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "572c20cf0d0344c229782242746ce74395c1a7da4605d64710a2e5a6b67f621f", + "chksum_sha256": "54b1d130d09dec22e36bbfdb16eab725c8a6cfd370ddf5045d715874974b5e00", "format": 1 }, { "name": "plugins/action/mnt_session_by_nas_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "93c3de9ea05824196621a61171799460b5421c9665804b510ca57ca18a40848a", + "chksum_sha256": "889bef482098ac03c5862c560debd02df2b0f70e9dab2d55cace1d79cc68affb", "format": 1 }, { "name": "plugins/action/node_promotion.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c63bf3f57c7b454f0e5402b10242bf9d43c97bc3037acc17d453af951588399", + "chksum_sha256": "78eb8e20158d00a5943bbcab095270188e92692bfacb20f7ffe5502cc03208aa", "format": 1 }, { "name": "plugins/action/tacacs_command_sets.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72af3001ae07c29fcd5047dacab10b951adec4671ed8f7c05a66a3bd2f5357fc", + "chksum_sha256": "f45ca03694a51b313cbf650815e93ecdf10eea0ac34974f531e4f6444b036838", "format": 1 }, { "name": "plugins/action/pxgrid_service_register.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4022f3eb7ba4072470203b32335368029258b9212232a7c1b6475a20162d6513", + "chksum_sha256": "e374edeeb197fe9cc271ef4b254adcd02eab120f27bcebe781cc9018b4157b28", "format": 1 }, { "name": "plugins/action/guest_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2923717e24bb2a7ce68f57b9ec4ca27fe7970828ebd1f574198ac360c5ac9a60", + "chksum_sha256": "be161be43110b9582f94d566c81b956057a98c61300328bed2778e694bd1c865", "format": 1 }, { "name": "plugins/action/network_device_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3e76bb2bdd57a5eecfe5e474893ed9779cc75701730ebc535c7a5dcefff64a7c", + "chksum_sha256": "4ab1234be64034288363f3c759c4477a16b64d45739f392b46934b583749036e", "format": 1 }, { "name": "plugins/action/tacacs_external_servers.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29a052208e91750d6af08c02ec9e99adf443b67483594476ca8f6dfce7bed187", + "chksum_sha256": "5e489be45ed467ed3b154f147d7be91f6fcf52a4fd41ec54d7eb5a65a766dd83", "format": 1 }, { "name": "plugins/action/proxy_connection_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f7cbf945362417e0c925734beee7fb9eac9b95dd769bb12b259542c9e45032a", + "chksum_sha256": "2413821585156bbed02be9d53ebca97d12341ab455712d9373264d49d885de20", "format": 1 }, { "name": "plugins/action/pan_ha.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f53de4b2401c1419684a71ac3260e3ee4c281a36440241b282dfb92c25db9d4e", + "chksum_sha256": "a9f8f280286ef85d7d12ca7fd61a9051ecaa9da11f4854b8fff0860b6177d699", "format": 1 }, { "name": "plugins/action/system_certificate_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a38c7b7300b2d94976e6f08981a35a176ebd6d88720f50f68957f2d02b28470", + "chksum_sha256": "789eb23fcd2058b31bd565e0a5b8768c00f7ff7fcbf1034c4a0be4a67aa6e5dd", "format": 1 }, { "name": "plugins/action/telemetry_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a279a32f12c8c0b3cbd275117680db81d9a840da39d04ab4007c7392a27d2a45", + "chksum_sha256": "c2768a2651548fa283b2c69a6f4600eba030ab2c85f4b937775e1168cefeb441", + "format": 1 + }, + { + "name": "plugins/action/endpoints_device_type_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1911ba757a9a82f4c09239d50ea88ac29e8df970743541a10f501e2b4d2148da", "format": 1 }, { "name": "plugins/action/sg_mapping_deploy_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2968da05a6c25bfd6412f3f8f68b8f60b41339c778d2442c07d79c302363d84", + "chksum_sha256": "3f53602bbe6f3642937824a7883f1a546f2c8cfbf26e5c0f3f688e18dac8c72a", "format": 1 }, { "name": "plugins/action/endpoint.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "671c3a0bc9391b9e07fa36e0246643c6274cac6c46ff5ffdc5947ffbcff717dd", + "chksum_sha256": "7efd23867a5ec8cf7a923c4c591f940e92460dd2d6a1ead06ce7afb4c95d18a9", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_clear_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff35387092b1c28f8aabc8a7aad21fc03c17b1132675f52b440d35547bc22457", + "chksum_sha256": "550692b395681cab66c388ce1878439b022b80d12ade34027af767e52911face", "format": 1 }, { "name": "plugins/action/endpoint_deregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb168d3628a38dadd7c34752450a11343d1e2488c6a2fa4963a4fefd3d8ce770", + "chksum_sha256": "894f7d877ecbda2cf62aa444c94b86ec1317449e6c587749509d553dfa883fe2", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "964b4fca7e52904a55f72a3ac0b9fc22814a202a1518e83dce36c81157289530", "format": 1 }, { "name": "plugins/action/node_group_node_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "32bdea5ee6789f79786936dd973f6bceca43122272e6ba246d46b8b8ec96125e", + "chksum_sha256": "c73a6b5ef975c5bfcd9393577d8b2add6f35d6d90d8ee56f344125cae1073388", "format": 1 }, { "name": "plugins/action/system_config_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "751f59d10e5184e464e07f5482133544d0494e43f1dc37b3f2ab5586d11826f3", + "chksum_sha256": "709dc39b62342d8155e54dc44638fa7e48e6fec53abed656d8d7bfdb03438bec", "format": 1 }, { "name": "plugins/action/downloadable_acl.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21e9ee7a41080aba2a719ee7df891e3bdecdbf1e9cf0b96466d8084fd3e4e2a7", + "chksum_sha256": "4f2a68d7c0045088838b04a870c3d2736e24f0776563c4f323cbbafea32b66a8", + "format": 1 + }, + { + "name": "plugins/action/ipsec_certificates_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b4d525786a9343640ed0dfbadbe8e4613d0a3c156fe1af1e62b4edfaef060b08", "format": 1 }, { "name": "plugins/action/csr_generate_intermediate_ca.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2834b5da282b6c627a5b0a5e5569bb5902f087009ebe36d19326ca3e29105e3", + "chksum_sha256": "ce41c338f8df2978fb147f1ccb272ecdde30a4b01ec5ca54d348c6801add21c5", "format": 1 }, { "name": "plugins/action/guest_ssid_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d02b89280bbe686a2d1995edc826e76816c9b676e94ec089d19d45964ef03cef", + "chksum_sha256": "430a8adb9ae77525f652c8b7a5aeb4a7767b9b4398afd504ff82cb7ebe010195", "format": 1 }, { "name": "plugins/action/anc_endpoint_clear.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21e22bdc140a04d5b6b3b56a424cf1f78dadebf29ecb02a1d3d01f967d97492e", + "chksum_sha256": "d653c2067ef9c629d072f61f3975ee297085129aa3757372cb56356f68fac537", "format": 1 }, { "name": "plugins/action/sxp_connections_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "50af0f8cc0f2f368de1a8f9fa6ef95c28a8b442ca469407e3945ecea41350dd6", + "chksum_sha256": "8d89546d1230b19b5f365bc0eb6f1a66949c78c90302efc777625c9f7e1a8e2e", "format": 1 }, { "name": "plugins/action/filter_policy_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "054512d1e2c3116378ec6d55ceaa16ad3d8305cb73e3e98c799892fd2f16efae", + "chksum_sha256": "1e5e48119c665d1a1879d01d224ef99d0337c38dffc4495b427159b6c2eb57af", "format": 1 }, { "name": "plugins/action/px_grid_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "527031a4bb8825baafb40a2316c6f5667e2938d46c98fcda310666822b8b59f5", + "chksum_sha256": "7caa0ca7d19c6f6afdbd71b271b9c0a03b3fd963df482e6b8b90fc421cd40c45", + "format": 1 + }, + { + "name": "plugins/action/endpoints_task.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e4661a2121077cf3631520a1d4ca44a9b3ebb60e4b95c52acbed9dc897994edc", + "format": 1 + }, + { + "name": "plugins/action/ipsec_delete_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1163b19b6a1d420764586e5e99295210cb396b1b1ab578b5b84f6e8856453d77", "format": 1 }, { "name": "plugins/action/internal_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c181385b8c11a611dce9e0cd1f3cb26fa6955bc74da4ee2f2fb902367cc24be", + "chksum_sha256": "602efb33dba4f1c2596c3b132dd2c6bc375a03632a608ea4b18e6cd31030416d", "format": 1 }, { "name": "plugins/action/licensing_tier_state_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9759fcd1edcc8f97d7e6987243849d95242925574316649c8551437420946298", + "chksum_sha256": "c7b9c080ca42840e4daac6e218b45a6c0adaf5368ba7e6d06fa0d80a5bd94714", "format": 1 }, { "name": "plugins/action/anc_policy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff8a7ad7ac28d1fb1aead5e2d2334a621b24ed1183443c6030acd49f815a564c", + "chksum_sha256": "c94e7b4441b4efb10c0b78f1af87a4ed41ce0c37be08b72e5bea2883fb5690d2", "format": 1 }, { "name": "plugins/action/device_administration_global_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6654d9a39f8295e29229129b85ba927cbf0bd1331f3f6b027579526bab6e110", + "chksum_sha256": "806ff118c4b21e0009ed7c10dc686ade2b47e7963dad25b95828d1b6c344bd58", "format": 1 }, { "name": "plugins/action/sgt_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d84f6adb500c00b89adbd2801048de7e584bb5cc5ad03d551940a5982d0e79b4", + "chksum_sha256": "bea452d87bc9955d77db8a477ef9d49ef8dff048c9547f5883a6e49a3388255e", "format": 1 }, { "name": "plugins/action/certificate_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "821c9bd702a2972a8e5f6f232a86042488a7d94a8ea51d2425bec20ee4dbd2f4", + "chksum_sha256": "07eface0af9e271e3398fe3b4e03e9e631dc5b3a2ed02805d43946610bad8297", "format": 1 }, { "name": "plugins/action/sg_acl_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5b87b20c459bc5ea2fa0e632b451b46381fe9e82a4156d15a699c3a28023b2c9", + "chksum_sha256": "50ddc0816d674f4b599a0106a11bfb53bd2b4e3b7fdca2f885e3573a2febb78b", "format": 1 }, { "name": "plugins/action/patch_rollback.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae64d351be77d3212111a4f3f602f9b24b347a92ce1409b4e38ed828abd44f4e", + "chksum_sha256": "aeb3bf41778083e58ac00ef86acc222ae4e0d76bffcdc878224ea74eb1f5a89b", "format": 1 }, { "name": "plugins/action/anc_policy_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21aaf26f23973dfd268ab68189ce989b777310190a2ff92f1d1fadcd24270a21", + "chksum_sha256": "76daeaeb31e04df63e02160143877b2d1922a3cb1827df7fbb75ecd7c640463e", "format": 1 }, { "name": "plugins/action/dataconnect_settings_password_expiry.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a322b5dda55d9f723529862f74efc35aa7a949f84a301827f3e6da8ffe6c441", + "chksum_sha256": "278ea5e39acd56d384d4f57c540150cdd937280267cbcdd0414722010b5aedf7", "format": 1 }, { "name": "plugins/action/pxgrid_node_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4691ab3f8b78cc6f03511232876dabce7890a98b144dbee8c405b6081cc76785", + "chksum_sha256": "43fabd816b62ef1cc8861ab0c6f2833ac8b9c14592378311f754706633192a67", "format": 1 }, { "name": "plugins/action/network_access_dictionary_attributes_authorization_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2dd190928a558250c182e570a30b0d9e5f30d966e1737be5a79c04862a4b91f8", - "format": 1 - }, - { - "name": "plugins/action/connector_config_info.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a890d6dd2cebcc4802fa8043011b320f5fb58f79116f8899e53377455ae3f6dd", + "chksum_sha256": "a50a61d57521c3253ccd8895e436c2aaae536e44ca2bd3f043b8682cf82fb99e", "format": 1 }, { "name": "plugins/action/guest_user_reset_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d104e9e6d6f48bba5ccfd5b4172736ceda636eda41a28c52412236614fbf274", + "chksum_sha256": "537ad74274de6009b67a12290c45bec4aa9920ca5b1a44deeb74f52a627b774f", "format": 1 }, { "name": "plugins/action/network_access_authorization_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b753a48d43e272266d432df6dbb4135b319511983af7feecde4d26ad4fd6abd1", + "chksum_sha256": "51e764939b39b932312960bd486bdc1fe3ea7cb9fd12b46f497b55950c636202", "format": 1 }, { "name": "plugins/action/mnt_session_active_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05e60cf3485bf22b50bf7ff003b58ed1d5029e103287a9498265df643c298b40", + "chksum_sha256": "06a963894b3c51880561f5c61a6bd18c0a12a59991983b48480a07e6bd14c67c", "format": 1 }, { "name": "plugins/action/sxp_vpns_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c0267c3dba096b081506b16b6169fac96bae866cfde6dfa8cd2f8d775c53d9f", + "chksum_sha256": "34d2ac51e134c1e562105d4fc4f06bf40a682a92ae851a070049cbcea0e389a4", "format": 1 }, { "name": "plugins/action/portal_global_setting.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7bee1b19fb5fe94b699bdd6fe951e9fb66bbf2a9e3ecf8c467f0740d9e4730b", + "chksum_sha256": "9825c7059170cfb427744853f67a893423ff6f6db3e5aa3135968de97fd093a3", "format": 1 }, { "name": "plugins/action/device_administration_conditions_for_authorization_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b22f410bb20522ea16f730c28c481fe1bf218535c50655fb380c0656e124825", + "chksum_sha256": "42ede25941eb7a1c9a6ddf1a267819aac9c454df7641bdd72012ee96e00301eb", "format": 1 }, { "name": "plugins/action/portal_theme.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d68476c4ba5d63a95d6472fc54548c9d3326c09468ffcbcfc163220b173ccca1", + "chksum_sha256": "bc80c46bbd75258fec812c640d022cdcb46a815646f23a379e3b8604535ed601", + "format": 1 + }, + { + "name": "plugins/action/px_grid_direct.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "98b60e62976a9a7154b515755d7c3b9fbb0127ab82beefb3e6537f5cad83c463", + "format": 1 + }, + { + "name": "plugins/action/user_equipment_imei_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2777ca990b9b46da909804886f437ea5e9963d9569b574589aa3c7bac65c6244", "format": 1 }, { "name": "plugins/action/portal_global_setting_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1bfd37b6bb21d5d1c7c45609ca20e4380f60f4de3985451eedd7538d23cd5f6", + "chksum_sha256": "d1bf3c23a275872f4e8a21eb0c0db09a10828d475627efd5cb7cd0c250cd8af0", + "format": 1 + }, + { + "name": "plugins/action/active_directories_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "514e4a086a24ce494ff0d6291d2b0d93a7707f9cfc207c870afd1237b9861635", "format": 1 }, { "name": "plugins/action/sg_mapping_group_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e559f9c3337c3845905d165090036017232f1aab0ca73cbf9eedf318da510398", + "chksum_sha256": "80f4a3fe81cfad2309e77a8434720d484fcf73632126f51a37cc1ca16e61948e", + "format": 1 + }, + { + "name": "plugins/action/reservation_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b0d317aa8aa137b99610bc2a78824279a2fd1a481e074c8629593c74a48f118f", "format": 1 }, { "name": "plugins/action/backup_restore.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a39ae2b623ee17e9336371e6f4d1dbe7eaf7fd8730cf3b61ac6d83d0e3f9b6be", + "chksum_sha256": "ba15db99b560845e4a5b0dcb2e91883122c557c7f0d868efbab0c0448ca1bdf8", "format": 1 }, { "name": "plugins/action/node_group_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f30f0abdd62daecd6b86f8d292791a0c8edb8ec427fff4755c59d0707e080ad0", + "chksum_sha256": "39027d526dbd6b7c3e23569a85a99bc25fbeb4af089841f0090d8801b829421d", + "format": 1 + }, + { + "name": "plugins/action/ipsec_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6d63f53115df4056e1eeaa62d643059251f5c7274487a9db18bc048c2431e0c7", "format": 1 }, { "name": "plugins/action/sg_mapping_group_deploy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "546b230ceb411bb41d6119ae5bf51d58afa6106b811e83da5eab4f902597aa71", + "chksum_sha256": "9d499dde89f727e9f1f58f154b0130049c7216d25f8c7ea534509dbf9b319537", "format": 1 }, { "name": "plugins/action/allowed_protocols.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7a9158fe7c3b7a5b5c1028027fa4c26882b70f30ffd725d1b4672d36a771fdf", + "chksum_sha256": "1f7c9a0f92c0872f45a2c9d62337c9123a3179d6b5dc85c6e9b6616e8870e703", + "format": 1 + }, + { + "name": "plugins/action/user_equipment_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a222897ce4480ea1524352b051ce880437aced4c2ef2e68f82d0074f24f85806", "format": 1 }, { "name": "plugins/action/active_directory_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f61a27ba961612508ebcca8b2a99927add160bbe4386cdbc12e0e608fab931a3", + "chksum_sha256": "5db35926afd823b74b7a6784b2e122af9b375cd5986d146312d594d180bdb139", "format": 1 }, { "name": "plugins/action/sg_mapping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "87cbd2f9b280e45aaddf60f3ef3c17b60bf798e1b38ea41a994b47f64eab6641", + "chksum_sha256": "a653c64b91b6605e780c7cd90265436a2e1de98e07d6d27f173b594417941c4e", "format": 1 }, { "name": "plugins/action/sxp_local_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "072eb2459d3b13d639932c14e8b4c3e76c5d7afd0c14234e49835e20b6d74b16", + "chksum_sha256": "5de1697093ef70b92ebe4345082daf4cce9e729b7c863376dfa8bf8f2a88284a", "format": 1 }, { "name": "plugins/action/support_bundle_download.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b8113418b64673e1b41e6fa422b52519f1f4a9bdfad2e69ce8a4ff8ccb1ddbe7", + "chksum_sha256": "5503a8464d7e0c2b5189c4f9999dfcb2c516507f1fba7b08de43f739db398740", "format": 1 }, { "name": "plugins/action/self_registered_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "633a835de729b9549beba77626cba2626e282b03a32fe5c9bc489beaa1238ea3", + "chksum_sha256": "577549b576b5ee1b29d917da1afd3071deb3f8d1dc050b428f1c50d4f6d06511", "format": 1 }, { "name": "plugins/action/node_secondary_to_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7e68dae78a3ed0b0729f98ba9ac28d25facdd22189962304638a31e954f89bfc", + "chksum_sha256": "6e1d3771686fa6c6d16825c1a5773967a0b4d28ea31afb53965d927ed1cafd77", "format": 1 }, { "name": "plugins/action/guest_type_sms.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "78684d500e2e7dbdb5a847e548440fe4707d08b0a7ad5eab405fc256446e6e6c", + "chksum_sha256": "2a6de376f160d4b7884f81420c29e566205781bd4175650a7f6a761c72301585", + "format": 1 + }, + { + "name": "plugins/action/trustsec_nbar_app.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "269133229dd7d8eb014cc1daa6049a2dc694fb22d1833668ea8a93b457e39eca", "format": 1 }, { "name": "plugins/action/sgt_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff4e929ee3823a8656d26da72aeb39ad3eb5e3da4b9711121f3fb424fcfccd71", + "chksum_sha256": "0121137909e2ecb29d997bd8489e62444945804fe1f600c6f79e781a9bfb78ee", "format": 1 }, { "name": "plugins/action/mnt_session_by_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "58835ca34c38a99ebe71f3b7351943e3ddff1e7e9974eb106212313da53b924e", + "chksum_sha256": "fb6a0516a4e111e28e476cbbbd6ad38b78ac399d4a9ef946f0a7f868b4cd4f30", "format": 1 }, { "name": "plugins/action/sg_mapping_deploy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7849a5738f1ac2d8117ef6c310effe5f586ab4f9324683dc822de68f41cecd4", + "chksum_sha256": "d26a60f8dbd28b01dbac12fc94ec750d9525fd1b41516866c487f1c4a405011b", "format": 1 }, { "name": "plugins/action/csr_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ec37edd025598d026c5cd3d2e2338ec9efe1841b785ffa6484e46a4bfcc5ff5", + "chksum_sha256": "7ccea174b779a921268440c18a9453bb87812229322898c28289c9046383221c", "format": 1 }, { "name": "plugins/action/trusted_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ad48fb7af2367a6ed35be4068bc4745ca44f4457e071a58db3637a433e3aa5bd", + "chksum_sha256": "ee268b82d3b351743e87efb1ac8885b986d6a0bec8d6eabcab93752012580ad9", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "469bee3d839ab0e408a012013f61474e6e8305ce0686ab2c044456196f926677", "format": 1 }, { "name": "plugins/action/filter_policy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c47d833c364e1f85e82f6cbdd1eb224350ddd17aca726d1e74e3a0dc28c6472", + "chksum_sha256": "050fa28012b596bc080c03e074bc5264702dfec5df2c16697ffca5a749d8a1d3", "format": 1 }, { "name": "plugins/action/network_access_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64c7ba1b6c46e8478c28177acc74b8a15119b7aafedf1469786da4dfb0a232ee", + "chksum_sha256": "2cf115e6a03d463fd2067415cd16f359496ca08ee803aa341ed9815cfc0def1b", "format": 1 }, { "name": "plugins/action/pxgrid_endpoint_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b40455d74c7fdcd0bc0c86a267492dcfb17c2b12df56ed244f920168f8ca76a", + "chksum_sha256": "69015ec2d680654a60b0d96b00a9a4277ac6c6cc8f121f7a7b0d630fffbb67df", "format": 1 }, { "name": "plugins/action/radius_server_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f1ea00865e326337aa3dcfd92128faac6beeea8f6dc3d67b207e7309004766e0", + "chksum_sha256": "f8931a770a595431ebdf87e0a29eedf2b25f973d1381ea311c98131a65c06029", "format": 1 }, { "name": "plugins/action/device_administration_time_date_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c24bab194baaaba0d3e8bfc418a422475a4628589ecb23657639c8d2884cc13a", + "chksum_sha256": "c1faabfb1b984df09c3feeb6f5de7170fe074dcd351dd317f3376c5c8639bd5d", "format": 1 }, { "name": "plugins/action/node_services_profiler_probe_config_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "887d5d13c67c46f7d0593b30b66aa063eacd00b0aa6899f1256fd99f458db042", + "chksum_sha256": "49da73184864587f945544681053eae5e37ab3aac5abd0fdc52e0af1e4c1b7c2", "format": 1 }, { "name": "plugins/action/pxgrid_sessions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "98acf5afc3de26c005d72cfa34f099499d1142b51b19aff35cef4bc9f14985d3", + "chksum_sha256": "0b593b397ce3fbe8c478e95b87c0016c9d50637de65fb8ab3a8e27d5cab3cc01", "format": 1 }, { "name": "plugins/action/allowed_protocols_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b11ff534bc6fe1b7d05cfc5f258885bb858dd05e76abc74e7b6070f96b7808b", + "chksum_sha256": "1f2a7d266d1bdc039cd2a02fcdf7c9441bb0b71f597aa4012af91527250b9ea1", "format": 1 }, { "name": "plugins/action/sg_acl.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4928fdbcd889d86bc06c8c88f8b157dfe8038ad1044039c2bc081e85a45135ab", + "chksum_sha256": "45c457905cae8fcb2aef85b1435795cdd319ab1a0f15b4710c9378951e309bfb", "format": 1 }, { "name": "plugins/action/network_access_time_date_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c3027998e448a69499ded02fec99e06035c3f91aab8ac975d8327b193d88955c", + "chksum_sha256": "964e2b059bb92997f60087715448e895f56f864a6a38857ddd87fe0a6afb55f1", + "format": 1 + }, + { + "name": "plugins/action/upgrade_stage_cancel.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1f5dde4c4308bee81bf7f29231852f9ed0f142c5d1822c637e7551bbf0c8415", "format": 1 }, { "name": "plugins/action/mnt_session_posture_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "34dfef43f5642efb4307817510545348784c3dbd9cb550223fdfec47d64124b8", + "chksum_sha256": "7f394165e72575dffa834bcf41ff1e829a97c6bca3c99720a8dd516597267d93", "format": 1 }, { "name": "plugins/action/sg_to_vn_to_vlan_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "38f2bb2a355983e02fba174f8340cfa517a9a192e21fc24b5e75fba0cabdda85", + "chksum_sha256": "1d84060842c3ed88aaffff315e1f582c889a3623bcff14edd0cf3cfeffffcc5a", "format": 1 }, { "name": "plugins/action/profiler_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "062dbe83e1a0abab15e08257b2affb95f951a6891f7abfeec671cbf8f9094728", + "chksum_sha256": "8f6ea7667ed4cf8a9498171e8c833c92092017da692c89fc6c020f13defdba5d", "format": 1 }, { "name": "plugins/action/node_services_sxp_interfaces_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54a6238ab84a19570645c636b12f43b2a5c52c9e89ff1517c943bfb7bd778b5d", + "chksum_sha256": "bf12eb0f200807860b85d6267a3a841a59b118fcba0379ff463654b09737d565", + "format": 1 + }, + { + "name": "plugins/action/duo_mfa.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9751d23bef64384a5ffef49ebbcc8f59735752e5b86c1c3ea6a9a195fb70c8b6", "format": 1 }, { "name": "plugins/action/active_directory.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fb557aeb8c753d18ea93b8dd7cc8b365ca48552268071ab72e5e981ca4aacd0e", + "chksum_sha256": "984aca4b5024caca0947045b33764d54cd713d4cf50c76feb08d9072e1816e3c", "format": 1 }, { "name": "plugins/action/identity_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "12011106fa6d5a23c88c21261ce6d8efbef82ef7c15cd229324ab46e41a35e32", + "chksum_sha256": "c45ed6168e2f08c8391224960fe029c5bfc7c5bc6b3e425fc4694da658565135", "format": 1 }, { "name": "plugins/action/mnt_session_auth_list_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c19fd4eac090031ece6b443641a43a2b26f99ba93e59ba8edb1017813ffe7c14", + "chksum_sha256": "d1477d2b361bccbd81fd40381f74d12a0b04fe11fea29f09ef28d96260c6ce91", "format": 1 }, { "name": "plugins/action/subscriber_bulk.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16fdf4fcf23dca3250a9b0a973f321fe69e632771f090d7cae9712c681a93160", + "chksum_sha256": "885010d17ff94ea79069a691613b2cced9d88f10cb0199ae72891170831306c7", "format": 1 }, { "name": "plugins/action/patch_install.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91b63e82314d36684ebeaecc578dd96600c5fe4d9001f5eeb3223adee009bac3", + "chksum_sha256": "37c708e779f9aa82319b2d08e33b359e879569ded30683889ea8bda160953833", "format": 1 }, { "name": "plugins/action/network_device_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e63101cc9853cd30514eb6f877f4fe736c6a6a926d644094dcedb8c420a5dc39", + "chksum_sha256": "a3bd695dabd12a4e214093f2c617d3f302a321bfda228eb3956386fae7f960df", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_bulk_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "20b1b179eff8ff40da8d34b8c24809a8897b76c216dc84c25bf5d9857613cf79", "format": 1 }, { "name": "plugins/action/network_access_authentication_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6b2fde7af450d3f009b508f441d0e357c76d24ead12a31773121e41ca7368eb1", + "chksum_sha256": "b39e85d3dcbb34835eb2b2eef82acaa05db49148a66cc1d2085a251e3c2d5c45", "format": 1 }, { "name": "plugins/action/device_administration_authorization_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a156be3fde0a268aec6f60763232bb8ac816c4712584ab8619912f6da4c00d73", + "chksum_sha256": "e5fba8b1250307f6114feee6aa0be9b881cd2dff0b51275f46533068abb16e8e", + "format": 1 + }, + { + "name": "plugins/action/ad_groups_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fbb618d71e7c59e00f8acdaac175e946efd1e1b0e394eb84110bc983fbc775f4", "format": 1 }, { "name": "plugins/action/tacacs_command_sets_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c85e27ee547b3a92b0450301003d41b2b59ed940fafadaae1a9456f5559a6923", + "chksum_sha256": "b4b42aefc616c9678421fc46f947b22890ad6c3de0ff6b613ad36e7a2112de02", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "576e54a6bb6e226f99ae16c65e36953666f665be5cc7f9825e0980b6f5eb319e", "format": 1 }, { "name": "plugins/action/support_bundle_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cfd3f314aacf21d4ef405c92a9773551c8a1c74b88adf46538fdf4f98e9511e0", + "chksum_sha256": "4e5034869a91a28c6bb5d282f870c36fd45fb7cc5501b7534d34fd7e81a10d49", "format": 1 }, { "name": "plugins/action/active_directory_leave_domain.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c7045820ae4f6a7985e8aa2ce1aee79374c6f7f36ed18bfc2f934df62322312", + "chksum_sha256": "960262f97cceefd1ce1030d40eef7850609dccfad8f3dfa694a77e2c419a59ab", "format": 1 }, { "name": "plugins/action/endpoint_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "febe819b4abd344db593fcf09f9c15a62c06420ef5d15664927503c33161b0e7", + "chksum_sha256": "52dc5ca6068a257c36e7893bb26648e26e9034e39bdb9962fe0fe7532c33c289", "format": 1 }, { "name": "plugins/action/guest_user_change_sponsor_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "757a527f8181bafdbd82c0da7c874b8d769e84a4541bb7010a38a342b2591695", + "chksum_sha256": "b51ba3e5d34a860234a5012683413fb2780e101380f95bbde1246ea054102603", "format": 1 }, { "name": "plugins/action/network_access_authentication_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "281a0c1c38210f1b4b71e44ff2235450e06163cd6cb655a5b079292900c8671a", + "chksum_sha256": "5c486e61d27a086dc2d9db0eb56a16e06099bf937d352b7657f5874dc2a4f530", "format": 1 }, { "name": "plugins/action/downloadable_acl_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1e291a2d67c7aa327951138eac047905ab6e5e07df653183c8052cd437fc3b9", + "chksum_sha256": "467223adfdbf05090f4ce025b904b49fd9e537274f1b9c555c4e38bc1adda7aa", "format": 1 }, { "name": "plugins/action/device_administration_conditions_for_authentication_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d9aa455d384060edaf2cbae03693b897e8ff97e4113be736d7f1808f159ad9ff", + "chksum_sha256": "27275587a58182d03fc310b75a4c01ec933a41efcde9fb484a786d91771ce1de", + "format": 1 + }, + { + "name": "plugins/action/endpoints_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e5d59bd4b0b368b8b8cb5bc0828592ad53d67054b7cf6c071d50158a5ba4cfc8", "format": 1 }, { "name": "plugins/action/pxgrid_account_activate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65ae45eaa149c4946847a513c0b7f4f67d2a8a036322fdab3be9212b81e33ccf", + "chksum_sha256": "bf3991285f7f75f2f3cbd83b38bb37ecde65e854d6ce073ca425f4149cbd94b5", "format": 1 }, { "name": "plugins/action/sg_to_vn_to_vlan.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0cec12000173656b0201ed9d43935eb61c1017d9769fa3493dda7efbca50581c", + "chksum_sha256": "80dc896f40242b4c2c8cd66c190ca24bef7f5d93ee1c306581242aa139602752", "format": 1 }, { "name": "plugins/action/network_device_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8fd994e555b2a36c107507034698623bb97aa36fad12c645f816075f0bf796fd", + "chksum_sha256": "7f30655cd79dbce30475fa61dc5a88f1f83220e51bd2461ca26d712a0e5d4332", "format": 1 }, { "name": "plugins/action/device_administration_authentication_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cbd7f0075e61bd3f3a6307bc43e830817346ee27e117efe1c1324ef257f2fcfb", + "chksum_sha256": "b381c218a6d65ad66b7aec11ed9b6297349d894f7ef411a43fc79bada93e37b7", "format": 1 }, { "name": "plugins/action/csr_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14c4b1cbc840d29da160ffb039f4669945666a877c935c5eae5aeaa6ae5d2b34", + "chksum_sha256": "46b474f4ad82f649477b5b2df436f63c1d5d8d30d07a369a936344517255ec20", "format": 1 }, { "name": "plugins/action/authorization_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "964959f5b0c69feaa5c4858dd6db4f9b5af88486223cd900496d7edb9a950133", + "chksum_sha256": "c83c8522ab442cfc98dd6013f9ad597ce675ae787e822e39bdda6b8630890803", "format": 1 }, { "name": "plugins/action/sgt.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "33f77a80a42fb603193a221817e610094a0205e7ee195b206b18b690d802d5e4", + "chksum_sha256": "697e8601eaf7e347541e4f9d9aa6f732c19f9618913d3f6caac974cfd69f9f3e", "format": 1 }, { "name": "plugins/action/patch_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96dfa7ffe58c42ab0a2b40a0c54e6e40f6b2cee9e805e105a2c4cb77a673df4b", + "chksum_sha256": "e9fb32aeb0262b364037d82ee8e7a5c1c996ed80ad8c1155cfde0853109e5822", "format": 1 }, { "name": "plugins/action/device_administration_service_names_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ce7358df18078fb78a72a53e4abaeed8e442f3b8b7dba1620a085a7ada3909de", + "chksum_sha256": "75a639cf6775404020f719087621208fb93eb1b384f47bb4ee75a924380f88b1", "format": 1 }, { "name": "plugins/action/mnt_session_delete_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "071493359cef91feed68fbc1825e1c2d6abdfd730974fd8826ddb39b77ecfe6b", + "chksum_sha256": "b658164f2011ff475268c50fee0f9149f63c1f140fafd4911f3df753d914b201", "format": 1 }, { "name": "plugins/action/px_grid_settings_auto_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c8809c6072c47aed001af0490373c4c1cb665959ce6e0196b0e9aaee6e53990", - "format": 1 - }, - { - "name": "plugins/action/connector_config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "64b85d5d97fe9b46c1c0a76c0de783665ff809ca6f878daca6fcabe25cb60038", + "chksum_sha256": "5027e7c607587d0959f40e813505bed43c62690a0099de22ca4c150d4fcf9f31", "format": 1 }, { "name": "plugins/action/endpoint_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5526a8abbdb4d7580b7d5f945f127caf7734f6aa88118c06fa3727fd47320920", + "chksum_sha256": "cb0f5d2da744152eaf5fc963cd866328cd8f8779a599d11ee292edf1747695c4", "format": 1 }, { "name": "plugins/action/network_access_authorization_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb6f488bd1b5a36cdd2969afd03c99e9c75fe6b212609c4da88a028d3026001b", + "chksum_sha256": "bfcd93c493dc2256cf5f7ce1b780e7e1b2a14d005e2f6929d41f1945d6d727c9", "format": 1 }, { "name": "plugins/action/mnt_athentication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ea8108a1d3011e45ad733579747c00162395de42f687cc880c97f66f08d643d8", + "chksum_sha256": "5770ca9a34b42b9003461a9ccc9d0317e086df19b141cc73c54e37ab926a6232", "format": 1 }, { "name": "plugins/action/dataconnect_settings_status.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af13187b10320c878946b8b6d35dfa2e75d90a99b1c1bd3b58e711b13aa0e303", + "chksum_sha256": "1f53d7db17bd4b1df612cc3b906febd757b139558f1054fc03e4d4088656f7cb", "format": 1 }, { "name": "plugins/action/device_administration_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63b7a36946e865ba2f780cd0b480f365ebf84f28b06aed8ac49e17023c2cccb1", + "chksum_sha256": "3de543a2f68d02ce08216e5fac0bf1a7d5ce352092cf9d1bfefae63ce73eef0d", "format": 1 }, { "name": "plugins/action/sxp_vpns.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6f1b2e35d7182d03a7a39eb1eab233034f44e713e0c7ffeb4ca5727aec1e063", + "chksum_sha256": "e0ae9103093448215f2675164cf494e39fb326e65dda587588772b53305826af", + "format": 1 + }, + { + "name": "plugins/action/endpoints_bulk_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1eb7a0b67a086b26de08a772cbaa8996a022bf26002c36868ce7170d97cf736", "format": 1 }, { "name": "plugins/action/device_administration_local_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fc076224b36225f5432b8ba9daf3ea294882d21be11caf4eb27867874f07e59", + "chksum_sha256": "03f3b65c465255a3ed7db3d97d14c7377d5c45388d670a0c3342d13556869ff9", "format": 1 }, { "name": "plugins/action/resource_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e218612c3319d2ffdb9d375c10226e52dc8664240b589561f44acce7df7608e7", + "chksum_sha256": "32b3c3591cd08fe47b3aa755f06f35e1400719183c7d66f5b22727913b63d333", "format": 1 }, { "name": "plugins/action/renew_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "935a15ac39e8bef1001f3186a8c9525ec4fe844d07c84f4ae7ed2971ad1ea63f", + "chksum_sha256": "4c1607c08c321859b9576f78627cf9d82c15ce45e1a90c4bf632aa5599cb5a8b", "format": 1 }, { "name": "plugins/action/endpoint_release_rejected_endpoint.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "04a91e46eda870ef2f313c504f4efd72da9157c62f72da31af7232a5068941a8", + "chksum_sha256": "f3bccffaf0dd45e779699bca987b7c7c64bfb4981cbd9807f8a83453f63bc907", "format": 1 }, { "name": "plugins/action/guest_user_reinstate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "27232d155fc2d7fb7b012a391247b814db3ffd9d2e04db83f97e5e553215e593", + "chksum_sha256": "a15d4e2473c71abfed35a2c0eb6acf16e170c2d30cd385405dbe398cbf13b7d9", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_clone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "591c90ba039f9490f037e0a865a7ae3651c2f41cc1b7fea238cc4714bbb0c924", + "chksum_sha256": "3f37c7a6309179124115ce90eaddea6a3e750718ccc9e4d7d734c70db06a136a", "format": 1 }, { "name": "plugins/action/my_device_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25dec8b3b31d9718286d48f4f709be4f2288423e411a336f9b871bc892f3986c", + "chksum_sha256": "b4947129e764851ea0a50176918f3ec5cad6d94e7cbf6ef70686d921c9a34853", "format": 1 }, { "name": "plugins/action/network_access_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af9c68f336218b8a82aab7d8928ea3f876243b91283dc813e7f3ba5860391ad7", + "chksum_sha256": "0910c62b5a7d7cbe11a2d72ddc21ff4543ae89c36c5709b2afb313ec7ea8b50c", "format": 1 }, { "name": "plugins/action/pan_ha_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9799c82a85dba29a2efbbe4e8b42a294836cd85d24d00ebd26b119844e8d6576", + "chksum_sha256": "5682196666d56d420bf8dbc09447669eb535adf638c2965992f716fefcc3f61d", "format": 1 }, { "name": "plugins/action/pxgrid_user_group_by_username_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e86b097e3d6b9074465081280d5d4e3a348d93ebbbc675f49a3012537c15d9df", + "chksum_sha256": "df51b205ef9eb18cb8726e0de327e28fbeb70bd6f485b5f1384e4c2b9b6ff51e", "format": 1 }, { "name": "plugins/action/node_deployment.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f335ec09d999759a89965e9403b8173099c4b41f9e5741cd83c1d6a4f0b41cc", + "chksum_sha256": "09a6cb6d4f3663f5c0268a6623cfd76cb14e8fb7c59763a1292854fe26739b73", + "format": 1 + }, + { + "name": "plugins/action/custom_attributes_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1938cefcb1cc467e5ebe54a6cb6511c08ba9d276b65ecba4a7b505ead603c492", "format": 1 }, { "name": "plugins/action/certificate_template_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bca920eeac07e75945bd5c0bb75d5cb0d48f01d5cb761961f64ee6aa108cdac3", + "chksum_sha256": "ac27e544495dfea32112c4d34ad5cc1fcf09a15325208fe7bbb07cb742cc435c", "format": 1 }, { "name": "plugins/action/tacacs_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a679a8a87db2412e19dc4a87bef77fbc1c5023ad11ead30e690034d62d1b9a85", + "chksum_sha256": "b8351cca94d4346311f66b2e3890f21f819a5b41069fbfc806b74e248dfb8428", "format": 1 }, { "name": "plugins/action/sg_mapping_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "096375f223734bc6c09f72e40371fd7bf86936540173c480ffd41f535843748d", + "chksum_sha256": "c6a9604354792f9e633fd8f40857b35e6ace3a0202a14a118417154bb5035b5e", "format": 1 }, { "name": "plugins/action/sxp_connections_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "681cc9405ba4ac68a5ac88cbcc7c4bfc34b46c364a2ba63b098d1722e31e9aec", + "chksum_sha256": "8c84cc51ab547f90435c1a8de55e0db4a9a1c99ce9378171f13768ef973d6a6d", "format": 1 }, { "name": "plugins/action/pxgrid_service_unregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b182fe1338bc509579a5acb41cfc9fa58ee8e3744b3bebef9cb99471261d82da", + "chksum_sha256": "c32fb479542c7efef3c436f4716dfdc132184272e79feade3491205f031ae512", + "format": 1 + }, + { + "name": "plugins/action/ipsec_disable_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1163b19b6a1d420764586e5e99295210cb396b1b1ab578b5b84f6e8856453d77", "format": 1 }, { "name": "plugins/action/byod_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a965cf326b2f5bc88375dd1f0c51de17ff2990fe6d2491ae64ce10a7a0a55f9", + "chksum_sha256": "8c4161d9a2005f340d55ad7959f2667c964aded4e4fd0440c8062dd7c04f8392", "format": 1 }, { "name": "plugins/action/sg_to_vn_to_vlan_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "01add89f1198e0a10abf0e3affcc7c7fb4a8968d4f786f805be1cec019a55dbf", + "chksum_sha256": "480a571e539da600b9fa63ce09832231b485332a640f51da13e692aeaf1f5c1a", "format": 1 }, { "name": "plugins/action/active_directory_trusted_domains_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "842161fd50e4cbfe563385fb5d42cad81db4bde0696657f9e4feae78de5f467b", + "chksum_sha256": "643b7432b6d7ff6f9c176a71ac6e52a7b7ebe1e9dd61fdadf14d9f40e78843d8", "format": 1 }, { "name": "plugins/action/pxgrid_authorization.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "164fe32558732672fc4b29499652a9eaf06dcf681995f77d13e0f225bc288476", + "chksum_sha256": "21eb0acbe96d3efa81151e713f863183a91f9799d81c918bec19fcec4ae789c6", + "format": 1 + }, + { + "name": "plugins/action/stop_replication.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fef607d68f1ff2a9579a914739ea105bec537b3e672fa748021f5e162adf2ea9", "format": 1 }, { "name": "plugins/action/licensing_smart_state_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3fa2031f029e2895fbffc37ac17c43e05fd4e68b4053ed5c90ffd96dd5ef046f", + "chksum_sha256": "a43bcc358a7c7af7d65520ad4c6747692bf822cbaa196fdb10b995565a4f3eac", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "53e0a1f6deff33a9798ebdee10606a0af18b1248e7a77c5d2d4d87d87d56e73c", + "chksum_sha256": "913d3945fc635068c2c98164e01585fcf09f2df90dc560cb692b02fd71f8c2fe", "format": 1 }, { "name": "plugins/action/sg_mapping_deploy_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95ef74136199dfb3a464acac96f73cf9e60ad41c486dc2ddee7592926bff3d09", + "chksum_sha256": "c088e8b848cf49c0b4d6b82ddf493a037941b3bf0e72400b08cd502079cf1085", "format": 1 }, { "name": "plugins/action/sxp_vpns_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8504aeee386eb36e1a0520b7c658c1255ee7653be4f1a3d980290eafe209621", + "chksum_sha256": "87082944dee47654af1bfc248d0dcb3344e84b88a2f3d453c03639273a404974", "format": 1 }, { "name": "plugins/action/device_administration_command_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ca0c98146a76537cefdefc8be407491c7b7f863dd4ed6d70b494c4373057290", + "chksum_sha256": "68043eb75d719d7eb4c4bb1cfa54d3bfc6b7e0c977f8ce0afcfc5ceece225211", "format": 1 }, { "name": "plugins/action/sg_mapping_group_deploy_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0976ef3e751d67107a530401cf032ceeda4d5263feab1b186c26669941f6ac37", + "chksum_sha256": "6b062a0c3a489d72505618e6f12f3261cf477069995a03e00198b842f6dc0257", "format": 1 }, { "name": "plugins/action/repository.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "39233c9082ba5e4d122df594ae33d2008f275a53179bb90eda917cc55e757115", + "chksum_sha256": "198c5f217d0ebd3b6aa7d33d90d79db44adcfcc4a318d411d7550e89da2278e9", "format": 1 }, { "name": "plugins/action/guest_user_suspend.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8bf1355fb8fd14ba00151ebef7906383b05f63cdb3a92bd203827aea5a4e2b5", + "chksum_sha256": "a3b9fe817179609756bd7647ef2170884595ba66db1a74141b751e6e391ff965", "format": 1 }, { "name": "plugins/action/network_access_local_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc23ad75fba43f06663a8774d4177ddb5d6ce5c0059a1d30c7f82e174b3c3dd0", + "chksum_sha256": "cac3089a7ef97fe9c6c81538642ebc8f6e76bb0910e2cac89b6597bcd9735593", "format": 1 }, { "name": "plugins/action/endpoint_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d55e8067da1064224f4cd6f5b819b9958afa4f76eb8abf3f54081ac39e8c651", + "chksum_sha256": "a4cda8a7904ac2d486d9789b1029e0232db8bd21466049f7759d029e2f5ddbd2", + "format": 1 + }, + { + "name": "plugins/action/endpoints.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e36b9386dff1c7e45c9ff666866f05fef684cb111cd1143a5ef8b0a6992a94db", "format": 1 }, { "name": "plugins/action/device_administration_dictionary_attributes_authorization_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43e4cceec5175a45136326ebbdb91ae4495bf8af04ac224ce36759c587ad4d9f", + "chksum_sha256": "4b315544e1cbfed18070ff8c1860251630fdb9afbc831f9ab90e282df5bacd43", "format": 1 }, { "name": "plugins/action/transport_gateway_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "01dd914695935470f9070df258a809740f4aeaec336f49866e712fe8fa4d133f", + "chksum_sha256": "aa41b05aa906cebc591dfa8f0a6053ae7a968efdd8aec6c3701733d4eb5f2bb3", + "format": 1 + }, + { + "name": "plugins/action/upgrade_stage_start.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "66e83705b9cd2fd158659afef54093417454224d1965723527be785413d5193f", + "format": 1 + }, + { + "name": "plugins/action/px_grid_direct_dictionary_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0f3647ab61c274168518d704a5ff543b3959447693de78ca5d4c9b97a39a3dcc", "format": 1 }, { "name": "plugins/action/backup_cancel.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c05cbdae22a61b8648e6aabff62cd06964d72c80589b03b6a60832c3968da768", + "chksum_sha256": "cf4bc728f2f26ef7045cc879a63750ec02ea01bbaa90a12cf0efbb4ec22b3c6c", "format": 1 }, { "name": "plugins/action/system_certificate_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f13ad574e60af54f0d20a00e0f99ae0517f35d940207cd6d6d6839834a061c9", + "chksum_sha256": "80c9e402506bf395f667a5242d031f8b8e41d94273f9bc9262c751370a41244d", "format": 1 }, { "name": "plugins/action/guest_smtp_notification_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c4d2505abeb338fb5bc581536bfa65493d86895b29d37a533bc60a1808a11df8", + "chksum_sha256": "fc161d2bf2f041eadb928d93d8b9090896b7c82d1089ad759d78dfa389d95d21", "format": 1 }, { "name": "plugins/action/network_access_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "191f5ec8fa5073b6731b42f278491bd244441b20a13215de527ba0b805fd0720", + "chksum_sha256": "b54742170f7c820889f234cab1a0ef21d85416f7d84ceb8bc30cc7421f03b605", "format": 1 }, { "name": "plugins/action/active_directory_add_groups.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97295c2b7e7bf154805438922b9d4c2b136c4e3563a6409da2c9d0a1fcf90647", + "chksum_sha256": "3ffc3b6f6ffdf0eaa359504af1a1f1fa852c3d063d8ba07a82e2819dcfe121e2", + "format": 1 + }, + { + "name": "plugins/action/ipsec_enable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c71e994752679a68feee521547409eba3b4b80914925d66eb212895e31f92fe8", "format": 1 }, { "name": "plugins/action/mnt_session_active_list_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc366451453119a0093db804567e2fdcbbcbffd57be720f96aef6b4eacb12d6e", + "chksum_sha256": "dd2b36e3a9dce6538afafbf03ad8d35a50d7e5a3f4bef6da7cdcc1eb02b0ceba", + "format": 1 + }, + { + "name": "plugins/action/ipsec_disable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bdccbc4cb65890c0fe8fbbc92ef29095133d8ef5914ce634eef8793e753a3124", "format": 1 }, { "name": "plugins/action/anc_endpoint_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b496268db3678eaccf1fd69fdb6281c891b0f628dbfd79a51afd218800010bd", + "chksum_sha256": "d77bcad2e0fa7a98cf598ab183d6df51e24f7e26fd5dac9fe8acc23b2e870e2e", "format": 1 }, { "name": "plugins/action/guest_type.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f3dcbed4e2aba5d68c5122fc9e026e395e0a15a36f42762d5e1bbb2a8e136b04", + "chksum_sha256": "176e9cd33c38774d7916d3b096bdd24a44a79e253ea16fbe6c8d2009aed20d43", "format": 1 }, { "name": "plugins/action/active_directory_groups_by_domain_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cab601e9a87b6be84a397f18c1f4b205bbbb42af2518551594f7f665dbae5025", + "chksum_sha256": "46496ca97c8901998753dbdbd02cb836ab6a6a9acf322f3d35c3cf3a7d7b6459", "format": 1 }, { "name": "plugins/action/network_device.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49b73ec27b42cad62bcd8376870735ae0f3e6a64e8563cee5a5689205e77413b", + "chksum_sha256": "ff7e6efc3f6cf472c73c49d45826f0a2c6245aabc491a0d3132009dbd851c9ab", "format": 1 }, { "name": "plugins/action/network_access_conditions_for_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8d52f5390f848d613529595a6225c51ee0c717bef979de32fa4290ca7ff6932", + "chksum_sha256": "0459e70d289e3b4fe4cc6d979370f563f246e18d80bd41b2a54bcc08e59f278c", "format": 1 }, { "name": "plugins/action/tacacs_external_servers_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6fd21513e50284510c90bf2ad6fc29f2a5b019a26fb773af3adda980a90122e9", + "chksum_sha256": "588cb2521fd870b891db2fe2219d45b843ee6177c084d7af35d54e5eac5b33f2", "format": 1 }, { "name": "plugins/action/active_directory_join_domain_with_all_nodes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7562db5aa714230b24706439845cf0d6bc7dafe41297695412622ce7878c3327", + "chksum_sha256": "03fa4a2e352add7f7ca5c43d3c132b44f1b0bdf666152d77ca0f40c01623168d", "format": 1 }, { "name": "plugins/action/pxgrid_service_reregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1702869a6c2a59a0eb86ee64dd3d0e01a836be675647d511336689eb1a039e62", + "chksum_sha256": "cff4d03e86f0b42c5f06b073bddbd1d3c42311d189df2b67cd20fbc4a1fc6bc1", "format": 1 }, { "name": "plugins/action/device_administration_policy_set.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59631633fa15933596394ac10eed5f93cb8fe6b1b410f032c7d411470395a323", + "chksum_sha256": "265ee9f0bfc8fbf4fdb75271d65eb4fd4ecef86673f43d6b7be4d1ca4873a079", "format": 1 }, { "name": "plugins/action/hotpatch_rollback.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6af236dfd2a1227f87bd4741c2d1922aea9baedb70956f42c36ed313896a6563", + "chksum_sha256": "741c32544d6fa04edee9f008b6af4a66c97817937011831f8460e10ff9997641", "format": 1 }, { "name": "plugins/action/pxgrid_service_lookup.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "02044ae53dc826fa07e493eadf232f29b0c1e7dd61e1167e563d6d52b8efffd7", + "chksum_sha256": "eb4479bc1993ecaa6c54171a7679f0446d0fdd5761342f62364608f8ef1e2686", + "format": 1 + }, + { + "name": "plugins/action/user_equipment_csv.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "62602cc3302bd7ac936e8bbe014faf0c1c7691add814aff16db8f037677e1780", "format": 1 }, { "name": "plugins/action/portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba4df7e93774c450a0373494036c2aafe249c496e4e9a8a0a7e050ee0bbfe83a", + "chksum_sha256": "8aecb82a92048eefda36084f3854e22c01e8a395cab1cc6ae6229a1ef92a144d", "format": 1 }, { "name": "plugins/action/anc_policy_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64f677f0cf2dfba00fcafc68ee1cd5f37deb64ae728519daefec0a6acf8eebd7", + "chksum_sha256": "74bea84fc374cf7a035691efef0e12a1caf1c562813c734f87c33bb045a96a63", + "format": 1 + }, + { + "name": "plugins/action/upgrade_stage_cancel_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "62b0a8930f7335d69a2761021b31346b6d14f7d18d90fbb938ba21a806b2f1a4", "format": 1 }, { "name": "plugins/action/network_access_local_exception_rules_reset_hitcounts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e77fe86a7570db61e2f3da404d138cd412e7c2215c2715e6c4bd5e907e47b9b", + "chksum_sha256": "e06d3cc6c25d7770167e70f06d354418a57f5754a6605aa96daaf23966403599", "format": 1 }, { "name": "plugins/action/device_administration_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0d63a3bc0c2c057a75f7c79f57bf4dd11ffc08bbcbe92dc3ae05a2287a03da46", + "chksum_sha256": "c0d0d5998f88e77d82ec0e8109c6e94ffe6b438e25513e5ac9ef9e95a52ce28d", "format": 1 }, { "name": "plugins/action/hotspot_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2eaa8e92f722ddb179f033a61ef74e70d56dd70b6be82fe1b55c8dce4ebd34ab", + "chksum_sha256": "2f2ece300fa70cd38f19efa66737152d7de2d4cd4b48e66792c0b279c1b3da06", "format": 1 }, { "name": "plugins/action/backup_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7560acc48a82b3040e02a4af91bab9c886c65576aaacb26d5c7ecf10a05c4ddf", + "chksum_sha256": "d9a77b83208b0b231a639a8b644e7ca260f4981b1f383b89e32ce2f78cd57a41", "format": 1 }, { "name": "plugins/action/sponsor_group_member_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a40e186fa8b8d29ab44c91ed33a5eb95f0b6adc2984de884a3c63410ce4a153b", + "chksum_sha256": "85faa24b9f66bde5014d344cda9729b7ded46dc5c8d906bd4bba7b5caf55e1e3", "format": 1 }, { "name": "plugins/action/native_supplicant_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "da5ba7417c132f2174f96743065ee6ff09b066fc310d394f12c05c945b433c33", + "chksum_sha256": "0ec266b729faaaa7e9bdea10cef86fa3abef3f4260948b6a137625ef89b31c8b", "format": 1 }, { "name": "plugins/action/network_device_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac43e02124c51a2065f8e5345970ebb87b47a71ad00c1f63aa9da3601746ae7c", + "chksum_sha256": "479c9608c3d980f47cee6ad04dd15ae333108a95461066bd8818965060756665", "format": 1 }, { "name": "plugins/action/egress_matrix_cell.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a8d7450d118f78138af296625e70805ef58276a5d5c913556162799ab55393e", + "chksum_sha256": "3990d5fcf7b8eae63794189a601401087150d24604b43397e8b594809c76b9fd", "format": 1 }, { "name": "plugins/action/self_registered_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b44e8baadd0d37a2875b45952c31be9a35537366c233b5191f496e47df849f1", + "chksum_sha256": "891423f1dc81c17738113f5aa156255de7805362cac4b096d5aee46f5d37279d", "format": 1 }, { "name": "plugins/action/pxgrid_endpoints_by_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a0124d6eea9e3fdfdbc59067fa8f524d6422a41e1393198cf57a24b377de93e", + "chksum_sha256": "43c72731605a085e4730c96c1694d6953c86f9929b32404a3cc5659d56d25e99", "format": 1 }, { "name": "plugins/action/selfsigned_certificate_generate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd774f12f3935f21423517c7323514182cb08ad2b81e0ceee4dac2072111cf41", + "chksum_sha256": "8ba33175b27be1a3d166097a6da3e9d1dd42ea2df8421cd7c3767c73893383db", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_vlan_mapping_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1483a76b949f36ba3e88a82d40e0d81acb1cb3697820293f1b126ce7388ba7e7", "format": 1 }, { "name": "plugins/action/external_radius_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d6e3bb3023b33797f53367f96ebc7ae5c99659bc6d50546ee2a8714778cf951", + "chksum_sha256": "4419e579752a46efb1f35a14ab98a3fa7c6f72ab0af5ed6b66b758023e889907", "format": 1 }, { "name": "plugins/action/dataconnect_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13ed05d46bc6d8a554c4118e01188caac059f872da15d5661564847413402e76", + "chksum_sha256": "e0d8df1604e2d62e15bb7b3cda7109e73f169c3e0f182693c72a4038be0f9677", "format": 1 }, { "name": "plugins/action/pxgrid_security_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55670ec42f2fba6762834642bec08d971f37b83c23a7e407d7e12e5d97ac9716", + "chksum_sha256": "c0c93d148e911bad18aba2ba70d380cdc0ab512e03998e9cdfb4c730adf0ca9f", "format": 1 }, { "name": "plugins/action/internal_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "68a12a24b3875f37bbfca7a79080ef1290c1ad6386940f701df7c1d70fe84903", + "chksum_sha256": "dd8eb6e2c6ed94ea255943059b6f123dcfa95db6d55ec6184707b2b83f84d420", "format": 1 }, { "name": "plugins/action/sponsor_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "450565abd7b820154166dfe62c015958d3f1a02a803d4ed2f7f4bde3571e4306", + "chksum_sha256": "385a8805e70612040efcfb578709b8114bd4a9f8c25060c10f0d4961b57394c4", "format": 1 }, { "name": "plugins/action/radius_server_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ddc23ab77b097ace4abef075ae05703bf547d04a61f897ec1bcb1a848f66d6a", + "chksum_sha256": "5d66c270c0285a4edd6e77f906c88b8f04c6d5ddf328bed64e72c274186cfd58", "format": 1 }, { "name": "plugins/action/node_deployment_sync.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "985024b588acff250440173d2218af1e50edb72fe5e7d407ab27b045e02d1fb7", + "chksum_sha256": "033fb4f1a538c77eea1990d66f64f2c721b38e1115b7999fca7fad391dc1a966", "format": 1 }, { "name": "plugins/action/sponsored_guest_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43b206a8cd30f0095b70c803ef8589ac7731373a9e4f470f20ae1b98b6801c78", + "chksum_sha256": "1be0f64cc8002c545879b33c8f5726b973c15fe0e202df24e00fb01943e303ea", "format": 1 }, { "name": "plugins/action/guest_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15d2c9edb6e7bd54ce8f0b0f2ff45af5d9b82a16cbdd4ebcde77b9c515e5ef96", + "chksum_sha256": "59fc66a019ec3cb7842e154a52bc64bcb58fb3c18825e40838bea49d99195aa5", "format": 1 }, { "name": "plugins/action/sgt_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c8aec7bbaf09fd5f06d53ac91930425cb94de43c3a2d2d31f2f448e8143f07b", + "chksum_sha256": "c1d0315bde58c60f0b7f686f0e6afd5584785ee640b8b968d56512187218984a", + "format": 1 + }, + { + "name": "plugins/action/px_grid_direct_sync.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d2d0ae1f76a427b1e9a5b31b3acb0dc82501413f461d3004caf587bd090a124b", "format": 1 }, { "name": "plugins/action/sg_mapping_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6f6f7e2714b6194e25bfd1830308c0f3354849dcd8f3344ad25da21554584239", + "chksum_sha256": "8c0a2f73c173a3587787241081953c2aa694a100a787d92198fcc499c5695644", "format": 1 }, { @@ -2748,7 +3210,7 @@ "name": "plugins/plugin_utils/ise.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75af06fa992137e1506d5daba3fe7da1eda9c590fb4190294af256782ee78a60", + "chksum_sha256": "58b9cba5e3fd3e37567e1a6673b76fdb295dc97014c946e1f2bec44cc9fa0bab", "format": 1 }, { @@ -2776,196 +3238,210 @@ "name": "plugins/modules/device_administration_local_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09ae30cafdfdaedff939f4b2c930cb542fd43b4561624277d409aae46157f7a7", + "chksum_sha256": "ac47c5e0b08f771868c2c56bc988e13c5e9ce93793361b28bc7987e3e8d76ee7", "format": 1 }, { "name": "plugins/modules/device_administration_dictionary_attributes_authentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8476e48894a7656205fc78df7eac32ab88ea67689b3f93062dc5b23c018e0461", + "chksum_sha256": "ab243a37d3fd93977eb431aae03530a531248f4eaad3a684fb20018d37ed57b5", "format": 1 }, { "name": "plugins/modules/licensing_tier_state_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63fb977d105ee74a82916f0ba2298cab112a91c126b43ec2f6eac8031c20bbd5", + "chksum_sha256": "b8d9ffa12dd9a7697382ed8da35dc1ca86954087323d98674592b7c285e99db1", "format": 1 }, { "name": "plugins/modules/trusted_certificate_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7005a773193d4c2af2306f641b10c106f205a563ef5903cce77353726b7bc080", + "chksum_sha256": "9ac672294aab0cc66f02e81e045c2096a06105dd17edae9ea6dcf9e312ff2a23", "format": 1 }, { - "name": "plugins/modules/test_connector.py", + "name": "plugins/modules/network_device_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8765f75d2dc3d2e7b12bdbcca138d78e63c90b4d47ddcdd969eccbded3bb6b6", + "chksum_sha256": "a3bc6ac15cbff97155915dfb398f3c92fb16d2227a5e8ccf1752df17ead0cc16", "format": 1 }, { - "name": "plugins/modules/network_device_group_info.py", + "name": "plugins/modules/px_grid_direct_sync_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2fe4359fc0c23d30519fb22b73700330ca25377e18153339c591d3cc17bca54", + "chksum_sha256": "ecd491e9e40037acd94ff089cc0b7b0d78e2d041d0de68125b6057c392ee459f", "format": 1 }, { "name": "plugins/modules/sxp_connections.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a3c087ea9a964262bc9c18b16b592536c2ac56a76ce8c20b48a7157ef166cac", + "chksum_sha256": "559a7a759cdb1216046034c53dd9788c1f7a75635fa60e127c27209a3a03a8cb", "format": 1 }, { "name": "plugins/modules/guest_ssid.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dede565f2ffb62d09f9bfecc241cf110f74ea4cfb5d36fc89059dc9c9b66653a", + "chksum_sha256": "50c2509b6b9d62c250a9f1c4025152a66929e9cda43c1067c943cdcfa1fb5784", "format": 1 }, { "name": "plugins/modules/proxy_connection_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1cbb52e38a4f8e52c5fe3f7cd05370657404d99ee22c4f662fafaa68797251d5", + "chksum_sha256": "51419ce21abb9e2a0ab936fa30f9bea02930380af4222acf5f040a5c3a9cd3b9", "format": 1 }, { "name": "plugins/modules/node_services_profiler_probe_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2f4e2aaef44e1310805589382a1ea7f3c6d93ee2c0b6ed322428fb520455257", + "chksum_sha256": "02ae3b8cb8601e5de52a98362e55dbd3cdc671a8a0353be056a4128f17057633", "format": 1 }, { "name": "plugins/modules/network_access_dictionary_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d69bb851277d9e75a8b93c8ce1dd8c578e6118526abe491a8c6f22c898a764c1", + "chksum_sha256": "3f806085b6c35ae4dc46f73fe03dd3ed3a3206a253882a55fc8b744f6357d058", "format": 1 }, { "name": "plugins/modules/network_access_policy_set.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5713ef3d393066e493d3c87cc9a719c7d16551a1b835b341ea811f977f7c1888", + "chksum_sha256": "feab28fe053e32c968713067f6919ca47daa8f820ab2f2cc7e6a10dfef826782", "format": 1 }, { "name": "plugins/modules/repository_files_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "081546c6c87db20ca51c38d82b012ba8b1bd5070cf652e0d69e9f5a2ab078a2a", + "chksum_sha256": "c076d9bfa537f7bfcf757d061310fbc91f407bd33ac9b521a138e791c29bd67d", "format": 1 }, { "name": "plugins/modules/repository_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1703f4d06378c7020d3f94421a47556b13dbd7cea9941f7f679b81c8d1e83fb9", + "chksum_sha256": "5b9b744e1267aa1a61c452fbfa8f0a25711e0f46a57d3c54c91b79d1f6b7e278", "format": 1 }, { "name": "plugins/modules/rest_id_store_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14b572f096432cf70b51d5baaf706e6d0ba28d86820ea8703dfe5132862561ea", + "chksum_sha256": "394d9ad2b997ab7bd55af93043acf3857db4206787c521e2d517a568e42e89d7", "format": 1 }, { - "name": "plugins/modules/dictionary_references_info.py", + "name": "plugins/modules/anc_policy_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be0b8b39394faa8fcec5576e32b80f640b9226d8f7e07a9c010edd60df55a206", + "chksum_sha256": "d726d9e5f0130e29bdcb4b83c6145691db91e6d20a7a68136baaa3b7196f03e6", "format": 1 }, { - "name": "plugins/modules/anc_policy_info.py", + "name": "plugins/modules/tasks_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "294257a71721b5d974d429af6b3ddff783885fcca6330621af88d5db6fb37d33", + "chksum_sha256": "3751d8e5654a2cf52a81c4086f59c0bbb73a3b09d16bfbe748c1344fde12a5f5", "format": 1 }, { - "name": "plugins/modules/tasks_info.py", + "name": "plugins/modules/configuration.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9867e0e226170cae411c75ec11449a512ec0bb13a344affdf4759217f3e2b1ed", + "chksum_sha256": "e4c6bfea279c8c48bd9f4d31840ec7a37a6e49e1d31be78e9e07796155620db5", "format": 1 }, { - "name": "plugins/modules/configuration.py", + "name": "plugins/modules/trustsec_sg_vn_mapping_bulk_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "716c2d97dfa29982d894ed7b6eed49df77788bf629c12ad17d54b4bd91d2dd9e", + "chksum_sha256": "9058695b4ee0e8a83cecab2f37783154e7c2d13eb78b49c765f4acb019b9fa92", "format": 1 }, { "name": "plugins/modules/device_administration_authorization_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "739ecce2426b8e3de909cfc839fd96205bee964536e62f493becded908ca8eb9", + "chksum_sha256": "f2b4525b7beebd058983763818deae4e016aa629b5948ccba2c79c7ea90d3333", "format": 1 }, { "name": "plugins/modules/guest_user_email.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7d89a26275bc421969561f4dad11a78b569337f49dce8582fcc3eaf213dff98", + "chksum_sha256": "5d6ff83f2a049a4d01d4ccfcc5861569e855117297055b320221f2c0e83e6341", "format": 1 }, { "name": "plugins/modules/node_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6999a49500155c2bb7f46c35c615249636e24b590b584fe9a2a1e0eff1826d44", + "chksum_sha256": "877b3485538320139f6f45f8e1732df5fcf3536ff0d2919eda672a17b68468c1", "format": 1 }, { "name": "plugins/modules/mnt_authentication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f0681c527c0536669cdfe189906f1a0d50b956ed7d2c62d5ab09a5bd1d164eb", + "chksum_sha256": "3e8a05dca3960d8b236b4e6ab86a1937c74a819158721b469c2228f844ab6550", "format": 1 }, { "name": "plugins/modules/pxgrid_healths_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ccba2e9d5158dfea68ed16f7a88d20ee607adb1230f571d405aef297ec72331", + "chksum_sha256": "b4524c8967bb9433dfa0830d81b34ea13cdb0bbbdf4cebd544047c1912c1501d", "format": 1 }, { "name": "plugins/modules/hotspot_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3faf22154e3697a6747b9a125c97715d01acc6ec9f68075b41dac7ac3e2f411e", + "chksum_sha256": "4fc83c7da5fbf2834960d484faf566e29b79b97289fe45b6dce0fef80cdf1061", "format": 1 }, { "name": "plugins/modules/authorization_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9313dad0b5059a1248e29e1f6e7c8e85c1295fc1b078a7770380c24fce5c7a88", + "chksum_sha256": "6adffa8ca5b3db5f5208645c31c89689c8f84a18f924f026f266216813960760", + "format": 1 + }, + { + "name": "plugins/modules/reservation.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5008fd7a7382a62dc1b1a2181f06aa3214c42df2469778487cfec1d35d6a543f", "format": 1 }, { "name": "plugins/modules/hotpatch_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0e2c05a9c3a3d0202f0cd9b6b5388815a7021c6caed8bf7237ef7569bd93b03d", + "chksum_sha256": "2e029116dd07b353e86b7e2934d962e28ed99893651c9a2059e977760f212f7f", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_sg_vn_mapping_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "917c137cdb7e435e769ef3ef303c29980a5ab74fd108e1edc1bb1fe5ffea85ab", "format": 1 }, { "name": "plugins/modules/node_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "882b934437c291fb9fad34742acf7dc90fc37d4b3eb026dfb42f30b1457acf50", + "chksum_sha256": "3fb8c32338f9f4018b1dd9b518c766f135e28e9d1739d9573662acf703d8a7d1", "format": 1 }, { @@ -2979,686 +3455,840 @@ "name": "plugins/modules/network_access_dictionary_attributes_authentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6c304ee66b0e51c1a3cb95d4a387df3347fc8d34c22b28a8d065a9d79db8674", + "chksum_sha256": "93e1675b10320c085a488b9fb9bdf5a35f0955c4430009f3ead5dcddbe63053d", "format": 1 }, { "name": "plugins/modules/aci_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d00714589a5f15f66f45f8f448144376d3ee8b7fe585909ac7ab35c3ecf49f5d", + "chksum_sha256": "ebe6afd9e611d9545150ab18b9459e8a3d7d48313a968c4110de80a3572a6ffd", "format": 1 }, { "name": "plugins/modules/network_access_policy_set_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8bbef6ddcd1b4622b2a97d7c18e1b0b1f9f9a8e160fbb3a4c5dfde4688b6dfbe", + "chksum_sha256": "0fd31d304d73fd40b924764e2fdc8adb3352a42ab427aa348a2133d79c529358", "format": 1 }, { "name": "plugins/modules/subscriber_imsi_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b2ce392430ce97f2daa5d4246e2ea99d9f32b6eef1a962bb8a448f4cd021cc8d", + "chksum_sha256": "4a2cf4bbfec20a1722d5585fb2d326ab21ca859bbe3ce7c166f8e706782d2dfc", "format": 1 }, { "name": "plugins/modules/id_store_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f493269344feb6a4033def5c0e6d0c3c4d440463b9c19f8ae7a79fb8bcdd7cc9", + "chksum_sha256": "fc48b1ca5b046ded29ccc9129240d51aa1956679603e0f5719227a942d9be5ad", "format": 1 }, { "name": "plugins/modules/device_administration_policy_set_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b82251d9ce28fdee92a44b24606c72313b90ecd377fbb823d528d6fe3bea1a91", + "chksum_sha256": "a8d61f3e4adcf681f45cbc59cc91dbd895bdce6d0c43e631db61eb47938e0dc5", "format": 1 }, { "name": "plugins/modules/sxp_local_bindings_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "35d00be52dbc47268c254ab700bf84d859dc92df667f1b07c62ef68fbb6d4c98", + "chksum_sha256": "a5a1db630c06d02e485769b74193478a058f9219d01c408cc90be2c8a4b689f7", "format": 1 }, { "name": "plugins/modules/ise_root_ca_regenerate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29bd7c7145a9160a485b567a58e97d06b0522f5f610c1efe2cfa9c4243b7bd69", + "chksum_sha256": "e0dd09a066e736a3f37b9a6bcd0f085c968f0efce736af75245fccf011db7b7f", "format": 1 }, { "name": "plugins/modules/mnt_sessions_by_session_id_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2babc37c2aecaca3cea9206bd2f41f0495b3909a4e0a4ab631abd16766499212", + "chksum_sha256": "46f2647089ac4047c8679c2f84a002abc69e56db79d0be02496327fdea7e4eb4", "format": 1 }, { "name": "plugins/modules/network_access_service_name_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b03b476ef2df82c065af8343f272c6b7d88d6853686afea82102e701f707a28", + "chksum_sha256": "39ac2337f4065700e41ca7433d4fe97340c24c6f1f37bd845999a3edc07d2f6c", "format": 1 }, { "name": "plugins/modules/configuration_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e29f02240b3d31ed366388e4cc75fc8da676e639a5cc925c342099a4b785a91e", + "chksum_sha256": "1c2050849d0a945e48d0fe23982953b2584af6c148e4520dbe51e910a9003f11", + "format": 1 + }, + { + "name": "plugins/modules/custom_attributes.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b2d5955ab5976fdf109a7c9dda9ca996c4943908861752defc76f6fa80087e5d", "format": 1 }, { "name": "plugins/modules/guest_user_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "69c182eddf6fa234727d6ed1e37ce07746e7fae7c88c4a29c4f39895ca39ad2e", + "chksum_sha256": "dd77272ba72cbdd1355cfbbad74794c0d2e8bf946b12fc37830ab2b148eb4626", "format": 1 }, { "name": "plugins/modules/aci_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2586669093619adb07848595b89811aa8954a4cb8c052cde2a31e2c840b9dad3", + "chksum_sha256": "7b5dec294797f6cdd34f411cfeb36c5ec722f924ebf220cfaed392fe83ebddca", "format": 1 }, { "name": "plugins/modules/bind_signed_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e29bbdf7db56a3801a7bc49509dd30c59a99d31d19c3ed34868258d29f63ecf", + "chksum_sha256": "4ac0aa93e4c0041f10f68fe4068d81913244c1f1a1a2306defaa1a8a271ef95b", "format": 1 }, { "name": "plugins/modules/endpoint_register.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f49a5222503a73a905aa489517c5d5c2c4d42c8fcefbb41418731eaed3cd6ac", + "chksum_sha256": "f9b487a611b8591549d23193f252bb2b6714a7081a69071a757fc3bcd8e9552c", "format": 1 }, { "name": "plugins/modules/px_grid_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a784dc14d4e256ae046acae41a8aac1e00e3a35365eb7f3358137695cb4a717", + "chksum_sha256": "7d26da31dbabcd1c31e555259bba968157190a612b7828470e2d1f156bbcaf22", + "format": 1 + }, + { + "name": "plugins/modules/px_grid_direct_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b71d90d1808b21127e6284b2fba18384b9daeeb6416a84629a48980a0dd18469", "format": 1 }, { "name": "plugins/modules/device_administration_network_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "39d47ee06a7c2bb9464fb4ce8c3c509010ec682b82fd5d7b8fe172a0dae90802", + "chksum_sha256": "8ed2e94752756a77fcea7238d4c63c819921310eb640a80e1a895a170a651434", "format": 1 }, { "name": "plugins/modules/node_primary_to_standalone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9aeee0804d23f71e8228af812a2ba0be44719e1d81c6324fb88805a4be56f540", + "chksum_sha256": "ada3ba0b6f339fcbdb63ae1f958b0402bb27b6046f9be0a73c7d958d2fd76382", "format": 1 }, { "name": "plugins/modules/active_directory_leave_domain_with_all_nodes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "748402df727ade75ccb80cd8dc5184c585428649b88a6bdac12f5a1910c115f5", + "chksum_sha256": "0066b9396f3fddddbb7d83a8ae660f9fdf9cf621fd09158b25c2a788cec5f253", "format": 1 }, { "name": "plugins/modules/trusted_certificate_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7866b5a7c01dfacb8500b37a6c9fefabac57fe53e1cca6c4c5269320371b33d2", + "chksum_sha256": "8e0eeb1632c6d0f4e1152355208455cac353aefe5508a17a960be2c5aa00b758", "format": 1 }, { "name": "plugins/modules/licensing_connection_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bdcd9d2705e8a2100da6cb81ff01e381f000ff3eb60273e7970d656ae0170861", + "chksum_sha256": "ab725bade0873d2bde546f332273845b0718fe89ab68fa81aa5a7a721f79758e", "format": 1 }, { "name": "plugins/modules/mnt_account_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c4fc3f6fccf8aa815b68914c5fa073ade60fc06c84586aae609557e5620905a6", + "chksum_sha256": "18bfecca4ac2e2c5ed908907107b69cab21fc597968e81ceee2963ad359b2a48", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_sg_vn_mapping_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0918cfd05c084b6c8de7d89297eed9687a6e0ed4af10fc7b10a449e59bd57fe2", "format": 1 }, { "name": "plugins/modules/node_deployment_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "166ab9970563ba3d6d8de08f901e34d08dd445d242ea31b4c518d9f135610b79", + "chksum_sha256": "8b2e37193fd639d0aa1c62c0a4f9d17a1e8c6abdbc1763763151ace639e341cc", "format": 1 }, { "name": "plugins/modules/subscriber_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92c9e14e1f6a087757a766e596ed0e5cb6a94189257fb7e9d0c216d3dc096ce9", + "chksum_sha256": "28870c94f0b4e58ae128f3eddc02cdeec0781c6e4d79da71ce0ad4ac8806c08a", "format": 1 }, { "name": "plugins/modules/pxgrid_failures_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec85b40aede2c5c985ff8f3b5795d207112c65c6c6675fdf9f9143c7e0211988", + "chksum_sha256": "620047e2528a525cd5198ba9fc2985a02678b3726a5f600a848a69e0b60d538d", "format": 1 }, { "name": "plugins/modules/network_access_global_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6596b2bc770e1e393410b9d91a510e529a71caef529e88d0ca102e244c98b5a", + "chksum_sha256": "117d1bb60bcf8ecb8775b5684ec40be25792214f878c5151246fad899fdf7ff3", "format": 1 }, { "name": "plugins/modules/device_administration_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92c92206e422eb46973b3b0d0d1b6a1994732b6a4f305e91d1d0843435242c59", + "chksum_sha256": "e0b50ebbb32f33385a443e2645d4a10e282710885e66cab4d41c488329d8d8e8", "format": 1 }, { "name": "plugins/modules/pxgrid_security_group_acls_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c5e496a8ed7524abbfa731d8cbb265303e5bd353e64b6d546eb024691400a827", + "chksum_sha256": "0dba9f1f51446eb104b3296dacf9b40d866e15ded14e5b830dcb5cb83507e843", "format": 1 }, { "name": "plugins/modules/guest_user_deny.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ccc7be67ebbae53ee7a9cec8e343351ebf128407dda3c44c793d55dbe3ccd8c6", + "chksum_sha256": "7bc3112a2a8b49ed740fecbadcdf7e7f75f5856060c0feb1c63cd4ee708300e3", "format": 1 }, { "name": "plugins/modules/admin_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ae8b4f80470b4fbb690374441da5eb486a6df30f1d805df753b62ee8131fbdb", + "chksum_sha256": "774a439b8e515bbe7a580e770ff677e425e307f3d78226455f896cb28db1c27b", "format": 1 }, { "name": "plugins/modules/endpoint_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7234182a4d90dfcc8d61e69cee62087dd92fa001e0dea6e222da1aad0515d065", + "chksum_sha256": "26c00439c81dfad5e2bc625783ddfbe92681636b77ca9624190e3987ec781169", "format": 1 }, { "name": "plugins/modules/threat_vulnerabilities_clear.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5a65e21240cbdef08c72c22f3fc38024fdf2872157bafb8c9d052d4cd9723e2", + "chksum_sha256": "cae0061dd1bfcf823ac070f1de21842a978a7b4a5506221783cd43c6b245bd54", "format": 1 }, { "name": "plugins/modules/identity_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7c579389a51f5895c6834b9bc58a1a6078a63c8f56838e40eaec496788c00de", + "chksum_sha256": "a505ca5b027f332777860685058d1ba4fd50c76c7f66c3cd08ca9c4bceefea76", + "format": 1 + }, + { + "name": "plugins/modules/duo_mfa_testconnection.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c074763e5b98d13012981a39b30bc6ba66f912a41cf34b130e806fe627f39938", "format": 1 }, { "name": "plugins/modules/network_access_dictionary_attribute_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f70a53a10f74a5f5c4018edbdaf4ddd5cecad5afa3d9912badbbe38f607d5bae", + "chksum_sha256": "d4d79fe7a6264cd452dc7117a59eab54a95b8a6f8c50ca8c4fda11ec4f2e40f4", "format": 1 }, { "name": "plugins/modules/sxp_vpns_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8f365397225b9fbe923f97d2e7fdf2424d880079c1c39e7432b79fbaef99a315", + "chksum_sha256": "ec3f454a459c375788ab58470ef2b0630116743d6dc6834d243dbbba1be36fad", "format": 1 }, { "name": "plugins/modules/network_access_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c71c394baee493813c269df1b56c4c7266cb66f8e9e01765c088ca17af0dc0a", + "chksum_sha256": "3a66e03ae6077503a69f831faf64ccbd6b58aa48ae06945a51907d72d9f167ee", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8b133983435d3199ec07ffe19c655eb388afafa630f8619c5ba9ac544f415708", "format": 1 }, { "name": "plugins/modules/certificate_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a60ddf2d4e06b73c26a3fd67fcc0ea49f5a1a7204d31dcaf11d7a84b1b5dc32", + "chksum_sha256": "d9b698133cd644bf1a881e17f2a459e50699a6bce7f261758dc5ac941a0a9045", "format": 1 }, { "name": "plugins/modules/pxgrid_settings_auto_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c71ffca5fee2bf40c945757640205103b8a8dc10244255639f32980d363c996a", + "chksum_sha256": "2211b486ea3eb1e20cb049fc8fdde248cec8b83b1331fe4ded293ecf80c77dcd", "format": 1 }, { "name": "plugins/modules/guest_location_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7524ac95d885e8cd03250c3559cf2d7e27f680de671e8735eb8ce273e8f65bd6", + "chksum_sha256": "189f182a2112405d25ad0f5de587df471cf1a3c67c39077fa1ace5fb944102f6", "format": 1 }, { "name": "plugins/modules/native_supplicant_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c105f24de5e238f0d2d6e67d977fb7aea951d4d846100f071b07045c08a9a15e", + "chksum_sha256": "fef2ef5e316a1314a7de8861e3075e1ade946acc962233d254e48a763ba74293", "format": 1 }, { "name": "plugins/modules/device_administration_dictionary_attributes_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08d859de5c2944ba7ccabf2605e0d1cc7bc560fa3f0bba947593c8a9bebce930", + "chksum_sha256": "7fd5231cb8ea0e426aef8e76622d61aee17c18b1b42963bb7a45825d542d21da", "format": 1 }, { "name": "plugins/modules/network_access_conditions_for_authentication_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "990e98e15ed154a9a30a89853ea49931719f6d53ea6c8c67194a94ee81fc52a9", + "chksum_sha256": "2dcac024072557a9b757ae00a16b27e2961e0f8171b4f6aef79cb68904cbc558", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c8a77cbfd51071fe77a6f19172ff435f08cc69a18a0eb1f85e2dd3d5e6537d66", "format": 1 }, { "name": "plugins/modules/mnt_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c673c5c9cc1e42b94130c122a68dc8537483da2cd9d497f0e5aa18c667d03059", + "chksum_sha256": "460117dc5633e2e2d8ef509a060a1ce9e9356bcb798bb30510460361ff2cf6e3", "format": 1 }, { "name": "plugins/modules/sponsor_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "440830d53446c8e995da69cbe9b1321ee5fe90a3fbb56800020dfecf5a792f64", + "chksum_sha256": "4669cc15bf064790912c7e810dd22ffa814a878d7c66a3688da3180935e924db", "format": 1 }, { "name": "plugins/modules/device_administration_local_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49552d90f4c02e903bdf3d927bb4a14ea72cecea862ea4d391d666aca92c5122", + "chksum_sha256": "4f7b27ee724d152e0353bbbe109d24f0ff31770aa4ea396ebc60772d63c66134", "format": 1 }, { "name": "plugins/modules/system_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13d091928dc59c166119864b976ab912927180878d62b21113269b6fc8e2921e", + "chksum_sha256": "921cc7c7092f734f3f1c5ecb163a38bc552882b3e67fe666d6b6ab48b7933a8d", "format": 1 }, { "name": "plugins/modules/pxgrid_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a44b764670fd210b48bca6484acd60bc1ba75962bd9a863001199aab9ac2d879", + "chksum_sha256": "3f29d60e31f9d0a0a739eb9f70eab09ba31b0657b99f24b6acc1ce51e44db76f", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "92fe6dce1651fa4fd30b0fdc7ef41bac345dced536af349f2b3a7f25ee6d99e8", "format": 1 }, { "name": "plugins/modules/tacacs_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24632d1746e614d367f8830fb90e54e811f170bbe72f142846e2353acec6d138", + "chksum_sha256": "6cef78394a831fa057d15dfd2aa7b95ec348f7a6bc45fd0c007735983699bb38", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_nbar_app_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9811782cbdfd59a9fe6fbc68573e5bc3e8a82ecd5f7a6d7791a7e9068a2c71be", "format": 1 }, { "name": "plugins/modules/tacacs_server_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5cf7cec337806216ce8d2095ac7bde8ef3efba1ff1b449a0076d305f63cab5e5", + "chksum_sha256": "c8970e3784b6e61112a5a3587df1edaf544d89cd21a894160961cfcbf17a9a13", "format": 1 }, { "name": "plugins/modules/network_access_global_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "da1584ca3b1a9fd0308554c2726cea2d838cbc3ae42289de3657227c6033ca5e", + "chksum_sha256": "8c99eeb2747cd3255806d6f99f49a2ab28f7b5bd26c2cbd35ec71fcdbb8e38ce", "format": 1 }, { "name": "plugins/modules/mnt_session_profiler_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a981bc86da64317d0fb2e5e92d9e8c0390469061923274cdc6359975c707b3fe", + "chksum_sha256": "c454055915d4abb383e7e7e5ce309ca6a3ccca39a1ab303319ed1e38ddf98205", + "format": 1 + }, + { + "name": "plugins/modules/duo_mfa_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0c5ad7fa301e60afd67560f964c7360754e7b74f8a10d88d5a82e856bd57603c", "format": 1 }, { "name": "plugins/modules/external_radius_server_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "814af5eea5adedaf71567040fe7b0868aa1148430395c8cb73efd3d89bc21e2a", + "chksum_sha256": "e8125a7a5ab0e3de44aed06d4c7e87d1e8fe319a7dfbcb558d86fd41baa9e7ff", + "format": 1 + }, + { + "name": "plugins/modules/custom_attributes_rename.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e99533228e2a60cc16b7211f0d6c2398a903764e2aa2ee4f8d5d89af1dee540d", "format": 1 }, { "name": "plugins/modules/session_service_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "285305471b4e4b424bf55002cb53b29582264c933c9eeae0a683823e81732c67", + "chksum_sha256": "eeba4cb3e28da3747ecefe61c3ef13dd5bb1dbd85ec39f00128ba57f1f813f25", "format": 1 }, { "name": "plugins/modules/network_access_global_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8b8ec79d4392452c1091d30cfa2d5a58866a38b876094aa4923f12c7bc801b88", + "chksum_sha256": "7482602be007b622d901477297bb41fb958652e90c632834337fe6e91581228b", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment_subscriber_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2ccdb846d7ba9d7341cde3aa3209fa9282a6b8d3a04f5f9a2b6cc013df625c74", "format": 1 }, { "name": "plugins/modules/sxp_local_bindings_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf6e0e53c061a0c1808d77e85e0eefe546b5524fd5b62d2b7e670e13140f217d", + "chksum_sha256": "7b9ce5c822ec519cf2dfdb3bbe4086f26a1ba6c41f0362bb960b7dc67f5c9b2f", "format": 1 }, { "name": "plugins/modules/pxgrid_performances_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efeeb776fe85cea5921d284fd296181f0ed12a607b5fc3f6fbe7ea6a40a348e7", + "chksum_sha256": "05c10d7a9cba232f1b3929936aa0ee680763cc07e2468d5c35cad7c09d9c474c", "format": 1 }, { "name": "plugins/modules/csr_generate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "119d441b532c45269469923f9bceb3fdadc23c8ea96b126ec40cb0663ee282fe", + "chksum_sha256": "330d7f3f7272a72606f2e52f059df7902c73ae251d9d1b17d70682d7cf3a582c", + "format": 1 + }, + { + "name": "plugins/modules/duo_identitysync_sync_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ac97730bac3cbbd796f3d49faa4bc3c8da15fdbcdc6739b4c005b5f2b5e1696d", "format": 1 }, { "name": "plugins/modules/dataconnect_settings_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de0cee6f0f7dafbf1064c2a527765ce3c6ca9238d096763b08bfac161d45d79b", + "chksum_sha256": "3a601b4d44de93859f85f2bdf300d52e9034dbb64b0317b82ae49a1a3e060a8c", "format": 1 }, { "name": "plugins/modules/pan_ha_update.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7704e611ac6a19e9ff118adeec6d3a1eb46c3d1e8dd4597b87190c8215a73a3e", + "chksum_sha256": "bf0a0869e4a1c3c0a04f8b3d6dd720a0be9d229bb97b2679735af97f08766280", "format": 1 }, { "name": "plugins/modules/mnt_session_by_username_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cbab19d5b0c29f5ef2b89a86ee72ba8b2992ef1ecfba05a79a4eb5a0df197cba", + "chksum_sha256": "a80439a8b89b90979476669c37f6399627654ba811a10cedfe34ff92e52d1938", + "format": 1 + }, + { + "name": "plugins/modules/duo_identity_sync_status.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3b7be870c5e4a006f55abe15832dba12650bd97d7975378ed3d82ba1aeb2dfcb", + "format": 1 + }, + { + "name": "plugins/modules/duo_identity_sync.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "63ae97b12506e987db02fd71c1e03d8680c2158939894d2b42a407e595d8fcd3", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_enable_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "92dccabe3a211166e6bd4566468ed48043b03feec309869e0f52bd79f0c9db3c", "format": 1 }, { "name": "plugins/modules/network_access_time_date_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "512c68e0c3177570b77d3ec64c88ed2f317d36b1e628ab5de3ac474c2097b660", + "chksum_sha256": "f8f782383444dd79bfc3357d2c4b280271fdd2391436b255ed9564cafbed6a4b", "format": 1 }, { "name": "plugins/modules/device_administration_time_date_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cef7f7b1bb08dfbcfafd73b3503eed875821ba10e5bfa7b10cbc9bd162e3b89d", + "chksum_sha256": "7f759aff760e0e1898f69d84e442478994ab98e9210d2705d19a13d37142a571", "format": 1 }, { "name": "plugins/modules/byod_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4da7335799d04544ba7edc2a85772d5b098293ae6c7c88cfe43a6bb25a299ac5", + "chksum_sha256": "ad2edc5d162c1595764a22cebde04246eb4dd7d5fc7f0c89c133dd752e952116", "format": 1 }, { "name": "plugins/modules/node_services_interfaces_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "178d0c64a801a7692df4bcae630a603bb9c4099c27ba763247d6f15c4e56b275", + "chksum_sha256": "ef69350ccf607ca8bc324f5cd79f7c6e0e4e5d32d87c1a8e5c2db7327e30315e", "format": 1 }, { "name": "plugins/modules/pxgrid_endpoints_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72465579a8aeeeb2744940cf3d0c35a1b4960639d4cf2f1b44c4b1eac62e219e", + "chksum_sha256": "4ea877870a4c4a50d697c153d7c6f6d6dc1e5bd20b87b6c204d01d69a1535308", "format": 1 }, { "name": "plugins/modules/portal_theme_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8bcfbe78101b725e2e239015a34293ae387d65c87df63fd2dc2569c15b827077", + "chksum_sha256": "366fb7ad1bf2bf00957e5f100d1dd0df518c9e37885701cca3f25e15e01f0544", "format": 1 }, { "name": "plugins/modules/guest_user_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b3fae6c1c1d24e9c807f5a78354f84c35e75f4897a7d1fb3dc1a217dbde532ec", + "chksum_sha256": "b1eea3235c1410c2b7e28f1dcd22faafc0e9e0a1a1d6e39a0fffbb54f5070f61", "format": 1 }, { "name": "plugins/modules/pxgrid_session_for_recovery_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "334e6a36a312cd82103e3af41686ebe5fba1ff067e26ced5204bbb392bbe3d60", + "chksum_sha256": "af21b421849fb0bc5a84e0e077ce1304acfa17fd9adf0be5e3e88d5c7694fa8b", "format": 1 }, { "name": "plugins/modules/licensing_registration_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d6ba9ad31d635db24412aa750982fc42482821b3ee1acd6b3571f50757f02e7", + "chksum_sha256": "2c513aef1fd12b52e19bf4a0dcfc60943e2c0e58a576db318bf4aa732f101a2e", + "format": 1 + }, + { + "name": "plugins/modules/stop_replication_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "57b18e342ec7fbdb9e16dcbccb5e946aee3b42a3b850d98ea979dab2f6234f2a", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_sg_vn_mapping_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "69c105abd0ca2a082bba7ee91eee97966c6cc40416d674706527e46a91f0ca1e", "format": 1 }, { "name": "plugins/modules/tacacs_server_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82dbccd8a46ae6cbbe2894e54f9a0fe503c02ea351705ea7d079fe1125496505", + "chksum_sha256": "6d11a6e729668dc0923eb50eb70fd547c6137ba5a8bcfdbbe6ef41b5b8eaf70a", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54a0b58cf1763da689c16f4b2f3912bd0f3f6a96dfa1816d4b7a11e6cf8db529", + "chksum_sha256": "b3be0ea1cc652844fff7f76387eaadeeab54a7c38bb20cbc602a15c981064cac", "format": 1 }, { "name": "plugins/modules/dataconnect_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "69d5919d86041f3bf3d7f32ba6720c162e8165e0368b711cad9ede31058c1e2a", + "chksum_sha256": "cc3c211e7f50ed1647ba273085dba91c9958ef6a22bcfad623cfb6684d450ecd", "format": 1 }, { "name": "plugins/modules/system_certificate_import.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dbac596ac6bb7456841a9591a69df3527e48bf82cf78feddf31c6500f0080c8e", + "chksum_sha256": "3dc15f6c5ecf9b1e5e95c9aeb73814655ef2afea5d3395368b989758c92b8eb1", "format": 1 }, { "name": "plugins/modules/mnt_failure_reasons_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84366cea6d069a821d8cabcd550f5deb4af75df67baf7bbb35863199898bc69c", + "chksum_sha256": "d6ca039e54599bafd492c33cfc102aa0392f443ea3d57a9aa9062528ddbf4557", "format": 1 }, { "name": "plugins/modules/transport_gateway_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e40a2d87828b48159c32a5ab798f8ad6741dffe81257ce95f61ae09af4382e7", + "chksum_sha256": "f63139744260ff98cead71b4b5957929a2216bbeb5b11940ac20a165b3f110e8", "format": 1 }, { "name": "plugins/modules/network_access_network_condition_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "66e707026f332f82158fd2012fea22d24ff86f290aa599b532e4ef34e19a66ef", + "chksum_sha256": "84da2192aa78d4080aa1bb5ff64974e70e875c2cc551abf8bc168d12f29e24ab", "format": 1 }, { "name": "plugins/modules/device_administration_authentication_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4b693e5505c39c7694e72e228aaff5af8f068f7537d2a35cc95e0f7725f7f8a1", + "chksum_sha256": "f3a3aecd1aa7e19a80af3e09bfcd06807f3f2e9a548bb654f4aebc6fd78c4b03", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6a9b8e6698d97f9a42160f4f037595d7a79d9528f2328acc65997fcdd36d7841", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_sg_vn_mapping.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "30fedf5fc2eacf1345801d559fa607ba88cb36ce5b8f4352ff2efa326511de17", "format": 1 }, { "name": "plugins/modules/backup_schedule_config_update.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f41bdce3c7fb3c2a82dd5b94eecbbbb0db53e1b4488fb76a9254d3b4a70205", + "chksum_sha256": "0c0b65a09ddd28a20347a084433164ca11cc49dc0c0fa03c4fe50a066a4e86e2", "format": 1 }, { "name": "plugins/modules/network_access_authentication_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6ac7edb1debc0ea05a61a364c0eb790fdb27778c30a201c0cf592b3e68a3ed5", + "chksum_sha256": "0b35c9212dc0af4c69f07d7faa7d5a2becd3a9d3ddf84760b8ccb644f5383d19", "format": 1 }, { "name": "plugins/modules/anc_endpoint_apply.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe21680d72da158ac8b28a2f7b2bcea76d2870cf1c605cffc85ff70b5a43f8d2", + "chksum_sha256": "6f22f5e5d63b466d2dfb25741c4e12416785809f29f7e2c55e4bf59a6c3f0f3b", "format": 1 }, { "name": "plugins/modules/endpoint_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a5062fb00b4ca90a7bd677004552a6672b14fc5773bba33d3c630ede90a3556b", + "chksum_sha256": "5f444d6c4b17b177a7b172b27acf9292a4842dd6b599f7c1b5138c5f459981ba", "format": 1 }, { "name": "plugins/modules/guest_type_email.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e1b5094c48c7f68b9977588a1276f51fadd56d6653d5b03280a7c997af53526d", + "chksum_sha256": "c5a34caf5a31fc7038c3887d17d207a5ff106ade4729edc02eb2c7a4a6d0db3e", + "format": 1 + }, + { + "name": "plugins/modules/duo_identity_sync_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5387436173ca763a75a616417292dfa947995fb10e36401b7d95a129fe0af6ec", "format": 1 }, { "name": "plugins/modules/rest_id_store.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c89b2fb2ba44a7da3fca22b4f4c3fdf0157c2f4bdc16edd3fe76ffa6be486d0", + "chksum_sha256": "42a18d7f0a19edb93554897443b7f8b5ecf6f2fa1fac5277ee61a589b98bb0de", "format": 1 }, { "name": "plugins/modules/licensing_registration_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8e143bbbd3bb0225a2cad0e7c00e00998173ced91eafbd034f1f0963f6efe509", + "chksum_sha256": "1d2eea6269b815f1c46b17ef4061a7abcad04fa36796836091368609a0ff5a4e", "format": 1 }, { "name": "plugins/modules/my_device_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "748f7fb5d09d5eb40a2b621298f0df711ade50999329a6b2b2e24625a98f081d", + "chksum_sha256": "178d3599068faec82ffb363fca7cb7d2657d74ab9edec6df0530d1d4bc1bed9c", "format": 1 }, { "name": "plugins/modules/network_access_authorization_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3cd0179101a1b1efbe61a53a7cb97799ed08e6880bc32d7cbfc89fcae7e98868", + "chksum_sha256": "68fdffa587b0d288d15c49e9c304f8a4455540ab038db5a66c70523024524a66", "format": 1 }, { "name": "plugins/modules/pxgrid_egress_matrices_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "523b21b2be6cc6e4b690615bfa798b85049351b5d5485ac890f3df7abb97fa91", + "chksum_sha256": "2f8a445c311179d1f59584ca6a79cf0ab8d93a156d14064ef851284f64908715", "format": 1 }, { "name": "plugins/modules/active_directory_join_domain.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "113d4c750156d522edd5bba6c030644d9e654e0ae5f04fa73eb39122fec4c032", + "chksum_sha256": "6de6fc619c72d8a30e94462f77c7e9da8d43c73eb75f74713e648b8ae5bf228f", "format": 1 }, { "name": "plugins/modules/device_administration_conditions_for_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2773bf27387c8d366320e3c5c77bbc980c9559ae372087c79dd483fc1896ed63", + "chksum_sha256": "abc9645b45555b7329505e6a20b124f88341d57a802e20b9533f2fa2b6d591fd", "format": 1 }, { "name": "plugins/modules/mnt_session_reauthentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b2ce45b6bc3c47e65b3262807827399ca8ab390c71e1fdbd83f49559adc975fa", + "chksum_sha256": "7da35619c4d51c859b687bfc329065be793a9f0fe515d2342bf3bf160d5b774c", "format": 1 }, { "name": "plugins/modules/support_bundle.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4b8df8794ae6ef84a2e4ac025033160e625427d2e9abb6f77c35324ac5bec8c8", + "chksum_sha256": "546c16eecf5e8881acc2fff934c02f9d1d6886d4fc57df40291f88607e4f73c6", "format": 1 }, { "name": "plugins/modules/device_administration_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a1a5863fb9eb462402511388a0c639b2439870103a278bfa5b6be90005608f70", + "chksum_sha256": "0b307e15d97aea18d609f7f8f37199b1e07d3e725ffd3df7a0d503d3bedc5b1c", "format": 1 }, { "name": "plugins/modules/subscriber.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55c8d1822050944e73ee3ca1d8536fd57ebeab064bfd5881ce3a70877ed05d61", + "chksum_sha256": "033b5ef3c647ce487107516eaf82dee404870a6bab352dfdaf3cf84306b734be", "format": 1 }, { "name": "plugins/modules/pxgrid_endpoints_by_os_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6879191201617c64df2ef196f44fdfacf4515e504659376dc61f252502eb6f45", + "chksum_sha256": "ea477dbf5b1a610067fafe0b971765921636fa929f30d3ef62ea5eb281d788c1", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd3da0a71a6c9aa56fd691517a7e2006251b511f17563c09daceb3ce4be732da", + "chksum_sha256": "41bda1f89e4e555434ea70b41bcf5a0350259cdb231617d2d844405720db417e", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_stage_start_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9442995cd3e5915eb6ffe81993982626fb07cd23a913e4d5ebc4f512391b9e64", "format": 1 }, { "name": "plugins/modules/node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8522a08959d780c1a5ba51814ed143e40fddc75065bfba19ab0fc85260d31c58", + "chksum_sha256": "1919b5acb4d2705cdff3e09754101b3c581aa63ba6d042160de6379f11ec028f", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_vlan_mapping_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4f322e9da75a7f723909e9aa93f824fb55dca64e4b5d6747eed027fd81962b82", "format": 1 }, { "name": "plugins/modules/licensing_smart_state_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07e975c845af65bf8c846b1fae10f3d86701964d7dd79561c194fae378ddd680", + "chksum_sha256": "128a67b82de9bb7f031beac784b73fc54fcf22f9843fd0333b7e03ebe7667d75", "format": 1 }, { "name": "plugins/modules/sxp_connections_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "385d9ceff4cffac0ad5569b6c541cde80dc25ff8a5f513e90314d410e04af9f3", + "chksum_sha256": "0abcfd9c3744e3688806d473d0ce91d324e28d1d2b790301f12dc680830f018c", "format": 1 }, { @@ -3672,77 +4302,98 @@ "name": "plugins/modules/guest_user_sms.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cf01c8ef62234046237fd016db6586ddc6f15e0bbef425b852ea87bd2ee093e4", + "chksum_sha256": "cd04818d94bbba39a5aeadc46d37e62f8a0ac0ebf2cef10d5193f5de7bb104b6", "format": 1 }, { "name": "plugins/modules/pxgrid_user_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ebc990799cf775a81fa9103b042a5998d29072c602427c8225365136b3867b27", + "chksum_sha256": "0172e4cafcc03ece894801cd090daf72990554a64391374e618981a3b5efe017", "format": 1 }, { "name": "plugins/modules/pxgrid_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63b60b03369e703b7e98ac8698d2dc8541674f4d10b96cbad4d28a955e6f2e9d", + "chksum_sha256": "ad1eed4067fa97b34f925473869f5cc14c019e811a212628e1eef1a990991a5d", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_vlan_mapping_bulk_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2bde54dea645cd71e42ec81996d71f3c5959ea8b33135f661b18bfd8eb778648", "format": 1 }, { "name": "plugins/modules/licensing_eval_license_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "092ad108df75727a6971b82fb7d1faae739f2df3480e3b19961e59fbc27abec5", + "chksum_sha256": "9b9d619cc1f96cf6a22eab84ce705748c34f84b6e21c95b76ef1279c2be4354d", "format": 1 }, { "name": "plugins/modules/guest_user_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e7089d767d922a615f4317503f763dea12565f10c53e88b6f9e9dd1155a9c18", + "chksum_sha256": "d28d76530d43636408cdbf1ae4ec68afaf2b1c236c70b92b42e21bd8d860fd9c", + "format": 1 + }, + { + "name": "plugins/modules/endpoints_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a8877073464f8db929da4b6f48373852a0dd99d23c334d68484c1d65d3dab776", "format": 1 }, { "name": "plugins/modules/node_services_sxp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f9359b6fd1cfd0bbda6fe0b62db6f5d577c6bd0caff3e0d8e18cc5efb6aa59", + "chksum_sha256": "fe9a2f5497d33707745ad86a5561e78a8d19c7df5fe56b0739e676ebcea200bd", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "896fb1b8f2b0a354b94629f9f69fe4d56b72c90cb0dc66d0dc0cb8b5460f2d61", + "chksum_sha256": "f8ac6c93e347e9c0a5c86d552b0a784c2807c66e8644e1f804f9459a284300ff", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_proceed.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "276b83407eb1f54b9ca1b50b4cb713973ccf91ce57882ddc14747d11441d5782", "format": 1 }, { "name": "plugins/modules/network_access_conditions_for_authorization_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7f6808078748da83fbd3bf33193a980e16a478823ef26545bf8376fe4c513fa", + "chksum_sha256": "5c56ff749002ab29dd9966a767042458268e50b8a3e4cd0cf6a26aa7c69e3223", "format": 1 }, { "name": "plugins/modules/network_access_identity_stores_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2bff7a962e88648ef38e6a5fc7e4e769d6546ab4bd5530bf229fae94fda7d0cf", + "chksum_sha256": "44eff08307b6dd1817fed439dcb713f5eac3d9926ada966098ec4ab0e2c0e83b", "format": 1 }, { "name": "plugins/modules/pxgrid_account_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "798828d1f1dea8ce271d0d85fac10ae88c58761ebd6d2b68e9654648df813ffe", + "chksum_sha256": "f16fd84646a2ecbada20ed0c915cb5e44236cf058266a754834679298307f491", "format": 1 }, { "name": "plugins/modules/pxgrid_access_secret.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dac8bbd08f48b3dfeb5b2965cef8a570be1b03d56cb778c48d1c94bfe4929e5c", + "chksum_sha256": "a63db44aa753833cd8ca3d5a05cc2b9fb45d697245279e5d3aea977d9bd90085", "format": 1 }, { @@ -3756,56 +4407,63 @@ "name": "plugins/modules/device_administration_authentication_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2216f1e10d9fc493239b212404de1152a8e93a5424e40781ec2c7bc99b3d419e", + "chksum_sha256": "9d2a8085d550b3a4df87bda8b819573c2f16c8c3bf8a083d51de1430ca9c4307", "format": 1 }, { "name": "plugins/modules/active_directory_is_user_member_of_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "392340331831e8f57852bc3fe52fc67346b503b8014aacbbc5daf9b37e12a2f4", + "chksum_sha256": "25ac2d77ebea51facad4f9e47bbc933b6b92bbf942bf1688a75c8e15b21ed0d9", "format": 1 }, { "name": "plugins/modules/sms_provider_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "30e61a30963a7a6953ed62f1cd59222baacef3ba48d6116ed679213367c48626", + "chksum_sha256": "5b627ab07fa9a97a70a744c4b747f4283b2a81dcee761b73761174ec8a06a0f2", "format": 1 }, { "name": "plugins/modules/sxp_local_bindings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab261305426b3606760af2e46fe6d00a84e943192bf2ad51e859904e12680fd8", + "chksum_sha256": "8599221f6b993c53fcb7e03e71b3e706d6ac664b985a80e8c636d872558fced5", "format": 1 }, { "name": "plugins/modules/aci_test_connectivity.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "69b1406fcaffea2e9d7677bbf4f308bb16501522b18fdf4f4255c537d5375654", + "chksum_sha256": "8e781b03585d5cc06de5bef21ca5ea8b94397001d5dc87a3ae1bb1e4bc7b194d", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_proceed_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8e60539e6c20a7724491a76a733576876b65d7517cf8db692d9ef26a07394252", "format": 1 }, { "name": "plugins/modules/device_administration_identity_stores_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "47fc19911d0f0cb5ef9d7339d2241caa26ed596e894bdd5bb69d6de031366ce7", + "chksum_sha256": "45cd6f5e9c4552935b061e361ae915a68a0fa7916efb11a8e71217df785047ba", "format": 1 }, { "name": "plugins/modules/id_store_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "06a6d1fce26994757c7825ea6defbe0c29b653011e30a235afff1ce65136accf", + "chksum_sha256": "2cad7a2d00478de198446755fb9685224c080203d2b23bfbfebbcc089821dfed", "format": 1 }, { "name": "plugins/modules/sg_acl_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d36d21be01c91c21b52a0ea673b78b90e660cc3a883940e8cf1a9d6e948e721", + "chksum_sha256": "78eda82cd5d2e6fcfb3aee784a7facb6cd684eedca982997ff6c11ddd816dceb", "format": 1 }, { @@ -3819,84 +4477,98 @@ "name": "plugins/modules/pxgrid_egress_policies_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d1def0e1c8170e585c9c59e841c35e8f51a917501ec0e719150066e29462832", + "chksum_sha256": "80e2158c652841847d656bdc897ad5a53c8470a77df6e2fda4bc20a9702b9f26", "format": 1 }, { "name": "plugins/modules/anc_endpoint_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d0ed60026d2b75683149dd72c08d85ce9c26ea28566c600a1a9c966e4731420", + "chksum_sha256": "0251bd432e1e195f2dd0ba3edb36c6aa5dcbe3a8de7d4b217bea76772dfa464b", "format": 1 }, { "name": "plugins/modules/guest_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc502233f4ebb19bd8baaf8ff496101371bebfb2174243d89140fc85baf8d501", + "chksum_sha256": "600ee4efbeb8470828c0fadad2439e872e0b66628d74a0ade59fd07aa0cfd6c1", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_vlan_mapping.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4323c5fa5e926b7ef55a707d31eb90ea8499b60fde51b2d07644f14778f105a6", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_vlan_mapping_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "800a53452dd653ed3922612968862b2a8bef4c92ef92bbe24e824e8026aeeb08", "format": 1 }, { "name": "plugins/modules/sponsor_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95514c959d1472f12f379ae7fba7ba17bf369ba32c73538ccc0191d04e047056", + "chksum_sha256": "13e19499252bb2db4d2c90fcbf4febfe6261c1082d2e3b434d566a67261d87c3", "format": 1 }, { "name": "plugins/modules/system_certificate_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b891fbc93ccb6ffb7c1efcbd0b660689a9ed9555c42ec34ff43710c1a1d218f0", + "chksum_sha256": "9626d2b80dd56c3effdc329745ef52b9a17a53f3ad080d2cf7fe699bc658c0b3", "format": 1 }, { "name": "plugins/modules/network_access_dictionary_attributes_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "02eb22fda74bfa91c4c6efc3cb5e34467020ec60d2f9a722d838e70269b4992c", + "chksum_sha256": "9ef480b18d743caad7195ea5c6b756c92854c969eb9175be35cf87438e4aab2f", "format": 1 }, { "name": "plugins/modules/px_grid_node_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a460cbcfddbd6be09f3e917dc6b8a222204c846b94e3af6c49196b1e6a9f3064", + "chksum_sha256": "f0870327516d620805cd04b38faffa3915c9c8379d9e84da616d12b6ef8addee", "format": 1 }, { "name": "plugins/modules/device_administration_global_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "89e67650f326e57f65431f863ce0c83116db2fc27aae9fe7107f88d16fba7ac3", + "chksum_sha256": "bf84613f4db177bdca1fe10cebbfa5e668bd49184e84539080439bbc8a15850e", "format": 1 }, { "name": "plugins/modules/sg_acl_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "73e37949c269a92d51118fba46c5aec3c01a4805ae11ecabf34dece0291a9da9", + "chksum_sha256": "7408ca20199cfe69cd76e41c69ede5a9ea875643dea600afccd2785c7c8ff3ce", "format": 1 }, { "name": "plugins/modules/hotpatch_install.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3931a962d0425130321b383c1374c205b818f3862f434acb3e0582e2aa7ead5", + "chksum_sha256": "fd6272cce1660cb4ccd65081ce88e0e1272b1a40cb4e6f33bf6d94b737c49aa0", "format": 1 }, { "name": "plugins/modules/active_directory_user_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ce0e60fe79af6b6d2ba5ee11f5f01bdd80b5292d7ad365dc16f7bb62ad9ad13", + "chksum_sha256": "9b3e51208f0cc03886e2a6d61699ba4f4b27dcb54a494155046199b30de82470", "format": 1 }, { "name": "plugins/modules/pxgrid_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "67f1f80ae6dfc2f01981388e29aad05165795bc025532d0d4310dc8df83e63c5", + "chksum_sha256": "cf3d637df34d81bd6b131ac16277ea3d65d9c6e6d593536e705af631d728b946", "format": 1 }, { @@ -3906,1544 +4578,1782 @@ "chksum_sha256": "74390d09f37aa5d85cc8143484568195feb83da53aecf81405c59f359129dd41", "format": 1 }, + { + "name": "plugins/modules/trustsec_vn.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3e93c0c467d337abfaa9184cb8520f9f41a258bafca4d28b8a2427b83975e759", + "format": 1 + }, { "name": "plugins/modules/backup_last_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b78f418fa38d677084fb822fa2d09f118db3fad42e89258dd737ee7f5c7c048", + "chksum_sha256": "f015b73a7340e5a08190da357a36f448a73026271e87de2f03687c92c35fbc25", "format": 1 }, { "name": "plugins/modules/deployment_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d05249cd5e5409a1aa6e1b63570775c7ca533217bd6d5bdda3b946e9e870488a", + "chksum_sha256": "e6bfee97e6ab3c5af1105c148cec377b36667616d622be50300984711c0e6cdb", "format": 1 }, { "name": "plugins/modules/sponsor_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cafb343c491e9eccbf48d6910110ed8fa59990c51be6cc1792db13450417b03d", + "chksum_sha256": "bc52aa8987b819d75b25275b07295bfae8e92c9f9358cfc7cbc54e888b0291fe", + "format": 1 + }, + { + "name": "plugins/modules/duo_identity_sync_cancel_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1684d439a3231b2be2e2af718c3fa2710b83caba7c3880384bed160f66a3442", "format": 1 }, { "name": "plugins/modules/csr_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d9cf9e7c183737edf91c9ce7c523af5271caa44838591b781887656c07e045e", + "chksum_sha256": "356c568e4bdddf1feda1a5f32084d2d88cd475a655abb755153860690a252b2b", "format": 1 }, { "name": "plugins/modules/personas_promote_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "978ab627cb06946f6ac276032a3dfd2d93d4f5819d79708fae074eaffb03098c", + "chksum_sha256": "a2ff9e4cee86312203fd2d62dd43808bc9abde87f001a083b78d38198ff37a7e", + "format": 1 + }, + { + "name": "plugins/modules/ipsec.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b48883695d916b31c0a25cddc528d4f9f2ea118832ca11b0bab6f3d2dfd5dbda", "format": 1 }, { "name": "plugins/modules/pxgrid_session_by_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2623aea5d62e93d061703884869a27d158912ac0669c22a9a7c42ef5a84df36", + "chksum_sha256": "be428ac5652d453b5c27eebc2306a41eb1370b8ff4b6906c540ab42b27dfa0cc", "format": 1 }, { "name": "plugins/modules/node_replication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9fa2e77980a669234911cbe0225449bb6f3a548e220624e44a1405d4014830aa", + "chksum_sha256": "f78360cb150330456439de0c1f3ba839f8da38d6d915b7bd9caeef00cad3be4e", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6cbacde8df0e160ea8007fe5f926159b1af70194896e1fe93296cbc5f1fca3d4", + "chksum_sha256": "6cfe8faa310b75842a7d4ba12508864f083b3732eff8d6566aca1deb23a8f55e", "format": 1 }, { "name": "plugins/modules/guest_smtp_notification_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a113c197beff41107c9522004d60993e53174c1b4193e56f8dbc7c09f4d2eb50", + "chksum_sha256": "2424ac874cbf6e8e056ec4ccdf7a53a2a50994ffe7fbfcb7c8f45ad38bb5a4ff", "format": 1 }, { "name": "plugins/modules/node_standalone_to_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "80e251a43c388dd7c921437dd4614161b0fc8da80ca73df2fe37e74c16cbd580", + "chksum_sha256": "9b3d9745242f186138703f3474e1862761d6172af63b359bfb21ebdd5192e16f", "format": 1 }, { "name": "plugins/modules/endpoint_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4bbd0ffcad1d1415e8c0c4a14fb246d1d4ab3b58dedcf3fe5ea39698817866a", + "chksum_sha256": "ddbfdc08d2cab48638db0974629ebeea3cc4492fe71e7f7b30bed1b5c9b6d998", "format": 1 }, { "name": "plugins/modules/sg_mapping_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf6af349ea1a7235560bd8431a0c061bfda1f534f6bee96950f7b018a2a7170f", + "chksum_sha256": "f197d7587b7cad64936701937399aec232f4506eacd7ab70d7a6f078c3278aa6", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_set_all_status.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a29cee6650c646328b66ab750e3261551ec3ee3b3097f5c528e99d0f9caa733", + "chksum_sha256": "dfd8b5428bc8010428ab0b7bc181ab95c577307db6c5363dea0c5056d291a4bf", "format": 1 }, { "name": "plugins/modules/pxgrid_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fba508877c438c68f2092df4a7b4dcaec6dd510c266fc26372831ad6239724c", + "chksum_sha256": "727a21ce03bd3b538b018bc07a38f192c95c2c631fc92a8871c175f590aeee67", "format": 1 }, { "name": "plugins/modules/sg_to_vn_to_vlan_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0e59d1c968814b6c0dab7d9233f0c2e26cb9c037f385ecda25290768ca8ae20f", + "chksum_sha256": "9af6fd0128a51487aba392a99ccd3e0ffa5fd600b368cf35ba2d4f0060b0ca63", "format": 1 }, { "name": "plugins/modules/trusted_certificate_import.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d74fc6796e27f3f666bf81f9f082491d902b36a56bbe234e050c3fdfcfcc030a", + "chksum_sha256": "fb5bd083ee81ac746708bfb466e1890b34776e6960cd67ee0e3d3f201dd4c917", "format": 1 }, { "name": "plugins/modules/network_access_network_condition.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2c19331da2a9a784bdf4b80748b8b3ebf566b83e01c84aeed2b8f2fdccc24cc", + "chksum_sha256": "9b0df6d8c9bf00b178c0c3fe313d369765b77fa791511355e51ccc6c76ffb95f", "format": 1 }, { "name": "plugins/modules/device_administration_authorization_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1eb8aeeed5f6fb7ad12dd76b8b900a1515ac5988b115f7eea36d0b4367fb7717", + "chksum_sha256": "07c9de09e900b30cc6afc471ef0b27ea15c925dbb22daba8bc1a0db7e8693e33", "format": 1 }, { "name": "plugins/modules/backup_schedule_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "53f2f0cd988436f036b16318e7102e2d1ef51f91ab5482e703b3c4cabbd5a9df", + "chksum_sha256": "cf1cd7cc8d7314ca4ea380bc6aac696615622bc285a3fb0decd6255a668d9eea", "format": 1 }, { "name": "plugins/modules/pxgrid_session_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a390646559f4b45bd5ecf7dddd0a13c2c0bf68907a16a1276f3dcd6e019c2693", + "chksum_sha256": "ef2ba51b33ea9e2feb8ed8129543749b465ae55d51d6e69c42379685c40cad87", "format": 1 }, { "name": "plugins/modules/network_access_local_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0e5a2bc4e2226a937203a521aa4ea6588725a67dc9440b39c281c3001b9a8feb", + "chksum_sha256": "23bc624fedd72b6bd7b2c12c88ae5cc0e8cd9b982e712c1e07a7f648fd4f4e5f", "format": 1 }, { "name": "plugins/modules/sg_mapping_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c86a83f3f03df71b9a9f0ad23f5edefea91445259ba2f6a5610cd734242e2a1", + "chksum_sha256": "4a0c4d9e5eb2fd4e6b0f5dae1ea820eadc1e1b8f247cfc07aaafe5e9e33445b7", "format": 1 }, { "name": "plugins/modules/network_access_security_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "132aea148538582861c38e7b7d828b6fddd1886760ba73f92db3bb004626a744", + "chksum_sha256": "571ab834c7dac64d37f67c2f247fd006621244d0da64a5258c02673f2c3ce99c", "format": 1 }, { "name": "plugins/modules/device_administration_global_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "599cb938596c3fd993c1a5c4e7374aa40f34410a25a68955cf714d09208c5016", + "chksum_sha256": "d0f27905685ed94a9e4e79dc004fcf4e23a58e1b0c3046072530c4266536f065", "format": 1 }, { "name": "plugins/modules/device_administration_network_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8884d0f1d01999a9ebbefd81a55f08b4ac3d35335293e9b860b2325c7600155e", + "chksum_sha256": "dbfe6bdc5f65d297c0ea1d25ddb930cd5bf4fc20777eb2cafadb0e4d7175ed09", "format": 1 }, { "name": "plugins/modules/network_access_dictionary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be74a8e486006207c7a811f7578e76fb9e014bb60f3c71dbe4cb75ed7f5b800d", + "chksum_sha256": "2e9cff1489140d5d436a6dcd3d28442af07d5d15e970618121f8bf1b180f321b", "format": 1 }, { "name": "plugins/modules/sponsored_guest_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb7ed5d6de0033b9ac29ef3f0019d8641786e8035792643fed1cd1ab099d9dbe", + "chksum_sha256": "7b503c914e360bf87a0f550970bbb0faef46d28d4a64729f78a22c84aea437cb", "format": 1 }, { "name": "plugins/modules/node_group_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "750421162829c5ce10e54ca66917cec11cc3aceee353c541add40fc74fdc81d0", + "chksum_sha256": "6fe67b2c74447b430fd4906f07056259212268f84931248b8b587f2dcf88709e", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_deploy_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "465afd9c1280c55f7f866b93d62592363532329b4d29626f823ebf5aca4e02c3", + "chksum_sha256": "be5dfaa5a23c222d5667c62f9dd0e36ac091bf546aa637e16d62bd4fe1c13e59", "format": 1 }, { "name": "plugins/modules/mnt_session_disconnect_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "928b75e31e821d6d8f85eb19ba70d5fc9eb633d8a3d94e7f4b2a467a1f500b00", + "chksum_sha256": "162781e129807345db650e2ac71384432bdd59e72f13781571d56993e1423bd2", + "format": 1 + }, + { + "name": "plugins/modules/px_grid_direct_test_connector.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "235a37645dfbca938b5075d9035c635547f1036572893c7d85882dd6f9ebe31b", "format": 1 }, { "name": "plugins/modules/mnt_session_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3f838a5a43a4d49a1d8014bf910dc69bcf416ce65b018c8dc4f5493de6b4a987", + "chksum_sha256": "b65ee7e6ad71f33f34502d57fca2c28535a81e6a371c71283b56aa639ad848bc", "format": 1 }, { "name": "plugins/modules/aci_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "054f8da3aa7d75e80d6368e6291f65706b6018b3354f86a9d83dc394fdcd6264", + "chksum_sha256": "f9cd03f0e49273185483366f7774a6d6e7bd3d414f3ce01c080a833c4e9850fa", "format": 1 }, { "name": "plugins/modules/network_access_dictionary_attribute.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64a7414da1cca2e1525d343b3023b413290ee5d0ba8cb0a18368517f502194c1", + "chksum_sha256": "72800995a4c74af5684822839b17be2592729b200ad45099b2ec1cb564eed93b", "format": 1 }, { "name": "plugins/modules/node_sync.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef27395f52d776aee8b2b1f16f5a1217ead7e25418668010c9741ce82793fb15", + "chksum_sha256": "a60363d047b6432dcd0adf1441df0c563d37ecfcab99c212d3b6d90fe46845f9", "format": 1 }, { "name": "plugins/modules/endpoint_get_rejected_endpoints_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba9420c59d0d036c66b144beb2d2d9fb3b052a74c5351d5097b6158c3db1dcbb", + "chksum_sha256": "f380fe0bcfd1f6108555bc49e4a0c37ff86488b75fbee196cb2b7b8b93693588", "format": 1 }, { "name": "plugins/modules/anc_endpoint_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "302241ea02e2aa8c92899a39fba5cd53584f99fbd6c8932eeea9fd718c2bc547", + "chksum_sha256": "059d60e03f527b84d9fd10c42c91090fb82c5cfefd14335ff5ce277cc9aaf00d", "format": 1 }, { "name": "plugins/modules/licensing_feature_to_tier_mapping_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eed26481748e0b3999a12d26ae44d5ffc7fc59f584bd469b8b704ab9cc1ddcf6", + "chksum_sha256": "0564d4ea56dc373a6c401c1f13334180fd8cf8b4427542597d5c4f77b1e95604", "format": 1 }, { "name": "plugins/modules/mnt_session_by_nas_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "388f3cb3c7e525e0f9a66639be2b7bcf1185afd65aa505c787eb1c7fc3213e80", + "chksum_sha256": "a68dae35403ff802b962442f8683e9eeafaed07ff12c27189f8c9338eed5d987", "format": 1 }, { "name": "plugins/modules/node_promotion.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "99ec57d08a5609872dda46df7a131b37f5a13f4cc1e8bd60877c0bf1e1e61e9b", + "chksum_sha256": "ade67fb4d29e54ad812de160257e1e6cf1b4361a8053b3f26b10401713ef1e9d", "format": 1 }, { "name": "plugins/modules/tacacs_command_sets.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0320dc2599e63a64fc094b258b0d31b03a5461173df251d592239b62034cca06", + "chksum_sha256": "bb64dcd852e0d1a405a76a3cff22df02f32fde45dbc68d32506d5b8b84ef9809", "format": 1 }, { "name": "plugins/modules/pxgrid_service_register.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "592f8d9ed04c8b3052fab71ffdace5bbd8e877785b8f7a976a0ca06ae52cafa0", + "chksum_sha256": "c7946e09c79d17fb02f7517c5762758b2051fca4d241c4ad01ad2807db56facb", "format": 1 }, { "name": "plugins/modules/guest_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "303a13936efbc79fdb335fe060e914b7642270bcab224de2408bb4491866a943", + "chksum_sha256": "0ae64abe95d719ce7d0aded42b1c0d0e7f3e830e38b4b0585d352ae1eb05d666", "format": 1 }, { "name": "plugins/modules/network_device_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a6ae9cae466b24c6f89ed26beb98b96ae23c2006fa392fae57b35d8d21a7064", + "chksum_sha256": "0edec77c1e46da322a8d5de6cd0429a0059acc2de5e756a7757be0f147fe18a1", "format": 1 }, { "name": "plugins/modules/tacacs_external_servers.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a2d34d1340291d32d7d0a75ffc349a9f373fea318f798577f1a9bc18af30459", + "chksum_sha256": "fc2de64477b87716e13470d866ec2c41a53c5a95f966c5bbfc12da00b0c13194", "format": 1 }, { "name": "plugins/modules/proxy_connection_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ee97d1c9e53a778ed5d7016a15e2476aa7be7dbb5881a9528a37434398a4ee2", + "chksum_sha256": "6153d1cc26151c5acf6d9d121bb65fe3a047a379dfa6cb7ed49974d1b1646004", "format": 1 }, { "name": "plugins/modules/pan_ha.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e88ddf214d69522d4fa0f339857a5edf2645c642dfcf70985955d2f153bd0434", + "chksum_sha256": "41f7626509003fd1adaccc7ccfa392df113dbad87e90211db2b3f80ad7d22658", "format": 1 }, { "name": "plugins/modules/system_certificate_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0879141fb1e747d2396e75a53c6b7578ee0313f96d3ec03da506f729f026b400", + "chksum_sha256": "62cb6cef5698eec7f39c6aa106c4e7c2b0226232734e8626f32f6e3755f9cc69", "format": 1 }, { "name": "plugins/modules/telemetry_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e1e94af427bc360c5e2d7ab1b0318ff36e1330ae3e7a68ff15027798df198da", + "chksum_sha256": "6b9b60bb368f47aa1abfa9d040e2bb1174c51a9303dde2881f2d643dceeb2172", + "format": 1 + }, + { + "name": "plugins/modules/endpoints_device_type_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fa452ad53d40728d4821dc3d7e7f2c24ce9c32d4e41c4b66c7ed869af6e0b25a", "format": 1 }, { "name": "plugins/modules/sg_mapping_deploy_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9ffae7055a016b677ee64586fce1fba74e5cdeac39d2356c3c19b71d0615add", + "chksum_sha256": "698841e082f029b371f43411c3c5ce196c09e64f4413dba4ac3db993f56c7489", "format": 1 }, { "name": "plugins/modules/endpoint.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3ca520ea3b391e222f10e3db2066dcc8aba9225fed6a6ed4cac9029dc5c83f0", + "chksum_sha256": "11dbbccd4f995ebb6b09d5eaef1d565eec061734e3ebb60bbd81d980a8cc0f2e", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_clear_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37c4a01ba9712458b187d4f7a2ebc8c1abafc59d35e46a821fe3c8289634ee34", + "chksum_sha256": "a41061d183bb654b00eceffefc6c4c91d8949732bdafd0bd45ec3841ee63392c", "format": 1 }, { "name": "plugins/modules/endpoint_deregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2ddca60a7917b948f22ff4b7c3e34ddc7230afa3bc2de39316461c83242463a", + "chksum_sha256": "fe9196cc2b02bad3ffc222e9d44485fb17bebe814e030f405196c8e1fec84b1c", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bebc8b569009b309ea24cc21abdda066b0fe00e8c1b418bd59a133366ce522f3", "format": 1 }, { "name": "plugins/modules/node_group_node_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d0fc32454bf5e66f351919851ff14bae266323f9271e814b696fd41209f6b54d", + "chksum_sha256": "1afe95cdb82090c56c6f52ffbb2ea7159711c8c5bb73489a6ef52704691eed91", "format": 1 }, { "name": "plugins/modules/system_config_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85c283de9723c7cc0471b7deb9df5cc7619440ee0f864ce7b403e1b78541c7e8", + "chksum_sha256": "a9f125988d1f770b5829ab988f2a7864474f3d0e0cd126b59b22eeeac61a9bc3", "format": 1 }, { "name": "plugins/modules/downloadable_acl.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "88aebabd41e114775ba25632aa9d34fc806593b841dfaef2c6872ff44a473d53", + "chksum_sha256": "ad3a3a84a5627770470c6d77ed6030f44e62452f983e4223dd6530a4a13fac4f", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_certificates_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f45520bba2660390137b24b1e82305bfdc33e96c9b6b4ce35905d621a8f8343c", "format": 1 }, { "name": "plugins/modules/csr_generate_intermediate_ca.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7043f73b25c85cec1b4c8871e4672ded7582652a405fa17c555af3f7a1fe0467", + "chksum_sha256": "2bb1c0e311a1e5b4d580683d425aeab08dce29ea3bb4749646833b2888f5dee0", "format": 1 }, { "name": "plugins/modules/guest_ssid_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "df41e0151e33bbabaddc14dcb1ae54921f33897ca0725134d80e56622e36d6e9", + "chksum_sha256": "b4eccdf2b434bf47787742e45f0c4cbc807b3c3c739c9c7ae68c80ed7b01ecb1", "format": 1 }, { "name": "plugins/modules/anc_endpoint_clear.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eedc32e574d15d50f354af4ce5bb827a15d460ac00ebd605896edff86d9a41af", + "chksum_sha256": "1e3b73a1240c6e580ac72778b70553e8d6a98a9ca297fa92af51f53ccd70de2e", "format": 1 }, { "name": "plugins/modules/sxp_connections_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84e10a79b7ddd984af08aea91e7c67097dc2e0ff25e17a76fb9da3846c7b88b7", + "chksum_sha256": "154a49cb51f8a09a5cd08cf1df5b38858d932460719758eb82f9164b7edce4df", "format": 1 }, { "name": "plugins/modules/filter_policy_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5a4ee69d83504f63cb90cdede8343dfb6b6f123e104b3f3081ccb4de0b0aca10", + "chksum_sha256": "f9f8f83f039b06ae6e03409a3a4d83adc807a1399b168a6e19c9d6e3f115fe3f", "format": 1 }, { "name": "plugins/modules/px_grid_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3174d034610bcbb566c84d5bdc9516bb2d645dd4dcd4da9b5a3b7e18647c2bf", + "chksum_sha256": "66daecd4ad243196a5274019d2dc02dfb53e876085549631bd7fdce5eb247796", + "format": 1 + }, + { + "name": "plugins/modules/endpoints_task.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f62777075ffe95cb823f74da23db8b052135c11c14b16985b7ee2bf752628021", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_delete_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "04ea6994df8a2ec6c1e7bd8da578a79261a841d5cff24d681508e8ea85f0d9b4", "format": 1 }, { "name": "plugins/modules/internal_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "decac83ce362739183afe6784a3fcb60598ed04b5e27395b5dbf000a84d6dd08", + "chksum_sha256": "1e07cd9ce2095ac196809469fb73b46c94af045f2f30f3026d4dab5e40ba0d8d", "format": 1 }, { "name": "plugins/modules/licensing_tier_state_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61a3cb27c81ddd2b24e850d7f1a06d5f7aa4501311bdb0aa394e8a1657bc1d39", + "chksum_sha256": "23f58ed59638757b96d02a5dbc8faf3214ffb40a65e008b6e8ff1c2648271d6b", "format": 1 }, { "name": "plugins/modules/anc_policy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd48b6e6fa1adb5142c672481943c4595fbf0a7c19b685a02a34ba71346b1eac", + "chksum_sha256": "9627e20f72250a89828dad08ad946c8a4e5f1c760296acd9ae5f0de74d358112", "format": 1 }, { "name": "plugins/modules/device_administration_global_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37f11866c9db5c493a42bf69b755bf6a75b0ebb9f1446a7e1cf1dc68ba24cd88", + "chksum_sha256": "9f6a9fc73b61c19157be399eeb2bec332e158ceebb9d1588722e4bd37cde4ebd", "format": 1 }, { "name": "plugins/modules/sgt_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0314620f736cd3b52e5e0b0daa6cee1c5a4b81f4b4750db1014e15428ed7ff93", + "chksum_sha256": "5439ff5759bd302ae19e73e0f6e611b71051ea74ca4c72b750a213f2c6933e0a", "format": 1 }, { "name": "plugins/modules/certificate_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "854360af02395589593d7bcc70860f21668748ff4be0584b30c10e64fa3e3e8e", + "chksum_sha256": "d7d66b0498a474510833d77f49d9e7bf6be14909093da183a735960a12738183", "format": 1 }, { "name": "plugins/modules/sg_acl_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85248ccb3dfa12c2d39bc9229b8330d38a0e20ed302adbd2e98e985909ea5204", + "chksum_sha256": "078bcfbb6f2f6d7bf8197279c72e94f3af8696e32a7195c05a474cd7a949f5bc", "format": 1 }, { "name": "plugins/modules/patch_rollback.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3233069812fd1b2216d3028928cb27cdebcb0967a8548d4f00fcc8e69a75ce98", + "chksum_sha256": "fe1934dcc5fea2aaa7aae7ad1884744e35a570775f244bcefbef302111d325f4", "format": 1 }, { "name": "plugins/modules/anc_policy_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7436d0ef8ddf89f89c57783f432e793b3cc1e513ecf99d65f6eb16bead437643", + "chksum_sha256": "7f9457f519054ca9556db9ad6e984eb42a710761822f8b8e4b819173f65b9411", "format": 1 }, { "name": "plugins/modules/dataconnect_settings_password_expiry.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c66810eeecb2a946475a1bd433e0c281e060d2214b343d5feea2eb8a7879b14d", + "chksum_sha256": "1d1390e1432b724568ee09e7744e38afc7dfa47f6042a18f395197ba5d4c6318", "format": 1 }, { "name": "plugins/modules/pxgrid_node_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b06a5996f311f83bcd5dec8223fc1c7e2caf3ee1de058211280abf9b7b05ebc1", + "chksum_sha256": "c0ab1e02f95ed44271e1009db465105581fd94b8bb92a5df43cc4210831b47d0", "format": 1 }, { "name": "plugins/modules/network_access_dictionary_attributes_authorization_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b627f20f6bf439ff07b4e4c164ba9de4d56f6f9f0718aa8a1e207e5107205de", - "format": 1 - }, - { - "name": "plugins/modules/connector_config_info.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1b02dee83a5885f217e8b6f3eb36038c9b7ae92483e220d725878f580d8c4199", + "chksum_sha256": "5710b9404639e48ca8cd05dc5d81cd588678dea3b51e6cc829e34863720e8ad7", "format": 1 }, { "name": "plugins/modules/guest_user_reset_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "edd84d13bd4585b21bf8f2d3f22618a68f9a7382ff894375d55edae29276aea8", + "chksum_sha256": "bf6dbeb3cbc04b47d5dfb127aaf86f138abb8ad344bc35e5494a37d2f8c6f64c", "format": 1 }, { "name": "plugins/modules/network_access_authorization_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6c4c6eb914b018d631c7d8c2554d25dad66358fd4fcb7bea10e5aacf2afb04b", + "chksum_sha256": "274065fcf90dce57eaf9025477aa54cd21e7cc7b7163e9db52ca3bd2264658b7", "format": 1 }, { "name": "plugins/modules/mnt_session_active_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51d442b3b9d20113be6251325fd453aaf74da8ad9a687b8b5071314aa504ef64", + "chksum_sha256": "c983ccc98d202d3f84abe966f8fa2cf59baa61ea2fcb0b0fe7110d99eaa77c52", "format": 1 }, { "name": "plugins/modules/sxp_vpns_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3f85081ffd0db6815dd8c437fa1804339a497695002f7a3dd38b4a739cf7d8c", + "chksum_sha256": "2e8d963b544399e17ca096d7842b8749c6d3ea9aace15ff51298ed32612b6dcf", "format": 1 }, { "name": "plugins/modules/portal_global_setting.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b54fc63fffdf5b95cb8d4b96b4f2eccc8342028595c39297387f4352c3b9b2ae", + "chksum_sha256": "8b21f1cbd93547ae7c358ea7b4e1109d2b1318aad2d05e88ce6926dec2933457", "format": 1 }, { "name": "plugins/modules/device_administration_conditions_for_authorization_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac0ac34579d1eb813b436f24e5ff6301aa4892012fce09aeb839e7c6303bda07", + "chksum_sha256": "199c276cccce5da361a55e273549da02addcf676e88d53f7e9f5e4b370a1cd74", "format": 1 }, { "name": "plugins/modules/portal_theme.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eac74a6eab83f7eea6b4dcb79218495d9be828c5055b952d320b95abefd9f903", + "chksum_sha256": "c49940e13f7c1927949eec869061b281aecbb90af05cc564d2f614b7dfddace8", + "format": 1 + }, + { + "name": "plugins/modules/px_grid_direct.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "58071a3dae9cb47d49b8c1f9ac9f8665403437295dcb580c22998c58f69666b5", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment_imei_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "03d559ed5b0b7f768f245fa234c0014ff24107783162604dc1fab1268fc57633", "format": 1 }, { "name": "plugins/modules/portal_global_setting_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e832880b77d196074d3db6dd2ecbd5d8a113258054b3fd0c6f1db4e8d80e6549", + "chksum_sha256": "5f54932adce8f3deb6a68858e1d21fbddbd1da3801b684332c743346e62de1e6", + "format": 1 + }, + { + "name": "plugins/modules/active_directories_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7cd476a7ce0e88aa3673d6baa05f12e37d29c32b43171e250b302b8bb2962f6c", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fae0b02d5163f8ebbed8648af13143912a5ab3863f4dc432a8bd71b77609a4c0", + "chksum_sha256": "e41b92725029498d87b3a736a69874115ac87a8e69c4bff9e472eeb2b065c300", + "format": 1 + }, + { + "name": "plugins/modules/reservation_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9afff59bb22738968f2b5419b5e16f6ffd31136948ab659b9693ef1fc8e85a52", "format": 1 }, { "name": "plugins/modules/backup_restore.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9adc139c28a598cd729c8cfe383aad08619712a6b33caf6f21802bf62bdea82b", + "chksum_sha256": "162bf5d90e0b8a47d128d39655fddef6e47c0a67f312bb1fb54b5c2a72e01ad4", "format": 1 }, { "name": "plugins/modules/node_group_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7d21f4ad4493d9a1e84787d34632bf37c55084f6f79f5f084fb97899e255dc2", + "chksum_sha256": "d0a5895e937ad2362670e5051873f203bb6001edbebaa0148be8c58710070ff9", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "41efb0fe8511c5f594cf292f3396ce8a6706a026931adee5495b2f0c043707e7", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_deploy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fa70dd51e24afa87b6842eb88077010e0a01196ebf2855813866568d6179538c", + "chksum_sha256": "7d8a717efb167e3c4e07dd87068a9609aaa2b791bdaa00da4f28bd13495d4ebd", "format": 1 }, { "name": "plugins/modules/allowed_protocols.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5fd8030b06461a911f78269b93e6ab1eb16e486701e9f3d0b4e163965ef40a14", + "chksum_sha256": "a774c63a75d9cdad6dff3cb0e7ef1b45756487935712cf7d3fe294be40614b05", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "faf468a9ba4250f358da8e2efb8809ffbb42d3a26594b7f83092c6c396c770dc", "format": 1 }, { "name": "plugins/modules/active_directory_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "42b2ceb4e49afe80bc417544029f550291558f42198b49addcac44946c7a617b", + "chksum_sha256": "65abf12b8b5aa913248acf21b4c5956272c2dbcfff5bacb9708e48bb2fc330f0", "format": 1 }, { "name": "plugins/modules/sg_mapping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6a62e48d67d99e02e6846a1319c945328d01bf66c3f6885b7812865e46b0410", + "chksum_sha256": "b22a46c81fdf93748b85214f51b7cfa40de1f3ecd435e081e2d6e14bc72a09a8", "format": 1 }, { "name": "plugins/modules/sxp_local_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "135b08abf5d4b53db32136e5d6990b28fe93c49c733e7c304102b387f2135f8e", + "chksum_sha256": "53cb63f49ec5a0f4dd44ecac2bfbf746eba2401bad659605639bef29a2884199", "format": 1 }, { "name": "plugins/modules/support_bundle_download.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "31a5652b2de6d2c210928246dcce7c889ccc53b66514527fc5572e062724bbd7", + "chksum_sha256": "2774f2de4503b6bcab4305c3e5a516b35716feefc4add487508ffa4e3ccb2190", "format": 1 }, { "name": "plugins/modules/self_registered_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1f89c65ddda5385838c739f0bf1225ded48be6c2011b4ea0d718689ca0378f7f", + "chksum_sha256": "0966778adaa9fbc1e3e74fbd1d38647a6e4d60c151c521aac23664b63dfbeba5", "format": 1 }, { "name": "plugins/modules/node_secondary_to_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65ae947ee89f1b01906e504a9f6d50db8d646148d31b810da2dcac54badf90d3", + "chksum_sha256": "b28f5ea00a64025165db7bdc367f4fb3f123b7404d14d8e1b8d1bf03599550e0", "format": 1 }, { "name": "plugins/modules/guest_type_sms.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b1ce1e32ec0486a3aaed2e0110b432b58dd1409ceae1ec4686a00eff771114c", + "chksum_sha256": "4e11d0d8e4fd71fa865d107f6637823ca243aca3f26a05a39a0cf8f061382041", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_nbar_app.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "86d9bdc0255428795a81c20dd8b3228f482bb732fd72dc43dd8bbd47ed0095a2", "format": 1 }, { "name": "plugins/modules/sgt_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "39625699166c8a5ef6a7847951a338289995107068a507ff3fadfc3392f71395", + "chksum_sha256": "154c171586f4afd82cac58be3d768073d495e188d6fce5254fcb4ab2b22d34e3", "format": 1 }, { "name": "plugins/modules/mnt_session_by_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26cea499bea2703550f16836edc00bda73e43568883915ee84ea241cedfa0fbd", + "chksum_sha256": "4995c86579c61504bd8272876339dffb9ff0c324338eeec0f4ba548d6dfa22c6", "format": 1 }, { "name": "plugins/modules/sg_mapping_deploy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cfdc27f93b4de8e932c0a9fd64bcbb3f44fc5f7e68f91e8851718680af258860", + "chksum_sha256": "40b6bc68b93af9d4ebaacf51561eff389bee9e7b4d8858c5be3634039f3a31a4", "format": 1 }, { "name": "plugins/modules/csr_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c222e5e60eb643e121607ba219e39ed65ab2df91e2a93f252074a9bc736b7b4", + "chksum_sha256": "5e4a4633f605b9f223f3f695f9da62a7ad8126a0359e760149af9ff5b3097c30", "format": 1 }, { "name": "plugins/modules/trusted_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8122f76bf6346b714aa5503e3beaab91fb06a771ae82315fdbadf2f664883b38", + "chksum_sha256": "cbf379e97ca33e82daeef94fae3b530ce409182b104fa9d3676717976f003091", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2458f522034753cb508adb909f2096882132d4fa3adfb4b97cbe79e99b4b8fe1", "format": 1 }, { "name": "plugins/modules/filter_policy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "776fcd99f707be4bdeaf66bb0621bb9cb7295d249c135e0fc4c85e59f9361713", + "chksum_sha256": "41a49e10021768a5fce05582f39172c2959f4d0b871d215398e6311c57141009", "format": 1 }, { "name": "plugins/modules/network_access_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6963091d925e8f14277c0e017da5ba2923cac9a95588b9fd3bfa2f08884b42c8", + "chksum_sha256": "9bd7fe908892dc35bd81ac1aeac98e1ad62ec6eda0447d82b2c25a594f8b2ae3", "format": 1 }, { "name": "plugins/modules/pxgrid_endpoint_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b43ba620feaecfc0443cd1c20a2955684aa22c777871c8bbb21529a1156fc5f4", + "chksum_sha256": "b313da9b510b593c63b867b02bd10734d41c2275673d9589bad6c53487e23978", "format": 1 }, { "name": "plugins/modules/radius_server_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4009b312701993ebb7547211501f4ce87fdbd347b022b439970b896e734ea10a", + "chksum_sha256": "13b454b89c568f95ee8d5905b6d754940c3ad4cfbba7d16e2fe247ca9c154179", "format": 1 }, { "name": "plugins/modules/device_administration_time_date_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29850221d9e680f6ae463b47b2950c27d4c53151fef92029f6690065214ec6f0", + "chksum_sha256": "4b7fb9b154f277e72f1768ae668149720706fec1bc7375f53fe1ea62182eaa99", "format": 1 }, { "name": "plugins/modules/node_services_profiler_probe_config_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82d7d053ad481186e46a981eb1a1d48001c3a0f014633fe4c40dd9eaf0d5675e", + "chksum_sha256": "34b035684a2f3d92ebfefa1601af3081ee785c5d8e74d541be0b118af0718e91", "format": 1 }, { "name": "plugins/modules/pxgrid_sessions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d91b3a54f7cddeda8733304fc81554dcc007461196df950926d7bc3d26373e4b", + "chksum_sha256": "8a647d4bcfcf20417aa71c4b29f9888c425ae41276194472bd2bc835a6fc1105", "format": 1 }, { "name": "plugins/modules/allowed_protocols_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7abcb03fc3ff329d890f4d08a400362d5265a0197edb2531e650e810d6c7e0a", + "chksum_sha256": "24c126452f1f381d7f3a28557dd56322e719746e7f5a8fd7201b7aa3a1fc4efd", "format": 1 }, { "name": "plugins/modules/sg_acl.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b50d52db5a2d56665b884b52c233d1d9935df74258c8f4b74b019a8f4929ff4b", + "chksum_sha256": "808ed5919b8f422b5894968cbcc8cce4bc27a3aff23fdfdae049157d5043ee7e", "format": 1 }, { "name": "plugins/modules/network_access_time_date_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e5e7b263490fd8129188741d92f478ef7a365133517bd43db464c448a4a68dc", + "chksum_sha256": "0ed5cc093b377beca13e2eab678f86ca8985ae76f7769eec69d88f6721329488", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_stage_cancel.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "25aee6f4b815805c9673c470966c431f1503fdaada40ac0c47426bd763f24bae", "format": 1 }, { "name": "plugins/modules/mnt_session_posture_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7ab7510580547456ab47e229b696b50e78fabc01df31ce3dc0a71c32b40e1fa", + "chksum_sha256": "112fa103d2ea1fe24877c6a0ce9d3dc263213406ebf7b8645b8ec41df942a619", "format": 1 }, { "name": "plugins/modules/sg_to_vn_to_vlan_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16634c15df9a30b3297ab08b36c92ce03ae44fd11fc34ab2e77913adbd142fb0", + "chksum_sha256": "813fe52df9bd58217c8e667152da13937607ff2f0e02ea18d539a5738b928401", "format": 1 }, { "name": "plugins/modules/profiler_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "928d672be6b828d2a83c3c49dbaa21542255c1a59d7186ce3640996fc2e11a77", + "chksum_sha256": "82d62e37b79dcac8afa4b9af054e817d6c3d2009c8152188f1a500480c5d75d8", "format": 1 }, { "name": "plugins/modules/node_services_sxp_interfaces_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08f1727ebf79110d851dbe1f4e3e676bcaf579a8a7d4d0a157039a7949e26f81", + "chksum_sha256": "947afc88468293445e98d3aa91958336fa498b1a16c8f1e2d53bcec2e83b781d", + "format": 1 + }, + { + "name": "plugins/modules/duo_mfa.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "da1a50463ccd9255c68aedc7169045141bc3bdf6f63e4399c091aef6db2b58d0", "format": 1 }, { "name": "plugins/modules/active_directory.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "60f8354f4f55feea9a38372f83d86c4ec2ac29f63a67a2c402b68f7929addb88", + "chksum_sha256": "a45b0d94114f744bb1b4ae44ad779bc631026cd8f0b3f8c62859128973f971eb", "format": 1 }, { "name": "plugins/modules/identity_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ed4883cb6c36f789f4c5751c23ccb42bfa59d5a958c0934f136384f246b4b58", + "chksum_sha256": "d0645f4d91ac9f629a83b9f2d92765cfa67c10ed4d41986865ab272f18305d55", "format": 1 }, { "name": "plugins/modules/mnt_session_auth_list_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "067df7408dadca42dc20f52efac9948264c57c77faf27b726b57847efdb7adb1", + "chksum_sha256": "c70ed08511723bac837ff3e978510336046aa04e6c5fac204de2d2dfd8984d12", "format": 1 }, { "name": "plugins/modules/subscriber_bulk.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "70a3ef2f608019f7f0f8c8c34fec3e5249d6b46fea8adc8191ec47e10c86c595", + "chksum_sha256": "7cc827fafa232955686c23a39cf1348348602c57d57f1ee0be033d46bbf29689", "format": 1 }, { "name": "plugins/modules/patch_install.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f99520bf466f21469bbd60d167fa894a875b31aa5ad52e5139a45db3a1ce828c", + "chksum_sha256": "89a43faa76fc15312885613e03e7ad889f6107661237ff28fe237eb17fc01d35", "format": 1 }, { "name": "plugins/modules/network_device_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "934c9fefdd7d0e684791455f315f78d2bc5e82cde15a3c72ca5c8fb60c8ec082", + "chksum_sha256": "fc115ae9180680c17db4179df561dbee06db2f76970541193052c574ddab2050", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_bulk_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "88b83e6178140fe46d0e41ba3c526be032e1aa7169f61fb8f7b80fcbc28e62fc", "format": 1 }, { "name": "plugins/modules/network_access_authentication_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "056e3ab2968b328dbb33ba1f39a6e1f26c824351774e6140581e5bdd8ab3b6f2", + "chksum_sha256": "629f786f94a4e7ac58f828445a68ba3c5faf8e3eab5c5f3fc08b7d22ddfd1724", "format": 1 }, { "name": "plugins/modules/device_administration_authorization_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e5b3ed079b2b2648aa3ed9667df214f21a123b0cea278706b1d2b55903653dc1", + "chksum_sha256": "da60260838d8be160645a5609bd7ed04264e690e395ff2aee68d3fa502f520f2", + "format": 1 + }, + { + "name": "plugins/modules/ad_groups_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "af101c6a5edb345750db2c12bb91dbdd8e839d22b246e659aafcd2121f83f76e", "format": 1 }, { "name": "plugins/modules/tacacs_command_sets_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6078960ad6d221b7d90b7d1c3f7b42194e4b150d4190288242ea2af6445573f5", + "chksum_sha256": "e3580709711eaedd6a08a810c7378cf0053775e6d93d387cc0103166f485c2bc", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ab45a8df0632c28782c563a42436e9ff28ddc5cfbbaeab11c91c3eccc07bb189", "format": 1 }, { "name": "plugins/modules/support_bundle_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1676d8c7b2e873fe2e9a1cc71177d8ad46334e5030b245f9a961f3fe235f3b1", + "chksum_sha256": "0eff8e72d911c986dfa81a985ab5deef7ce0d5deb01a30bbbcd9dbd45c06a330", "format": 1 }, { "name": "plugins/modules/active_directory_leave_domain.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c172684a67855d31bb015f9791e44a37aa7c6958200c5ca92dd30ca12b49975", + "chksum_sha256": "0e3a7e3cea68e096e3b4dc5260c66c82588b3019cd822092a2c9e97ff59efb26", "format": 1 }, { "name": "plugins/modules/endpoint_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52663b0e052d8e99c6d88563115c3557a1f549a377b1703107a0bc878378fa8d", + "chksum_sha256": "d7f57b3e39f34d4d84925f29197a90971f68e9289158282ab51e89e6c3f6a8e1", "format": 1 }, { "name": "plugins/modules/guest_user_change_sponsor_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8ce2b5a24d0096e497b6130fbb03f0c9ec813a53605d6c921474aa9e9b67ca12", + "chksum_sha256": "3dfcc50bbd11c6db1bba70dee2d33b455d7a1e1b3321a2365429f4b4246db8a5", "format": 1 }, { "name": "plugins/modules/network_access_authentication_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aed94f53f09a5f7d861d4482bece10dd484c4362a6a0f02829315f0fd1c72818", + "chksum_sha256": "7ecf4c7a911a73352738dc79cc67e9a67bf7d1659fe3ff07b139f515ca690dae", "format": 1 }, { "name": "plugins/modules/downloadable_acl_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "140ba57c9d7b7f4f0a5b0ea1a51fa0008bc921d6513b0ab39a7622daa43771df", + "chksum_sha256": "d05cbeb7a96328f37cb361de8cdcbb681ffed30a18effeedbd295b8e21fcde5b", "format": 1 }, { "name": "plugins/modules/device_administration_conditions_for_authentication_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d480b64169c3027e837a91cb230f565246041fb282d7229f13d364f04118f01c", + "chksum_sha256": "e36f0b0472155b59c099b8ef1d73bb882b24f8bba57880770e4fd863f45521b8", + "format": 1 + }, + { + "name": "plugins/modules/endpoints_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "860e72bf418f788c78cb23501e6cabb8813d722478d4f5bd16c7bb2048fa3de9", "format": 1 }, { "name": "plugins/modules/pxgrid_account_activate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c739ef48014d48c8f8c13d6c6508a4c4468083ba1c36d14548175c67ddac24f7", + "chksum_sha256": "908e306db423b3b5a8985b4ade72373be9121b54b0344ad05d9a34fd5dfc748c", "format": 1 }, { "name": "plugins/modules/sg_to_vn_to_vlan.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b0be26d7e8114496c0975235ca07110a05e4b1ec928a646f8949b5790f2bd3bf", + "chksum_sha256": "89102900a85ec1b17b8177cbd125f0e34db1801e845d4e783fe6607a42d2a6b2", "format": 1 }, { "name": "plugins/modules/network_device_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de59f2824111470884b277f2adee0b3192623514426558fed5a640ad533bed4f", + "chksum_sha256": "6adb2a5daa1a78d66caf7c852cbeee25efb0dc3c5a361e8e7f2484092f122b0f", "format": 1 }, { "name": "plugins/modules/device_administration_authentication_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aad476fd584a0cbbb9e5da60c648e07d19384e111863f323d14ba3915750b844", + "chksum_sha256": "c8c7f2285f66e80e4605b9b8dc27dd8e3769489bbaf7259996a11d6a71fcafc6", "format": 1 }, { "name": "plugins/modules/csr_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8cd0a19db8c2ff90701470eaec2c40eac41fd7e6a1890802aa743e4adaf8317", + "chksum_sha256": "4bd13cbadc4b4249d4be9ca09fbf6973a094d3357b2ad717e463b37ecf860f8e", "format": 1 }, { "name": "plugins/modules/authorization_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f7c133399f06a9a77d4d855195333a9ad9f482c91b1ed12f7715c477316b35f", + "chksum_sha256": "4310b18a46ec20409692387ee47deb19d02f9945b07e703d962398a0cdadd55d", "format": 1 }, { "name": "plugins/modules/sgt.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "11990c1d407ad61e77dafa8ddcc1a173c8039a2abb41f30189f0dde0c54ba6ec", + "chksum_sha256": "60059b47046583ac98e5f1c417c9e2b8ca763faee3a93a7cfd67ddf37ea16bea", "format": 1 }, { "name": "plugins/modules/patch_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a0b11e871bfa667c3c162c3e685d0abef3c0ec7bf844bfe2274278dee8123698", + "chksum_sha256": "6e3cb55b3a7f098d01e9635ad999f51ce108953e9a4903aa644f381f7d40238e", "format": 1 }, { "name": "plugins/modules/device_administration_service_names_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd08d6d64c3a1e845cf0c4f12f6965d9c20addec0fc30c3240877e9ddcb98fbf", + "chksum_sha256": "1c9e2766826d22475d0c0138f9d41daa4e2a1ef7b0e9e9d787ee27533d68166f", "format": 1 }, { "name": "plugins/modules/mnt_session_delete_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5efd226d77f42f8b8aba5dd2384ff129961c2b9ed6ecded473725d29245779a9", + "chksum_sha256": "8664ac554a3ac412f362b2fb0a59f6ea025daafbf73d6f795cca018c9b039bc8", "format": 1 }, { "name": "plugins/modules/px_grid_settings_auto_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0143c9da5cc4178d9960b3fc8ac7e683e53573eb8e08a506b464fac48aa77c21", - "format": 1 - }, - { - "name": "plugins/modules/connector_config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9e44ac4997b4bdcb9567bdeba890e619a3e794801a89eca2bb4ac71b81ab9206", + "chksum_sha256": "61a09f7433f3103661e06fceae9216776f9dddfb31f3e5749dc4d0fd7f8c51ba", "format": 1 }, { "name": "plugins/modules/endpoint_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac2ee91691d27021b47ea49c39b34865b50917d0a30750d651db0341139d3928", + "chksum_sha256": "289b6fccd57a1e5e0da0e505f5a1c49418ee4bc702d4eaa780f7b366771e551b", "format": 1 }, { "name": "plugins/modules/network_access_authorization_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "81f196ad4a4027c1a2d9514d92b5459ac2afe68292e5fa28747ab0aab23a932a", + "chksum_sha256": "873645ca49f94de1881101924d2b5c4c6ac484167844948b3488076ffe89deb0", "format": 1 }, { "name": "plugins/modules/mnt_athentication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "135f75ff102f2cfc50870846320bec461beb3bfda1f0a68acf2b856cbea4ce91", + "chksum_sha256": "08d65ac247f4a004cc821cf386599bf7c5466b702cd571ae9dcdce411c6ca6af", "format": 1 }, { "name": "plugins/modules/dataconnect_settings_status.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e785130c64b7bfda6ec5d0d5916ff1894dfec94406f07c1ec99e82118bdfc04", + "chksum_sha256": "0de1db8238fdebca377a515f9c74863366a686ad375f9b369d810b431563374b", "format": 1 }, { "name": "plugins/modules/device_administration_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "affd4a8462b694bc6073efa52ec4aee7153864b5f9d9a4c2d43c978d5e11d639", + "chksum_sha256": "83dc201d68cf592977aa0d0e5727ab8d68478a18f1e072fe3b76c4725dfb2fb8", "format": 1 }, { "name": "plugins/modules/sxp_vpns.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "886f4337df0e82da7c94965276eed8638535fa4a3585b97c21afb8f386110963", + "chksum_sha256": "a9315fdfc053e50601672bf287c0c41e169c4bd20ff0ad863c20c87977a7007a", + "format": 1 + }, + { + "name": "plugins/modules/endpoints_bulk_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0de420b05150ef416579f913b6f5bc18d7c83d19b41a0c4deed4ec45c251d79b", "format": 1 }, { "name": "plugins/modules/device_administration_local_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8b5a1a060008f3d62d51a6461b940471fccf67fd1214f665684d8c131a277ad2", + "chksum_sha256": "a1f1f8034f8bfc16b0ae916af3f5a66366cc793dd4e1807b8843b4d2ca2d0807", "format": 1 }, { "name": "plugins/modules/resource_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8cfbf5996672a5cceee6c0cbd8b3855808ddc8982304bc05b87157d0ae8972a4", + "chksum_sha256": "1d4a553c8c18eada55b08c9b204032750f6e0bc82ac1647d4f132e386d60145d", "format": 1 }, { "name": "plugins/modules/renew_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9138ed3377ab770a024a0565d6d56806e31438a3e00bc4ec8c1d61c598424c54", + "chksum_sha256": "62cdce4552ad2051e218c8efa3f161b5f658e91c6a05caa089ec5fe888fe711f", "format": 1 }, { "name": "plugins/modules/endpoint_release_rejected_endpoint.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76446a579f2f0c2a848d537db6a18d30d9a2e423604a60955118e0607dd5d002", + "chksum_sha256": "f01d5bfe7bc818fe9339842e73d274127a128920fc3d1b4c65b4d4e2e13406b8", "format": 1 }, { "name": "plugins/modules/guest_user_reinstate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c59aa7e1d3108236a62c497bb5ccb392f92ac2b39ea313a86ad738aedbebccf", + "chksum_sha256": "44de430a1f7e3454c1ee9fb355469df375e2d7ffef1558aa26936bbe23864f9b", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_clone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c76778fb1db86873357e41b7111e0ffc67d5145c1a647cb1ebe407be2d7fd13", + "chksum_sha256": "e17bc49d6935c4fc7d92f913491e8f4ae3f48d3e2f1bb56ea4111bcf30a2b941", "format": 1 }, { "name": "plugins/modules/my_device_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc58e7e8538e3bbc28dbabdf8f8a1de1d5ddc63ad6353668fd6bbbde18ad811e", + "chksum_sha256": "f7c0d067aa02c7fff1d9e785e300327069168bbf96dd4015e19b2251d856e5fc", "format": 1 }, { "name": "plugins/modules/network_access_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0dc6bf0621f8e0edbde010726f7adb641d9e9f544d7c2a7a71b58a2196a8b12b", + "chksum_sha256": "486deb6ffc40ba99e12e99aab8aa9a8b38d60840fe17275b2d8fdf4463e5ca86", "format": 1 }, { "name": "plugins/modules/pan_ha_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a5e12e67ea4100d862876a1a20c1d7a8bc4834a34c98f14d28ebd41fc233dc9", + "chksum_sha256": "53a19f839af2976e7be521b07727ea56b0c008a1c08959dc512d9e4e4ea0dedd", "format": 1 }, { "name": "plugins/modules/pxgrid_user_group_by_username_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b7173618a4c649ba56ca8878371c596350964dc5cf80da2e564ba0846e974c70", + "chksum_sha256": "e578d89683ff31d34b10007dee89299f586adb0b61a9623685c4f86a78367d31", "format": 1 }, { "name": "plugins/modules/node_deployment.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e5c430ca6107d1a0c4e473bc2ec7ee2afd9fcd0d3fd1e532496fe10e2ea967aa", + "chksum_sha256": "4d7ad6ec3bf9eb91e0379d867f0328ae9de14cd3ed61cc7f559153cf411c2184", + "format": 1 + }, + { + "name": "plugins/modules/custom_attributes_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ed8a7c39402fff480d892341d61953722cace5684f2603932a03032a75309c49", "format": 1 }, { "name": "plugins/modules/certificate_template_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "53aac7e9e6cac4e68448da17e9e1492842685deb6ff3f864af87d583093b7912", + "chksum_sha256": "a79b2a37e5f5761849f8d3741fe58f4f6f66daf097aec9458a65584056ce9888", "format": 1 }, { "name": "plugins/modules/tacacs_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3e504ef810dd3090fbcd437cebbfc7f0e00e77b165400d8a8e4bb7323221d12b", + "chksum_sha256": "7876b60b2a86d549d50f4f6f8dea6a6682c1933b5269922aab0d95dfc6ede5ac", "format": 1 }, { "name": "plugins/modules/sg_mapping_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2086f5e45421eef6a31fef68f51d695f766730072a9b0cb9ee72b6b8ba5bc921", + "chksum_sha256": "6ffe04dbe967694b452458e6982ad56d7b36ba0c55694a2030928762dd09f36f", "format": 1 }, { "name": "plugins/modules/sxp_connections_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d4c68238dec1af718271b3d5306ea000197c632d4821032c9a7c8e55b3770d46", + "chksum_sha256": "657554b981fb050e3cc50e0603a5f87a71a189cbb335fe2de29973316d3da69d", "format": 1 }, { "name": "plugins/modules/pxgrid_service_unregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac3fb44bf0da59bab2563ecf232edfeb9f1ddab9776733d1790859c292d4d09c", + "chksum_sha256": "b009b4673700833963fbf8570e5919fa074782623f447e57b64c64d4a97a1ed7", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_disable_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bc913cd5ae80a7d16051deb5eb147f506cd2738507f6988b3d0e32eeb982acc1", "format": 1 }, { "name": "plugins/modules/byod_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "850da29937bdddd65d1537819a6bb1b4a24dbbe9a22a656a6ffcf7dcb16b6c1c", + "chksum_sha256": "c830029d5268c39c9a2d3649921ed5fd6a6059babc6090809db08eb89be33b72", "format": 1 }, { "name": "plugins/modules/sg_to_vn_to_vlan_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5149b51f0543e13cd156db9f7a5e348d9e2fb93fb8f667cb7b0dbc51b5e40681", + "chksum_sha256": "b6ad84675b206cdbdbc65bae8e0242a153cc9a9a90da1a3d53985d80ea70a0e9", "format": 1 }, { "name": "plugins/modules/active_directory_trusted_domains_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44e49c7bc5161cba9d58a3369c1280603e9f930f4ce43d89b3b2134c2300f780", + "chksum_sha256": "9d8701debfa107762975d5a8881fad116d36046b5569031a84858e02e110e35a", "format": 1 }, { "name": "plugins/modules/pxgrid_authorization.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "716cbb731974d0a0ccf91ce064d71def0da5c4d69d0b676d7e44b5c014408eb6", + "chksum_sha256": "141c2080d7ea9791b037a8d7953be4f4f6321fdda350ed5030d915b2ce894702", + "format": 1 + }, + { + "name": "plugins/modules/stop_replication.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1f5dfc3fc4fb7474e27ec35821c2944b6c5608715b56d198252e8295f84a19e4", "format": 1 }, { "name": "plugins/modules/licensing_smart_state_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13c2bda14a972d7be86ef90bd61e0c8bd56f7374866f515859bbc003d2d5cdee", + "chksum_sha256": "98d0bef300b43583b1af4418b48d614b83910e2d92e94ac27a8d8791697fbeab", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5a365c7a7d2f0b706a63d649acb7807b8c58c06b2f61538c96e27894ac861832", + "chksum_sha256": "2bb63812013669463955c98f35d5b55eaa969cc7e31fa3ed49f3bddf7816a5fe", "format": 1 }, { "name": "plugins/modules/sg_mapping_deploy_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c082f7ba3c2356f15b80b7fd8b0ba8f25093b07815e8a33dea1703616a5127aa", + "chksum_sha256": "610ef30fd9f2dadc016c4740df59a6cfdc475386b6579d5812dd6256657526b8", "format": 1 }, { "name": "plugins/modules/sxp_vpns_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "961ef697ad94b8234c501b39c29b4c4cfeedeb506dd26c2deaccfa843f4561d9", + "chksum_sha256": "dd4d904a5bc2d994c6a7fd0ef92a34c30dc740219402541a8b1b09679f144e58", "format": 1 }, { "name": "plugins/modules/device_administration_command_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "abfd39aea65d01234aeb547e3b1116eb9e3cc2937fc6352699ec6368836f0c32", + "chksum_sha256": "f5db331d4c560369d12786a8e7ef1d7bcbaf3805a8e5c669a2b56836d44b140a", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_deploy_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "20f33dc8990466d7672f50a8b0f7a20f2e20f144828bfc525c3db0454b5fd855", + "chksum_sha256": "b109c0c39a7ca9b03d5b64041b62b887f981ed4afa844b5e162777ffbe7d4588", "format": 1 }, { "name": "plugins/modules/repository.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ffa9ec0cacc42ccf95c6220b57e34e6d63a3c9e563e3199b92b7a4ddbd58e7a", + "chksum_sha256": "c286131f037c126260b78bb5f48dfa794c5ead4631e42cc3de33e0b952ef6112", "format": 1 }, { "name": "plugins/modules/guest_user_suspend.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b79b5d16c3b66c3554577c2af772736f964e81bae3a5c4cce2233fb856f4396b", + "chksum_sha256": "84f74b62dee33422da832cac6884532ce6194d99bec29b23b1d0367f6390cfe9", "format": 1 }, { "name": "plugins/modules/network_access_local_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51f3ca86580facf658cf1abec964895a4043a4e1f5d207a54f9623cdde7f3431", + "chksum_sha256": "17b0880fb5470e13d5da9db9c558ccdb90875216c91206cbdddbe6c99659c8aa", "format": 1 }, { "name": "plugins/modules/endpoint_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fab9f7da635106f2a36d21ba7d1f6ac79693166f3453b50a4b9f4bb29b0bb38", + "chksum_sha256": "0d4eb16c5fe32c76045dc6c2c4d0927d001f36a782097fbf15f75a59265b121d", + "format": 1 + }, + { + "name": "plugins/modules/endpoints.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3ea2ff60c5e1f846bfa63070dfd1e9a449c958055a3b2002e654b4d71d511278", "format": 1 }, { "name": "plugins/modules/device_administration_dictionary_attributes_authorization_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07cf2f446be9ca3f8ddec70f6fb4f1ea5996c3c021fbb12f342aa2e9a400fbdc", + "chksum_sha256": "e090a2ac42e7995103fac56420f3281a13dca77dfc5ae509b9303adb46b75722", "format": 1 }, { "name": "plugins/modules/transport_gateway_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24ad7f493db1ce466405b348ee57cb7b97ad40f12810340c89f8612ac61e5d8e", + "chksum_sha256": "9bfc4e7c868384b24dfd2c537b8bd68acd74c30d0b69a05138366be29ea0a5e8", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_stage_start.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "06b0b7527354070805cd2ead7e4bdf8dfecbbfc488f57beee4978f264bdda551", + "format": 1 + }, + { + "name": "plugins/modules/px_grid_direct_dictionary_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e11f0b8aa737410fe3779d5879cafb13a1a104079a527b866f2f322fec1ac95d", "format": 1 }, { "name": "plugins/modules/backup_cancel.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8b42e4d9b7f8dd07571306c1fae0cf89491307672d07b482f8d4b0355843d03b", + "chksum_sha256": "6d3be813dbdd206e996fc8d8ed6f0947cdb273d4c3540c7fdd08cc9cd379f598", "format": 1 }, { "name": "plugins/modules/system_certificate_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c01f01b4a086d90244e0ba5ce9348133e88c31f430b01d5b54de5cc5b4b13d2", + "chksum_sha256": "ef5d39e7f834e73ab71f11b2ac325ceee52639c600f41906f0eda678ec25af46", "format": 1 }, { "name": "plugins/modules/guest_smtp_notification_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0305e409cb1ebd535dc7eedeaf444ba65352b9a5cbb17668a2bb136495bac526", + "chksum_sha256": "5396a7f73d87aa41601c4019ff25b2ab485326379aaad8c0cdc35b9091458357", "format": 1 }, { "name": "plugins/modules/network_access_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a3c11c1dc47edb236e5f5052c50d822cb84a2acaa2518089493c50b51deb8151", + "chksum_sha256": "1ae3960ffe058aadd1a0995b775a86cec5260cee92828b8f33b6efa8ac38a8a0", "format": 1 }, { "name": "plugins/modules/active_directory_add_groups.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e09e04050499f616733bdb2101d8addb5ac566a31c4b295763180e4430b5bb2", + "chksum_sha256": "2689b83d7644fcdbf544e6843230fc84761d9cc6ce186e7ede1f9e094753c670", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_enable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8b43a9dc8ef50f1636a2ef56b02d5a4fde8347a3c8a069b3a5af37b027a70806", "format": 1 }, { "name": "plugins/modules/mnt_session_active_list_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1eb5965437fdc4341e192c2ead750e303c95978af102fa36e592a7f19a73416d", + "chksum_sha256": "b95abf9535f91d098e50684404058fe64f1a73c99d577f2f1ecddecca788f539", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_disable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "566f0ac360630987f7ec13f5bb80a62f2fd9a11f79e9305db2c974c0c5361f78", "format": 1 }, { "name": "plugins/modules/anc_endpoint_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a3569d21abf2efc954fc28bae550fa3785f1422afa361eef6cb3a9ae29b1e37", + "chksum_sha256": "48d9b1693a5f469a2dd80e664e966cc6d054200e8f1c4b22eff5a8837484984a", "format": 1 }, { "name": "plugins/modules/guest_type.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76559dbf5d0dd9789aafc54c94da8a6de33c526b58d7eff513a66ef39719a703", + "chksum_sha256": "3172bcebf4890852d6598733d9cae8d6f2942573c06c386d7bcd0c9a16b06f58", "format": 1 }, { "name": "plugins/modules/active_directory_groups_by_domain_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0eac95f6f75c1fde3207ac1ee8514e5c2052951cc6d912c5234775e844540a49", + "chksum_sha256": "b2bd2b8414eb87a2c36a19953825613102c9ba14a3f8b5e5dd57567de8d8b12b", "format": 1 }, { "name": "plugins/modules/network_device.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f991f5c35be49f5d6fcbc0bd697d4e026fc446a75ca8623be0b709318156ec69", + "chksum_sha256": "e8ef7f6fd98b00dbe5102e0ef0b74585ddb5fd33bdb70dce5606873765889595", "format": 1 }, { "name": "plugins/modules/network_access_conditions_for_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0d5430c7a05800cb2d57d78ca3481ca0fef6734cebc64080ae973fe04cbbd75e", + "chksum_sha256": "ee3dae72340064b0d9e576d734a8641e9ab3e3bc3a28affc0f88ba3a75935a09", "format": 1 }, { "name": "plugins/modules/tacacs_external_servers_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb879f487ea6f18b672115e75eec0ae4fe4026ddc86f13421bcdea7c1ad3fadb", + "chksum_sha256": "71ce3d8ebc4413bd8f113dbfe5f560efe50ef79819263929befce2dcca58f68b", "format": 1 }, { "name": "plugins/modules/active_directory_join_domain_with_all_nodes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14b06a4ef10b9b2584e8f532fe1c37677b72fad9c239990b2d50b29502f7e6e7", + "chksum_sha256": "a60462e444838fdce58e85caa375114f6d8b373374f60b644678b3ddad303b99", "format": 1 }, { "name": "plugins/modules/pxgrid_service_reregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac9855f6d676e6f9300c1993cf53fe6728cfb0eebd08ee2f6bd12a8cb0d09eef", + "chksum_sha256": "71e05ebaa60afb7e18e2e2e6e07b1b5f9623337659e32795926d7fefab9d4256", "format": 1 }, { "name": "plugins/modules/device_administration_policy_set.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1e339b78bc4a644f0b989808b9e32c74d5dcfec162b97dbb0063f0e0058a111", + "chksum_sha256": "59f9267e9d9aaf3d5089f27dc3482028f27f880c38ac0105caaa775e00b40477", "format": 1 }, { "name": "plugins/modules/hotpatch_rollback.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5bbebb8f1ed74a0d02feab93c65ef1e318512ca91a3439d68a6ff4a95ee7301b", + "chksum_sha256": "6b96430d44af60824dc611361deaece647462e11111f8191d2682b6b3688ad42", "format": 1 }, { "name": "plugins/modules/pxgrid_service_lookup.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb23143fd6f111fce408ac8d4e75dac145de82006d52dd37a96ed1ffa05e6e96", + "chksum_sha256": "9e0a4dceededc25fffb8ffa935ed6d74473247ff2c707598585029e44424b15a", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment_csv.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4ca6d2aad1ce94f8bd2c29cb42f4208b26a1c244e9dc871ece8d715da0417ca7", "format": 1 }, { "name": "plugins/modules/portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "86ab7bb424a1c6a4f41c41bd6d7ad204ff661388f684b774af1b49076ee4f846", + "chksum_sha256": "32b8fa6533ef3655464ac4f41f43bbf0acada71e86689e00e6ed770de68de73d", "format": 1 }, { "name": "plugins/modules/anc_policy_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2db248923a20de099bd0a08ca6005fee8ff8c6d9d86834eebaa3fa3f58b4b6e", + "chksum_sha256": "d074275063a0685ffcc9ed9b1932e69829712ad4e8cbb77247adc70043885f9d", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_stage_cancel_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "165981e3a91180bb75d28734fd771f9b4fc4eef9b5b75905e543680dc6e87bb8", "format": 1 }, { "name": "plugins/modules/network_access_local_exception_rules_reset_hitcounts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d77f9887d2c25f06a3b45201865727e8a145ff2d9aafa2be1f1f760acb5382ba", + "chksum_sha256": "940c1ebd73a4ad60c746428ca9bfcbac95c552654104828f81c3ff7c8abb5f38", "format": 1 }, { "name": "plugins/modules/device_administration_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76c1ca1262737ffd4d0ed1c5e3602402de168d0b3e79e06f9981683771a8ecc7", + "chksum_sha256": "7565e7732f762f49ecfabf0e0b1721e89799b509c4282b944cbbbeec11b58c0a", "format": 1 }, { "name": "plugins/modules/hotspot_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "348aff0535f872fac8d9513354f67ee2ca67f84ff42b7052ba1b11abe2e1d536", + "chksum_sha256": "de53bb0e628914dc2911252d8409aaeeeb8c4e403eb51317939921030fab075c", "format": 1 }, { "name": "plugins/modules/backup_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b9ba95bfe05869c4f2ebb1576313c3e277c669686059b9f246fb72c27043a14", + "chksum_sha256": "f66f5ee229dc54fe39a788cc02c6738504fe82e5ad4b5724550999a1351dc968", "format": 1 }, { "name": "plugins/modules/sponsor_group_member_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aefdc19a57de8b900e577a79b07583c669c19ec64c4c974f80cd1078e6d4d0e0", + "chksum_sha256": "2f29785a45919cbc0a1a63b2c3c5c739154086c59372e6fd0a842382868442b9", "format": 1 }, { "name": "plugins/modules/native_supplicant_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ebe468677f8aecc2f3f0b8cd6eda96438228698d3504d992da990bf50d466531", + "chksum_sha256": "95fb03c48d03d8025fe24af654d84e818b4cff18ee6f16c965957b9ca0fe1d2d", "format": 1 }, { "name": "plugins/modules/network_device_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c5f83d40eebe3d0b1db590f20726ade3589910fd444f1de8d6e56afd2466f04", + "chksum_sha256": "c7dcf78b7c931d90182c3951bc0bbd7d5e5cb719ac5ba804d58d28a6d6efcc61", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "168dfa04224c2f353fb93ab9d238d43d5ac8f38dede8a70a8fbdac5cda5c6a63", + "chksum_sha256": "2f2fb087c3ef1c186d1bbbf962e28c3eb42b9ccb9a1a73aa71bc08f051b94917", "format": 1 }, { "name": "plugins/modules/self_registered_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7002e1b65e71ac66cff428c5bc948675cf580925400216659331f2156983c80", + "chksum_sha256": "0ab020fd123e6f9d7ed372b8eca6c6d0c988942dc6fe4afdfdc75d344e75e36e", "format": 1 }, { "name": "plugins/modules/pxgrid_endpoints_by_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c19e5636d12ae13395165460aaad23d8462fa70158fecf4e9b8c91d8e9f4d17", + "chksum_sha256": "419828dc91e57a36b8888047ec5e8facfe27bca3e24aaa5fa8335c4ae9b0597f", "format": 1 }, { "name": "plugins/modules/selfsigned_certificate_generate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "546a291033d01ea28bb968967a462868266c089a876bf60fb2a445f0542ba2d5", + "chksum_sha256": "ee699e1c3578431f8d66fe89d410cf0cde0d0f5ee0b0beeea7c73656a85de313", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_vlan_mapping_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a672bc5d49cb66c6ffe0da2f62be3126c3e58ef3fdc4c2f6c0a91441eff0fb94", "format": 1 }, { "name": "plugins/modules/external_radius_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "746b442891b8a9acb1a5bc67b8d2f3ad1b5e27acc2c7fd9f5565b62300d2ac99", + "chksum_sha256": "f5993d5b8b111f3963c53faf66bdc3bb410aa330cc83be6669b554a7b8a3e04d", "format": 1 }, { "name": "plugins/modules/dataconnect_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "890c65c102b37b0306294437f5b1a85973a3a330eb7fc22481799790ea046717", + "chksum_sha256": "3f8999ff3f7ae07f129550692574b748102195cf236d2fc7ece5717984cdb18e", "format": 1 }, { "name": "plugins/modules/pxgrid_security_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0d1a4531df2dac597cd9b30a29263981f527ad353c2eb13294eb2f1999cada56", + "chksum_sha256": "adcd8c7c832b911d91d2657e1674ef44ba69d17116016bd974022399c49e9064", "format": 1 }, { "name": "plugins/modules/internal_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05a0e8ebb98b6f10b43c4b2b4e359743d3489742ff8aa2ee1c926e3edd105bf3", + "chksum_sha256": "377376cbc40c88da31216720bfddd179ddad160afcc58e6ac907e333f76bfd7d", "format": 1 }, { "name": "plugins/modules/sponsor_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1d4c4ee1b8aeb96c42bb0a6ed06e8ed37e6a212fba4ff788f177918cea7a9c91", + "chksum_sha256": "53bc9dd242a2178f984594221daaeae6f3ea373bf16d99b41a63bef6c73c17ef", "format": 1 }, { "name": "plugins/modules/radius_server_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "619ad9d219c78d01a45f712cda378b8ff15945f1d04648c0880feda6e3cd1294", + "chksum_sha256": "498a2a85f1eccf89e853389b55753596de2552bb853468a7ab7c788de605a95d", "format": 1 }, { "name": "plugins/modules/node_deployment_sync.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64a68a165c75c49095fc1677f6319e5353a976870987d806eadb4b4872e0cf52", + "chksum_sha256": "085da391118527130e5c919d36eb0a36524755ef4411763da41bc710d20d7078", "format": 1 }, { "name": "plugins/modules/sponsored_guest_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e4885db2669c90cd436784c60a5f69733c3b7208f605405444d00b7f9ff683a7", + "chksum_sha256": "b3f4bab1c6000f3833c6b9f986ace4f30def377f9a25e2180cee173d1d9efce8", "format": 1 }, { "name": "plugins/modules/guest_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "31174879c6d1341232fbcaf1e136a18396806b4d80be0e077edcdba639f086bb", + "chksum_sha256": "5b8fa8e738f5dd942aa75ea0131a18e0fa14677f7627a6ef49f06dd3518f213d", "format": 1 }, { "name": "plugins/modules/sgt_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "42bf28049da1e968e93c15b189af60fabca2d78bc20be0a931e8b051647a3f94", + "chksum_sha256": "ab11b553b1533ec8508db3b5846232c8f6f744454467877eaf2f9827ca1d692a", + "format": 1 + }, + { + "name": "plugins/modules/px_grid_direct_sync.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "efca245bd4eb986b5c80f2bd3d8aabfb4a5fc893d93ddcaac8e052804847f4a9", "format": 1 }, { "name": "plugins/modules/sg_mapping_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45dab621404676dc54ca5934ad34b2fd7ba3f876f5f47911c580eccacdaba8df", + "chksum_sha256": "85e29afac27d1f452df35d4a52b68ce69ad3ee0c9a51a66ef5a40f3e07896065", "format": 1 }, { @@ -5821,7 +6731,7 @@ "name": "playbooks/group_vars/ise_servers", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ac69d55205ddcdb3a2084acb395f4ea26e195b233b37a5fbb01767aff48ce85", + "chksum_sha256": "eb0a366cc83d8539ac2f24b84c4a0f681cd16b06519cc625aafd61d1653e374e", "format": 1 }, { @@ -6171,7 +7081,7 @@ "name": "playbooks/credentials.template", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5db043788f88104f89c0273aece227d6c4fc9cbe1a1ac0d993bc81763b958bd", + "chksum_sha256": "740010e9ee833e5a495a186697687e0a60d93d8c071a3e77fb943855a1088654", "format": 1 }, { @@ -6255,21 +7165,14 @@ "name": "changelogs/changelog.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "46af54b2672389b7a9e635b04c480f0697afee607e2e84199b8c5777e1018017", + "chksum_sha256": "140605f83668879d8c78db738188d906df045dfa6d6f30938b06ff48a02fca68", "format": 1 }, { "name": "README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0770ec263df253ef1ee1b8f727e1e03c18f8c1198efbd85d7ed1c63006b3b4a", - "format": 1 - }, - { - "name": "Pipfile", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "17a27a28cca40c85447113986ef3f6491f1e5cae1a17d460adfda229f5296969", + "chksum_sha256": "d1a02a0b361b7e8e37fa4423da5b9c7ac69c9a02c9621a48ee195cc1f5c4f173", "format": 1 }, { @@ -6297,7 +7200,7 @@ "name": ".github/workflows/sanity_tests.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dadf3d50392de4f33e091cf5947f4cf8f4ba153a95b63026e6d8eae8214ebd69", + "chksum_sha256": "c886a00237af058731d9d8fcd9716c646df7f61bac9a410643b5ab837d955376", "format": 1 }, { @@ -6334,6 +7237,27 @@ "chksum_type": "sha256", "chksum_sha256": "1f103c6a9dd07cd13a9a6f17ace6b813f47747eb9cb7e00488cb2073caaf91bb", "format": 1 + }, + { + "name": ".vscode", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": ".vscode/settings.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ff058b88424cd36c92374f3465470d0c24191746d224d3729d623881464c651e", + "format": 1 + }, + { + "name": ".vscode/launch.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6a62b2b5cbd6e0edb4942e59fc4451e2e59f12472965990a24029ae24264fcb2", + "format": 1 } ], "format": 1 diff --git a/ansible_collections/cisco/ise/MANIFEST.json b/ansible_collections/cisco/ise/MANIFEST.json index cd7253ccb..0c78fda00 100644 --- a/ansible_collections/cisco/ise/MANIFEST.json +++ b/ansible_collections/cisco/ise/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "cisco", "name": "ise", - "version": "2.8.1", + "version": "2.9.1", "authors": [ "Rafael Campos ", "William Astorga ", @@ -32,7 +32,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0a3e92ae466e59573dc00981d4201e0f64a87340c6ddbbcbdd2a58ed18f8a0a", + "chksum_sha256": "15f432db63325689f8870dba08698116fcf594e05eaa83c4029245933f588784", "format": 1 }, "format": 1 diff --git a/ansible_collections/cisco/ise/Pipfile b/ansible_collections/cisco/ise/Pipfile deleted file mode 100644 index 2bc8501b5..000000000 --- a/ansible_collections/cisco/ise/Pipfile +++ /dev/null @@ -1,13 +0,0 @@ -[[source]] -url = "https://pypi.org/simple" -verify_ssl = true -name = "pypi" - -[packages] -ciscoisesdk = ">=2.1.1" -requests = ">=2.25.1" - -[dev-packages] - -[requires] -python_version = "3.9" diff --git a/ansible_collections/cisco/ise/README.md b/ansible_collections/cisco/ise/README.md index a6471334e..2961ef5f0 100644 --- a/ansible_collections/cisco/ise/README.md +++ b/ansible_collections/cisco/ise/README.md @@ -52,6 +52,7 @@ The following table shows the supported versions. | 3.1.0 | 2.0.0 | 1.2.0 | | 3.1_Patch_1 | 2.5.16 | 2.0.10 | | 3.2_beta | 2.8.0 | 2.1.1 | +| 3.3_patch_1 | 2.9.1 | 2.2.1 | If your Ansible collection is older please consider updating it first. *Notes*: @@ -88,7 +89,7 @@ export ISE_HOSTNAME= export ISE_USERNAME= export ISE_PASSWORD= export ISE_VERIFY=False # optional, defaults to True -export ISE_VERSION=3.2_beta # optional, defaults to 3.2_beta +export ISE_VERSION=3.3_patch_1 # optional, defaults to 3.3_patch_1 export ISE_WAIT_ON_RATE_LIMIT=True # optional, defaults to True export ISE_USES_API_GATEWAY=True # optional, defaults to True export ISE_DEBUG=False # optional, defaults to False @@ -125,7 +126,7 @@ ise_hostname: ise_username: ise_password: ise_verify: False # optional, defaults to True -ise_version: 3.2_beta # optional, defaults to 3.2_beta +ise_version: 3.3_patch_1 # optional, defaults to 3.3_patch_1 ise_wait_on_rate_limit: True # optional, defaults to True ise_debug: False # optional, defaults to False ise_uses_api_gateway: True # optional, defaults to True @@ -175,7 +176,7 @@ ise_hostname: ise_username: ise_password: ise_verify: False # optional, defaults to True -ise_version: 3.2_beta # optional, defaults to 3.2_beta +ise_version: 3.3_patch_1 # optional, defaults to 3.3_patch_1 ise_wait_on_rate_limit: True # optional, defaults to True ise_debug: False # optional, defaults to False ise_uses_api_gateway: True # optional, defaults to True diff --git a/ansible_collections/cisco/ise/changelogs/changelog.yaml b/ansible_collections/cisco/ise/changelogs/changelog.yaml index 6ecbe5f31..d5edc8259 100644 --- a/ansible_collections/cisco/ise/changelogs/changelog.yaml +++ b/ansible_collections/cisco/ise/changelogs/changelog.yaml @@ -982,4 +982,30 @@ releases: changes: release_summary: Changes the requirements of ansible.utils to allow > 4.0.0 versions. bugfixes: - - ansible.utils changes to `">=2.0.0,<5.0"` in galaxy.yml dependencies. \ No newline at end of file + - ansible.utils changes to `">=2.0.0,<5.0"` in galaxy.yml dependencies. + 2.9.0: + release_date: "2024-04-24" + changes: + release_summary: ansible-ise now support 3.3 patch 1. + bugfixes: + - Service included active_directories. + - Service included ad_groups. + - Service included custom_attributes. + - Service included duo_identity_sync. + - Service included duo_mfa. + - Service included enable_mfa. + - Service included endpoint_stop_replication_service. + - Service included endpoints. + - Service included full_upgrade. + - Service included is_mfa_enabled. + - Service included native_ipsec. + - Service included px_grid_direct. + - Service included sgt_range_reservation. + - Service included user_equipment. + 2.9.1: + release_date: "2024-05-15" + changes: + release_summary: Update network_device_group module. + bugfixes: + - network_device_group - change parameter name from ndgtype to othername. + - network_device_group_info - change parameter name from ndgtype to othername. \ No newline at end of file diff --git a/ansible_collections/cisco/ise/playbooks/credentials.template b/ansible_collections/cisco/ise/playbooks/credentials.template index 6cafc452c..96e05b3ca 100644 --- a/ansible_collections/cisco/ise/playbooks/credentials.template +++ b/ansible_collections/cisco/ise/playbooks/credentials.template @@ -3,7 +3,7 @@ ise_hostname: ise_username: ise_password: ise_verify: False # optional, defaults to True -ise_version: 3.2_beta # optional, defaults to 3.2_beta +ise_version: 3.3_patch_1 # optional, defaults to 3.3_patch_1 ise_wait_on_rate_limit: True # optional, defaults to True ise_debug: False # optional, defaults to False ise_uses_api_gateway: True # optional, defaults to True diff --git a/ansible_collections/cisco/ise/playbooks/group_vars/ise_servers b/ansible_collections/cisco/ise/playbooks/group_vars/ise_servers index 5153435b4..091be00a9 100644 --- a/ansible_collections/cisco/ise/playbooks/group_vars/ise_servers +++ b/ansible_collections/cisco/ise/playbooks/group_vars/ise_servers @@ -3,7 +3,7 @@ ise_hostname: "198.18.133.27" ise_username: "admin" ise_password: "910457" -ise_version: "3.2_beta" +ise_version: "3.3_patch_1" ise_verify: False ise_debug: True ise_uses_api_gateway: True diff --git a/ansible_collections/cisco/ise/plugins/.DS_Store b/ansible_collections/cisco/ise/plugins/.DS_Store new file mode 100644 index 000000000..874d3d2c6 Binary files /dev/null and b/ansible_collections/cisco/ise/plugins/.DS_Store differ diff --git a/ansible_collections/cisco/ise/plugins/action/aci_bindings_info.py b/ansible_collections/cisco/ise/plugins/action/aci_bindings_info.py index 53de0a3c9..335850891 100644 --- a/ansible_collections/cisco/ise/plugins/action/aci_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/aci_bindings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/aci_settings.py b/ansible_collections/cisco/ise/plugins/action/aci_settings.py index f0f255126..95e5e9f20 100644 --- a/ansible_collections/cisco/ise/plugins/action/aci_settings.py +++ b/ansible_collections/cisco/ise/plugins/action/aci_settings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/aci_settings_info.py b/ansible_collections/cisco/ise/plugins/action/aci_settings_info.py index 930fdb510..c3914a94e 100644 --- a/ansible_collections/cisco/ise/plugins/action/aci_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/aci_settings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/aci_test_connectivity.py b/ansible_collections/cisco/ise/plugins/action/aci_test_connectivity.py index 60b95623a..83934fd12 100644 --- a/ansible_collections/cisco/ise/plugins/action/aci_test_connectivity.py +++ b/ansible_collections/cisco/ise/plugins/action/aci_test_connectivity.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directories_info.py b/ansible_collections/cisco/ise/plugins/action/active_directories_info.py new file mode 100644 index 000000000..caf0cfa69 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/active_directories_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="active_directories", + function='get_active_directories', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory.py b/ansible_collections/cisco/ise/plugins/action/active_directory.py index 0d2a18d78..fd56f0eec 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_add_groups.py b/ansible_collections/cisco/ise/plugins/action/active_directory_add_groups.py index e6afb52d9..3afd0c961 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_add_groups.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_add_groups.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_groups_by_domain_info.py b/ansible_collections/cisco/ise/plugins/action/active_directory_groups_by_domain_info.py index 76f1adff1..c5444ec8a 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_groups_by_domain_info.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_groups_by_domain_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_info.py b/ansible_collections/cisco/ise/plugins/action/active_directory_info.py index 673b0870c..7d77de92b 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_info.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_is_user_member_of_group_info.py b/ansible_collections/cisco/ise/plugins/action/active_directory_is_user_member_of_group_info.py index 1134e7ba5..ce9288be9 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_is_user_member_of_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_is_user_member_of_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain.py b/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain.py index 8da2dfe89..187ff6ada 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain_with_all_nodes.py b/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain_with_all_nodes.py index 3c597a0f2..c26f71cc9 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain_with_all_nodes.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain_with_all_nodes.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain.py b/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain.py index c3aa7c7ec..cc72028ba 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain_with_all_nodes.py b/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain_with_all_nodes.py index 56b8b3b24..9caca6d08 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain_with_all_nodes.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain_with_all_nodes.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_trusted_domains_info.py b/ansible_collections/cisco/ise/plugins/action/active_directory_trusted_domains_info.py index 1415f4caf..36d0ace57 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_trusted_domains_info.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_trusted_domains_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_user_groups_info.py b/ansible_collections/cisco/ise/plugins/action/active_directory_user_groups_info.py index 262c9cd95..c5322a740 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_user_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_user_groups_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/ad_groups_info.py b/ansible_collections/cisco/ise/plugins/action/ad_groups_info.py new file mode 100644 index 000000000..f590ddd86 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ad_groups_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + activeDirectory=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + active_directory=params.get("activeDirectory"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("activeDirectory") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="ad_groups", + function='get_adgroups', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/admin_user_info.py b/ansible_collections/cisco/ise/plugins/action/admin_user_info.py index 6ee351a30..e2d67b236 100644 --- a/ansible_collections/cisco/ise/plugins/action/admin_user_info.py +++ b/ansible_collections/cisco/ise/plugins/action/admin_user_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/allowed_protocols.py b/ansible_collections/cisco/ise/plugins/action/allowed_protocols.py index eb9de9f66..c878cafd2 100644 --- a/ansible_collections/cisco/ise/plugins/action/allowed_protocols.py +++ b/ansible_collections/cisco/ise/plugins/action/allowed_protocols.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/allowed_protocols_info.py b/ansible_collections/cisco/ise/plugins/action/allowed_protocols_info.py index 00258f04c..b2bd2af51 100644 --- a/ansible_collections/cisco/ise/plugins/action/allowed_protocols_info.py +++ b/ansible_collections/cisco/ise/plugins/action/allowed_protocols_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_apply.py b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_apply.py index e6b6b818a..b115ac712 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_apply.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_apply.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_monitor_status_info.py index 96e51ce60..eb33874af 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_request.py index eb2dcb101..3b9e29e3c 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_clear.py b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_clear.py index 696acc0ca..502d6b0ec 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_clear.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_clear.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_info.py b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_info.py index 69ccd3d4f..ebc578132 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_info.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_policy.py b/ansible_collections/cisco/ise/plugins/action/anc_policy.py index d429c258d..2d8686140 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_policy.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_policy.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_monitor_status_info.py index 8815b1bfe..045fe60a1 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_request.py index bcd09421e..5a48d7a68 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_policy_info.py b/ansible_collections/cisco/ise/plugins/action/anc_policy_info.py index aa54af4e8..a5587e186 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_policy_info.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_policy_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/authorization_profile.py b/ansible_collections/cisco/ise/plugins/action/authorization_profile.py index cdf71fdcf..7cd9795cc 100644 --- a/ansible_collections/cisco/ise/plugins/action/authorization_profile.py +++ b/ansible_collections/cisco/ise/plugins/action/authorization_profile.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/authorization_profile_info.py b/ansible_collections/cisco/ise/plugins/action/authorization_profile_info.py index da068f9df..220d28e4f 100644 --- a/ansible_collections/cisco/ise/plugins/action/authorization_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/action/authorization_profile_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_cancel.py b/ansible_collections/cisco/ise/plugins/action/backup_cancel.py index 2e27c32b3..167372c73 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_cancel.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_cancel.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_config.py b/ansible_collections/cisco/ise/plugins/action/backup_config.py index 20b70a7c8..e512c52c0 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_config.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_config.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_last_status_info.py b/ansible_collections/cisco/ise/plugins/action/backup_last_status_info.py index 6befcecb8..0164258fa 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_last_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_last_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_restore.py b/ansible_collections/cisco/ise/plugins/action/backup_restore.py index 9898d6fe6..d1495cbb5 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_restore.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_restore.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_schedule_config.py b/ansible_collections/cisco/ise/plugins/action/backup_schedule_config.py index c26acbfe4..19482ae25 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_schedule_config.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_schedule_config.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_schedule_config_update.py b/ansible_collections/cisco/ise/plugins/action/backup_schedule_config_update.py index 56aeec22c..a26a3d76b 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_schedule_config_update.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_schedule_config_update.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/bind_signed_certificate.py b/ansible_collections/cisco/ise/plugins/action/bind_signed_certificate.py index d247db93f..4912aa8c1 100644 --- a/ansible_collections/cisco/ise/plugins/action/bind_signed_certificate.py +++ b/ansible_collections/cisco/ise/plugins/action/bind_signed_certificate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/byod_portal.py b/ansible_collections/cisco/ise/plugins/action/byod_portal.py index 4de9abd9c..e01960c35 100644 --- a/ansible_collections/cisco/ise/plugins/action/byod_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/byod_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/byod_portal_info.py b/ansible_collections/cisco/ise/plugins/action/byod_portal_info.py index ba4017d9a..80526824d 100644 --- a/ansible_collections/cisco/ise/plugins/action/byod_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/byod_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/certificate_profile.py b/ansible_collections/cisco/ise/plugins/action/certificate_profile.py index a6c13c28d..ba9be072a 100644 --- a/ansible_collections/cisco/ise/plugins/action/certificate_profile.py +++ b/ansible_collections/cisco/ise/plugins/action/certificate_profile.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/certificate_profile_info.py b/ansible_collections/cisco/ise/plugins/action/certificate_profile_info.py index 20505acea..e69ad1a47 100644 --- a/ansible_collections/cisco/ise/plugins/action/certificate_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/action/certificate_profile_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/certificate_template_info.py b/ansible_collections/cisco/ise/plugins/action/certificate_template_info.py index 2d0bab581..71e7982fa 100644 --- a/ansible_collections/cisco/ise/plugins/action/certificate_template_info.py +++ b/ansible_collections/cisco/ise/plugins/action/certificate_template_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/configuration.py b/ansible_collections/cisco/ise/plugins/action/configuration.py index de3fe1eff..4f8a16b2c 100644 --- a/ansible_collections/cisco/ise/plugins/action/configuration.py +++ b/ansible_collections/cisco/ise/plugins/action/configuration.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/configuration_info.py b/ansible_collections/cisco/ise/plugins/action/configuration_info.py index d3ed0d5fe..1bcd43c9c 100644 --- a/ansible_collections/cisco/ise/plugins/action/configuration_info.py +++ b/ansible_collections/cisco/ise/plugins/action/configuration_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/connector_config.py b/ansible_collections/cisco/ise/plugins/action/connector_config.py deleted file mode 100644 index 8e124b7ed..000000000 --- a/ansible_collections/cisco/ise/plugins/action/connector_config.py +++ /dev/null @@ -1,250 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Copyright (c) 2023, Cisco Systems -# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type -from ansible.plugins.action import ActionBase - -try: - from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( - AnsibleArgSpecValidator, - ) -except ImportError: - ANSIBLE_UTILS_IS_INSTALLED = False -else: - ANSIBLE_UTILS_IS_INSTALLED = True -from ansible.errors import AnsibleActionFail -from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( - ISESDK, - ise_argument_spec, - ise_compare_equality, - get_dict_result, -) -from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( - InconsistentParameters, -) - -# Get common arguments specification -argument_spec = ise_argument_spec() -# Add arguments specific for this module -argument_spec.update(dict( - state=dict(type="str", default="present", choices=["present", "absent"]), - additionalProperties=dict(type="dict"), - attributes=dict(type="dict"), - connectorName=dict(type="str"), - connectorType=dict(type="str"), - deltasyncSchedule=dict(type="dict"), - description=dict(type="str"), - enabled=dict(type="bool"), - fullsyncSchedule=dict(type="dict"), - protocol=dict(type="str"), - skipCertificateValidations=dict(type="bool"), - url=dict(type="dict"), -)) - -required_if = [ - ("state", "present", ["connectorName"], True), - ("state", "absent", ["connectorName"], True), -] -required_one_of = [] -mutually_exclusive = [] -required_together = [] - - -class ConnectorConfig(object): - def __init__(self, params, ise): - self.ise = ise - self.new_object = dict( - additional_properties=params.get("additionalProperties"), - attributes=params.get("attributes"), - connector_name=params.get("connectorName"), - connector_type=params.get("connectorType"), - deltasync_schedule=params.get("deltasyncSchedule"), - description=params.get("description"), - enabled=params.get("enabled"), - fullsync_schedule=params.get("fullsyncSchedule"), - protocol=params.get("protocol"), - skip_certificate_validations=params.get("skipCertificateValidations"), - url=params.get("url"), - ) - - def get_object_by_name(self, name): - try: - result = self.ise.exec( - family="edda", - function="get_connector_config_by_connector_name", - params={"connector_name": name}, - handle_func_exception=False, - ).response['response'] - result = get_dict_result(result, 'connectorName', name) - except (TypeError, AttributeError) as e: - self.ise.fail_json( - msg=( - "An error occured when executing operation." - " Check the configuration of your API Settings and API Gateway settings on your ISE server." - " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." - " You may want to enable the (ise_debug: True) argument." - " The error was: {error}" - ).format(error=e) - ) - except Exception: - result = None - return result - - def get_object_by_id(self, id): - # NOTICE: Does not have a get by id method or it is in another action - result = None - return result - - def exists(self): - id_exists = False - name_exists = False - prev_obj = None - o_id = self.new_object.get("id") - name = self.new_object.get("connectorName") - if o_id: - prev_obj = self.get_object_by_id(o_id) - id_exists = prev_obj is not None and isinstance(prev_obj, dict) - if not id_exists and name: - prev_obj = self.get_object_by_name(name) - name_exists = prev_obj is not None and isinstance(prev_obj, dict) - if name_exists: - _id = prev_obj.get("id") - if id_exists and name_exists and o_id != _id: - raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") - it_exists = prev_obj is not None and isinstance(prev_obj, dict) - return (it_exists, prev_obj) - - def requires_update(self, current_obj): - requested_obj = self.new_object - - obj_params = [ - ("additionalProperties", "additional_properties"), - ("attributes", "attributes"), - ("connectorName", "connector_name"), - ("connectorType", "connector_type"), - ("deltasyncSchedule", "deltasync_schedule"), - ("description", "description"), - ("enabled", "enabled"), - ("fullsyncSchedule", "fullsync_schedule"), - ("protocol", "protocol"), - ("skipCertificateValidations", "skip_certificate_validations"), - ("url", "url"), - ] - # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params - # If any does not have eq params, it requires update - return any(not ise_compare_equality(current_obj.get(ise_param), - requested_obj.get(ansible_param)) - for (ise_param, ansible_param) in obj_params) - - def create(self): - result = self.ise.exec( - family="edda", - function="create_connector_config", - params=self.new_object, - ).response - return result - - def update(self): - id = self.new_object.get("id") - name = self.new_object.get("name") - result = None - if not name: - name_ = self.get_object_by_id(id).get("name") - self.new_object.update(dict(name=name_)) - result = self.ise.exec( - family="edda", - function="update_connector_config_by_connector_name", - params=self.new_object - ).response - return result - - def delete(self): - id = self.new_object.get("id") - name = self.new_object.get("name") - result = None - if not name: - name_ = self.get_object_by_id(id).get("name") - self.new_object.update(dict(name=name_)) - result = self.ise.exec( - family="edda", - function="delete_connector_config_by_connector_name", - params=self.new_object - ).response - return result - - -class ActionModule(ActionBase): - def __init__(self, *args, **kwargs): - if not ANSIBLE_UTILS_IS_INSTALLED: - raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") - super(ActionModule, self).__init__(*args, **kwargs) - self._supports_async = False - self._supports_check_mode = False - self._result = None - - # Checks the supplied parameters against the argument spec for this module - def _check_argspec(self): - aav = AnsibleArgSpecValidator( - data=self._task.args, - schema=dict(argument_spec=argument_spec), - schema_format="argspec", - schema_conditionals=dict( - required_if=required_if, - required_one_of=required_one_of, - mutually_exclusive=mutually_exclusive, - required_together=required_together, - ), - name=self._task.action, - ) - valid, errors, self._task.args = aav.validate() - if not valid: - raise AnsibleActionFail(errors) - - def run(self, tmp=None, task_vars=None): - self._task.diff = False - self._result = super(ActionModule, self).run(tmp, task_vars) - self._result["changed"] = False - self._check_argspec() - - ise = ISESDK(params=self._task.args) - obj = ConnectorConfig(self._task.args, ise) - - state = self._task.args.get("state") - - response = None - - if state == "present": - (obj_exists, prev_obj) = obj.exists() - if obj_exists: - if obj.requires_update(prev_obj): - ise_update_response = obj.update() - self._result.update(dict(ise_update_response=ise_update_response)) - (obj_exists, updated_obj) = obj.exists() - response = updated_obj - ise.object_updated() - else: - response = prev_obj - ise.object_already_present() - else: - ise_create_response = obj.create() - (obj_exists, created_obj) = obj.exists() - response = created_obj - ise.object_created() - - elif state == "absent": - (obj_exists, prev_obj) = obj.exists() - if obj_exists: - obj.delete() - response = prev_obj - ise.object_deleted() - else: - ise.object_already_absent() - - self._result.update(dict(ise_response=response)) - self._result.update(ise.exit_json()) - return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/connector_config_info.py b/ansible_collections/cisco/ise/plugins/action/connector_config_info.py deleted file mode 100644 index 05bd40cbe..000000000 --- a/ansible_collections/cisco/ise/plugins/action/connector_config_info.py +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Copyright (c) 2023, Cisco Systems -# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type -from ansible.plugins.action import ActionBase - -try: - from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( - AnsibleArgSpecValidator, - ) -except ImportError: - ANSIBLE_UTILS_IS_INSTALLED = False -else: - ANSIBLE_UTILS_IS_INSTALLED = True -from ansible.errors import AnsibleActionFail -from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( - ISESDK, - ise_argument_spec, -) - -# Get common arguements specification -argument_spec = ise_argument_spec() -# Add arguments specific for this module -argument_spec.update(dict( - connectorName=dict(type="str"), -)) - -required_if = [] -required_one_of = [] -mutually_exclusive = [] -required_together = [] - - -class ActionModule(ActionBase): - def __init__(self, *args, **kwargs): - if not ANSIBLE_UTILS_IS_INSTALLED: - raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") - super(ActionModule, self).__init__(*args, **kwargs) - self._supports_async = False - self._supports_check_mode = True - self._result = None - - # Checks the supplied parameters against the argument spec for this module - def _check_argspec(self): - aav = AnsibleArgSpecValidator( - data=self._task.args, - schema=dict(argument_spec=argument_spec), - schema_format="argspec", - schema_conditionals=dict( - required_if=required_if, - required_one_of=required_one_of, - mutually_exclusive=mutually_exclusive, - required_together=required_together, - ), - name=self._task.action, - ) - valid, errors, self._task.args = aav.validate() - if not valid: - raise AnsibleActionFail(errors) - - def get_object(self, params): - new_object = dict( - connector_name=params.get("connectorName"), - ) - return new_object - - def run(self, tmp=None, task_vars=None): - self._task.diff = False - self._result = super(ActionModule, self).run(tmp, task_vars) - self._result["changed"] = False - self._check_argspec() - - self._result.update(dict(ise_response={})) - - ise = ISESDK(params=self._task.args) - - id = self._task.args.get("id") - name = self._task.args.get("connectorName") - if name: - response = ise.exec( - family="edda", - function='get_connector_config_by_connector_name', - params=self.get_object(self._task.args) - ).response['response'] - self._result.update(dict(ise_response=response)) - self._result.update(ise.exit_json()) - return self._result - if not name and not id: - response = ise.exec( - family="edda", - function='get_connector_config', - params=self.get_object(self._task.args) - ).response['response'] - self._result.update(dict(ise_response=response)) - self._result.update(ise.exit_json()) - return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/csr_delete.py b/ansible_collections/cisco/ise/plugins/action/csr_delete.py index 6c0a2f6dd..581005716 100644 --- a/ansible_collections/cisco/ise/plugins/action/csr_delete.py +++ b/ansible_collections/cisco/ise/plugins/action/csr_delete.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/csr_export_info.py b/ansible_collections/cisco/ise/plugins/action/csr_export_info.py index 16e74b49e..4381a1384 100644 --- a/ansible_collections/cisco/ise/plugins/action/csr_export_info.py +++ b/ansible_collections/cisco/ise/plugins/action/csr_export_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/csr_generate.py b/ansible_collections/cisco/ise/plugins/action/csr_generate.py index 8c1d62d60..36429190a 100644 --- a/ansible_collections/cisco/ise/plugins/action/csr_generate.py +++ b/ansible_collections/cisco/ise/plugins/action/csr_generate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/csr_generate_intermediate_ca.py b/ansible_collections/cisco/ise/plugins/action/csr_generate_intermediate_ca.py index 50eeb9401..1e30f54f6 100644 --- a/ansible_collections/cisco/ise/plugins/action/csr_generate_intermediate_ca.py +++ b/ansible_collections/cisco/ise/plugins/action/csr_generate_intermediate_ca.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/csr_info.py b/ansible_collections/cisco/ise/plugins/action/csr_info.py index 028e2f318..fcf277978 100644 --- a/ansible_collections/cisco/ise/plugins/action/csr_info.py +++ b/ansible_collections/cisco/ise/plugins/action/csr_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -31,7 +31,7 @@ argument_spec.update(dict( size=dict(type="int"), sort=dict(type="str"), sortBy=dict(type="str"), - filter=dict(type="list"), + filter=dict(type="str"), filterType=dict(type="str"), hostName=dict(type="str"), id=dict(type="str"), diff --git a/ansible_collections/cisco/ise/plugins/action/custom_attributes.py b/ansible_collections/cisco/ise/plugins/action/custom_attributes.py new file mode 100644 index 000000000..b0328ed7d --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/custom_attributes.py @@ -0,0 +1,207 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + attributeName=dict(type="str"), + attributeType=dict(type="str"), + name=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["name"], True), + ("state", "absent", ["name"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class CustomAttributes(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + attribute_name=params.get("attributeName"), + attribute_type=params.get("attributeType"), + name=params.get("name"), + ) + + def get_object_by_name(self, name): + try: + result = self.ise.exec( + family="customattributes", + function="get", + params={"name": name}, + handle_func_exception=False, + ).response + result = get_dict_result(result, 'name', name) + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("attributeName", "attribute_name"), + ("attributeType", "attribute_type"), + ("name", "name"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="customattributes", + function="create_custom_attribute", + params=self.new_object, + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="customattributes", + function="delete", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = CustomAttributes(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + response = prev_obj + ise.object_present_and_different() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/custom_attributes_info.py b/ansible_collections/cisco/ise/plugins/action/custom_attributes_info.py new file mode 100644 index 000000000..d80c60f68 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/custom_attributes_info.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + name=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + name=params.get("name"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if name: + response = ise.exec( + family="customattributes", + function='get', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + response = ise.exec( + family="customattributes", + function='list', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/custom_attributes_rename.py b/ansible_collections/cisco/ise/plugins/action/custom_attributes_rename.py new file mode 100644 index 000000000..2a6302296 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/custom_attributes_rename.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + currentName=dict(type="str"), + newName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + current_name=params.get("currentName"), + new_name=params.get("newName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="customattributes", + function="rename", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/dataconnect_info.py b/ansible_collections/cisco/ise/plugins/action/dataconnect_info.py index ffd19d387..c4b4322a4 100644 --- a/ansible_collections/cisco/ise/plugins/action/dataconnect_info.py +++ b/ansible_collections/cisco/ise/plugins/action/dataconnect_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_info.py b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_info.py index 5d794c926..45e618b56 100644 --- a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password.py b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password.py index 0fd96ad3e..e871dcb0c 100644 --- a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password.py +++ b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password_expiry.py b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password_expiry.py index f9db60ec8..ca6569d5f 100644 --- a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password_expiry.py +++ b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password_expiry.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_status.py b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_status.py index e7232ab0e..108b1b9bc 100644 --- a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_status.py +++ b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_status.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/deployment_info.py b/ansible_collections/cisco/ise/plugins/action/deployment_info.py index 206b6673a..b6a615332 100644 --- a/ansible_collections/cisco/ise/plugins/action/deployment_info.py +++ b/ansible_collections/cisco/ise/plugins/action/deployment_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_reset_hitcount.py index 02e4e34ae..065d7c978 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules.py index 58e3d55d6..764e9e1b8 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules_info.py index ff175ae64..9cdf45c34 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_reset_hitcount.py index 029a324d0..bdbd6601f 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules.py index 2645800ce..b6ea4f5c8 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules_info.py index dffaf212a..33ca28ca4 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_command_set_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_command_set_info.py index e6adeda11..843282782 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_command_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_command_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions.py b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions.py index 3f32c7c94..f5baa09d8 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authentication_rule_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authentication_rule_info.py index 443fa6b66..e2e164212 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authentication_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authentication_rule_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authorization_rule_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authorization_rule_info.py index 39ec5bf96..b40b3a461 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authorization_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authorization_rule_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_policy_set_info.py index 84a3b83ef..05a76aa4d 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_info.py index 4277903cf..1e7aa9cb1 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authentication_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authentication_info.py index 56a7137b7..32303ed20 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authentication_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authentication_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authorization_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authorization_info.py index 07606e5a8..97e8d9dbf 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authorization_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authorization_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_policy_set_info.py index eba176051..96d90ea7c 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules.py b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules.py index 38718ced2..2095fd10a 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_info.py index 3bda0eb07..8c7df99e8 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_reset_hitcount.py index 494b4aeb4..cdca21112 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_identity_stores_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_identity_stores_info.py index e636a01fc..973e11793 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_identity_stores_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_identity_stores_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules.py b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules.py index 27f5b3401..3583204ba 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_info.py index 71dbfce79..8b2f54f2c 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_reset_hitcount.py index ce1b78879..0f46ec415 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions.py b/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions.py index 10bcdc558..d05ffb46e 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions_info.py index f04e29791..c8efdc788 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set.py b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set.py index 23eb54ef5..977687fe0 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_info.py index b344da3f2..51519bdb7 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_reset_hitcount.py index 8c4ca8e24..fa0d4122b 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_profiles_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_profiles_info.py index 406618fdb..1e634209f 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_profiles_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_service_names_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_service_names_info.py index 020515c1b..d63ed8734 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_service_names_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_service_names_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions.py b/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions.py index e0ffd4d73..f2f602126 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions_info.py index 3e8bfad3d..935155e84 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/dictionary_references_info.py b/ansible_collections/cisco/ise/plugins/action/dictionary_references_info.py deleted file mode 100644 index 4b4d92cbe..000000000 --- a/ansible_collections/cisco/ise/plugins/action/dictionary_references_info.py +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Copyright (c) 2023, Cisco Systems -# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type -from ansible.plugins.action import ActionBase - -try: - from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( - AnsibleArgSpecValidator, - ) -except ImportError: - ANSIBLE_UTILS_IS_INSTALLED = False -else: - ANSIBLE_UTILS_IS_INSTALLED = True -from ansible.errors import AnsibleActionFail -from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( - ISESDK, - ise_argument_spec, -) - -# Get common arguements specification -argument_spec = ise_argument_spec() -# Add arguments specific for this module -argument_spec.update(dict( -)) - -required_if = [] -required_one_of = [] -mutually_exclusive = [] -required_together = [] - - -class ActionModule(ActionBase): - def __init__(self, *args, **kwargs): - if not ANSIBLE_UTILS_IS_INSTALLED: - raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") - super(ActionModule, self).__init__(*args, **kwargs) - self._supports_async = False - self._supports_check_mode = True - self._result = None - - # Checks the supplied parameters against the argument spec for this module - def _check_argspec(self): - aav = AnsibleArgSpecValidator( - data=self._task.args, - schema=dict(argument_spec=argument_spec), - schema_format="argspec", - schema_conditionals=dict( - required_if=required_if, - required_one_of=required_one_of, - mutually_exclusive=mutually_exclusive, - required_together=required_together, - ), - name=self._task.action, - ) - valid, errors, self._task.args = aav.validate() - if not valid: - raise AnsibleActionFail(errors) - - def get_object(self, params): - new_object = dict( - ) - return new_object - - def run(self, tmp=None, task_vars=None): - self._task.diff = False - self._result = super(ActionModule, self).run(tmp, task_vars) - self._result["changed"] = False - self._check_argspec() - - self._result.update(dict(ise_response={})) - - ise = ISESDK(params=self._task.args) - - id = self._task.args.get("id") - name = self._task.args.get("name") - if not name and not id: - response = ise.exec( - family="edda", - function='get_edda_dictionary_references', - params=self.get_object(self._task.args) - ).response['response'] - self._result.update(dict(ise_response=response)) - self._result.update(ise.exit_json()) - return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/downloadable_acl.py b/ansible_collections/cisco/ise/plugins/action/downloadable_acl.py index d4a8bf437..7200f6051 100644 --- a/ansible_collections/cisco/ise/plugins/action/downloadable_acl.py +++ b/ansible_collections/cisco/ise/plugins/action/downloadable_acl.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/downloadable_acl_info.py b/ansible_collections/cisco/ise/plugins/action/downloadable_acl_info.py index 8852b8b41..38539b9d3 100644 --- a/ansible_collections/cisco/ise/plugins/action/downloadable_acl_info.py +++ b/ansible_collections/cisco/ise/plugins/action/downloadable_acl_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/duo_identity_sync.py b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync.py new file mode 100644 index 000000000..530bcdd3d --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync.py @@ -0,0 +1,235 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + adGroups=dict(type="list"), + configurations=dict(type="dict"), + lastSync=dict(type="str"), + syncName=dict(type="str"), + syncSchedule=dict(type="dict"), + syncStatus=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["syncName"], True), + ("state", "absent", ["syncName"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class DuoIdentitySync(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + ad_groups=params.get("adGroups"), + configurations=params.get("configurations"), + last_sync=params.get("lastSync"), + sync_name=params.get("syncName"), + sync_schedule=params.get("syncSchedule"), + sync_status=params.get("syncStatus"), + ) + + def get_object_by_name(self, name): + try: + result = self.ise.exec( + family="duo_identity_sync", + function="get_identitysync_by_sync_name", + params={"name": name}, + handle_func_exception=False, + ).response['response'] + result = get_dict_result(result, 'name', name) + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("adGroups", "ad_groups"), + ("configurations", "configurations"), + ("lastSync", "last_sync"), + ("syncName", "sync_name"), + ("syncSchedule", "sync_schedule"), + ("syncStatus", "sync_status"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="duo_identity_sync", + function="create_identitysync", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="duo_identity_sync", + function="update_identitysync_by_sync_name", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="duo_identity_sync", + function="delete_identity_sync_by_sync_name", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = DuoIdentitySync(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_cancel_info.py b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_cancel_info.py new file mode 100644 index 000000000..cf2e7fb50 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_cancel_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + syncName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + sync_name=params.get("syncName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("syncName") + if name: + response = ise.exec( + family="duo_identity_sync", + function='cancel_sync', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_info.py b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_info.py new file mode 100644 index 000000000..9336c18fa --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_info.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + syncName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + sync_name=params.get("syncName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("syncName") + if name: + response = ise.exec( + family="duo_identity_sync", + function='get_identitysync_by_sync_name', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + response = ise.exec( + family="duo_identity_sync", + function='get_identitysync', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_status.py b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_status.py new file mode 100644 index 000000000..7dbdbf938 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_status.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + errorList=dict(type="list"), + status=dict(type="str"), + syncName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + error_list=params.get("errorList"), + status=params.get("status"), + sync_name=params.get("syncName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="duo_identity_sync", + function="update_status", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_identitysync_sync_info.py b/ansible_collections/cisco/ise/plugins/action/duo_identitysync_sync_info.py new file mode 100644 index 000000000..1b5ab43d0 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_identitysync_sync_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + syncName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + sync_name=params.get("syncName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("syncName") + if name: + response = ise.exec( + family="duo_identity_sync", + function='sync', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_mfa.py b/ansible_collections/cisco/ise/plugins/action/duo_mfa.py new file mode 100644 index 000000000..d535bcd8b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_mfa.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + accountConfigurations=dict(type="dict"), + connectionName=dict(type="str"), + description=dict(type="str"), + identitySync=dict(type="str"), + type=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["connectionName"], True), + ("state", "absent", ["connectionName"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class DuoMfa(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + account_configurations=params.get("accountConfigurations"), + connection_name=params.get("connectionName"), + description=params.get("description"), + identity_sync=params.get("identitySync"), + type=params.get("type"), + ) + + def get_object_by_name(self, name): + try: + result = self.ise.exec( + family="duo_mfa", + function="get_mfa_byconnection_name", + params={"name": name}, + handle_func_exception=False, + ).response['response'] + result = get_dict_result(result, 'name', name) + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("accountConfigurations", "account_configurations"), + ("connectionName", "connection_name"), + ("description", "description"), + ("identitySync", "identity_sync"), + ("type", "type"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="duo_mfa", + function="create_mfa", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="duo_mfa", + function="update_m_fa_by_connection_name", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="duo_mfa", + function="delete_mfa_by_connection_name", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = DuoMfa(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_mfa_info.py b/ansible_collections/cisco/ise/plugins/action/duo_mfa_info.py new file mode 100644 index 000000000..198d5447a --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_mfa_info.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + connectionName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + connection_name=params.get("connectionName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("connectionName") + if name: + response = ise.exec( + family="duo_mfa", + function='get_mfa_byconnection_name', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + response = ise.exec( + family="duo_mfa", + function='get_mfa', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_mfa_testconnection.py b/ansible_collections/cisco/ise/plugins/action/duo_mfa_testconnection.py new file mode 100644 index 000000000..1599d13e3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_mfa_testconnection.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + adminApi=dict(type="dict"), + apiHostName=dict(type="str"), + authenticationApi=dict(type="dict"), + connectionName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + admin_api=params.get("adminApi"), + api_host_name=params.get("apiHostName"), + authentication_api=params.get("authenticationApi"), + connection_name=params.get("connectionName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="duo_mfa", + function="test_connection", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell.py index 42f4b0d29..3c65ac475 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_monitor_status_info.py index b64520c54..5583569fc 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_request.py index 5d4b889d0..a2548e392 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clear_all.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clear_all.py index d0f567c59..8281d5cdf 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clear_all.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clear_all.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clone.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clone.py index 46f782895..3df3b9468 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clone.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clone.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_info.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_info.py index 0a903b42e..cfb885203 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_info.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_set_all_status.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_set_all_status.py index 6e51eb944..c5b63c162 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_set_all_status.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_set_all_status.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint.py b/ansible_collections/cisco/ise/plugins/action/endpoint.py index 5de00e6d8..5a37247d5 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_monitor_status_info.py index c15d2dad6..e39414835 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_request.py index 346bdb965..729c10fcc 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_certificate.py b/ansible_collections/cisco/ise/plugins/action/endpoint_certificate.py index 7c54400af..1246e1609 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_certificate.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_certificate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_deregister.py b/ansible_collections/cisco/ise/plugins/action/endpoint_deregister.py index fad82b3af..4f4ccdc11 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_deregister.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_deregister.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_get_rejected_endpoints_info.py b/ansible_collections/cisco/ise/plugins/action/endpoint_get_rejected_endpoints_info.py index 5b2f513f2..522140067 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_get_rejected_endpoints_info.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_get_rejected_endpoints_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_group.py b/ansible_collections/cisco/ise/plugins/action/endpoint_group.py index aae2a2f31..5d6f1585c 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_group.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_group_info.py b/ansible_collections/cisco/ise/plugins/action/endpoint_group_info.py index 369940972..9e224a672 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_info.py b/ansible_collections/cisco/ise/plugins/action/endpoint_info.py index 2dd382b41..fa85a0944 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_info.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_register.py b/ansible_collections/cisco/ise/plugins/action/endpoint_register.py index 8976b3b3f..0a2cc90fe 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_register.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_register.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_release_rejected_endpoint.py b/ansible_collections/cisco/ise/plugins/action/endpoint_release_rejected_endpoint.py index fdbf701c0..7ae1af1b8 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_release_rejected_endpoint.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_release_rejected_endpoint.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints.py b/ansible_collections/cisco/ise/plugins/action/endpoints.py new file mode 100644 index 000000000..6aff81d62 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints.py @@ -0,0 +1,310 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + connectedLinks=dict(type="dict"), + customAttributes=dict(type="dict"), + description=dict(type="str"), + deviceType=dict(type="str"), + groupId=dict(type="str"), + hardwareRevision=dict(type="str"), + id=dict(type="str"), + identityStore=dict(type="str"), + identityStoreId=dict(type="str"), + ipAddress=dict(type="str"), + mac=dict(type="str"), + mdmAttributes=dict(type="dict"), + name=dict(type="str"), + portalUser=dict(type="str"), + productId=dict(type="str"), + profileId=dict(type="str"), + protocol=dict(type="str"), + serialNumber=dict(type="str"), + softwareRevision=dict(type="str"), + staticGroupAssignment=dict(type="bool"), + staticProfileAssignment=dict(type="bool"), + vendor=dict(type="str"), + value=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["name", "value"], True), + ("state", "absent", ["name", "value"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class Endpoints(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + connected_links=params.get("connectedLinks"), + custom_attributes=params.get("customAttributes"), + description=params.get("description"), + device_type=params.get("deviceType"), + group_id=params.get("groupId"), + hardware_revision=params.get("hardwareRevision"), + id=params.get("id"), + identity_store=params.get("identityStore"), + identity_store_id=params.get("identityStoreId"), + ip_address=params.get("ipAddress"), + mac=params.get("mac"), + mdm_attributes=params.get("mdmAttributes"), + name=params.get("name"), + portal_user=params.get("portalUser"), + product_id=params.get("productId"), + profile_id=params.get("profileId"), + protocol=params.get("protocol"), + serial_number=params.get("serialNumber"), + software_revision=params.get("softwareRevision"), + static_group_assignment=params.get("staticGroupAssignment"), + static_profile_assignment=params.get("staticProfileAssignment"), + vendor=params.get("vendor"), + value=params.get("value"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="endpoints", + function="list_1_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response.get('response', []) + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="endpoints", + function="get_1", + handle_func_exception=False, + params={"id": id} + ).response + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("connectedLinks", "connected_links"), + ("customAttributes", "custom_attributes"), + ("description", "description"), + ("deviceType", "device_type"), + ("groupId", "group_id"), + ("hardwareRevision", "hardware_revision"), + ("id", "id"), + ("identityStore", "identity_store"), + ("identityStoreId", "identity_store_id"), + ("ipAddress", "ip_address"), + ("mac", "mac"), + ("mdmAttributes", "mdm_attributes"), + ("name", "name"), + ("portalUser", "portal_user"), + ("productId", "product_id"), + ("profileId", "profile_id"), + ("protocol", "protocol"), + ("serialNumber", "serial_number"), + ("softwareRevision", "software_revision"), + ("staticGroupAssignment", "static_group_assignment"), + ("staticProfileAssignment", "static_profile_assignment"), + ("vendor", "vendor"), + ("value", "value"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="endpoints", + function="create_end_point", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="endpoints", + function="update_endpoint", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="endpoints", + function="delete_endpoint", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = Endpoints(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints_bulk.py b/ansible_collections/cisco/ise/plugins/action/endpoints_bulk.py new file mode 100644 index 000000000..43dbb06a3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints_bulk.py @@ -0,0 +1,313 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + connectedLinks=dict(type="dict"), + customAttributes=dict(type="dict"), + description=dict(type="str"), + deviceType=dict(type="str"), + groupId=dict(type="str"), + hardwareRevision=dict(type="str"), + id=dict(type="str"), + identityStore=dict(type="str"), + identityStoreId=dict(type="str"), + ipAddress=dict(type="str"), + mac=dict(type="str"), + mdmAttributes=dict(type="dict"), + name=dict(type="str"), + portalUser=dict(type="str"), + productId=dict(type="str"), + profileId=dict(type="str"), + protocol=dict(type="str"), + serialNumber=dict(type="str"), + softwareRevision=dict(type="str"), + staticGroupAssignment=dict(type="bool"), + staticProfileAssignment=dict(type="bool"), + vendor=dict(type="str"), + payload=dict(type="list"), + value=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["name", "value"], True), + ("state", "absent", ["name", "value"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class EndpointsBulk(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + connected_links=params.get("connectedLinks"), + custom_attributes=params.get("customAttributes"), + description=params.get("description"), + device_type=params.get("deviceType"), + group_id=params.get("groupId"), + hardware_revision=params.get("hardwareRevision"), + id=params.get("id"), + identity_store=params.get("identityStore"), + identity_store_id=params.get("identityStoreId"), + ip_address=params.get("ipAddress"), + mac=params.get("mac"), + mdm_attributes=params.get("mdmAttributes"), + name=params.get("name"), + portal_user=params.get("portalUser"), + product_id=params.get("productId"), + profile_id=params.get("profileId"), + protocol=params.get("protocol"), + serial_number=params.get("serialNumber"), + software_revision=params.get("softwareRevision"), + static_group_assignment=params.get("staticGroupAssignment"), + static_profile_assignment=params.get("staticProfileAssignment"), + vendor=params.get("vendor"), + payload=params.get("payload"), + value=params.get("value"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="endpoints", + function="list_1_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response.get('response', []) + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="endpoints", + function="get_1", + handle_func_exception=False, + params={"id": id} + ).response + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("connectedLinks", "connected_links"), + ("customAttributes", "custom_attributes"), + ("description", "description"), + ("deviceType", "device_type"), + ("groupId", "group_id"), + ("hardwareRevision", "hardware_revision"), + ("id", "id"), + ("identityStore", "identity_store"), + ("identityStoreId", "identity_store_id"), + ("ipAddress", "ip_address"), + ("mac", "mac"), + ("mdmAttributes", "mdm_attributes"), + ("name", "name"), + ("portalUser", "portal_user"), + ("productId", "product_id"), + ("profileId", "profile_id"), + ("protocol", "protocol"), + ("serialNumber", "serial_number"), + ("softwareRevision", "software_revision"), + ("staticGroupAssignment", "static_group_assignment"), + ("staticProfileAssignment", "static_profile_assignment"), + ("vendor", "vendor"), + ("payload", "payload"), + ("value", "value"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="endpoints", + function="create_bulk_end_points", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="endpoints", + function="update_endpoint", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="endpoints", + function="delete_endpoint", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = EndpointsBulk(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints_bulk_info.py b/ansible_collections/cisco/ise/plugins/action/endpoints_bulk_info.py new file mode 100644 index 000000000..3df235103 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints_bulk_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + value=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + value=params.get("value"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("value") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="endpoints", + function='get_1', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="endpoints", + function='list_1_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints_device_type_info.py b/ansible_collections/cisco/ise/plugins/action/endpoints_device_type_info.py new file mode 100644 index 000000000..fb2386ae6 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints_device_type_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="endpoints", + function='get_device_type_summary', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints_info.py b/ansible_collections/cisco/ise/plugins/action/endpoints_info.py new file mode 100644 index 000000000..3df235103 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + value=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + value=params.get("value"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("value") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="endpoints", + function='get_1', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="endpoints", + function='list_1_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints_task.py b/ansible_collections/cisco/ise/plugins/action/endpoints_task.py new file mode 100644 index 000000000..e8c1862d3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints_task.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + connectedLinks=dict(type="dict"), + customAttributes=dict(type="dict"), + description=dict(type="str"), + deviceType=dict(type="str"), + groupId=dict(type="str"), + hardwareRevision=dict(type="str"), + id=dict(type="str"), + identityStore=dict(type="str"), + identityStoreId=dict(type="str"), + ipAddress=dict(type="str"), + mac=dict(type="str"), + mdmAttributes=dict(type="dict"), + name=dict(type="str"), + portalUser=dict(type="str"), + productId=dict(type="str"), + profileId=dict(type="str"), + protocol=dict(type="str"), + serialNumber=dict(type="str"), + softwareRevision=dict(type="str"), + staticGroupAssignment=dict(type="bool"), + staticProfileAssignment=dict(type="bool"), + vendor=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + connected_links=params.get("connectedLinks"), + custom_attributes=params.get("customAttributes"), + description=params.get("description"), + device_type=params.get("deviceType"), + group_id=params.get("groupId"), + hardware_revision=params.get("hardwareRevision"), + id=params.get("id"), + identity_store=params.get("identityStore"), + identity_store_id=params.get("identityStoreId"), + ip_address=params.get("ipAddress"), + mac=params.get("mac"), + mdm_attributes=params.get("mdmAttributes"), + name=params.get("name"), + portal_user=params.get("portalUser"), + product_id=params.get("productId"), + profile_id=params.get("profileId"), + protocol=params.get("protocol"), + serial_number=params.get("serialNumber"), + software_revision=params.get("softwareRevision"), + static_group_assignment=params.get("staticGroupAssignment"), + static_profile_assignment=params.get("staticProfileAssignment"), + vendor=params.get("vendor"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="endpoints", + function="create_end_point_task", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/external_radius_server.py b/ansible_collections/cisco/ise/plugins/action/external_radius_server.py index 4beda906a..3a6d9b3c8 100644 --- a/ansible_collections/cisco/ise/plugins/action/external_radius_server.py +++ b/ansible_collections/cisco/ise/plugins/action/external_radius_server.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/external_radius_server_info.py b/ansible_collections/cisco/ise/plugins/action/external_radius_server_info.py index e0043a0d0..330e05631 100644 --- a/ansible_collections/cisco/ise/plugins/action/external_radius_server_info.py +++ b/ansible_collections/cisco/ise/plugins/action/external_radius_server_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/filter_policy.py b/ansible_collections/cisco/ise/plugins/action/filter_policy.py index d2a3ca73e..b13a8eeee 100644 --- a/ansible_collections/cisco/ise/plugins/action/filter_policy.py +++ b/ansible_collections/cisco/ise/plugins/action/filter_policy.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/filter_policy_info.py b/ansible_collections/cisco/ise/plugins/action/filter_policy_info.py index 8b19e248c..8eb9b9747 100644 --- a/ansible_collections/cisco/ise/plugins/action/filter_policy_info.py +++ b/ansible_collections/cisco/ise/plugins/action/filter_policy_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_location_info.py b/ansible_collections/cisco/ise/plugins/action/guest_location_info.py index 64c33c097..52127c847 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_location_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_location_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings.py b/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings.py index 2744262be..16235ac99 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings_info.py b/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings_info.py index 42f64bcf4..dc8c672c9 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_ssid.py b/ansible_collections/cisco/ise/plugins/action/guest_ssid.py index b1549161f..9145d09ad 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_ssid.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_ssid.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_ssid_info.py b/ansible_collections/cisco/ise/plugins/action/guest_ssid_info.py index 7e6efd130..77484a38c 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_ssid_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_ssid_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_type.py b/ansible_collections/cisco/ise/plugins/action/guest_type.py index 0891266e2..72e271d9e 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_type.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_type.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_type_email.py b/ansible_collections/cisco/ise/plugins/action/guest_type_email.py index e8d763c7b..b9592741e 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_type_email.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_type_email.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_type_info.py b/ansible_collections/cisco/ise/plugins/action/guest_type_info.py index 1de1cc2d7..5cd3978fe 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_type_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_type_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_type_sms.py b/ansible_collections/cisco/ise/plugins/action/guest_type_sms.py index 366f1d6fe..206a207d5 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_type_sms.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_type_sms.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user.py b/ansible_collections/cisco/ise/plugins/action/guest_user.py index 6e0c4c416..45076be9b 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_approve.py b/ansible_collections/cisco/ise/plugins/action/guest_user_approve.py index 0b66958c9..0c8cb477a 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_approve.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_approve.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_monitor_status_info.py index 738d2a50f..eada3c3b3 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_request.py index 9f5409056..309a388ff 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_change_sponsor_password.py b/ansible_collections/cisco/ise/plugins/action/guest_user_change_sponsor_password.py index d8cba2089..254b38ec2 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_change_sponsor_password.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_change_sponsor_password.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_deny.py b/ansible_collections/cisco/ise/plugins/action/guest_user_deny.py index 6318526bd..b141a674f 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_deny.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_deny.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_email.py b/ansible_collections/cisco/ise/plugins/action/guest_user_email.py index 16c8793b5..83a34c730 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_email.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_email.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_info.py b/ansible_collections/cisco/ise/plugins/action/guest_user_info.py index f6b61c088..64d0247b1 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_reinstate.py b/ansible_collections/cisco/ise/plugins/action/guest_user_reinstate.py index 33d20d1a1..e50c06eec 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_reinstate.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_reinstate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_reset_password.py b/ansible_collections/cisco/ise/plugins/action/guest_user_reset_password.py index c2eedfac8..92facda82 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_reset_password.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_reset_password.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_sms.py b/ansible_collections/cisco/ise/plugins/action/guest_user_sms.py index 9a84b457a..435d3bf8d 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_sms.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_sms.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_suspend.py b/ansible_collections/cisco/ise/plugins/action/guest_user_suspend.py index 81f8a1423..5f93e63f8 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_suspend.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_suspend.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/hotpatch_info.py b/ansible_collections/cisco/ise/plugins/action/hotpatch_info.py index 0ef0efbc4..4bcf5acd5 100644 --- a/ansible_collections/cisco/ise/plugins/action/hotpatch_info.py +++ b/ansible_collections/cisco/ise/plugins/action/hotpatch_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/hotpatch_install.py b/ansible_collections/cisco/ise/plugins/action/hotpatch_install.py index 3343ed071..f6da42823 100644 --- a/ansible_collections/cisco/ise/plugins/action/hotpatch_install.py +++ b/ansible_collections/cisco/ise/plugins/action/hotpatch_install.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -28,6 +28,7 @@ argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( hotpatchName=dict(type="str"), + isDirectoryListed=dict(type="bool"), repositoryName=dict(type="str"), )) @@ -67,6 +68,7 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( hotpatch_name=params.get("hotpatchName"), + is_directory_listed=params.get("isDirectoryListed"), repository_name=params.get("repositoryName"), ) return new_object diff --git a/ansible_collections/cisco/ise/plugins/action/hotpatch_rollback.py b/ansible_collections/cisco/ise/plugins/action/hotpatch_rollback.py index 8e976eb50..d7d224d85 100644 --- a/ansible_collections/cisco/ise/plugins/action/hotpatch_rollback.py +++ b/ansible_collections/cisco/ise/plugins/action/hotpatch_rollback.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -28,6 +28,7 @@ argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( hotpatchName=dict(type="str"), + isDirectoryListed=dict(type="bool"), repositoryName=dict(type="str"), )) @@ -67,6 +68,7 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( hotpatch_name=params.get("hotpatchName"), + is_directory_listed=params.get("isDirectoryListed"), repository_name=params.get("repositoryName"), ) return new_object diff --git a/ansible_collections/cisco/ise/plugins/action/hotspot_portal.py b/ansible_collections/cisco/ise/plugins/action/hotspot_portal.py index 31894a9cd..618a916bc 100644 --- a/ansible_collections/cisco/ise/plugins/action/hotspot_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/hotspot_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/hotspot_portal_info.py b/ansible_collections/cisco/ise/plugins/action/hotspot_portal_info.py index 928265dfb..200e5fec8 100644 --- a/ansible_collections/cisco/ise/plugins/action/hotspot_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/hotspot_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/id_store_sequence.py b/ansible_collections/cisco/ise/plugins/action/id_store_sequence.py index 8fff8a901..0703c2df3 100644 --- a/ansible_collections/cisco/ise/plugins/action/id_store_sequence.py +++ b/ansible_collections/cisco/ise/plugins/action/id_store_sequence.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/id_store_sequence_info.py b/ansible_collections/cisco/ise/plugins/action/id_store_sequence_info.py index ec8ce7d66..6a7b9f9a4 100644 --- a/ansible_collections/cisco/ise/plugins/action/id_store_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/action/id_store_sequence_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/identity_group.py b/ansible_collections/cisco/ise/plugins/action/identity_group.py index 42bf63fc6..f98c65897 100644 --- a/ansible_collections/cisco/ise/plugins/action/identity_group.py +++ b/ansible_collections/cisco/ise/plugins/action/identity_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/identity_group_info.py b/ansible_collections/cisco/ise/plugins/action/identity_group_info.py index efa113971..16675a298 100644 --- a/ansible_collections/cisco/ise/plugins/action/identity_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/identity_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/internal_user.py b/ansible_collections/cisco/ise/plugins/action/internal_user.py index 47cb0ea2b..84c182550 100644 --- a/ansible_collections/cisco/ise/plugins/action/internal_user.py +++ b/ansible_collections/cisco/ise/plugins/action/internal_user.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/internal_user_info.py b/ansible_collections/cisco/ise/plugins/action/internal_user_info.py index 5f7315391..98baba812 100644 --- a/ansible_collections/cisco/ise/plugins/action/internal_user_info.py +++ b/ansible_collections/cisco/ise/plugins/action/internal_user_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec.py b/ansible_collections/cisco/ise/plugins/action/ipsec.py new file mode 100644 index 000000000..f435fa5ca --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec.py @@ -0,0 +1,257 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + authType=dict(type="str"), + certId=dict(type="str"), + configureVti=dict(type="bool"), + espAhProtocol=dict(type="str"), + hostName=dict(type="str"), + iface=dict(type="str"), + ikeReAuthTime=dict(type="int"), + ikeVersion=dict(type="str"), + localInternalIp=dict(type="str"), + modeOption=dict(type="str"), + nadIp=dict(type="str"), + phaseOneDHGroup=dict(type="str"), + phaseOneEncryptionAlgo=dict(type="str"), + phaseOneHashAlgo=dict(type="str"), + phaseOneLifeTime=dict(type="int"), + phaseTwoDHGroup=dict(type="str"), + phaseTwoEncryptionAlgo=dict(type="str"), + phaseTwoHashAlgo=dict(type="str"), + phaseTwoLifeTime=dict(type="int"), + psk=dict(type="str"), + remotePeerInternalIp=dict(type="str"), +)) + +required_if = [ + ("state", "present", [], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class Ipsec(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + auth_type=params.get("authType"), + cert_id=params.get("certId"), + configure_vti=params.get("configureVti"), + esp_ah_protocol=params.get("espAhProtocol"), + host_name=params.get("hostName"), + iface=params.get("iface"), + ike_re_auth_time=params.get("ikeReAuthTime"), + ike_version=params.get("ikeVersion"), + local_internal_ip=params.get("localInternalIp"), + mode_option=params.get("modeOption"), + nad_ip=params.get("nadIp"), + phase_one_dhgroup=params.get("phaseOneDHGroup"), + phase_one_encryption_algo=params.get("phaseOneEncryptionAlgo"), + phase_one_hash_algo=params.get("phaseOneHashAlgo"), + phase_one_life_time=params.get("phaseOneLifeTime"), + phase_two_dhgroup=params.get("phaseTwoDHGroup"), + phase_two_encryption_algo=params.get("phaseTwoEncryptionAlgo"), + phase_two_hash_algo=params.get("phaseTwoHashAlgo"), + phase_two_life_time=params.get("phaseTwoLifeTime"), + psk=params.get("psk"), + remote_peer_internal_ip=params.get("remotePeerInternalIp"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="native_ipsec", + function="get_ipsec_enabled_nodes_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response.get('response', []) + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("authType", "auth_type"), + ("certId", "cert_id"), + ("configureVti", "configure_vti"), + ("espAhProtocol", "esp_ah_protocol"), + ("hostName", "host_name"), + ("iface", "iface"), + ("ikeReAuthTime", "ike_re_auth_time"), + ("ikeVersion", "ike_version"), + ("localInternalIp", "local_internal_ip"), + ("modeOption", "mode_option"), + ("nadIp", "nad_ip"), + ("phaseOneDHGroup", "phase_one_dhgroup"), + ("phaseOneEncryptionAlgo", "phase_one_encryption_algo"), + ("phaseOneHashAlgo", "phase_one_hash_algo"), + ("phaseOneLifeTime", "phase_one_life_time"), + ("phaseTwoDHGroup", "phase_two_dhgroup"), + ("phaseTwoEncryptionAlgo", "phase_two_encryption_algo"), + ("phaseTwoHashAlgo", "phase_two_hash_algo"), + ("phaseTwoLifeTime", "phase_two_life_time"), + ("psk", "psk"), + ("remotePeerInternalIp", "remote_peer_internal_ip"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="native_ipsec", + function="create_ipsec_connection", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + result = self.ise.exec( + family="native_ipsec", + function="update_ipsec_connection_config", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = Ipsec(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_bulk.py b/ansible_collections/cisco/ise/plugins/action/ipsec_bulk.py new file mode 100644 index 000000000..b4d0a2039 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_bulk.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + ItemList=dict(type="list"), + operation=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + item_list=params.get("ItemList"), + operation=params.get("operation"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="native_ipsec", + function="bulk_ip_sec_operation", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_certificates_info.py b/ansible_collections/cisco/ise/plugins/action/ipsec_certificates_info.py new file mode 100644 index 000000000..f8a1dd1a7 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_certificates_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="native_ipsec", + function='get_ip_sec_certificates', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_delete.py b/ansible_collections/cisco/ise/plugins/action/ipsec_delete.py new file mode 100644 index 000000000..3126bac27 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_delete.py @@ -0,0 +1,188 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["hostName", "nadIp"], True), + ("state", "absent", ["hostName", "nadIp"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class IpsecDelete(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="native_ipsec", + function="" + ).response.get('response', []) + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="native_ipsec", + function="get_ipsec_node", + params={"id": id}, + handle_func_exception=False, + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostName", "host_name"), + ("nadIp", "nad_ip"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="native_ipsec", + function="remove_ipsec_connection", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = IpsecDelete(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_delete_info.py b/ansible_collections/cisco/ise/plugins/action/ipsec_delete_info.py new file mode 100644 index 000000000..2733b3741 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_delete_info.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("hostName") + if id: + response = ise.exec( + family="native_ipsec", + function='get_ipsec_node', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_disable.py b/ansible_collections/cisco/ise/plugins/action/ipsec_disable.py new file mode 100644 index 000000000..2d48762fc --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_disable.py @@ -0,0 +1,193 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["hostName", "nadIp"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class IpsecDisable(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="native_ipsec", + function="" + ).response.get('response', []) + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="native_ipsec", + function="get_ipsec_node", + params={"id": id}, + handle_func_exception=False, + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostName", "host_name"), + ("nadIp", "nad_ip"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="native_ipsec", + function="disable_ipsec_connection", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = IpsecDisable(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise.fail_json("Object does not exists, plugin only has update") + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_disable_info.py b/ansible_collections/cisco/ise/plugins/action/ipsec_disable_info.py new file mode 100644 index 000000000..2733b3741 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_disable_info.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("hostName") + if id: + response = ise.exec( + family="native_ipsec", + function='get_ipsec_node', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_enable.py b/ansible_collections/cisco/ise/plugins/action/ipsec_enable.py new file mode 100644 index 000000000..e42d0ff63 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_enable.py @@ -0,0 +1,193 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["hostName", "nadIp"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class IpsecEnable(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="native_ipsec", + function="" + ).response.get('response', []) + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="native_ipsec", + function="get_ipsec_node", + params={"id": id}, + handle_func_exception=False, + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostName", "host_name"), + ("nadIp", "nad_ip"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="native_ipsec", + function="enable_ipsec_connection", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = IpsecEnable(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise.fail_json("Object does not exists, plugin only has update") + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_enable_info.py b/ansible_collections/cisco/ise/plugins/action/ipsec_enable_info.py new file mode 100644 index 000000000..2733b3741 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_enable_info.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("hostName") + if id: + response = ise.exec( + family="native_ipsec", + function='get_ipsec_node', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_info.py b/ansible_collections/cisco/ise/plugins/action/ipsec_info.py new file mode 100644 index 000000000..8e183c204 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_info.py @@ -0,0 +1,143 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + filter=dict(type="str"), + filterType=dict(type="str"), + sort=dict(type="str"), + sortBy=dict(type="str"), + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("hostName") + if id: + response = ise.exec( + family="native_ipsec", + function='get_ipsec_node', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="native_ipsec", + function='get_ipsec_enabled_nodes_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ise_root_ca_regenerate.py b/ansible_collections/cisco/ise/plugins/action/ise_root_ca_regenerate.py index 37822dd98..8b03a8b04 100644 --- a/ansible_collections/cisco/ise/plugins/action/ise_root_ca_regenerate.py +++ b/ansible_collections/cisco/ise/plugins/action/ise_root_ca_regenerate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_connection_type_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_connection_type_info.py index 200fb43c7..5c55282b1 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_connection_type_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_connection_type_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_eval_license_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_eval_license_info.py index 199837b1f..d5eefae2b 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_eval_license_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_eval_license_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_feature_to_tier_mapping_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_feature_to_tier_mapping_info.py index 106410e6e..76ab3424f 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_feature_to_tier_mapping_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_feature_to_tier_mapping_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_registration_create.py b/ansible_collections/cisco/ise/plugins/action/licensing_registration_create.py index b5bea1654..20ac6b2aa 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_registration_create.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_registration_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -27,11 +27,11 @@ from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( + token=dict(type="str"), + tier=dict(type="list"), connectionType=dict(type="str"), registrationType=dict(type="str"), ssmOnPremServer=dict(type="str"), - tier=dict(type="list"), - token=dict(type="str"), )) required_if = [] @@ -69,11 +69,11 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( + token=params.get("token"), + tier=params.get("tier"), connection_type=params.get("connectionType"), registration_type=params.get("registrationType"), ssm_on_prem_server=params.get("ssmOnPremServer"), - tier=params.get("tier"), - token=params.get("token"), ) return new_object diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_registration_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_registration_info.py index becdca1bc..c9b2446af 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_registration_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_registration_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_create.py b/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_create.py index 6760b5089..f29e57cc1 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_create.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_info.py index 3ebd9ae99..b9d00853c 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_create.py b/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_create.py index 2ef2ac224..f5c52263d 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_create.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_info.py index b4855b92b..a85ba4aef 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_account_status_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_account_status_info.py index 335f25c0d..4a6a47620 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_account_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_account_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_athentication_status_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_athentication_status_info.py index 31a06b209..c990aa483 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_athentication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_athentication_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_authentication_status_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_authentication_status_info.py index 7f9538455..f670b1baa 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_authentication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_authentication_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_failure_reasons_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_failure_reasons_info.py index 4a2bfba14..e47756d89 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_failure_reasons_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_failure_reasons_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_active_count_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_active_count_info.py index 643df1b6d..c05407545 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_active_count_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_active_count_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_active_list_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_active_list_info.py index 4e374bc3d..ff8402569 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_active_list_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_active_list_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_auth_list_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_auth_list_info.py index 991c800cb..dd78451c5 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_auth_list_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_auth_list_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_ip_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_ip_info.py index 41a6b108e..4c08f0cec 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_ip_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_mac_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_mac_info.py index 57e658c92..9755b956f 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_mac_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_nas_ip_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_nas_ip_info.py index 964c6ab28..16beddf16 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_nas_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_nas_ip_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_username_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_username_info.py index 8c79838f6..c40014429 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_username_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_username_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_delete_all.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_delete_all.py index ce0a3e687..253212705 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_delete_all.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_delete_all.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_disconnect_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_disconnect_info.py index 36218b231..a9d8c3c6b 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_disconnect_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_disconnect_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_posture_count_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_posture_count_info.py index b67f5da4f..70795380d 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_posture_count_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_posture_count_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_profiler_count_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_profiler_count_info.py index 2cbb1a65b..1bbc0b748 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_profiler_count_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_profiler_count_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_reauthentication_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_reauthentication_info.py index 351aa4af9..c583b5de4 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_reauthentication_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_reauthentication_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_sessions_by_session_id_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_sessions_by_session_id_info.py index 2b4a8b240..59df8c752 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_sessions_by_session_id_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_sessions_by_session_id_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_version_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_version_info.py index f1d1b9d63..ee0f156ac 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_version_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_version_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/my_device_portal.py b/ansible_collections/cisco/ise/plugins/action/my_device_portal.py index 874389fb4..382184b9e 100644 --- a/ansible_collections/cisco/ise/plugins/action/my_device_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/my_device_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/my_device_portal_info.py b/ansible_collections/cisco/ise/plugins/action/my_device_portal_info.py index ba6fc0316..db2b5c6a8 100644 --- a/ansible_collections/cisco/ise/plugins/action/my_device_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/my_device_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile.py b/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile.py index b5c0a0713..6fcb63642 100644 --- a/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile.py +++ b/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile_info.py b/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile_info.py index 45f45ca27..742b92f98 100644 --- a/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules.py b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules.py index b8663b844..cf6956d71 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_info.py index a8676637e..2dafaf3b0 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_reset_hitcount.py index ec714f3f2..52f3e5910 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules.py b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules.py index 2b6ae8c21..79d0f0bd4 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_info.py index 20432e921..1fd9fa90f 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_reset_hitcount.py index 8610301ff..244cbc931 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_conditions.py b/ansible_collections/cisco/ise/plugins/action/network_access_conditions.py index 7ab7a5b7e..16d642339 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_conditions.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_conditions.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authentication_rule_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authentication_rule_info.py index 630ae4d48..c6abb0a94 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authentication_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authentication_rule_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authorization_rule_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authorization_rule_info.py index 66fcf2fd7..80c78899e 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authorization_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authorization_rule_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_policy_set_info.py index be454029c..7d66b021f 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_info.py index 13d01ddbf..0619c9850 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary.py index b0383b769..463dedb73 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute.py index 7636058a5..55c1e5f55 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute_info.py index 7eccecf63..94226131e 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authentication_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authentication_info.py index 433872fe3..18cccc517 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authentication_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authentication_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authorization_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authorization_info.py index 94bb7ea6b..80d8756ec 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authorization_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authorization_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_policy_set_info.py index 3da3318d8..1e80f3b5a 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_info.py index e4527b1e0..9dc45f196 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules.py b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules.py index b67519de4..0c3907e7f 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_info.py index 9f6a065de..500d3b1f9 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_reset_hitcount.py index 73db95225..0dec88d1a 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_identity_stores_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_identity_stores_info.py index 27a9769d2..6d845221f 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_identity_stores_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_identity_stores_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules.py b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules.py index c5b3c4d86..9d004537e 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_info.py index f05f7c150..2de294f77 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_reset_hitcounts.py b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_reset_hitcounts.py index c575a8c81..fb13aff0a 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_reset_hitcounts.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_reset_hitcounts.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_network_condition.py b/ansible_collections/cisco/ise/plugins/action/network_access_network_condition.py index dd223d169..6d709d060 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_network_condition.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_network_condition.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_network_condition_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_network_condition_info.py index 5dbf02a0d..205290e90 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_network_condition_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_network_condition_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set.py b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set.py index a11f40f0c..bbc4f3be0 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_info.py index 6c329de57..a1195321a 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_reset_hitcount.py index fca1b223d..0508661ad 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_profiles_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_profiles_info.py index d89bf00a7..29f37540d 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_profiles_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_security_groups_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_security_groups_info.py index 8319bac08..b3e658eb9 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_security_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_security_groups_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_service_name_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_service_name_info.py index 3e0c7cbbf..840286e22 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_service_name_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_service_name_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions.py b/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions.py index 23b46c263..c8a0ed136 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions_info.py index 5d3f5206c..22cb9289a 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_device.py b/ansible_collections/cisco/ise/plugins/action/network_device.py index f5d9636a8..05a67b6aa 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_device_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/network_device_bulk_monitor_status_info.py index 801d0aef0..bcc6c67ca 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_device_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/network_device_bulk_request.py index 49fb1bd94..4276b1c05 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_device_group.py b/ansible_collections/cisco/ise/plugins/action/network_device_group.py index d45ef371a..22af98522 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device_group.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -32,7 +32,7 @@ argument_spec.update(dict( state=dict(type="str", default="present", choices=["present", "absent"]), name=dict(type="str"), description=dict(type="str"), - ndgtype=dict(type="str"), + othername=dict(type="str"), id=dict(type="str"), )) @@ -51,7 +51,7 @@ class NetworkDeviceGroup(object): self.new_object = dict( name=params.get("name"), description=params.get("description"), - ndgtype=params.get("ndgtype"), + othername=params.get("othername"), id=params.get("id"), ) @@ -122,7 +122,7 @@ class NetworkDeviceGroup(object): obj_params = [ ("name", "name"), ("description", "description"), - ("ndgtype", "ndgtype"), + ("othername", "othername"), ("id", "id"), ] # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params diff --git a/ansible_collections/cisco/ise/plugins/action/network_device_group_info.py b/ansible_collections/cisco/ise/plugins/action/network_device_group_info.py index 739808f9f..0a2f29349 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_device_info.py b/ansible_collections/cisco/ise/plugins/action/network_device_info.py index 454e7ac3a..0e5504f4e 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_deployment.py b/ansible_collections/cisco/ise/plugins/action/node_deployment.py index 2610dd71e..076869afc 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_deployment.py +++ b/ansible_collections/cisco/ise/plugins/action/node_deployment.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_deployment_info.py b/ansible_collections/cisco/ise/plugins/action/node_deployment_info.py index 7427e473c..1ad12ef61 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_deployment_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_deployment_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_deployment_sync.py b/ansible_collections/cisco/ise/plugins/action/node_deployment_sync.py index 90fcaf23a..580617be2 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_deployment_sync.py +++ b/ansible_collections/cisco/ise/plugins/action/node_deployment_sync.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_group.py b/ansible_collections/cisco/ise/plugins/action/node_group.py index be56fbbf5..d482cd261 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_group.py +++ b/ansible_collections/cisco/ise/plugins/action/node_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_group_info.py b/ansible_collections/cisco/ise/plugins/action/node_group_info.py index 91d9a4740..7f1334ffc 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_group_node_create.py b/ansible_collections/cisco/ise/plugins/action/node_group_node_create.py index e28107702..266ecefe8 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_group_node_create.py +++ b/ansible_collections/cisco/ise/plugins/action/node_group_node_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_group_node_delete.py b/ansible_collections/cisco/ise/plugins/action/node_group_node_delete.py index a3b33f274..c9805e140 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_group_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/action/node_group_node_delete.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_group_node_info.py b/ansible_collections/cisco/ise/plugins/action/node_group_node_info.py index c2c36914e..c5ab89163 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_group_node_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_group_node_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_info.py b/ansible_collections/cisco/ise/plugins/action/node_info.py index aa02ede7b..e6e71ddf3 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_primary_to_standalone.py b/ansible_collections/cisco/ise/plugins/action/node_primary_to_standalone.py index 9d5364d4d..873aed1f9 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_primary_to_standalone.py +++ b/ansible_collections/cisco/ise/plugins/action/node_primary_to_standalone.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_promotion.py b/ansible_collections/cisco/ise/plugins/action/node_promotion.py index be953fd15..4146d46f6 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_promotion.py +++ b/ansible_collections/cisco/ise/plugins/action/node_promotion.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_replication_status_info.py b/ansible_collections/cisco/ise/plugins/action/node_replication_status_info.py index 807d97613..549d32606 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_replication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_replication_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_secondary_to_primary.py b/ansible_collections/cisco/ise/plugins/action/node_secondary_to_primary.py index 386e2aada..b7ce9f9d2 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_secondary_to_primary.py +++ b/ansible_collections/cisco/ise/plugins/action/node_secondary_to_primary.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_services_interfaces_info.py b/ansible_collections/cisco/ise/plugins/action/node_services_interfaces_info.py index 62c74180e..33aad5821 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_services_interfaces_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_services_interfaces_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config.py b/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config.py index 53a9a7920..eddc706e8 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config.py +++ b/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config_info.py b/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config_info.py index 484b1101e..ba2db51de 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces.py b/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces.py index 622f25e27..5102be39e 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces.py +++ b/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces_info.py b/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces_info.py index 48f7d0198..91250ea5c 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_standalone_to_primary.py b/ansible_collections/cisco/ise/plugins/action/node_standalone_to_primary.py index 2a6dcb0b2..5a5f8a163 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_standalone_to_primary.py +++ b/ansible_collections/cisco/ise/plugins/action/node_standalone_to_primary.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_sync.py b/ansible_collections/cisco/ise/plugins/action/node_sync.py index 941729ebe..6ec66120a 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_sync.py +++ b/ansible_collections/cisco/ise/plugins/action/node_sync.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pan_ha.py b/ansible_collections/cisco/ise/plugins/action/pan_ha.py index 2b6ce746f..a6db98408 100644 --- a/ansible_collections/cisco/ise/plugins/action/pan_ha.py +++ b/ansible_collections/cisco/ise/plugins/action/pan_ha.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pan_ha_info.py b/ansible_collections/cisco/ise/plugins/action/pan_ha_info.py index 02a4f1b5b..72a7ef7dc 100644 --- a/ansible_collections/cisco/ise/plugins/action/pan_ha_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pan_ha_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pan_ha_update.py b/ansible_collections/cisco/ise/plugins/action/pan_ha_update.py index db7f3c14b..96dad28c0 100644 --- a/ansible_collections/cisco/ise/plugins/action/pan_ha_update.py +++ b/ansible_collections/cisco/ise/plugins/action/pan_ha_update.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -27,11 +27,11 @@ from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( - failedAttempts=dict(type="int"), isEnabled=dict(type="bool"), - pollingInterval=dict(type="int"), primaryHealthCheckNode=dict(type="dict"), secondaryHealthCheckNode=dict(type="dict"), + pollingInterval=dict(type="int"), + failedAttempts=dict(type="int"), )) required_if = [] @@ -69,11 +69,11 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( - failed_attempts=params.get("failedAttempts"), is_enabled=params.get("isEnabled"), - polling_interval=params.get("pollingInterval"), primary_health_check_node=params.get("primaryHealthCheckNode"), secondary_health_check_node=params.get("secondaryHealthCheckNode"), + polling_interval=params.get("pollingInterval"), + failed_attempts=params.get("failedAttempts"), ) return new_object diff --git a/ansible_collections/cisco/ise/plugins/action/patch_info.py b/ansible_collections/cisco/ise/plugins/action/patch_info.py index a04933848..c2b37a390 100644 --- a/ansible_collections/cisco/ise/plugins/action/patch_info.py +++ b/ansible_collections/cisco/ise/plugins/action/patch_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/patch_install.py b/ansible_collections/cisco/ise/plugins/action/patch_install.py index 6e8250509..69d635930 100644 --- a/ansible_collections/cisco/ise/plugins/action/patch_install.py +++ b/ansible_collections/cisco/ise/plugins/action/patch_install.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -27,6 +27,7 @@ from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( + isDirectoryListed=dict(type="bool"), patchName=dict(type="str"), repositoryName=dict(type="str"), )) @@ -66,6 +67,7 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( + is_directory_listed=params.get("isDirectoryListed"), patch_name=params.get("patchName"), repository_name=params.get("repositoryName"), ) diff --git a/ansible_collections/cisco/ise/plugins/action/patch_rollback.py b/ansible_collections/cisco/ise/plugins/action/patch_rollback.py index 246845d7a..623a9a352 100644 --- a/ansible_collections/cisco/ise/plugins/action/patch_rollback.py +++ b/ansible_collections/cisco/ise/plugins/action/patch_rollback.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/personas_check_standalone.py b/ansible_collections/cisco/ise/plugins/action/personas_check_standalone.py index 7e4007d03..7ca4732a4 100644 --- a/ansible_collections/cisco/ise/plugins/action/personas_check_standalone.py +++ b/ansible_collections/cisco/ise/plugins/action/personas_check_standalone.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/personas_export_certs.py b/ansible_collections/cisco/ise/plugins/action/personas_export_certs.py index 8acba2dd2..2e66d07a1 100644 --- a/ansible_collections/cisco/ise/plugins/action/personas_export_certs.py +++ b/ansible_collections/cisco/ise/plugins/action/personas_export_certs.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/personas_promote_primary.py b/ansible_collections/cisco/ise/plugins/action/personas_promote_primary.py index 8e7a1c2b5..874ea9866 100644 --- a/ansible_collections/cisco/ise/plugins/action/personas_promote_primary.py +++ b/ansible_collections/cisco/ise/plugins/action/personas_promote_primary.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -22,8 +22,10 @@ from ansible_collections.cisco.ise.plugins.plugin_utils.personas_utils import No argument_spec = dict( ip=dict(type="str", required=True), + hostname=dict(type="str", required=True), username=dict(type="str", required=True), password=dict(type="str", required=True), + roles=dict(type="list", required=True), ise_verify=dict(type="bool", default=True), ise_version=dict(type="str", default="3.1.0"), ise_wait_on_rate_limit=dict(type="bool", default=True), @@ -71,8 +73,10 @@ class ActionModule(ActionBase): self._check_argspec() node = Node(dict(ip=self._task.args.get("ip"), + hostname=self._task.args.get("hostname"), username=self._task.args.get("username"), password=self._task.args.get("password"), + roles=self._task.args.get("roles"), ) ) diff --git a/ansible_collections/cisco/ise/plugins/action/personas_register_node.py b/ansible_collections/cisco/ise/plugins/action/personas_register_node.py index 2a1b008f2..09f332e7a 100644 --- a/ansible_collections/cisco/ise/plugins/action/personas_register_node.py +++ b/ansible_collections/cisco/ise/plugins/action/personas_register_node.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/portal_global_setting.py b/ansible_collections/cisco/ise/plugins/action/portal_global_setting.py index 762235af9..c2e0657f0 100644 --- a/ansible_collections/cisco/ise/plugins/action/portal_global_setting.py +++ b/ansible_collections/cisco/ise/plugins/action/portal_global_setting.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/portal_global_setting_info.py b/ansible_collections/cisco/ise/plugins/action/portal_global_setting_info.py index b27bd26b0..166e1b6b5 100644 --- a/ansible_collections/cisco/ise/plugins/action/portal_global_setting_info.py +++ b/ansible_collections/cisco/ise/plugins/action/portal_global_setting_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/portal_info.py b/ansible_collections/cisco/ise/plugins/action/portal_info.py index 3e4a54e7d..6c79f5cb8 100644 --- a/ansible_collections/cisco/ise/plugins/action/portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/portal_theme.py b/ansible_collections/cisco/ise/plugins/action/portal_theme.py index 7b2d2c914..4e731dafa 100644 --- a/ansible_collections/cisco/ise/plugins/action/portal_theme.py +++ b/ansible_collections/cisco/ise/plugins/action/portal_theme.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/portal_theme_info.py b/ansible_collections/cisco/ise/plugins/action/portal_theme_info.py index ab52db7d4..40c7fd90d 100644 --- a/ansible_collections/cisco/ise/plugins/action/portal_theme_info.py +++ b/ansible_collections/cisco/ise/plugins/action/portal_theme_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/profiler_profile_info.py b/ansible_collections/cisco/ise/plugins/action/profiler_profile_info.py index 50cedbbb9..46a20019c 100644 --- a/ansible_collections/cisco/ise/plugins/action/profiler_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/action/profiler_profile_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings.py b/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings.py index 758eebd78..5246821c9 100644 --- a/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings.py +++ b/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings_info.py b/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings_info.py index 629e4373c..745f96312 100644 --- a/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_direct.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct.py new file mode 100644 index 000000000..c1861824f --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct.py @@ -0,0 +1,250 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + additionalProperties=dict(type="dict"), + attributes=dict(type="dict"), + connectorName=dict(type="str"), + connectorType=dict(type="str"), + deltasyncSchedule=dict(type="dict"), + description=dict(type="str"), + enabled=dict(type="bool"), + fullsyncSchedule=dict(type="dict"), + protocol=dict(type="str"), + skipCertificateValidations=dict(type="bool"), + url=dict(type="dict"), +)) + +required_if = [ + ("state", "present", ["connectorName"], True), + ("state", "absent", ["connectorName"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class PxGridDirect(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + additional_properties=params.get("additionalProperties"), + attributes=params.get("attributes"), + connector_name=params.get("connectorName"), + connector_type=params.get("connectorType"), + deltasync_schedule=params.get("deltasyncSchedule"), + description=params.get("description"), + enabled=params.get("enabled"), + fullsync_schedule=params.get("fullsyncSchedule"), + protocol=params.get("protocol"), + skip_certificate_validations=params.get("skipCertificateValidations"), + url=params.get("url"), + ) + + def get_object_by_name(self, name): + try: + result = self.ise.exec( + family="px_grid_direct", + function="get_connector_config_by_connector_name", + params={"name": name}, + handle_func_exception=False, + ).response['response'] + result = get_dict_result(result, 'name', name) + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("additionalProperties", "additional_properties"), + ("attributes", "attributes"), + ("connectorName", "connector_name"), + ("connectorType", "connector_type"), + ("deltasyncSchedule", "deltasync_schedule"), + ("description", "description"), + ("enabled", "enabled"), + ("fullsyncSchedule", "fullsync_schedule"), + ("protocol", "protocol"), + ("skipCertificateValidations", "skip_certificate_validations"), + ("url", "url"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="px_grid_direct", + function="create_connector_config", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="px_grid_direct", + function="update_connector_config_by_connector_name", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="px_grid_direct", + function="delete_connector_config_by_connector_name", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = PxGridDirect(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_direct_dictionary_info.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_dictionary_info.py new file mode 100644 index 000000000..501f121a6 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_dictionary_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="px_grid_direct", + function='getpxgrid_direct_dictionary_references', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_direct_info.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_info.py new file mode 100644 index 000000000..a07394aef --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_info.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + connectorName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + connector_name=params.get("connectorName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("connectorName") + if name: + response = ise.exec( + family="px_grid_direct", + function='get_connector_config_by_connector_name', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + response = ise.exec( + family="px_grid_direct", + function='get_connector_config', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync.py new file mode 100644 index 000000000..b6fe0817e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + SyncType=dict(type="str"), + connectorName=dict(type="str"), + description=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["connectorName"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class PxGridDirectSync(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + sync_type=params.get("SyncType"), + connector_name=params.get("connectorName"), + description=params.get("description"), + ) + + def get_object_by_name(self, name): + try: + result = self.ise.exec( + family="px_grid_direct", + function="get_connector_config_sync_now_status", + params={"connectorName": name}, + handle_func_exception=False, + ).response['response'] + result = get_dict_result(result, 'name', name) + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("connectorName") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("SyncType", "sync_type"), + ("connectorName", "connector_name"), + ("description", "description"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="px_grid_direct", + function="sync_now_connector", + params=self.new_object, + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = PxGridDirectSync(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + response = prev_obj + ise.object_present_and_different() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync_info.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync_info.py new file mode 100644 index 000000000..a96835fdc --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + connectorName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + connector_name=params.get("connectorName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("connectorName") + if name: + response = ise.exec( + family="px_grid_direct", + function='get_connector_config_sync_now_status', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_direct_test_connector.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_test_connector.py new file mode 100644 index 000000000..940e1d2c5 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_test_connector.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + authType=dict(type="str"), + authValues=dict(type="dict"), + connectorName=dict(type="str"), + responseParsing=dict(type="str"), + skipCertificateValidations=dict(type="bool"), + uniqueID=dict(type="str"), + url=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + auth_type=params.get("authType"), + auth_values=params.get("authValues"), + connector_name=params.get("connectorName"), + response_parsing=params.get("responseParsing"), + skip_certificate_validations=params.get("skipCertificateValidations"), + unique_id=params.get("uniqueID"), + url=params.get("url"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="px_grid_direct", + function="test_connector", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_node_approve.py b/ansible_collections/cisco/ise/plugins/action/px_grid_node_approve.py index d1a28a5ac..c3f71ac1e 100644 --- a/ansible_collections/cisco/ise/plugins/action/px_grid_node_approve.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_node_approve.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_node_delete.py b/ansible_collections/cisco/ise/plugins/action/px_grid_node_delete.py index eff20fc8b..f51f9f73e 100644 --- a/ansible_collections/cisco/ise/plugins/action/px_grid_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_node_delete.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_node_info.py b/ansible_collections/cisco/ise/plugins/action/px_grid_node_info.py index 20e5bdf53..2b1aa7bf1 100644 --- a/ansible_collections/cisco/ise/plugins/action/px_grid_node_info.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_node_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_settings_auto_approve.py b/ansible_collections/cisco/ise/plugins/action/px_grid_settings_auto_approve.py index ed674d644..79cfb3e3f 100644 --- a/ansible_collections/cisco/ise/plugins/action/px_grid_settings_auto_approve.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_settings_auto_approve.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_access_secret.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_access_secret.py index 43bbb95f2..f707432b8 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_access_secret.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_access_secret.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_account_activate.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_account_activate.py index 8c7e71aad..84f042489 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_account_activate.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_account_activate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_account_create.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_account_create.py index 040247a7e..647f79984 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_account_create.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_account_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_authorization.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_authorization.py index 7ac4e39b9..bb4e073e5 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_authorization.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_authorization.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_bindings_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_bindings_info.py index fba8c50fe..275b4ca2f 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_bindings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_matrices_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_matrices_info.py index 510540974..210df469b 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_matrices_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_matrices_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_policies_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_policies_info.py index 4ef5b302b..8d59f1187 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_policies_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_policies_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoint_by_mac_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoint_by_mac_info.py index afcdf8652..b1f2e75bc 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoint_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoint_by_mac_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_os_type_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_os_type_info.py index 0df3187ba..d09e741ca 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_os_type_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_os_type_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_type_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_type_info.py index e7508f6dc..218354951 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_type_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_type_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_info.py index ba538d3a9..f57c53d8e 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_failures_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_failures_info.py index 145586690..03fe49c3e 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_failures_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_failures_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_healths_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_healths_info.py index a0ff7012d..309bab442 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_healths_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_healths_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_approve.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_approve.py index d1a28a5ac..c3f71ac1e 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_approve.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_approve.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_delete.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_delete.py index eff20fc8b..f51f9f73e 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_delete.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_info.py index 20e5bdf53..2b1aa7bf1 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_performances_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_performances_info.py index 9297f8fc3..dd77a2c9d 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_performances_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_performances_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_profiles_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_profiles_info.py index ddf5a5aef..89af46f52 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_profiles_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_security_group_acls_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_security_group_acls_info.py index 9f7c69c60..ad57677d9 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_security_group_acls_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_security_group_acls_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_security_groups_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_security_groups_info.py index a5e808207..ab18eb7f2 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_security_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_security_groups_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_lookup.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_lookup.py index afc650923..02b7b61c8 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_lookup.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_lookup.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_register.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_register.py index df3e440c7..a689f4105 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_register.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_register.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_reregister.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_reregister.py index 0260f6e65..9f9637030 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_reregister.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_reregister.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_unregister.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_unregister.py index e245c4d84..2bc362861 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_unregister.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_unregister.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_ip_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_ip_info.py index 82f255692..af65bbf8e 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_ip_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_mac_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_mac_info.py index 17cdf4e2f..01bb6f95a 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_mac_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_for_recovery_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_for_recovery_info.py index 35c2a0fbe..8c4045fed 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_for_recovery_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_for_recovery_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_sessions_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_sessions_info.py index 86316c1ba..141d8501c 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_sessions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_sessions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_settings_auto_approve.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_settings_auto_approve.py index ed674d644..79cfb3e3f 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_settings_auto_approve.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_settings_auto_approve.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_user_group_by_username_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_user_group_by_username_info.py index 67513d4ce..b61fa9917 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_user_group_by_username_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_user_group_by_username_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_user_groups_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_user_groups_info.py index ecfd2bb5c..ac1989a5b 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_user_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_user_groups_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/radius_server_sequence.py b/ansible_collections/cisco/ise/plugins/action/radius_server_sequence.py index ab25c9a52..7deec1bf7 100644 --- a/ansible_collections/cisco/ise/plugins/action/radius_server_sequence.py +++ b/ansible_collections/cisco/ise/plugins/action/radius_server_sequence.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/radius_server_sequence_info.py b/ansible_collections/cisco/ise/plugins/action/radius_server_sequence_info.py index 821f5ac30..0198fcc1b 100644 --- a/ansible_collections/cisco/ise/plugins/action/radius_server_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/action/radius_server_sequence_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/renew_certificate.py b/ansible_collections/cisco/ise/plugins/action/renew_certificate.py index e8c5aca11..65b26d27b 100644 --- a/ansible_collections/cisco/ise/plugins/action/renew_certificate.py +++ b/ansible_collections/cisco/ise/plugins/action/renew_certificate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/repository.py b/ansible_collections/cisco/ise/plugins/action/repository.py index 0b01c202e..5f2557854 100644 --- a/ansible_collections/cisco/ise/plugins/action/repository.py +++ b/ansible_collections/cisco/ise/plugins/action/repository.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/repository_files_info.py b/ansible_collections/cisco/ise/plugins/action/repository_files_info.py index f41da0ffd..8de12e117 100644 --- a/ansible_collections/cisco/ise/plugins/action/repository_files_info.py +++ b/ansible_collections/cisco/ise/plugins/action/repository_files_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/repository_info.py b/ansible_collections/cisco/ise/plugins/action/repository_info.py index 4c27ff60c..c24a14eb0 100644 --- a/ansible_collections/cisco/ise/plugins/action/repository_info.py +++ b/ansible_collections/cisco/ise/plugins/action/repository_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/reservation.py b/ansible_collections/cisco/ise/plugins/action/reservation.py new file mode 100644 index 000000000..731a1e57f --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/reservation.py @@ -0,0 +1,255 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + clientName=dict(type="str"), + numberOfTags=dict(type="int"), + clientID=dict(type="str"), + endIndex=dict(type="int"), + startIndex=dict(type="int"), +)) + +required_if = [ + ("state", "absent", ["clientID"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class Reservation(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + client_name=params.get("clientName"), + number_of_tags=params.get("numberOfTags"), + client_id=params.get("clientID"), + end_index=params.get("endIndex"), + start_index=params.get("startIndex"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + gen_items_responses = self.ise.exec( + family="sgt_range_reservation", + function="get_sgt_reserved_ranges_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response.get('response', []) + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="sgt_range_reservation", + function="get_sgt_reserved_range", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("clientName", "client_name"), + ("numberOfTags", "number_of_tags"), + ("clientID", "client_id"), + ("endIndex", "end_index"), + ("startIndex", "start_index"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="sgt_range_reservation", + function="reserve_sgt_range", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="sgt_range_reservation", + function="update_reserved_range", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="sgt_range_reservation", + function="delete_sgt_reserve_range", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = Reservation(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/reservation_info.py b/ansible_collections/cisco/ise/plugins/action/reservation_info.py new file mode 100644 index 000000000..e02ce3162 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/reservation_info.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + clientID=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + client_id=params.get("clientID"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("clientID") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="sgt_range_reservation", + function='get_sgt_reserved_range', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="sgt_range_reservation", + function='get_sgt_reserved_ranges_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/resource_version_info.py b/ansible_collections/cisco/ise/plugins/action/resource_version_info.py index 4dcf7478c..e8536d9a1 100644 --- a/ansible_collections/cisco/ise/plugins/action/resource_version_info.py +++ b/ansible_collections/cisco/ise/plugins/action/resource_version_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/rest_id_store.py b/ansible_collections/cisco/ise/plugins/action/rest_id_store.py index 298223855..8d16915c9 100644 --- a/ansible_collections/cisco/ise/plugins/action/rest_id_store.py +++ b/ansible_collections/cisco/ise/plugins/action/rest_id_store.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/rest_id_store_info.py b/ansible_collections/cisco/ise/plugins/action/rest_id_store_info.py index 64726af72..e93c29a46 100644 --- a/ansible_collections/cisco/ise/plugins/action/rest_id_store_info.py +++ b/ansible_collections/cisco/ise/plugins/action/rest_id_store_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/self_registered_portal.py b/ansible_collections/cisco/ise/plugins/action/self_registered_portal.py index fb0bf742b..cd534b5a9 100644 --- a/ansible_collections/cisco/ise/plugins/action/self_registered_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/self_registered_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/self_registered_portal_info.py b/ansible_collections/cisco/ise/plugins/action/self_registered_portal_info.py index d02d00167..57ee5e3d5 100644 --- a/ansible_collections/cisco/ise/plugins/action/self_registered_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/self_registered_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/selfsigned_certificate_generate.py b/ansible_collections/cisco/ise/plugins/action/selfsigned_certificate_generate.py index 5c1a29bd5..e485061ab 100644 --- a/ansible_collections/cisco/ise/plugins/action/selfsigned_certificate_generate.py +++ b/ansible_collections/cisco/ise/plugins/action/selfsigned_certificate_generate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/session_service_node_info.py b/ansible_collections/cisco/ise/plugins/action/session_service_node_info.py index edd33df5a..463f85fe0 100644 --- a/ansible_collections/cisco/ise/plugins/action/session_service_node_info.py +++ b/ansible_collections/cisco/ise/plugins/action/session_service_node_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_acl.py b/ansible_collections/cisco/ise/plugins/action/sg_acl.py index 152d6176d..78da03e23 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_acl.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_acl.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_monitor_status_info.py index 863c2f4c9..39fd63aa7 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_request.py index 7cfff24d9..db68ff947 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_acl_info.py b/ansible_collections/cisco/ise/plugins/action/sg_acl_info.py index 36b14a20f..e2382fce7 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_acl_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_acl_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping.py index 288fd80b6..df4f298f1 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_monitor_status_info.py index d7f242022..3bde15cc3 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_request.py index e82eb637f..f2e121d07 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy.py index 784a828d5..329ec469f 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_all.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_all.py index cf72239c1..2d04386cf 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_all.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_all.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_status_info.py index 216014fc4..70818b5fe 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group.py index 67bac9001..f7d4fa5ec 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_monitor_status_info.py index 567ab2dcb..e794ca395 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_request.py index f1830ce02..a3fc52f5b 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy.py index e9035f0ab..639747314 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_all.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_all.py index 55c9a7ae8..067ef4dd7 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_all.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_all.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_status_info.py index 38f02d4e8..91ea9faf9 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_info.py index 04b67c510..0aabee221 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_info.py index 8d8b0beaf..4d65f144d 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan.py b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan.py index 243b6d208..6fae123d1 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_monitor_status_info.py index 692d4b83b..67b3c1f4e 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_request.py index 23a48207b..acda6a98c 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_info.py b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_info.py index b0194ce10..561498ec5 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sgt.py b/ansible_collections/cisco/ise/plugins/action/sgt.py index 6b4c11232..db45d70d9 100644 --- a/ansible_collections/cisco/ise/plugins/action/sgt.py +++ b/ansible_collections/cisco/ise/plugins/action/sgt.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sgt_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sgt_bulk_monitor_status_info.py index 1ad0b0718..b95084ee6 100644 --- a/ansible_collections/cisco/ise/plugins/action/sgt_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sgt_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sgt_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sgt_bulk_request.py index 2157144ba..eb5fd4c52 100644 --- a/ansible_collections/cisco/ise/plugins/action/sgt_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sgt_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sgt_info.py b/ansible_collections/cisco/ise/plugins/action/sgt_info.py index 3c1602e76..27c172494 100644 --- a/ansible_collections/cisco/ise/plugins/action/sgt_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sgt_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sms_provider_info.py b/ansible_collections/cisco/ise/plugins/action/sms_provider_info.py index 75971faf3..235626668 100644 --- a/ansible_collections/cisco/ise/plugins/action/sms_provider_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sms_provider_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsor_group.py b/ansible_collections/cisco/ise/plugins/action/sponsor_group.py index 8bd4bc92b..ab46d1f2b 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsor_group.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsor_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsor_group_info.py b/ansible_collections/cisco/ise/plugins/action/sponsor_group_info.py index 695b98952..f94e22cdf 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsor_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsor_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsor_group_member_info.py b/ansible_collections/cisco/ise/plugins/action/sponsor_group_member_info.py index 4efac6fbe..dd522d14e 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsor_group_member_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsor_group_member_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsor_portal.py b/ansible_collections/cisco/ise/plugins/action/sponsor_portal.py index 95a45c1ab..cb2fd1943 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsor_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsor_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsor_portal_info.py b/ansible_collections/cisco/ise/plugins/action/sponsor_portal_info.py index 41ce0dfe2..fe3a1f908 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsor_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsor_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal.py b/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal.py index 437eb6b17..f0e9a1346 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal_info.py b/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal_info.py index 732d3e77a..464361302 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/stop_replication.py b/ansible_collections/cisco/ise/plugins/action/stop_replication.py new file mode 100644 index 000000000..0d678ee50 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/stop_replication.py @@ -0,0 +1,168 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + isEnabled=dict(type="bool"), +)) + +required_if = [ + ("state", "present", [], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class StopReplication(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + is_enabled=params.get("isEnabled"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="endpoint_stop_replication_service", + function="get_stop_replication_status" + ).response['response'] + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("isEnabled", "is_enabled"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + result = self.ise.exec( + family="endpoint_stop_replication_service", + function="set_stop_replication_service", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = StopReplication(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise.fail_json("Object does not exists, plugin only has update") + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/stop_replication_info.py b/ansible_collections/cisco/ise/plugins/action/stop_replication_info.py new file mode 100644 index 000000000..729e698fe --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/stop_replication_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="endpoint_stop_replication_service", + function='get_stop_replication_status', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/subscriber.py b/ansible_collections/cisco/ise/plugins/action/subscriber.py index a3713078a..11b89e884 100644 --- a/ansible_collections/cisco/ise/plugins/action/subscriber.py +++ b/ansible_collections/cisco/ise/plugins/action/subscriber.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -37,9 +37,9 @@ argument_spec.update(dict( friendlyName=dict(type="str"), identityGroups=dict(type="str"), imeis=dict(type="str"), - imsi=dict(type="str"), - ki=dict(type="str"), opc=dict(type="str"), + ki=dict(type="str"), + imsi=dict(type="str"), subscriberId=dict(type="str"), )) @@ -57,9 +57,9 @@ class Subscriber(object): friendly_name=params.get("friendlyName"), identity_groups=params.get("identityGroups"), imeis=params.get("imeis"), - imsi=params.get("imsi"), - ki=params.get("ki"), opc=params.get("opc"), + ki=params.get("ki"), + imsi=params.get("imsi"), subscriber_id=params.get("subscriberId"), ) @@ -97,7 +97,7 @@ class Subscriber(object): family="subscriber", function="get_subscriber_by_id", handle_func_exception=False, - params={"subscriber_id": id} + params={"id": id} ).response['response'] except (TypeError, AttributeError) as e: self.ise.fail_json( @@ -117,7 +117,7 @@ class Subscriber(object): id_exists = False name_exists = False prev_obj = None - o_id = self.new_object.get("subscriberId") + o_id = self.new_object.get("id") name = self.new_object.get("name") if o_id: prev_obj = self.get_object_by_id(o_id) @@ -142,9 +142,9 @@ class Subscriber(object): ("friendlyName", "friendly_name"), ("identityGroups", "identity_groups"), ("imeis", "imeis"), - ("imsi", "imsi"), - ("ki", "ki"), ("opc", "opc"), + ("ki", "ki"), + ("imsi", "imsi"), ("subscriberId", "subscriber_id"), ] # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params diff --git a/ansible_collections/cisco/ise/plugins/action/subscriber_bulk.py b/ansible_collections/cisco/ise/plugins/action/subscriber_bulk.py index bd392306d..0477c5b43 100644 --- a/ansible_collections/cisco/ise/plugins/action/subscriber_bulk.py +++ b/ansible_collections/cisco/ise/plugins/action/subscriber_bulk.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -27,8 +27,8 @@ from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( - ItemList=dict(type="list"), operation=dict(type="str"), + ItemList=dict(type="list"), )) required_if = [] @@ -66,8 +66,8 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( - item_list=params.get("ItemList"), operation=params.get("operation"), + item_list=params.get("ItemList"), ) return new_object diff --git a/ansible_collections/cisco/ise/plugins/action/subscriber_imsi_info.py b/ansible_collections/cisco/ise/plugins/action/subscriber_imsi_info.py index f82cd0d6d..0a2149781 100644 --- a/ansible_collections/cisco/ise/plugins/action/subscriber_imsi_info.py +++ b/ansible_collections/cisco/ise/plugins/action/subscriber_imsi_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/subscriber_info.py b/ansible_collections/cisco/ise/plugins/action/subscriber_info.py index 65d8cc69c..172b076d2 100644 --- a/ansible_collections/cisco/ise/plugins/action/subscriber_info.py +++ b/ansible_collections/cisco/ise/plugins/action/subscriber_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/support_bundle.py b/ansible_collections/cisco/ise/plugins/action/support_bundle.py index 73e925af8..d7921171d 100644 --- a/ansible_collections/cisco/ise/plugins/action/support_bundle.py +++ b/ansible_collections/cisco/ise/plugins/action/support_bundle.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/support_bundle_download.py b/ansible_collections/cisco/ise/plugins/action/support_bundle_download.py index e21df3e22..5031e886a 100644 --- a/ansible_collections/cisco/ise/plugins/action/support_bundle_download.py +++ b/ansible_collections/cisco/ise/plugins/action/support_bundle_download.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/support_bundle_status_info.py b/ansible_collections/cisco/ise/plugins/action/support_bundle_status_info.py index 34f77c217..61357d6fc 100644 --- a/ansible_collections/cisco/ise/plugins/action/support_bundle_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/support_bundle_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_connections.py b/ansible_collections/cisco/ise/plugins/action/sxp_connections.py index 1ad726f43..d068ce425 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_connections.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_connections.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_monitor_status_info.py index 3376e2f75..9232d5aea 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_request.py index ff5ab9c19..fd9b00778 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_connections_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_connections_info.py index 55411cb90..42afe968e 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_connections_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_connections_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings.py b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings.py index 10451d9bd..3f1e386f0 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_monitor_status_info.py index da9fe0d18..b2d5e1940 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_request.py index ff23aa0df..3778beb53 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_info.py index e2856ee0e..cca2bf477 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_vpns.py b/ansible_collections/cisco/ise/plugins/action/sxp_vpns.py index e9021d464..db1deb187 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_vpns.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_vpns.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_monitor_status_info.py index 74a8cf9da..5e2b53e0f 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_request.py index 391deb4c4..214eeda0c 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_info.py index ca26ec9b5..bacbc1e96 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/system_certificate.py b/ansible_collections/cisco/ise/plugins/action/system_certificate.py index 3faae7fec..58991206b 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_certificate.py +++ b/ansible_collections/cisco/ise/plugins/action/system_certificate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/system_certificate_create.py b/ansible_collections/cisco/ise/plugins/action/system_certificate_create.py index 0b47847ac..31461874c 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_certificate_create.py +++ b/ansible_collections/cisco/ise/plugins/action/system_certificate_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/system_certificate_export_info.py b/ansible_collections/cisco/ise/plugins/action/system_certificate_export_info.py index 6922b5a9f..f45e274a2 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_certificate_export_info.py +++ b/ansible_collections/cisco/ise/plugins/action/system_certificate_export_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -28,6 +28,7 @@ argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( export=dict(type="str"), + hostName=dict(type="str"), id=dict(type="str"), password=dict(type="str", no_log=True), dirPath=dict(type="str"), @@ -71,6 +72,7 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( export=params.get("export"), + host_name=params.get("hostName"), id=params.get("id"), password=params.get("password"), dirpath=params.get("dirPath"), diff --git a/ansible_collections/cisco/ise/plugins/action/system_certificate_import.py b/ansible_collections/cisco/ise/plugins/action/system_certificate_import.py index 51050e3e7..988fb5e01 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_certificate_import.py +++ b/ansible_collections/cisco/ise/plugins/action/system_certificate_import.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/system_certificate_info.py b/ansible_collections/cisco/ise/plugins/action/system_certificate_info.py index 5f1d0e7c2..6c6ee0d4d 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_certificate_info.py +++ b/ansible_collections/cisco/ise/plugins/action/system_certificate_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -32,7 +32,7 @@ argument_spec.update(dict( size=dict(type="int"), sort=dict(type="str"), sortBy=dict(type="str"), - filter=dict(type="list"), + filter=dict(type="str"), filterType=dict(type="str"), id=dict(type="str"), )) diff --git a/ansible_collections/cisco/ise/plugins/action/system_config_version_info.py b/ansible_collections/cisco/ise/plugins/action/system_config_version_info.py index 17a4d3e2d..ae68a50a6 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_config_version_info.py +++ b/ansible_collections/cisco/ise/plugins/action/system_config_version_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets.py b/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets.py index 471cd6b70..ec60cd403 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets_info.py b/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets_info.py index 7df402af6..db96fe04a 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets_info.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers.py b/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers.py index 60c07d1dc..fa36fb7cf 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers_info.py b/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers_info.py index e64bf2d8d..bc0d21ef8 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers_info.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_profile.py b/ansible_collections/cisco/ise/plugins/action/tacacs_profile.py index d87faab8f..5a0b846ef 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_profile.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_profile.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_profile_info.py b/ansible_collections/cisco/ise/plugins/action/tacacs_profile_info.py index d48f8753b..86001ae69 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_profile_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence.py b/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence.py index 3292d9482..d43760a55 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence_info.py b/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence_info.py index 6b3cee9f1..d182d64e4 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tasks_info.py b/ansible_collections/cisco/ise/plugins/action/tasks_info.py index a99af7810..49cdf6805 100644 --- a/ansible_collections/cisco/ise/plugins/action/tasks_info.py +++ b/ansible_collections/cisco/ise/plugins/action/tasks_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/telemetry_info.py b/ansible_collections/cisco/ise/plugins/action/telemetry_info.py index c2981dffb..24fd1b852 100644 --- a/ansible_collections/cisco/ise/plugins/action/telemetry_info.py +++ b/ansible_collections/cisco/ise/plugins/action/telemetry_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/test_connector.py b/ansible_collections/cisco/ise/plugins/action/test_connector.py deleted file mode 100644 index f3a1b5797..000000000 --- a/ansible_collections/cisco/ise/plugins/action/test_connector.py +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Copyright (c) 2023, Cisco Systems -# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type -from ansible.plugins.action import ActionBase - -try: - from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( - AnsibleArgSpecValidator, - ) -except ImportError: - ANSIBLE_UTILS_IS_INSTALLED = False -else: - ANSIBLE_UTILS_IS_INSTALLED = True -from ansible.errors import AnsibleActionFail -from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( - ISESDK, - ise_argument_spec, -) - -# Get common arguements specification -argument_spec = ise_argument_spec() -# Add arguments specific for this module -argument_spec.update(dict( - authType=dict(type="str"), - authValues=dict(type="dict"), - connectorName=dict(type="str"), - responseParsing=dict(type="str"), - uniqueID=dict(type="str"), - url=dict(type="str"), -)) - -required_if = [] -required_one_of = [] -mutually_exclusive = [] -required_together = [] - - -class ActionModule(ActionBase): - def __init__(self, *args, **kwargs): - if not ANSIBLE_UTILS_IS_INSTALLED: - raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") - super(ActionModule, self).__init__(*args, **kwargs) - self._supports_async = False - self._supports_check_mode = False - self._result = None - - # Checks the supplied parameters against the argument spec for this module - def _check_argspec(self): - aav = AnsibleArgSpecValidator( - data=self._task.args, - schema=dict(argument_spec=argument_spec), - schema_format="argspec", - schema_conditionals=dict( - required_if=required_if, - required_one_of=required_one_of, - mutually_exclusive=mutually_exclusive, - required_together=required_together, - ), - name=self._task.action, - ) - valid, errors, self._task.args = aav.validate() - if not valid: - raise AnsibleActionFail(errors) - - def get_object(self, params): - new_object = dict( - auth_type=params.get("authType"), - auth_values=params.get("authValues"), - connector_name=params.get("connectorName"), - response_parsing=params.get("responseParsing"), - unique_id=params.get("uniqueID"), - url=params.get("url"), - ) - return new_object - - def run(self, tmp=None, task_vars=None): - self._task.diff = False - self._result = super(ActionModule, self).run(tmp, task_vars) - self._result["changed"] = False - self._check_argspec() - - ise = ISESDK(params=self._task.args) - - response = ise.exec( - family="edda", - function="test_connector", - params=self.get_object(self._task.args), - ).response - - self._result.update(dict(ise_response=response)) - self._result.update(ise.exit_json()) - return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/threat_vulnerabilities_clear.py b/ansible_collections/cisco/ise/plugins/action/threat_vulnerabilities_clear.py index 6360671d7..f3ce50d40 100644 --- a/ansible_collections/cisco/ise/plugins/action/threat_vulnerabilities_clear.py +++ b/ansible_collections/cisco/ise/plugins/action/threat_vulnerabilities_clear.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings.py b/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings.py index 10555db06..ec5076e29 100644 --- a/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings.py +++ b/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings_info.py b/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings_info.py index 8aa181500..b0c609e4d 100644 --- a/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/trusted_certificate.py b/ansible_collections/cisco/ise/plugins/action/trusted_certificate.py index 8b86c914b..65765c65d 100644 --- a/ansible_collections/cisco/ise/plugins/action/trusted_certificate.py +++ b/ansible_collections/cisco/ise/plugins/action/trusted_certificate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_export_info.py b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_export_info.py index fc1e9d075..7a6cd3241 100644 --- a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_export_info.py +++ b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_export_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_import.py b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_import.py index c36cdf54b..e3b9bf48e 100644 --- a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_import.py +++ b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_import.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_info.py b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_info.py index b0fd68fb4..ef552c9c6 100644 --- a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_info.py +++ b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -31,7 +31,7 @@ argument_spec.update(dict( size=dict(type="int"), sort=dict(type="str"), sortBy=dict(type="str"), - filter=dict(type="list"), + filter=dict(type="str"), filterType=dict(type="str"), id=dict(type="str"), )) diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app.py b/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app.py new file mode 100644 index 000000000..953ffeecd --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app.py @@ -0,0 +1,256 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + description=dict(type="str"), + id=dict(type="str"), + name=dict(type="str"), + networkIdentities=dict(type="list"), +)) + +required_if = [ + ("state", "present", ["id", "name"], True), + ("state", "absent", ["id", "name"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class TrustsecNbarApp(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + description=params.get("description"), + id=params.get("id"), + name=params.get("name"), + network_identities=params.get("networkIdentities"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="nbar_app", + function="get_nbar_apps_generator", + params={"filter": "name.EQ.{name}".format(name=name)} + ) + try: + for items_response in gen_items_responses: + items = items_response.response['response'] + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="nbar_app", + function="get_nbar_app_by_id", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + if isinstance(result, list) and len(result) > 0: + return result[0] + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("description", "description"), + ("id", "id"), + ("name", "name"), + ("networkIdentities", "network_identities"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="nbar_app", + function="create_nbar_app", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="nbar_app", + function="update_nbar_app_by_id", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="nbar_app", + function="delete_nbar_app_by_id", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = TrustsecNbarApp(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app_info.py b/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app_info.py new file mode 100644 index 000000000..f4ff6f4b7 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + id=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + id=params.get("id"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="nbar_app", + function='get_nbar_app_by_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="nbar_app", + function='get_nbar_apps_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping.py b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping.py new file mode 100644 index 000000000..55970b9b7 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping.py @@ -0,0 +1,266 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + id=dict(type="str"), + lastUpdate=dict(type="str"), + sgName=dict(type="str"), + sgtId=dict(type="str"), + vnId=dict(type="str"), + vnName=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["id", "sgName", "vnName"], True), + ("state", "absent", ["id", "sgName", "vnName"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class TrustsecSgVnMapping(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + id=params.get("id"), + last_update=params.get("lastUpdate"), + sg_name=params.get("sgName"), + sgt_id=params.get("sgtId"), + vn_id=params.get("vnId"), + vn_name=params.get("vnName"), + ) + + def get_object_by_name(self, sg_name, vn_name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="sg_vn_mapping", + function="get_sg_vn_mapping_list_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response['response'] + for item in items: + if isinstance(item, dict) and item.get('sgName') == sg_name and item.get('vnName') == vn_name: + result = item + break + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="sg_vn_mapping", + function="get_sg_vn_mapping_by_id", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + if isinstance(result, list) and len(result) > 0: + return result[0] + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + sg_name = self.new_object.get("sg_name") + vn_name = self.new_object.get("vn_name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and sg_name and vn_name: + prev_obj = self.get_object_by_name(sg_name, vn_name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("id", "id"), + ("lastUpdate", "last_update"), + ("sgName", "sg_name"), + ("sgtId", "sgt_id"), + ("vnId", "vn_id"), + ("vnName", "vn_name"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="sg_vn_mapping", + function="create_sg_vn_mapping", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + sg_name = self.new_object.get("sg_name") + vn_name = self.new_object.get("vn_name") + result = None + if not id: + id_ = self.get_object_by_name(sg_name, vn_name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="sg_vn_mapping", + function="update_sg_vn_mapping", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + sg_name = self.new_object.get("sg_name") + vn_name = self.new_object.get("vn_name") + result = None + if not id: + id_ = self.get_object_by_name(sg_name, vn_name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="sg_vn_mapping", + function="delete_sg_vn_mapping", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = TrustsecSgVnMapping(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_create.py b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_create.py new file mode 100644 index 000000000..b1f0c73a2 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_create.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="sg_vn_mapping", + function="bulk_create_sg_vn_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_delete.py b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_delete.py new file mode 100644 index 000000000..04f7b0917 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_delete.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="sg_vn_mapping", + function="bulk_delete_sg_vn_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_update.py b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_update.py new file mode 100644 index 000000000..1502caf8c --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_update.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="sg_vn_mapping", + function="bulk_update_sg_vn_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_info.py b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_info.py new file mode 100644 index 000000000..63ac32359 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + id=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + id=params.get("id"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="sg_vn_mapping", + function='get_sg_vn_mapping_by_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="sg_vn_mapping", + function='get_sg_vn_mapping_list_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn.py new file mode 100644 index 000000000..3a405f476 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn.py @@ -0,0 +1,256 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + additionalAttributes=dict(type="str"), + id=dict(type="str"), + lastUpdate=dict(type="str"), + name=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["id", "name"], True), + ("state", "absent", ["id", "name"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class TrustsecVn(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + additional_attributes=params.get("additionalAttributes"), + id=params.get("id"), + last_update=params.get("lastUpdate"), + name=params.get("name"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="virtual_network", + function="get_virtual_networks_generator", + params={"filter": "name.EQ.{name}".format(name=name)} + ) + try: + for items_response in gen_items_responses: + items = items_response.response['response'] + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="virtual_network", + function="get_virtual_network_by_id", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + if isinstance(result, list) and len(result) > 0: + return result[0] + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("additionalAttributes", "additional_attributes"), + ("id", "id"), + ("lastUpdate", "last_update"), + ("name", "name"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="virtual_network", + function="create_virtual_network", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="virtual_network", + function="update_virtual_network_by_id", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="virtual_network", + function="delete_virtual_network_by_id", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = TrustsecVn(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_create.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_create.py new file mode 100644 index 000000000..c2ce4fd33 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_create.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="virtual_network", + function="bulk_create_virtual_networks", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_delete.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_delete.py new file mode 100644 index 000000000..a0a169b94 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_delete.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="virtual_network", + function="bulk_delete_virtual_networks", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_update.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_update.py new file mode 100644 index 000000000..5ca4c7a67 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_update.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="virtual_network", + function="bulk_update_virtual_networks", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_info.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_info.py new file mode 100644 index 000000000..d7ecfe6b8 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + id=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + id=params.get("id"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="virtual_network", + function='get_virtual_network_by_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="virtual_network", + function='get_virtual_networks_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping.py new file mode 100644 index 000000000..ac4eb4764 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping.py @@ -0,0 +1,268 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + id=dict(type="str"), + isData=dict(type="bool"), + isDefaultVlan=dict(type="bool"), + lastUpdate=dict(type="str"), + maxValue=dict(type="int"), + name=dict(type="str"), + vnId=dict(type="str"), + vnName=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["id", "name"], True), + ("state", "absent", ["id", "name"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class TrustsecVnVlanMapping(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + id=params.get("id"), + is_data=params.get("isData"), + is_default_vlan=params.get("isDefaultVlan"), + last_update=params.get("lastUpdate"), + max_value=params.get("maxValue"), + name=params.get("name"), + vn_id=params.get("vnId"), + vn_name=params.get("vnName"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="vn_vlan_mapping", + function="get_vn_vlan_mapping_list_generator", + params={"filter": "name.EQ.{name}".format(name=name)} + ) + try: + for items_response in gen_items_responses: + items = items_response.response['response'] + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="vn_vlan_mapping", + function="get_vn_vlan_mapping_by_id", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + if isinstance(result, list) and len(result) > 0: + return result[0] + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("id", "id"), + ("isData", "is_data"), + ("isDefaultVlan", "is_default_vlan"), + ("lastUpdate", "last_update"), + ("maxValue", "max_value"), + ("name", "name"), + ("vnId", "vn_id"), + ("vnName", "vn_name"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="vn_vlan_mapping", + function="create_vn_vlan_mapping", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="vn_vlan_mapping", + function="update_vn_vlan_mapping", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="vn_vlan_mapping", + function="delete_vn_vlan_mapping", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = TrustsecVnVlanMapping(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_create.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_create.py new file mode 100644 index 000000000..3af9a3182 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_create.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="vn_vlan_mapping", + function="bulk_create_vn_vlan_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_delete.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_delete.py new file mode 100644 index 000000000..ab269311f --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_delete.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="vn_vlan_mapping", + function="bulk_delete_vn_vlan_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_update.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_update.py new file mode 100644 index 000000000..d47de7a4b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_update.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="vn_vlan_mapping", + function="bulk_update_vn_vlan_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_info.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_info.py new file mode 100644 index 000000000..dbc8442a0 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + id=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + id=params.get("id"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="vn_vlan_mapping", + function='get_vn_vlan_mapping_by_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="vn_vlan_mapping", + function='get_vn_vlan_mapping_list_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_proceed.py b/ansible_collections/cisco/ise/plugins/action/upgrade_proceed.py new file mode 100644 index 000000000..7a44b3489 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_proceed.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + hostnames=dict(type="list"), + preCheckReportID=dict(type="str"), + upgradeType=dict(type="str"), +)) + +required_if = [ + ("state", "present", [], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class UpgradeProceed(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + hostnames=params.get("hostnames"), + pre_check_report_id=params.get("preCheckReportID"), + upgrade_type=params.get("upgradeType"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="fullupgrade", + function="" + ).response.get('response', []) + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostnames", "hostnames"), + ("preCheckReportID", "pre_check_report_id"), + ("upgradeType", "upgrade_type"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="fullupgrade", + function="initiate_upgrade_on_p_p_a_n", + params=self.new_object, + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = UpgradeProceed(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + response = prev_obj + ise.object_present_and_different() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_proceed_info.py b/ansible_collections/cisco/ise/plugins/action/upgrade_proceed_info.py new file mode 100644 index 000000000..e8487e84b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_proceed_info.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel.py b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel.py new file mode 100644 index 000000000..90070b06e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + hostnames=dict(type="list"), + preCheckReportID=dict(type="str"), + upgradeType=dict(type="str"), +)) + +required_if = [ + ("state", "present", [], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class UpgradestageCancel(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + hostnames=params.get("hostnames"), + pre_check_report_id=params.get("preCheckReportID"), + upgrade_type=params.get("upgradeType"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="fullupgrade", + function="stage_status" + ).response['response'] + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostnames", "hostnames"), + ("preCheckReportID", "pre_check_report_id"), + ("upgradeType", "upgrade_type"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="fullupgrade", + function="cancel_staging_on_p_p_a_n", + params=self.new_object, + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = UpgradestageCancel(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + response = prev_obj + ise.object_present_and_different() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel_info.py b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel_info.py new file mode 100644 index 000000000..dafbeb1de --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel_info.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + preCheckReportID=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + pre_check_report_id=params.get("preCheckReportID"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="fullupgrade", + function='stage_status', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start.py b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start.py new file mode 100644 index 000000000..9718de17b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start.py @@ -0,0 +1,172 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + hostnames=dict(type="list"), + preCheckReportID=dict(type="str"), + reTrigger=dict(type="bool"), + upgradeType=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class UpgradestageStart(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + hostnames=params.get("hostnames"), + pre_check_report_id=params.get("preCheckReportID"), + re_trigger=params.get("reTrigger"), + upgrade_type=params.get("upgradeType"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="fullupgrade", + function="stage_status" + ).response['response'] + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostnames", "hostnames"), + ("preCheckReportID", "pre_check_report_id"), + ("reTrigger", "re_trigger"), + ("upgradeType", "upgrade_type"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="fullupgrade", + function="initiate_staging_on_p_p_a_n", + params=self.new_object, + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = UpgradestageStart(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + response = prev_obj + ise.object_present_and_different() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start_info.py b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start_info.py new file mode 100644 index 000000000..dafbeb1de --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start_info.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + preCheckReportID=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + pre_check_report_id=params.get("preCheckReportID"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="fullupgrade", + function='stage_status', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment.py b/ansible_collections/cisco/ise/plugins/action/user_equipment.py new file mode 100644 index 000000000..ef1c4578f --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment.py @@ -0,0 +1,253 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + description=dict(type="str"), + deviceGroup=dict(type="str"), + imei=dict(type="str"), + userEquipmentId=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["userEquipmentId"], True), + ("state", "absent", ["userEquipmentId"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class UserEquipment(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + description=params.get("description"), + device_group=params.get("deviceGroup"), + imei=params.get("imei"), + user_equipment_id=params.get("userEquipmentId"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="user_equipment", + function="get_user_equipments_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response.get('response', []) + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="user_equipment", + function="get_user_equipment_by_id", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("description", "description"), + ("deviceGroup", "device_group"), + ("imei", "imei"), + ("userEquipmentId", "user_equipment_id"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="user_equipment", + function="create_user_equipment", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="user_equipment", + function="update_user_equipment", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="user_equipment", + function="delete_user_equipment", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = UserEquipment(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment_bulk.py b/ansible_collections/cisco/ise/plugins/action/user_equipment_bulk.py new file mode 100644 index 000000000..5ed919fe7 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment_bulk.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + operation=dict(type="str"), + ItemList=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + operation=params.get("operation"), + item_list=params.get("ItemList"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="user_equipment", + function="bulk_user_equipment_operation", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment_csv.py b/ansible_collections/cisco/ise/plugins/action/user_equipment_csv.py new file mode 100644 index 000000000..afb8df4e3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment_csv.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="user_equipment", + function="create_user_equipments_from_c_s_v", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment_imei_info.py b/ansible_collections/cisco/ise/plugins/action/user_equipment_imei_info.py new file mode 100644 index 000000000..d501ddb5b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment_imei_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + imei=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + imei=params.get("imei"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("imei") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="user_equipment", + function='get_user_equipment_by_i_m_e_i', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment_info.py b/ansible_collections/cisco/ise/plugins/action/user_equipment_info.py new file mode 100644 index 000000000..94879efff --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + filter=dict(type="str"), + filterType=dict(type="str"), + sort=dict(type="str"), + sortBy=dict(type="str"), + userEquipmentId=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + user_equipment_id=params.get("userEquipmentId"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("userEquipmentId") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="user_equipment", + function='get_user_equipment_by_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="user_equipment", + function='get_user_equipments_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment_subscriber_info.py b/ansible_collections/cisco/ise/plugins/action/user_equipment_subscriber_info.py new file mode 100644 index 000000000..6a4e91fa3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment_subscriber_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + subscriberId=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + subscriber_id=params.get("subscriberId"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("subscriberId") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="user_equipment", + function='get_user_equipments_by_subscriber_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/modules/aci_bindings_info.py b/ansible_collections/cisco/ise/plugins/modules/aci_bindings_info.py index b8d1afa37..75aca0860 100644 --- a/ansible_collections/cisco/ise/plugins/modules/aci_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/aci_bindings_info.py @@ -43,7 +43,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/aci_settings.py b/ansible_collections/cisco/ise/plugins/modules/aci_settings.py index b338f5888..eda39cd12 100644 --- a/ansible_collections/cisco/ise/plugins/modules/aci_settings.py +++ b/ansible_collections/cisco/ise/plugins/modules/aci_settings.py @@ -87,7 +87,7 @@ options: description: ACI Settings's untaggedPacketIepgName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/aci_settings_info.py b/ansible_collections/cisco/ise/plugins/modules/aci_settings_info.py index 61bad7bbe..4742f614a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/aci_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/aci_settings_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/aci_test_connectivity.py b/ansible_collections/cisco/ise/plugins/modules/aci_test_connectivity.py index 61d13bf89..ea52c4b98 100644 --- a/ansible_collections/cisco/ise/plugins/modules/aci_test_connectivity.py +++ b/ansible_collections/cisco/ise/plugins/modules/aci_test_connectivity.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directories_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directories_info.py new file mode 100644 index 000000000..e99e2b1d4 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/active_directories_info.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: active_directories_info +short_description: Information module for Active Directories Info +description: +- Get all Active Directories Info. +- Duo-IdentitySync - Get the list of all configured Active Directories. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + active_directories.ActiveDirectories.get_active_directories, + + - Paths used are + get /api/v1/duo-identitysync/activedirectories, + +""" + +EXAMPLES = r""" +- name: Get all Active Directories Info + cisco.ise.active_directories_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "directoryID": "string", + "domain": "string", + "name": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory.py b/ansible_collections/cisco/ise/plugins/modules/active_directory.py index 0cc8e53ec..6707c8780 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory.py @@ -191,7 +191,7 @@ options: alphanumeric and .-_/\\ characters. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_add_groups.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_add_groups.py index 729454376..7f6834d44 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_add_groups.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_add_groups.py @@ -190,7 +190,7 @@ options: alphanumeric and .-_/\\ characters. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_groups_by_domain_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_groups_by_domain_info.py index f0925183c..144c00021 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_groups_by_domain_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_groups_by_domain_info.py @@ -32,7 +32,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_info.py index d8e4db519..2a69857aa 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_is_user_member_of_group_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_is_user_member_of_group_info.py index 5fbe56eb9..0b000aa5f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_is_user_member_of_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_is_user_member_of_group_info.py @@ -32,7 +32,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain.py index 6782bb235..7d00c4c14 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain_with_all_nodes.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain_with_all_nodes.py index 6dc4da875..5516d3890 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain_with_all_nodes.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain_with_all_nodes.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain.py index 4f1e46c87..d3487f8a2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain_with_all_nodes.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain_with_all_nodes.py index 7359c6151..ff9ddd31f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain_with_all_nodes.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain_with_all_nodes.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_trusted_domains_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_trusted_domains_info.py index 6974288ac..f6e1070fc 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_trusted_domains_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_trusted_domains_info.py @@ -21,7 +21,7 @@ options: - Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_user_groups_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_user_groups_info.py index 2df9027f7..735428bc6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_user_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_user_groups_info.py @@ -32,7 +32,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/ad_groups_info.py b/ansible_collections/cisco/ise/plugins/modules/ad_groups_info.py new file mode 100644 index 000000000..25e0fa705 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ad_groups_info.py @@ -0,0 +1,60 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ad_groups_info +short_description: Information module for Ad Groups Info +description: +- Get Ad Groups Info by id. +- Duo-IdentitySync - Get the list of all AD groups for the specified Active Directory. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + activeDirectory: + description: + - ActiveDirectory path parameter. List of AD groups for the specified Active Directory. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + ad_groups.ADGroups.get_adgroups, + + - Paths used are + get /api/v1/duo-identitysync/adgroups/{activeDirectory}, + +""" + +EXAMPLES = r""" +- name: Get Ad Groups Info by id + cisco.ise.ad_groups_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + activeDirectory: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "name": "string", + "source": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/admin_user_info.py b/ansible_collections/cisco/ise/plugins/modules/admin_user_info.py index cf793e354..ab75e52ba 100644 --- a/ansible_collections/cisco/ise/plugins/modules/admin_user_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/admin_user_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/allowed_protocols.py b/ansible_collections/cisco/ise/plugins/modules/allowed_protocols.py index 88fa594b4..c2da203c9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/allowed_protocols.py +++ b/ansible_collections/cisco/ise/plugins/modules/allowed_protocols.py @@ -310,7 +310,7 @@ options: type: bool type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/allowed_protocols_info.py b/ansible_collections/cisco/ise/plugins/modules/allowed_protocols_info.py index 84b86e5e9..43934d89d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/allowed_protocols_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/allowed_protocols_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_apply.py b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_apply.py index f1fde8079..9edacf089 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_apply.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_apply.py @@ -28,7 +28,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_monitor_status_info.py index 2615a8aff..2a5917433 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_request.py index 3e9037107..0aae0261b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_request.py @@ -23,7 +23,7 @@ options: description: ANC Endpoint Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_clear.py b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_clear.py index 1117dafa2..442410997 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_clear.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_clear.py @@ -28,7 +28,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_info.py b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_info.py index 5a58c8f22..394a4f202 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_policy.py b/ansible_collections/cisco/ise/plugins/modules/anc_policy.py index a49bc949f..3bb5528b4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_policy.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_policy.py @@ -33,7 +33,7 @@ options: description: ANC Policy's name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_monitor_status_info.py index 285529a89..79e991a4c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_request.py index ea2e59efc..b5770270a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_request.py @@ -23,7 +23,7 @@ options: description: ANC Policy Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_policy_info.py b/ansible_collections/cisco/ise/plugins/modules/anc_policy_info.py index 21051ffdf..6ba8e7f34 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_policy_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_policy_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/authorization_profile.py b/ansible_collections/cisco/ise/plugins/modules/authorization_profile.py index 75587110f..86944f7bc 100644 --- a/ansible_collections/cisco/ise/plugins/modules/authorization_profile.py +++ b/ansible_collections/cisco/ise/plugins/modules/authorization_profile.py @@ -174,7 +174,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/authorization_profile_info.py b/ansible_collections/cisco/ise/plugins/modules/authorization_profile_info.py index 2b0f7bfcb..6004bdd10 100644 --- a/ansible_collections/cisco/ise/plugins/modules/authorization_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/authorization_profile_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_cancel.py b/ansible_collections/cisco/ise/plugins/modules/backup_cancel.py index 11176958d..030e5da1a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_cancel.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_cancel.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_config.py b/ansible_collections/cisco/ise/plugins/modules/backup_config.py index ef5a51df3..c68f4baf1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_config.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_config.py @@ -31,7 +31,7 @@ options: get copied. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_last_status_info.py b/ansible_collections/cisco/ise/plugins/modules/backup_last_status_info.py index 7d22a9314..79f888957 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_last_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_last_status_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_restore.py b/ansible_collections/cisco/ise/plugins/modules/backup_restore.py index 908059a00..b660f3683 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_restore.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_restore.py @@ -30,7 +30,7 @@ options: true, false. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config.py b/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config.py index e994d04d2..85862ba60 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config.py @@ -57,7 +57,7 @@ options: description: Backup Schedule Config's weekDay. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config_update.py b/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config_update.py index a8ce5bb2a..805d07846 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config_update.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config_update.py @@ -57,7 +57,7 @@ options: description: Backup Schedule Config Update's weekDay. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/bind_signed_certificate.py b/ansible_collections/cisco/ise/plugins/modules/bind_signed_certificate.py index 1dcccb2b8..107e54c01 100644 --- a/ansible_collections/cisco/ise/plugins/modules/bind_signed_certificate.py +++ b/ansible_collections/cisco/ise/plugins/modules/bind_signed_certificate.py @@ -68,7 +68,7 @@ options: description: Validate Certificate Extensions. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/byod_portal.py b/ansible_collections/cisco/ise/plugins/modules/byod_portal.py index b6073d0f9..d6af22709 100644 --- a/ansible_collections/cisco/ise/plugins/modules/byod_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/byod_portal.py @@ -259,7 +259,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/byod_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/byod_portal_info.py index 530eae753..0de5b0440 100644 --- a/ansible_collections/cisco/ise/plugins/modules/byod_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/byod_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/certificate_profile.py b/ansible_collections/cisco/ise/plugins/modules/certificate_profile.py index da2bb18b7..18e506ca4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/certificate_profile.py +++ b/ansible_collections/cisco/ise/plugins/modules/certificate_profile.py @@ -51,7 +51,7 @@ options: - an option only in AD). type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/certificate_profile_info.py b/ansible_collections/cisco/ise/plugins/modules/certificate_profile_info.py index ff5eac756..da184c0bd 100644 --- a/ansible_collections/cisco/ise/plugins/modules/certificate_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/certificate_profile_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/certificate_template_info.py b/ansible_collections/cisco/ise/plugins/modules/certificate_template_info.py index 580e85c1a..249050b77 100644 --- a/ansible_collections/cisco/ise/plugins/modules/certificate_template_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/certificate_template_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/configuration.py b/ansible_collections/cisco/ise/plugins/modules/configuration.py index 1c551c299..130edb727 100644 --- a/ansible_collections/cisco/ise/plugins/modules/configuration.py +++ b/ansible_collections/cisco/ise/plugins/modules/configuration.py @@ -24,7 +24,7 @@ options: will be set to false if enableEPO flag is false. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/configuration_info.py b/ansible_collections/cisco/ise/plugins/modules/configuration_info.py index 6a942dedf..304124df4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/configuration_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/configuration_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/connector_config.py b/ansible_collections/cisco/ise/plugins/modules/connector_config.py deleted file mode 100644 index b374012b1..000000000 --- a/ansible_collections/cisco/ise/plugins/modules/connector_config.py +++ /dev/null @@ -1,305 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# Copyright (c) 2021, Cisco Systems -# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) - -DOCUMENTATION = r""" ---- -module: connector_config -short_description: Resource module for Connector Config -description: -- Manage operations create, update and delete of the resource Connector Config. -- EDDA - Configure connectorconfig information. -- EDDA - Delete Configure connectorConfig information based on ConnectorName. -- EDDA - update Configure connectorConfig information based on ConnectorName. -version_added: '2.8.0' -extends_documentation_fragment: - - cisco.ise.module -author: Rafael Campos (@racampos) -options: - additionalProperties: - description: Connector Config's additionalProperties. - type: dict - attributes: - description: ConnectorName. - suboptions: - attributeMapping: - description:

    List of feature names

    . - elements: dict - suboptions: - dictionaryAttribute: - description: Connector Config's dictionaryAttribute. - type: str - includeInDictionary: - description: IncludeInDictionary flag. - type: bool - jsonAttribute: - description: Connector Config's jsonAttribute. - type: str - type: list - bulkUniqueIdentifier: - description: Uniqueness to identify. - type: str - topLevelObject: - description: Root level of json. - type: str - uniqueIdentifier: - description: Uniqueness to identify. - type: str - versionIdentifier: - description: Version uniqueness to identify. - type: str - type: dict - connectorName: - description: ConnectorName. - type: str - connectorType: - description: Connector Type list. - type: str - deltasyncSchedule: - description: Connector Config's deltasyncSchedule. - suboptions: - interval: - description: Run at interval (hours). - type: int - intervalUnit: - description: Interval Units. - type: str - startDate: - description: Start date and Time. - type: str - type: dict - description: - description: Description. - type: str - enabled: - description: Enabled flag. - type: bool - fullsyncSchedule: - description: Connector Config's fullsyncSchedule. - suboptions: - interval: - description: Run at interval (hours). - type: int - intervalUnit: - description: Interval Units. - type: str - startDate: - description: Start date and Time. - type: str - type: dict - protocol: - description: Protocol. - type: str - skipCertificateValidations: - description: SkipCertificateValidations flag. - type: bool - url: - description: Connector Config's url. - suboptions: - accessKey: - description: Accesskey. - type: str - authenticationType: - description: Authentication Type list. - type: str - bulkUrl: - description: BulkUrl. - type: str - clientId: - description: Clientid. - type: str - clientSecret: - description: Clientsecret. - type: str - incrementalUrl: - description: IncrementalUrl. - type: str - password: - description: Password. - type: str - refreshToken: - description: Refreshtoken. - type: str - tokenHeader: - description: TokenHeader. - type: str - userName: - description: UserName. - type: str - type: dict -requirements: -- ciscoisesdk >= 2.0.1 -- python >= 3.5 -notes: - - SDK Method used are - edda.Edda.create_connector_config, - edda.Edda.delete_connector_config_by_connector_name, - edda.Edda.update_connector_config_by_connector_name, - - - Paths used are - post /api/v1/edda/connector-config, - delete /api/v1/edda/connector-config/{connectorName}, - put /api/v1/edda/connector-config/{connectorName}, - -""" - -EXAMPLES = r""" -- name: Create - cisco.ise.connector_config: - ise_hostname: "{{ise_hostname}}" - ise_username: "{{ise_username}}" - ise_password: "{{ise_password}}" - ise_verify: "{{ise_verify}}" - state: present - additionalProperties: {} - attributes: - attributeMapping: - - dictionaryAttribute: string - includeInDictionary: true - jsonAttribute: string - bulkUniqueIdentifier: string - topLevelObject: string - uniqueIdentifier: string - versionIdentifier: string - connectorName: string - connectorType: string - deltasyncSchedule: - interval: 0 - intervalUnit: string - startDate: string - description: string - enabled: true - fullsyncSchedule: - interval: 0 - intervalUnit: string - startDate: string - protocol: string - skipCertificateValidations: true - url: - accessKey: string - authenticationType: string - bulkUrl: string - clientId: string - clientSecret: string - incrementalUrl: string - password: string - refreshToken: string - tokenHeader: string - userName: string - -- name: Update by name - cisco.ise.connector_config: - ise_hostname: "{{ise_hostname}}" - ise_username: "{{ise_username}}" - ise_password: "{{ise_password}}" - ise_verify: "{{ise_verify}}" - state: present - additionalProperties: {} - attributes: - attributeMapping: - - dictionaryAttribute: string - includeInDictionary: true - jsonAttribute: string - bulkUniqueIdentifier: string - topLevelObject: string - uniqueIdentifier: string - versionIdentifier: string - connectorName: string - connectorType: string - deltasyncSchedule: - interval: 0 - intervalUnit: string - startDate: string - description: string - enabled: true - fullsyncSchedule: - interval: 0 - intervalUnit: string - startDate: string - protocol: string - skipCertificateValidations: true - url: - accessKey: string - authenticationType: string - bulkUrl: string - clientId: string - clientSecret: string - incrementalUrl: string - password: string - refreshToken: string - tokenHeader: string - userName: string - -- name: Delete by name - cisco.ise.connector_config: - ise_hostname: "{{ise_hostname}}" - ise_username: "{{ise_username}}" - ise_password: "{{ise_password}}" - ise_verify: "{{ise_verify}}" - state: absent - connectorName: string - -""" - -RETURN = r""" -ise_response: - description: A dictionary or list with the response returned by the Cisco ISE Python SDK - returned: always - type: dict - sample: > - { - "connector": { - "additionalProperties": {}, - "attributes": { - "attributeMapping": [ - { - "dictionaryAttribute": "string", - "includeInDictionary": true, - "jsonAttribute": "string" - } - ], - "bulkUniqueIdentifier": "string", - "topLevelObject": "string", - "uniqueIdentifier": "string", - "versionIdentifier": "string" - }, - "connectorName": "string", - "connectorType": "string", - "deltasyncSchedule": { - "interval": 0, - "intervalUnit": "string", - "startDate": "string" - }, - "description": "string", - "enabled": true, - "fullsyncSchedule": { - "interval": 0, - "intervalUnit": "string", - "startDate": "string" - }, - "protocol": "string", - "skipCertificateValidations": true, - "url": { - "accessKey": "string", - "authenticationType": "string", - "bulkUrl": "string", - "clientId": "string", - "clientSecret": "string", - "incrementalUrl": "string", - "password": "string", - "refreshToken": "string", - "tokenHeader": "string", - "userName": "string" - } - } - } - -ise_update_response: - description: A dictionary or list with the response returned by the Cisco ISE Python SDK - returned: always - type: str - sample: > - "'string'" -""" diff --git a/ansible_collections/cisco/ise/plugins/modules/connector_config_info.py b/ansible_collections/cisco/ise/plugins/modules/connector_config_info.py deleted file mode 100644 index 698dd2fd7..000000000 --- a/ansible_collections/cisco/ise/plugins/modules/connector_config_info.py +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# Copyright (c) 2021, Cisco Systems -# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) - -DOCUMENTATION = r""" ---- -module: connector_config_info -short_description: Information module for Connector Config -description: -- Get all Connector Config. -- Get Connector Config by name. -- EDDA - Get ALL connectorConfig information. -- EDDA - Get connectorConfig information based on ConnectorName. -version_added: '2.8.0' -extends_documentation_fragment: - - cisco.ise.module_info -author: Rafael Campos (@racampos) -options: - connectorName: - description: - - ConnectorName path parameter. Update or delete or retrieve the connector config. - type: str -requirements: -- ciscoisesdk >= 2.0.1 -- python >= 3.5 -notes: - - SDK Method used are - edda.Edda.get_connector_config, - edda.Edda.get_connector_config_by_connector_name, - - - Paths used are - get /api/v1/edda/connector-config, - get /api/v1/edda/connector-config/{connectorName}, - -""" - -EXAMPLES = r""" -- name: Get all Connector Config - cisco.ise.connector_config_info: - ise_hostname: "{{ise_hostname}}" - ise_username: "{{ise_username}}" - ise_password: "{{ise_password}}" - ise_verify: "{{ise_verify}}" - register: result - -- name: Get Connector Config by name - cisco.ise.connector_config_info: - ise_hostname: "{{ise_hostname}}" - ise_username: "{{ise_username}}" - ise_password: "{{ise_password}}" - ise_verify: "{{ise_verify}}" - connectorName: string - register: result - -""" - -RETURN = r""" -ise_response: - description: A dictionary or list with the response returned by the Cisco ISE Python SDK - returned: always - type: dict - sample: > - { - "connector": { - "additionalProperties": {}, - "attributes": { - "attributeMapping": [ - { - "dictionaryAttribute": "string", - "includeInDictionary": true, - "jsonAttribute": "string" - } - ], - "bulkUniqueIdentifier": "string", - "topLevelObject": "string", - "uniqueIdentifier": "string", - "versionIdentifier": "string" - }, - "connectorName": "string", - "connectorType": "string", - "deltasyncSchedule": { - "interval": 0, - "intervalUnit": "string", - "startDate": "string" - }, - "description": "string", - "enabled": true, - "fullsyncSchedule": { - "interval": 0, - "intervalUnit": "string", - "startDate": "string" - }, - "protocol": "string", - "skipCertificateValidations": true, - "url": { - "accessKey": "string", - "authenticationType": "string", - "bulkUrl": "string", - "clientId": "string", - "clientSecret": "string", - "incrementalUrl": "string", - "password": "string", - "refreshToken": "string", - "tokenHeader": "string", - "userName": "string" - } - } - } -""" diff --git a/ansible_collections/cisco/ise/plugins/modules/csr_delete.py b/ansible_collections/cisco/ise/plugins/modules/csr_delete.py index 0fc26c12b..4e1b6da04 100644 --- a/ansible_collections/cisco/ise/plugins/modules/csr_delete.py +++ b/ansible_collections/cisco/ise/plugins/modules/csr_delete.py @@ -24,7 +24,7 @@ options: description: Id path parameter. ID of the Certificate Signing Request to be deleted. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/csr_export_info.py b/ansible_collections/cisco/ise/plugins/modules/csr_export_info.py index 4cadca891..ccac5ac27 100644 --- a/ansible_collections/cisco/ise/plugins/modules/csr_export_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/csr_export_info.py @@ -37,7 +37,7 @@ options: - The filename used to save the download file. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/csr_generate.py b/ansible_collections/cisco/ise/plugins/modules/csr_generate.py index 3d769adc0..6cfee8fa3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/csr_generate.py +++ b/ansible_collections/cisco/ise/plugins/modules/csr_generate.py @@ -76,7 +76,7 @@ options: description: CSR Generate's usedFor. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/csr_generate_intermediate_ca.py b/ansible_collections/cisco/ise/plugins/modules/csr_generate_intermediate_ca.py index b8727a777..79e1056e4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/csr_generate_intermediate_ca.py +++ b/ansible_collections/cisco/ise/plugins/modules/csr_generate_intermediate_ca.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/csr_info.py b/ansible_collections/cisco/ise/plugins/modules/csr_info.py index 3ccee98ed..3482ae2a4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/csr_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/csr_info.py @@ -11,8 +11,8 @@ short_description: Information module for CSR description: - Get all CSR. - Get CSR by id. -- This API displays details of a Certificate Signing Request of a particular node for given HostName and ID. -- This API supports Filtering, Sorting and Pagination. +- This API displays details of a certificate signing request of a particular node for a given hostname and ID. +- This API supports filtering, sorting and pagination. version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module_info @@ -52,8 +52,7 @@ options: - The 'NENDSW' operator describes 'Not Ends With'. - The 'CONTAINS' operator describes 'Contains'. - The 'NCONTAINS' operator describes 'Not Contains'. - elements: str - type: list + type: str filterType: description: - > @@ -69,7 +68,7 @@ options: - Id path parameter. ID of the Certificate Signing Request returned. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates @@ -97,7 +96,7 @@ EXAMPLES = r""" size: 0 sort: string sortBy: string - filter: [] + filter: string filterType: string register: result @@ -131,6 +130,7 @@ ise_response: "rel": "string", "type": "string" }, + "sanNames": "string", "signatureAlgorithm": "string", "subject": "string", "timeStamp": "string", @@ -157,6 +157,7 @@ ise_responses: "rel": "string", "type": "string" }, + "sanNames": "string", "signatureAlgorithm": "string", "subject": "string", "timeStamp": "string", diff --git a/ansible_collections/cisco/ise/plugins/modules/custom_attributes.py b/ansible_collections/cisco/ise/plugins/modules/custom_attributes.py new file mode 100644 index 000000000..f4e49e6a2 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/custom_attributes.py @@ -0,0 +1,73 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: custom_attributes +short_description: Resource module for Custom Attributes +description: +- Manage operations create and delete of the resource Custom Attributes. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + attributeName: + description: Custom Attributes's attributeName. + type: str + attributeType: + description: Custom Attributes's attributeType. + type: str + name: + description: Name path parameter. The name of the custom attribute. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + customattributes.Customattributes.create_custom_attribute, + customattributes.Customattributes.delete, + + - Paths used are + post /api/v1/endpoint-custom-attribute, + delete /api/v1/endpoint-custom-attribute/{name}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.custom_attributes: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + attributeName: string + attributeType: string + +- name: Delete by name + cisco.ise.custom_attributes: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + name: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "attributeName": "string", + "attributeType": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/custom_attributes_info.py b/ansible_collections/cisco/ise/plugins/modules/custom_attributes_info.py new file mode 100644 index 000000000..409ad4179 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/custom_attributes_info.py @@ -0,0 +1,67 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: custom_attributes_info +short_description: Information module for Custom Attributes Info +description: +- Get all Custom Attributes Info. +- Get Custom Attributes Info by name. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + name: + description: + - Name path parameter. Name of the custom attribute. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + customattributes.Customattributes.get, + customattributes.Customattributes.list, + + - Paths used are + get /api/v1/endpoint-custom-attribute, + get /api/v1/endpoint-custom-attribute/{name}, + +""" + +EXAMPLES = r""" +- name: Get all Custom Attributes Info + cisco.ise.custom_attributes_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +- name: Get Custom Attributes Info by name + cisco.ise.custom_attributes_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + name: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "attributeName": "string", + "attributeType": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/custom_attributes_rename.py b/ansible_collections/cisco/ise/plugins/modules/custom_attributes_rename.py new file mode 100644 index 000000000..edc18aaad --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/custom_attributes_rename.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: custom_attributes_rename +short_description: Resource module for Custom Attributes Rename +description: +- Manage operation create of the resource Custom Attributes Rename. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + currentName: + description: Custom Attributes Rename's currentName. + type: str + newName: + description: Custom Attributes Rename's newName. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + customattributes.Customattributes.rename, + + - Paths used are + post /api/v1/endpoint-custom-attribute/rename, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.custom_attributes_rename: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + currentName: string + newName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/dataconnect_info.py b/ansible_collections/cisco/ise/plugins/modules/dataconnect_info.py index 3c213e44c..0dcfbb285 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dataconnect_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/dataconnect_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_info.py b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_info.py index cbb6aff7e..a71aac762 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password.py b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password.py index 4f731bf44..1712d60f0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password.py +++ b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password.py @@ -23,7 +23,7 @@ options: #$%&*+,-. ;=?^_~, Has at least 12 characters, Has not more than 30 characters.' type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password_expiry.py b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password_expiry.py index ec4897b57..898b3b605 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password_expiry.py +++ b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password_expiry.py @@ -20,7 +20,7 @@ options: description: Dataconnect Settings Password Expiry's passwordExpiresInDays. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_status.py b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_status.py index f782455ec..778a46c94 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_status.py +++ b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_status.py @@ -20,7 +20,7 @@ options: description: IsEnabled flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/deployment_info.py b/ansible_collections/cisco/ise/plugins/modules/deployment_info.py index f09b21d69..decfd5e17 100644 --- a/ansible_collections/cisco/ise/plugins/modules/deployment_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/deployment_info.py @@ -21,7 +21,7 @@ options: - How long to wait for the server to send data before giving up. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for PullDeploymentInfo diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_reset_hitcount.py index c65a26ede..3c32a185b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_reset_hitcount.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules.py index e0a283492..4d01abfba 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules.py @@ -229,7 +229,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules_info.py index 6e02cd5b6..6151b75bf 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_reset_hitcount.py index b2d3dbb1f..a962a1f0c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_reset_hitcount.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules.py index a762b3923..281b9e126 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules.py @@ -222,7 +222,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules_info.py index 8e01d1e0d..33d9e9f9c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_command_set_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_command_set_info.py index 46a9cfcfe..08103ca94 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_command_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_command_set_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Command Set diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions.py index e1d2a666f..24a8a0f7b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions.py @@ -164,7 +164,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authentication_rule_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authentication_rule_info.py index f071af305..8396c2e35 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authentication_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authentication_rule_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authorization_rule_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authorization_rule_info.py index 1fa414c1a..c27ddc6d4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authorization_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authorization_rule_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_policy_set_info.py index 6264730c2..876b28aa7 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_policy_set_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_info.py index 5fbeeac28..3732ae9b1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_info.py @@ -29,7 +29,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authentication_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authentication_info.py index efcca2198..1f018f809 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authentication_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authentication_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authorization_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authorization_info.py index 90c278c57..705eeac56 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authorization_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authorization_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_policy_set_info.py index 14aaba870..19d941d20 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_policy_set_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules.py index a6fb8c2b8..11c1acd04 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules.py @@ -219,7 +219,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_info.py index 98b4bf506..b8fbde1e3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_reset_hitcount.py index 066bbaf1f..fb173e85b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_reset_hitcount.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_identity_stores_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_identity_stores_info.py index b870c7121..5d8479cda 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_identity_stores_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_identity_stores_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Identity Stores diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules.py index 9b86cab32..6fa22c346 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules.py @@ -222,7 +222,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_info.py index 953ab8564..88cbca903 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_reset_hitcount.py index b549075f4..afce62bfe 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_reset_hitcount.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions.py index 67c802d16..b2d8025d5 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions.py @@ -73,7 +73,7 @@ options: description: Network Condition name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Network Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions_info.py index 59c2eb239..d13aabffe 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Network Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set.py index fb0f769a1..340b8c54b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set.py @@ -210,7 +210,7 @@ options: matched. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_info.py index fb996df50..f22ba0c20 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_reset_hitcount.py index 609e0b122..2b98a0213 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_reset_hitcount.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_profiles_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_profiles_info.py index 2aba7c1bd..a02a612d9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_profiles_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Profiles diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_service_names_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_service_names_info.py index 77a27332f..99d6c1e39 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_service_names_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_service_names_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Service Names diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions.py index c5326d8cb..647e4bd27 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions.py @@ -162,7 +162,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Time/Date Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions_info.py index 26c796202..8cc487451 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Time/Date Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/dictionary_references_info.py b/ansible_collections/cisco/ise/plugins/modules/dictionary_references_info.py deleted file mode 100644 index 85bb07b7b..000000000 --- a/ansible_collections/cisco/ise/plugins/modules/dictionary_references_info.py +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# Copyright (c) 2021, Cisco Systems -# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) - -DOCUMENTATION = r""" ---- -module: dictionary_references_info -short_description: Information module for Dictionary References Info -description: -- Get all Dictionary References Info. -- EDDA - Get a map of references to EDDA dictionaries. -version_added: '2.8.0' -extends_documentation_fragment: - - cisco.ise.module_info -author: Rafael Campos (@racampos) -options: {} -requirements: -- ciscoisesdk >= 2.0.1 -- python >= 3.5 -notes: - - SDK Method used are - edda.Edda.get_edda_dictionary_references, - - - Paths used are - get /api/v1/edda/dictionary-references, - -""" - -EXAMPLES = r""" -- name: Get all Dictionary References Info - cisco.ise.dictionary_references_info: - ise_hostname: "{{ise_hostname}}" - ise_username: "{{ise_username}}" - ise_password: "{{ise_password}}" - ise_verify: "{{ise_verify}}" - register: result - -""" - -RETURN = r""" -ise_response: - description: A dictionary or list with the response returned by the Cisco ISE Python SDK - returned: always - type: dict - sample: > - {} -""" diff --git a/ansible_collections/cisco/ise/plugins/modules/downloadable_acl.py b/ansible_collections/cisco/ise/plugins/modules/downloadable_acl.py index f4cd77e29..258cfc561 100644 --- a/ansible_collections/cisco/ise/plugins/modules/downloadable_acl.py +++ b/ansible_collections/cisco/ise/plugins/modules/downloadable_acl.py @@ -35,7 +35,7 @@ options: characters _.-. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/downloadable_acl_info.py b/ansible_collections/cisco/ise/plugins/modules/downloadable_acl_info.py index cb35f5056..33cede1f4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/downloadable_acl_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/downloadable_acl_info.py @@ -31,7 +31,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync.py b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync.py new file mode 100644 index 000000000..cd30a126c --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync.py @@ -0,0 +1,195 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_identity_sync +short_description: Resource module for Duo Identity Sync +description: +- Manage operations create, update and delete of the resource Duo Identity Sync. +- Duo-IdentitySync - Create a new IdentitySync configuration. +- Duo-Identitysync - Delete the Identitysync configuration specified in the syncName. +- Duo-Identitysync - Update the Identitysync configuration specified in the syncName. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + adGroups: + description: Duo Identity Sync's adGroups. + elements: dict + suboptions: + name: + description: Active Directory Group ID. + type: str + source: + description: Source of the Active Directory Group. + type: str + type: list + configurations: + description: Duo Identity Sync's configurations. + suboptions: + activeDirectories: + description: Duo Identity Sync's activeDirectories. + elements: dict + suboptions: + directoryID: + description: Active Directory ID. + type: str + domain: + description: Active Directory domain name. + type: str + name: + description: Name of the Active Directory. + type: str + type: list + type: dict + lastSync: + description: Time of the last Sync. + type: str + syncName: + description: Name of the Identitysync configuration. + type: str + syncSchedule: + description: Duo Identity Sync's syncSchedule. + suboptions: + interval: + description: Frequency of the sync schedule. + type: int + intervalUnit: + description: Unit of the time interval. + type: str + schedulerSync: + description: Type of Sync Schedule - If "Recurring", please specify schedule + details. + type: str + startDate: + description: Start date and start time of the sync schedule. + type: str + type: dict + syncStatus: + description: Duo Identity Sync's syncStatus. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_identity_sync.DuoIdentitySync.create_identitysync, + duo_identity_sync.DuoIdentitySync.delete_identity_sync_by_sync_name, + duo_identity_sync.DuoIdentitySync.update_identitysync_by_sync_name, + + - Paths used are + post /api/v1/duo-identitysync/identitysync, + delete /api/v1/duo-identitysync/identitysync/{syncName}, + put /api/v1/duo-identitysync/identitysync/{syncName}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.duo_identity_sync: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + adGroups: + - name: string + source: string + configurations: + activeDirectories: + - directoryID: string + domain: string + name: string + lastSync: string + syncName: string + syncSchedule: + interval: 0 + intervalUnit: string + schedulerSync: string + startDate: string + syncStatus: string + +- name: Update by name + cisco.ise.duo_identity_sync: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + adGroups: + - name: string + source: string + configurations: + activeDirectories: + - directoryID: string + domain: string + name: string + lastSync: string + syncName: string + syncSchedule: + interval: 0 + intervalUnit: string + schedulerSync: string + startDate: string + syncStatus: string + +- name: Delete by name + cisco.ise.duo_identity_sync: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + syncName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "identitySync": { + "adGroups": [ + { + "name": "string", + "sid": "string", + "source": "string" + } + ], + "configurations": { + "activeDirectories": [ + { + "directoryID": "string", + "domain": "string", + "name": "string" + } + ] + }, + "lastSync": "string", + "syncName": "string", + "syncSchedule": { + "interval": 0, + "intervalUnit": "string", + "schedulerSync": "string", + "startDate": "string" + }, + "syncStatus": "string" + } + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_cancel_info.py b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_cancel_info.py new file mode 100644 index 000000000..77aca9753 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_cancel_info.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_identity_sync_cancel_info +short_description: Information module for Duo Identity Sync Cancel Info +description: +- Get Duo Identity Sync Cancel Info by name. +- Cancel the sync between the Active Directory and the corresponding Mfa provider associated with this Identitysync config. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + syncName: + description: + - SyncName path parameter. Name of the Identitysync configuration used to cancel sync. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_identity_sync.DuoIdentitySync.cancel_sync, + + - Paths used are + get /api/v1/duo-identitysync/identitysync/sync/cancel/{syncName}, + +""" + +EXAMPLES = r""" +- name: Get Duo Identity Sync Cancel Info by name + cisco.ise.duo_identity_sync_cancel_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + syncName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_info.py b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_info.py new file mode 100644 index 000000000..9db4f3618 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_info.py @@ -0,0 +1,94 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_identity_sync_info +short_description: Information module for Duo Identity Sync Info +description: +- Get all Duo Identity Sync Info. +- Get Duo Identity Sync Info by name. +- Duo-IdentitySync - Get the Identitysync config specified in the syncName. +- Duo-IdentitySync - Get the list of all Identitysync configurations. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + syncName: + description: + - SyncName path parameter. This name is used to update, delete or retrieve the specific Identitysync config. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_identity_sync.DuoIdentitySync.get_identitysync, + duo_identity_sync.DuoIdentitySync.get_identitysync_by_sync_name, + + - Paths used are + get /api/v1/duo-identitysync/identitysync, + get /api/v1/duo-identitysync/identitysync/{syncName}, + +""" + +EXAMPLES = r""" +- name: Get all Duo Identity Sync Info + cisco.ise.duo_identity_sync_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +- name: Get Duo Identity Sync Info by name + cisco.ise.duo_identity_sync_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + syncName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "identitySync": { + "adGroups": [ + { + "name": "string", + "sid": "string", + "source": "string" + } + ], + "configurations": { + "activeDirectories": [ + { + "directoryID": "string", + "domain": "string", + "name": "string" + } + ] + }, + "lastSync": "string", + "syncName": "string", + "syncSchedule": { + "interval": 0, + "intervalUnit": "string", + "schedulerSync": "string", + "startDate": "string" + }, + "syncStatus": "string" + } + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_status.py b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_status.py new file mode 100644 index 000000000..bd6d569bc --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_status.py @@ -0,0 +1,107 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_identity_sync_status +short_description: Resource module for Duo Identity Sync Status +description: +- Manage operation update of the resource Duo Identity Sync Status. +- Duo-identitysync - update sync status. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + errorList: + description: Duo Identity Sync Status's errorList. + elements: dict + suboptions: + reason: + description: Reason user failed sync. + type: str + user: + description: User to be synced to Duo. + suboptions: + directoryname: + description: Active directory that duo user is contained in. + type: str + email: + description: Email of Duo user. + type: str + firstname: + description: First name of Duo user. + type: str + groupname: + description: Acrive directory group that duo user is contained in. + type: str + lastname: + description: Last name of duo user. + type: str + notes: + description: Notes of Duo user. + type: str + realname: + description: Realname of Duo user. + type: str + status: + description: Status of Duo user. + type: str + username: + description: Username of Duo user. + type: str + type: dict + type: list + status: + description: Status of sync. + type: str + syncName: + description: SyncName path parameter. Sync connection to be updated. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_identity_sync.DuoIdentitySync.update_status, + + - Paths used are + put /api/v1/duo-identitysync/identitysync/status/{syncName}, + +""" + +EXAMPLES = r""" +- name: Update by name + cisco.ise.duo_identity_sync_status: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + errorList: + - reason: string + user: + directoryname: string + email: string + firstname: string + groupname: string + lastname: string + notes: string + realname: string + status: string + username: string + status: string + syncName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_identitysync_sync_info.py b/ansible_collections/cisco/ise/plugins/modules/duo_identitysync_sync_info.py new file mode 100644 index 000000000..258bfa4f1 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_identitysync_sync_info.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_identitysync_sync_info +short_description: Information module for Duo Identitysync Sync Info +description: +- Get Duo Identitysync Sync Info by name. +- Initiate the sync between the Active Directory and the corresponding Mfa provider associated with this Identitysync config. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + syncName: + description: + - SyncName path parameter. Name of the Identitysync configuration used to initiate sync. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_identity_sync.DuoIdentitySync.sync, + + - Paths used are + get /api/v1/duo-identitysync/identitysync/sync/{syncName}, + +""" + +EXAMPLES = r""" +- name: Get Duo Identitysync Sync Info by name + cisco.ise.duo_identitysync_sync_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + syncName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_mfa.py b/ansible_collections/cisco/ise/plugins/modules/duo_mfa.py new file mode 100644 index 000000000..636a8e36e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_mfa.py @@ -0,0 +1,161 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_mfa +short_description: Resource module for Duo Mfa +description: +- Manage operations create, update and delete of the resource Duo Mfa. +- Duo-MFA - Create a new Duo-MFA configuration. +- Duo-MFA - Delete the Duo-MFA configuration specified in the connectionName. +- Duo-MFA - Update the Duo-MFA configuration specified in the connectionName. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + accountConfigurations: + description: Duo Mfa's accountConfigurations. + suboptions: + adminApi: + description: API type. + suboptions: + ikey: + description: Integration Key. + type: str + sKey: + description: Secret Key. + type: str + type: dict + apiHostName: + description: Duo API HostName. + type: str + authenticationApi: + description: API type. + suboptions: + ikey: + description: Integration Key. + type: str + sKey: + description: Secret Key. + type: str + type: dict + type: dict + connectionName: + description: Name of the Duo-MFA configuration. + type: str + description: + description: Description of the Duo-MFA configuration. + type: str + identitySync: + description: Name of the Identity Sync configuration. + type: str + type: + description: Protocol type for which this Duo-MFA can be used. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_mfa.DuoMfa.create_mfa, + duo_mfa.DuoMfa.delete_mfa_by_connection_name, + duo_mfa.DuoMfa.update_m_fa_by_connection_name, + + - Paths used are + post /api/v1/duo-mfa/mfa, + delete /api/v1/duo-mfa/mfa/{connectionName}, + put /api/v1/duo-mfa/mfa/{connectionName}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.duo_mfa: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + accountConfigurations: + adminApi: + ikey: string + sKey: string + apiHostName: string + authenticationApi: + ikey: string + sKey: string + connectionName: string + description: string + identitySync: string + type: string + +- name: Update by name + cisco.ise.duo_mfa: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + accountConfigurations: + adminApi: + ikey: string + sKey: string + apiHostName: string + authenticationApi: + ikey: string + sKey: string + connectionName: string + description: string + identitySync: string + type: string + +- name: Delete by name + cisco.ise.duo_mfa: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + connectionName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "mfa": { + "accountConfigurations": { + "adminApi": { + "ikey": "string", + "sKey": "string" + }, + "apiHostName": "string", + "authenticationApi": { + "ikey": "string", + "sKey": "string" + } + }, + "connectionName": "string", + "description": "string", + "identitySync": "string", + "type": "string" + } + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_mfa_info.py b/ansible_collections/cisco/ise/plugins/modules/duo_mfa_info.py new file mode 100644 index 000000000..646813b22 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_mfa_info.py @@ -0,0 +1,84 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_mfa_info +short_description: Information module for Duo Mfa Info +description: +- Get all Duo Mfa Info. +- Get Duo Mfa Info by name. +- Duo-MFA - Get the Duo-MFA configuration specified in the connectionName. +- Duo-MFA - List of Duo-MFA configurations. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + connectionName: + description: + - ConnectionName path parameter. This name is used to update, delete or retrieve the specific Duo-MFA configuration. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_mfa.DuoMfa.get_mfa, + duo_mfa.DuoMfa.get_mfa_byconnection_name, + + - Paths used are + get /api/v1/duo-mfa/mfa, + get /api/v1/duo-mfa/mfa/{connectionName}, + +""" + +EXAMPLES = r""" +- name: Get all Duo Mfa Info + cisco.ise.duo_mfa_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +- name: Get Duo Mfa Info by name + cisco.ise.duo_mfa_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + connectionName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "mfa": { + "accountConfigurations": { + "adminApi": { + "ikey": "string", + "sKey": "string" + }, + "apiHostName": "string", + "authenticationApi": { + "ikey": "string", + "sKey": "string" + } + }, + "connectionName": "string", + "description": "string", + "identitySync": "string", + "type": "string" + } + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_mfa_testconnection.py b/ansible_collections/cisco/ise/plugins/modules/duo_mfa_testconnection.py new file mode 100644 index 000000000..8e9f033f4 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_mfa_testconnection.py @@ -0,0 +1,84 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_mfa_testconnection +short_description: Resource module for Duo Mfa Testconnection +description: +- Manage operation create of the resource Duo Mfa Testconnection. +- Duo-MFA - Verify the Auth and Admin API keys of the Duo Host. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + adminApi: + description: API type. + suboptions: + ikey: + description: Integration Key. + type: str + sKey: + description: Secret Key. + type: str + type: dict + apiHostName: + description: Duo API HostName. + type: str + authenticationApi: + description: API type. + suboptions: + ikey: + description: Integration Key. + type: str + sKey: + description: Secret Key. + type: str + type: dict + connectionName: + description: ConnectionName path parameter. This name is used to retrieve secret + keys for testing connection of the specified Duo-MFA configuration in case none + are specified. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_mfa.DuoMfa.test_connection, + + - Paths used are + post /api/v1/duo-mfa/mfa/testconnection/{connectionName}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.duo_mfa_testconnection: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + adminApi: + ikey: string + sKey: string + apiHostName: string + authenticationApi: + ikey: string + sKey: string + connectionName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell.py index 15af377c6..9660da6aa 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell.py @@ -44,7 +44,7 @@ options: description: Egress Matrix Cell's sourceSGtId. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_monitor_status_info.py index 716e9dad9..21e61afb7 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_request.py index dd45607d6..3d8c31a78 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_request.py @@ -23,7 +23,7 @@ options: description: Egress Matrix Cell Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clear_all.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clear_all.py index d5edb3ede..1810e8963 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clear_all.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clear_all.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clone.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clone.py index 90483a2ea..26cfc4da6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clone.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clone.py @@ -26,7 +26,7 @@ options: description: SrcSGtId path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_info.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_info.py index 309b8f242..f0157fd87 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_set_all_status.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_set_all_status.py index ca6f394eb..fff1b6fba 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_set_all_status.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_set_all_status.py @@ -20,7 +20,7 @@ options: description: Status path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint.py b/ansible_collections/cisco/ise/plugins/modules/endpoint.py index d6c3db64f..d776617d5 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint.py @@ -102,7 +102,7 @@ options: description: StaticProfileAssignment flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_monitor_status_info.py index 920378939..c625df079 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_request.py index f74c5d1f6..2b032b498 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_request.py @@ -23,7 +23,7 @@ options: description: Endpoint Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_certificate.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_certificate.py index be6995cbb..279a64632 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_certificate.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_certificate.py @@ -48,7 +48,7 @@ options: description: Enable or disable automatic file creation of raw response. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for EndpointCertificate diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_deregister.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_deregister.py index 53f050168..0f849b360 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_deregister.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_deregister.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_get_rejected_endpoints_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_get_rejected_endpoints_info.py index 7507f3e70..0cd7095bf 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_get_rejected_endpoints_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_get_rejected_endpoints_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_group.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_group.py index bf2cf58b8..5b85b32ad 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_group.py @@ -31,7 +31,7 @@ options: description: SystemDefined flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for EndpointIdentityGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_group_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_group_info.py index 0850f50a4..f8b0174b9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_group_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for EndpointIdentityGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_info.py index 88a81827d..97ff55c3b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_register.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_register.py index 8807a6b11..97932950b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_register.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_register.py @@ -100,7 +100,7 @@ options: description: StaticProfileAssignment flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_release_rejected_endpoint.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_release_rejected_endpoint.py index e86e63d9a..c87bbfb2a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_release_rejected_endpoint.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_release_rejected_endpoint.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints.py b/ansible_collections/cisco/ise/plugins/modules/endpoints.py new file mode 100644 index 000000000..c541932b3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints.py @@ -0,0 +1,237 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints +short_description: Resource module for Endpoints +description: +- Manage operations create, update and delete of the resource Endpoints. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + connectedLinks: + description: Endpoints's connectedLinks. + type: dict + customAttributes: + description: Endpoints's customAttributes. + type: dict + description: + description: Endpoints's description. + type: str + deviceType: + description: Endpoints's deviceType. + type: str + groupId: + description: Endpoints's groupId. + type: str + hardwareRevision: + description: Endpoints's hardwareRevision. + type: str + id: + description: Endpoints's id. + type: str + identityStore: + description: Endpoints's identityStore. + type: str + identityStoreId: + description: Endpoints's identityStoreId. + type: str + ipAddress: + description: Endpoints's ipAddress. + type: str + mac: + description: Endpoints's mac. + type: str + mdmAttributes: + description: Endpoints's mdmAttributes. + type: dict + name: + description: Endpoints's name. + type: str + portalUser: + description: Endpoints's portalUser. + type: str + productId: + description: Endpoints's productId. + type: str + profileId: + description: Endpoints's profileId. + type: str + protocol: + description: Endpoints's protocol. + type: str + serialNumber: + description: Endpoints's serialNumber. + type: str + softwareRevision: + description: Endpoints's softwareRevision. + type: str + staticGroupAssignment: + description: StaticGroupAssignment flag. + type: bool + staticProfileAssignment: + description: StaticProfileAssignment flag. + type: bool + value: + description: Value path parameter. The id or MAC of the endpoint. + type: str + vendor: + description: Endpoints's vendor. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.create_end_point, + endpoints.Endpoints.delete_endpoint, + endpoints.Endpoints.update_endpoint, + + - Paths used are + post /api/v1/endpoint, + delete /api/v1/endpoint/{value}, + put /api/v1/endpoint/{value}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.endpoints: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + vendor: string + +- name: Update by id + cisco.ise.endpoints: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + value: string + vendor: string + +- name: Delete by id + cisco.ise.endpoints: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + value: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk.py b/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk.py new file mode 100644 index 000000000..00f9048c0 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk.py @@ -0,0 +1,352 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints_bulk +short_description: Resource module for Endpoints Bulk +description: +- Manage operations create, update and delete of the resource Endpoints Bulk. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + connectedLinks: + description: Endpoints Bulk's connectedLinks. + type: dict + customAttributes: + description: Endpoints Bulk's customAttributes. + type: dict + description: + description: Endpoints Bulk's description. + type: str + deviceType: + description: Endpoints Bulk's deviceType. + type: str + groupId: + description: Endpoints Bulk's groupId. + type: str + hardwareRevision: + description: Endpoints Bulk's hardwareRevision. + type: str + id: + description: Endpoints Bulk's id. + type: str + identityStore: + description: Endpoints Bulk's identityStore. + type: str + identityStoreId: + description: Endpoints Bulk's identityStoreId. + type: str + ipAddress: + description: Endpoints Bulk's ipAddress. + type: str + mac: + description: Endpoints Bulk's mac. + type: str + mdmAttributes: + description: Endpoints Bulk's mdmAttributes. + type: dict + name: + description: Endpoints Bulk's name. + type: str + payload: + description: Endpoints Bulk's payload. + elements: dict + suboptions: + connectedLinks: + description: Endpoints Bulk's connectedLinks. + type: dict + customAttributes: + description: Endpoints Bulk's customAttributes. + type: dict + description: + description: Endpoints Bulk's description. + type: str + deviceType: + description: Endpoints Bulk's deviceType. + type: str + groupId: + description: Endpoints Bulk's groupId. + type: str + hardwareRevision: + description: Endpoints Bulk's hardwareRevision. + type: str + id: + description: Endpoints Bulk's id. + type: str + identityStore: + description: Endpoints Bulk's identityStore. + type: str + identityStoreId: + description: Endpoints Bulk's identityStoreId. + type: str + ipAddress: + description: Endpoints Bulk's ipAddress. + type: str + mac: + description: Endpoints Bulk's mac. + type: str + mdmAttributes: + description: Endpoints Bulk's mdmAttributes. + type: dict + name: + description: Endpoints Bulk's name. + type: str + portalUser: + description: Endpoints Bulk's portalUser. + type: str + productId: + description: Endpoints Bulk's productId. + type: str + profileId: + description: Endpoints Bulk's profileId. + type: str + protocol: + description: Endpoints Bulk's protocol. + type: str + serialNumber: + description: Endpoints Bulk's serialNumber. + type: str + softwareRevision: + description: Endpoints Bulk's softwareRevision. + type: str + staticGroupAssignment: + description: StaticGroupAssignment flag. + type: bool + staticProfileAssignment: + description: StaticProfileAssignment flag. + type: bool + vendor: + description: Endpoints Bulk's vendor. + type: str + type: list + portalUser: + description: Endpoints Bulk's portalUser. + type: str + productId: + description: Endpoints Bulk's productId. + type: str + profileId: + description: Endpoints Bulk's profileId. + type: str + protocol: + description: Endpoints Bulk's protocol. + type: str + serialNumber: + description: Endpoints Bulk's serialNumber. + type: str + softwareRevision: + description: Endpoints Bulk's softwareRevision. + type: str + staticGroupAssignment: + description: StaticGroupAssignment flag. + type: bool + staticProfileAssignment: + description: StaticProfileAssignment flag. + type: bool + value: + description: Value path parameter. The id or MAC of the endpoint. + type: str + vendor: + description: Endpoints Bulk's vendor. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.create_bulk_end_points, + endpoints.Endpoints.delete_endpoint, + endpoints.Endpoints.update_bulk_end_points, + endpoints.Endpoints.update_endpoint, + + - Paths used are + post /api/v1/endpoint, + post /api/v1/endpoint/bulk, + delete /api/v1/endpoint/bulk, + delete /api/v1/endpoint/{value}, + put /api/v1/endpoint/bulk, + put /api/v1/endpoint/{value}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.endpoints_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + payload: + - connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + vendor: string + +- name: Update all + cisco.ise.endpoints_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + payload: + - connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + vendor: string + +- name: Delete all + cisco.ise.endpoints_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + +- name: Update by id + cisco.ise.endpoints_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + value: string + vendor: string + +- name: Delete by id + cisco.ise.endpoints_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + value: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk_info.py new file mode 100644 index 000000000..8d2cc4604 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk_info.py @@ -0,0 +1,168 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints_bulk_info +short_description: Information module for Endpoints Bulk +description: +- Get all Endpoints Bulk. +- Get Endpoints Bulk by id. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *'filterType=or'* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + value: + description: + - Value path parameter. The id or MAC of the endpoint. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.get_1, + endpoints.Endpoints.list_1_generator, + + - Paths used are + get /api/v1/endpoint, + get /api/v1/endpoint/{value}, + +""" + +EXAMPLES = r""" +- name: Get all Endpoints Bulk + cisco.ise.endpoints_bulk_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Endpoints Bulk by id + cisco.ise.endpoints_bulk_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + value: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: list + elements: dict + sample: > + [ + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints_device_type_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoints_device_type_info.py new file mode 100644 index 000000000..4df2926bd --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints_device_type_info.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints_device_type_info +short_description: Information module for Endpoints Device Type Info +description: +- Get all Endpoints Device Type Info. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.get_device_type_summary, + + - Paths used are + get /api/v1/endpoint/deviceType/summary, + +""" + +EXAMPLES = r""" +- name: Get all Endpoints Device Type Info + cisco.ise.endpoints_device_type_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "deviceType": "string", + "total": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoints_info.py new file mode 100644 index 000000000..6646ca0b3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints_info.py @@ -0,0 +1,168 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints_info +short_description: Information module for Endpoints Info +description: +- Get all Endpoints Info. +- Get Endpoints Info by id. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *'filterType=or'* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + value: + description: + - Value path parameter. The id or MAC of the endpoint. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.get_1, + endpoints.Endpoints.list_1_generator, + + - Paths used are + get /api/v1/endpoint, + get /api/v1/endpoint/{value}, + +""" + +EXAMPLES = r""" +- name: Get all Endpoints Info + cisco.ise.endpoints_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Endpoints Info by id + cisco.ise.endpoints_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + value: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: list + elements: dict + sample: > + [ + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints_task.py b/ansible_collections/cisco/ise/plugins/modules/endpoints_task.py new file mode 100644 index 000000000..5eeed88c7 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints_task.py @@ -0,0 +1,137 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints_task +short_description: Resource module for Endpoints Task +description: +- Manage operation create of the resource Endpoints Task. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + connectedLinks: + description: Endpoints Task's connectedLinks. + type: dict + customAttributes: + description: Endpoints Task's customAttributes. + type: dict + description: + description: Endpoints Task's description. + type: str + deviceType: + description: Endpoints Task's deviceType. + type: str + groupId: + description: Endpoints Task's groupId. + type: str + hardwareRevision: + description: Endpoints Task's hardwareRevision. + type: str + id: + description: Endpoints Task's id. + type: str + identityStore: + description: Endpoints Task's identityStore. + type: str + identityStoreId: + description: Endpoints Task's identityStoreId. + type: str + ipAddress: + description: Endpoints Task's ipAddress. + type: str + mac: + description: Endpoints Task's mac. + type: str + mdmAttributes: + description: Endpoints Task's mdmAttributes. + type: dict + name: + description: Endpoints Task's name. + type: str + portalUser: + description: Endpoints Task's portalUser. + type: str + productId: + description: Endpoints Task's productId. + type: str + profileId: + description: Endpoints Task's profileId. + type: str + protocol: + description: Endpoints Task's protocol. + type: str + serialNumber: + description: Endpoints Task's serialNumber. + type: str + softwareRevision: + description: Endpoints Task's softwareRevision. + type: str + staticGroupAssignment: + description: StaticGroupAssignment flag. + type: bool + staticProfileAssignment: + description: StaticProfileAssignment flag. + type: bool + vendor: + description: Endpoints Task's vendor. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.create_end_point_task, + + - Paths used are + post /api/v1/endpointTask, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.endpoints_task: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + vendor: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/external_radius_server.py b/ansible_collections/cisco/ise/plugins/modules/external_radius_server.py index 0c16d8c98..c88b03dab 100644 --- a/ansible_collections/cisco/ise/plugins/modules/external_radius_server.py +++ b/ansible_collections/cisco/ise/plugins/modules/external_radius_server.py @@ -67,7 +67,7 @@ options: description: Valid Range 1 to 120. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/external_radius_server_info.py b/ansible_collections/cisco/ise/plugins/modules/external_radius_server_info.py index 98bb7c155..3710b8678 100644 --- a/ansible_collections/cisco/ise/plugins/modules/external_radius_server_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/external_radius_server_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/filter_policy.py b/ansible_collections/cisco/ise/plugins/modules/filter_policy.py index c7b3f5696..c260d893c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/filter_policy.py +++ b/ansible_collections/cisco/ise/plugins/modules/filter_policy.py @@ -35,7 +35,7 @@ options: description: Virtual Network. At least one of subnet or sgt or vn should be defined. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/filter_policy_info.py b/ansible_collections/cisco/ise/plugins/modules/filter_policy_info.py index 486c4c0f4..bd949c955 100644 --- a/ansible_collections/cisco/ise/plugins/modules/filter_policy_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/filter_policy_info.py @@ -31,7 +31,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_location_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_location_info.py index 98f77ab17..1854a9630 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_location_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_location_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings.py b/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings.py index 1f7fc6f17..b2c9e8a6e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings.py @@ -54,7 +54,7 @@ options: description: Username of Secure SMTP server. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings_info.py index dec4146c7..d6a0edad3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_ssid.py b/ansible_collections/cisco/ise/plugins/modules/guest_ssid.py index 3dac851e9..cb74d8a56 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_ssid.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_ssid.py @@ -26,7 +26,7 @@ options: characters _.-. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_ssid_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_ssid_info.py index 40cc1eaeb..a0bf77842 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_ssid_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_ssid_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_type.py b/ansible_collections/cisco/ise/plugins/modules/guest_type.py index 4ac0b34d6..ce9705c67 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_type.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_type.py @@ -120,7 +120,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_type_email.py b/ansible_collections/cisco/ise/plugins/modules/guest_type_email.py index 9f386a62b..83a57e74d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_type_email.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_type_email.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_type_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_type_info.py index 9a77176b1..e8e241e2f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_type_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_type_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_type_sms.py b/ansible_collections/cisco/ise/plugins/modules/guest_type_sms.py index 08e88c869..5d0575527 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_type_sms.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_type_sms.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user.py b/ansible_collections/cisco/ise/plugins/modules/guest_user.py index f65ae8c24..88d51e9e6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user.py @@ -115,7 +115,7 @@ options: description: Guest User's statusReason. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_approve.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_approve.py index a8aa5dd45..c85d36193 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_approve.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_approve.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_monitor_status_info.py index 0445a7379..fb64aa656 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_request.py index 5542a71ce..3f95aa357 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_request.py @@ -23,7 +23,7 @@ options: description: Guest User Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_change_sponsor_password.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_change_sponsor_password.py index 701c53136..076e3b968 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_change_sponsor_password.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_change_sponsor_password.py @@ -31,7 +31,7 @@ options: description: PortalId path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_deny.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_deny.py index b4308026a..4629adf22 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_deny.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_deny.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_email.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_email.py index 94fb4f6a2..1d6f7f028 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_email.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_email.py @@ -34,7 +34,7 @@ options: description: PortalId path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_info.py index 7713cb784..14c95818e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_reinstate.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_reinstate.py index 36a8001e0..d66f78064 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_reinstate.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_reinstate.py @@ -24,7 +24,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_reset_password.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_reset_password.py index a544c1707..799274837 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_reset_password.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_reset_password.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_sms.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_sms.py index 1c9ffa411..d8d8ed77b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_sms.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_sms.py @@ -23,7 +23,7 @@ options: description: PortalId path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_suspend.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_suspend.py index 93c2e0d28..44e0015fe 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_suspend.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_suspend.py @@ -35,7 +35,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/hotpatch_info.py b/ansible_collections/cisco/ise/plugins/modules/hotpatch_info.py index ddc28f545..18c05777d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/hotpatch_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/hotpatch_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching diff --git a/ansible_collections/cisco/ise/plugins/modules/hotpatch_install.py b/ansible_collections/cisco/ise/plugins/modules/hotpatch_install.py index 143c1acad..24af4a2cb 100644 --- a/ansible_collections/cisco/ise/plugins/modules/hotpatch_install.py +++ b/ansible_collections/cisco/ise/plugins/modules/hotpatch_install.py @@ -12,7 +12,8 @@ description: - Manage operation create of the resource Hotpatch Install. - > Triggers hot patch installation on the Cisco ISE node. A task ID is returned which can be used to monitor the progress of the hot patch installation - process. As hot patch installation triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. + process. As hot patch installation triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. For installation of + hotpatch on secondary nodes, request needs to be sent to individual node instead of the Primary Administration Node. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module @@ -21,11 +22,14 @@ options: hotpatchName: description: Hotpatch Install's hotpatchName. type: str + isDirectoryListed: + description: IsDirectoryListed flag. + type: bool repositoryName: description: Hotpatch Install's repositoryName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching @@ -48,6 +52,7 @@ EXAMPLES = r""" ise_password: "{{ise_password}}" ise_verify: "{{ise_verify}}" hotpatchName: string + isDirectoryListed: true repositoryName: string """ diff --git a/ansible_collections/cisco/ise/plugins/modules/hotpatch_rollback.py b/ansible_collections/cisco/ise/plugins/modules/hotpatch_rollback.py index 7db0ae257..4ae39d247 100644 --- a/ansible_collections/cisco/ise/plugins/modules/hotpatch_rollback.py +++ b/ansible_collections/cisco/ise/plugins/modules/hotpatch_rollback.py @@ -12,7 +12,8 @@ description: - Manage operation create of the resource Hotpatch Rollback. - > Triggers hot patch rollback on the Cisco ISE node. A task ID is returned which can be used to monitor the progress of the hot patch rollback process. As - hot patch rollback triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. + hot patch rollback triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. For rollback of hotpatch on + secondary nodes , request needs to be sent on individual node instead of the Primary Administration Node. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module @@ -21,11 +22,14 @@ options: hotpatchName: description: Hotpatch Rollback's hotpatchName. type: str + isDirectoryListed: + description: IsDirectoryListed flag. + type: bool repositoryName: description: Hotpatch Rollback's repositoryName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching @@ -48,6 +52,7 @@ EXAMPLES = r""" ise_password: "{{ise_password}}" ise_verify: "{{ise_verify}}" hotpatchName: string + isDirectoryListed: true repositoryName: string """ diff --git a/ansible_collections/cisco/ise/plugins/modules/hotspot_portal.py b/ansible_collections/cisco/ise/plugins/modules/hotspot_portal.py index f8047fc0c..650e6110b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/hotspot_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/hotspot_portal.py @@ -251,7 +251,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/hotspot_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/hotspot_portal_info.py index fe316031c..2eebad547 100644 --- a/ansible_collections/cisco/ise/plugins/modules/hotspot_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/hotspot_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/id_store_sequence.py b/ansible_collections/cisco/ise/plugins/modules/id_store_sequence.py index fa0906397..723b3c589 100644 --- a/ansible_collections/cisco/ise/plugins/modules/id_store_sequence.py +++ b/ansible_collections/cisco/ise/plugins/modules/id_store_sequence.py @@ -48,7 +48,7 @@ options: description: Id Store Sequence's parent. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IdentitySequence diff --git a/ansible_collections/cisco/ise/plugins/modules/id_store_sequence_info.py b/ansible_collections/cisco/ise/plugins/modules/id_store_sequence_info.py index 1903ae417..7c4669d55 100644 --- a/ansible_collections/cisco/ise/plugins/modules/id_store_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/id_store_sequence_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IdentitySequence diff --git a/ansible_collections/cisco/ise/plugins/modules/identity_group.py b/ansible_collections/cisco/ise/plugins/modules/identity_group.py index 13dfda39f..985fcaa41 100644 --- a/ansible_collections/cisco/ise/plugins/modules/identity_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/identity_group.py @@ -30,7 +30,7 @@ options: description: Identity Group's parent. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IdentityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/identity_group_info.py b/ansible_collections/cisco/ise/plugins/modules/identity_group_info.py index c2acbc9d3..2e0a6dfe1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/identity_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/identity_group_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IdentityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/internal_user.py b/ansible_collections/cisco/ise/plugins/modules/internal_user.py index 238b344b0..d19ab6086 100644 --- a/ansible_collections/cisco/ise/plugins/modules/internal_user.py +++ b/ansible_collections/cisco/ise/plugins/modules/internal_user.py @@ -69,7 +69,7 @@ options: description: The id store where the internal user's password is kept. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/internal_user_info.py b/ansible_collections/cisco/ise/plugins/modules/internal_user_info.py index eb6da52de..20e7bac0a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/internal_user_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/internal_user_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec.py b/ansible_collections/cisco/ise/plugins/modules/ipsec.py new file mode 100644 index 000000000..2fef3c1fb --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec.py @@ -0,0 +1,236 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec +short_description: Resource module for Ipsec +description: +- Manage operations create and update of the resource Ipsec. +- Creates an IPsec connection. +- Updates the configuration of existing IPsec connection. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + authType: + description: Authentication type for establishing connection. + type: str + certId: + description: ID of the certificate for establishing connection. + type: str + configureVti: + description: Authentication type for establishing connection. + type: bool + espAhProtocol: + description: Encryption protocol used for establishing connection. + type: str + hostName: + description: Hostname of the node. + type: str + iface: + description: Ethernet port of the node. + type: str + ikeReAuthTime: + description: IKE re-authentication time. + type: int + ikeVersion: + description: IKE version. + type: str + localInternalIp: + description: Local Tunnel IP address. + type: str + modeOption: + description: The Mode type used for establishing the connection. + type: str + nadIp: + description: NAD IP address for establishing connection. + type: str + phaseOneDHGroup: + description: Phase-one DH group used for establishing connection. + type: str + phaseOneEncryptionAlgo: + description: Phase-one encryption algorithm used for establishing connection. + type: str + phaseOneHashAlgo: + description: Phase-one hashing algorithm used for establishing connection. + type: str + phaseOneLifeTime: + description: Phase-one connection lifetime. + type: int + phaseTwoDHGroup: + description: Phase-two DH group used for establishing connection. + type: str + phaseTwoEncryptionAlgo: + description: Phase-two encryption algorithm used for establishing connection. + type: str + phaseTwoHashAlgo: + description: Phase-two hashing algorithm used for establishing connection. + type: str + phaseTwoLifeTime: + description: Phase-two connection lifetime. + type: int + psk: + description: Pre-shared key used for establishing connection. + type: str + remotePeerInternalIp: + description: Remote Tunnel IP address. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.create_ipsec_connection, + native_ipsec.NativeIpsec.update_ipsec_connection_config, + + - Paths used are + post /api/v1/ipsec, + put /api/v1/ipsec, + +""" + +EXAMPLES = r""" +- name: Update all + cisco.ise.ipsec: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + authType: string + certId: string + configureVti: true + espAhProtocol: string + hostName: string + iface: string + ikeReAuthTime: 0 + ikeVersion: string + localInternalIp: string + modeOption: string + nadIp: string + phaseOneDHGroup: string + phaseOneEncryptionAlgo: string + phaseOneHashAlgo: string + phaseOneLifeTime: 0 + phaseTwoDHGroup: string + phaseTwoEncryptionAlgo: string + phaseTwoHashAlgo: string + phaseTwoLifeTime: 0 + psk: string + remotePeerInternalIp: string + +- name: Create + cisco.ise.ipsec: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + authType: string + certId: string + configureVti: true + espAhProtocol: string + hostName: string + iface: string + ikeReAuthTime: 0 + ikeVersion: string + localInternalIp: string + modeOption: string + nadIp: string + phaseOneDHGroup: string + phaseOneEncryptionAlgo: string + phaseOneHashAlgo: string + phaseOneLifeTime: 0 + phaseTwoDHGroup: string + phaseTwoEncryptionAlgo: string + phaseTwoHashAlgo: string + phaseTwoLifeTime: 0 + psk: string + remotePeerInternalIp: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } + ] + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "response": { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + }, + "version": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_bulk.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_bulk.py new file mode 100644 index 000000000..9ebc9574e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_bulk.py @@ -0,0 +1,143 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_bulk +short_description: Resource module for Ipsec Bulk +description: +- Manage operation create of the resource Ipsec Bulk. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + ItemList: + description: Ipsec Bulk's ItemList. + elements: dict + suboptions: + authType: + description: Authentication type for establishing connection. + type: str + certId: + description: ID of the certificate for establishing connection. + type: str + configureVti: + description: Authentication type for establishing connection. + type: bool + espAhProtocol: + description: Encryption protocol used for establishing connection. + type: str + hostName: + description: Hostname of the node. + type: str + iface: + description: Ethernet port of the node. + type: str + ikeReAuthTime: + description: IKE re-authentication time. + type: int + ikeVersion: + description: IKE version. + type: str + localInternalIp: + description: Local Tunnel IP address. + type: str + modeOption: + description: The Mode type used for establishing the connection. + type: str + nadIp: + description: NAD IP address for establishing connection. + type: str + phaseOneDHGroup: + description: Phase-one DH group used for establishing connection. + type: str + phaseOneEncryptionAlgo: + description: Phase-one encryption algorithm used for establishing connection. + type: str + phaseOneHashAlgo: + description: Phase-one hashing algorithm used for establishing connection. + type: str + phaseOneLifeTime: + description: Phase-one connection lifetime. + type: int + phaseTwoDHGroup: + description: Phase-two DH group used for establishing connection. + type: str + phaseTwoEncryptionAlgo: + description: Phase-two encryption algorithm used for establishing connection. + type: str + phaseTwoHashAlgo: + description: Phase-two hashing algorithm used for establishing connection. + type: str + phaseTwoLifeTime: + description: Phase-two connection lifetime. + type: int + psk: + description: Pre-shared key used for establishing connection. + type: str + remotePeerInternalIp: + description: Remote Tunnel IP address. + type: str + type: list + operation: + description: Ipsec Bulk's operation. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.bulk_ip_sec_operation, + + - Paths used are + post /api/v1/ipsec/bulk, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.ipsec_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + ItemList: + - authType: string + certId: string + configureVti: true + espAhProtocol: string + hostName: string + iface: string + ikeReAuthTime: 0 + ikeVersion: string + localInternalIp: string + modeOption: string + nadIp: string + phaseOneDHGroup: string + phaseOneEncryptionAlgo: string + phaseOneHashAlgo: string + phaseOneLifeTime: 0 + phaseTwoDHGroup: string + phaseTwoEncryptionAlgo: string + phaseTwoHashAlgo: string + phaseTwoLifeTime: 0 + psk: string + remotePeerInternalIp: string + operation: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_certificates_info.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_certificates_info.py new file mode 100644 index 000000000..f68ee2b56 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_certificates_info.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_certificates_info +short_description: Information module for Ipsec Certificates Info +description: +- Get all Ipsec Certificates Info. +- Returns all the certificates for IPsec role. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.get_ip_sec_certificates, + + - Paths used are + get /api/v1/ipsec/certificates, + +""" + +EXAMPLES = r""" +- name: Get all Ipsec Certificates Info + cisco.ise.ipsec_certificates_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "friendlyName": "string", + "id": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_delete.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_delete.py new file mode 100644 index 000000000..2779fdd5b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_delete.py @@ -0,0 +1,88 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_delete +short_description: Resource module for Ipsec Delete +description: +- Manage operation delete of the resource Ipsec Delete. +- Removes an enabled IPsec node connection. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostName: + description: HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.remove_ipsec_connection, + + - Paths used are + delete /api/v1/ipsec/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Delete by id + cisco.ise.ipsec_delete: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + hostName: string + nadIp: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_delete_info.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_delete_info.py new file mode 100644 index 000000000..f4d65bc29 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_delete_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_delete_info +short_description: Information module for Ipsec Delete +description: +- Get Ipsec Delete by id. +- Returns the IPsec configuration details of a given node with the hostname and the NAD IP. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + hostName: + description: + - HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: + - NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.get_ipsec_node, + + - Paths used are + get /api/v1/ipsec/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Get Ipsec Delete by id + cisco.ise.ipsec_delete_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + hostName: string + nadIp: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_disable.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_disable.py new file mode 100644 index 000000000..6c47bf81b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_disable.py @@ -0,0 +1,98 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_disable +short_description: Resource module for Ipsec Disable +description: +- Manage operation update of the resource Ipsec Disable. +- Disables an enabled IPsec node connection. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostName: + description: HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.disable_ipsec_connection, + + - Paths used are + put /api/v1/ipsec/disable/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Update by id + cisco.ise.ipsec_disable: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + hostName: string + nadIp: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "message": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_disable_info.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_disable_info.py new file mode 100644 index 000000000..a0a72bc74 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_disable_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_disable_info +short_description: Information module for Ipsec Disable +description: +- Get Ipsec Disable by id. +- Returns the IPsec configuration details of a given node with the hostname and the NAD IP. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + hostName: + description: + - HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: + - NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.get_ipsec_node, + + - Paths used are + get /api/v1/ipsec/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Get Ipsec Disable by id + cisco.ise.ipsec_disable_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + hostName: string + nadIp: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_enable.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_enable.py new file mode 100644 index 000000000..45366e0ab --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_enable.py @@ -0,0 +1,98 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_enable +short_description: Resource module for Ipsec Enable +description: +- Manage operation update of the resource Ipsec Enable. +- Enables an disabled IPsec node connection. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostName: + description: HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.enable_ipsec_connection, + + - Paths used are + put /api/v1/ipsec/enable/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Update by id + cisco.ise.ipsec_enable: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + hostName: string + nadIp: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "message": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_enable_info.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_enable_info.py new file mode 100644 index 000000000..93dfd3cc4 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_enable_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_enable_info +short_description: Information module for Ipsec Enable +description: +- Get Ipsec Enable by id. +- Returns the IPsec configuration details of a given node with the hostname and the NAD IP. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + hostName: + description: + - HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: + - NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.get_ipsec_node, + + - Paths used are + get /api/v1/ipsec/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Get Ipsec Enable by id + cisco.ise.ipsec_enable_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + hostName: string + nadIp: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_info.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_info.py new file mode 100644 index 000000000..16c0e3572 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_info.py @@ -0,0 +1,193 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_info +short_description: Information module for Ipsec Info +description: +- Get all Ipsec Info. +- Get Ipsec Info by id. +- Returns all the IPsec enabled nodes with configuration details. +- Returns the IPsec configuration details of a given node with the hostname and the NAD IP. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - > + SortBy query parameter. Sort column - The IPsec enabled nodes are sorted based on the columns. This is + applicable for the field - hostName. + type: str + hostName: + description: + - HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: + - NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.get_ipsec_enabled_nodes_generator, + native_ipsec.NativeIpsec.get_ipsec_node, + + - Paths used are + get /api/v1/ipsec, + get /api/v1/ipsec/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Get all Ipsec Info + cisco.ise.ipsec_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + filter: string + filterType: string + sort: string + sortBy: string + register: result + +- name: Get Ipsec Info by id + cisco.ise.ipsec_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + hostName: string + nadIp: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: list + elements: dict + sample: > + [ + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ise_root_ca_regenerate.py b/ansible_collections/cisco/ise/plugins/modules/ise_root_ca_regenerate.py index c61db07fd..bb80533e3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/ise_root_ca_regenerate.py +++ b/ansible_collections/cisco/ise/plugins/modules/ise_root_ca_regenerate.py @@ -21,7 +21,7 @@ options: CSR. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_connection_type_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_connection_type_info.py index 46a7b777d..3415ea2b8 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_connection_type_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_connection_type_info.py @@ -10,14 +10,14 @@ module: licensing_connection_type_info short_description: Information module for Licensing Connection Type description: - Get all Licensing Connection Type. -- Get connection type. +- Get the connection type. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_eval_license_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_eval_license_info.py index b594f90db..0a50416b9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_eval_license_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_eval_license_info.py @@ -10,14 +10,14 @@ module: licensing_eval_license_info short_description: Information module for Licensing Eval License description: - Get all Licensing Eval License. -- Get registration information. +- Get registration information related to the evaluation license. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_feature_to_tier_mapping_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_feature_to_tier_mapping_info.py index 0ecf5b696..d33c19bb0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_feature_to_tier_mapping_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_feature_to_tier_mapping_info.py @@ -10,14 +10,14 @@ module: licensing_feature_to_tier_mapping_info short_description: Information module for Licensing Feature To Tier Mapping description: - Get all Licensing Feature To Tier Mapping. -- Get feature to tier mapping. +- Get feature to tier mapping information. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing @@ -52,10 +52,10 @@ ise_response: sample: > [ { + "tier": "string", "featureName": [ "string" - ], - "tier": "string" + ] } ] """ diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_registration_create.py b/ansible_collections/cisco/ise/plugins/modules/licensing_registration_create.py index b224fdcc8..c4bb7e59d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_registration_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_registration_create.py @@ -10,21 +10,22 @@ module: licensing_registration_create short_description: Resource module for Licensing Registration Create description: - Manage operation create of the resource Licensing Registration Create. -- License - Configure registration information. +- Configure registration information. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module author: Rafael Campos (@racampos) options: connectionType: - description: Licensing Registration Create's connectionType. + description: Type of connection for the registration. type: str registrationType: - description: Licensing Registration Create's registrationType. + description: Register, deregister, renew or update. type: str ssmOnPremServer: - description: If connection type is selected as SSM_ONPREM_SERVER, then IP address - or the hostname (or FQDN) of the SSM On-Prem server Host. + description: If the connection type is selected as SSM_ONPREM_SERVER, then this + field consists of IP address or the hostname (or FQDN) of the SSM On-Prem server + host. type: str tier: description: Licensing Registration Create's tier. @@ -34,7 +35,7 @@ options: description: Token. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_registration_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_registration_info.py index d88e0e987..1a42c6fb2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_registration_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_registration_info.py @@ -10,14 +10,14 @@ module: licensing_registration_info short_description: Information module for Licensing Registration description: - Get all Licensing Registration. -- Get registration information. +- Get the registration information. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing @@ -50,11 +50,11 @@ ise_response: type: dict sample: > { - "connectionType": "string", - "registrationState": "string", - "ssmOnPremServer": "string", "tier": [ "string" - ] + ], + "connectionType": "string", + "registrationState": "string", + "ssmOnPremServer": "string" } """ diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_create.py b/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_create.py index 85dcd4876..7a644dfc4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_create.py @@ -10,14 +10,14 @@ module: licensing_smart_state_create short_description: Resource module for Licensing Smart State Create description: - Manage operation create of the resource Licensing Smart State Create. -- License - Configure smart state information. +- Configure smart state information. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_info.py index e82937305..eedf0c669 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_create.py b/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_create.py index fe66204bd..930633f54 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_create.py @@ -21,14 +21,14 @@ options: elements: dict suboptions: name: - description: Licensing Tier State Create's name. + description: License tier list. type: str status: - description: Licensing Tier State Create's status. + description: Current Smart Licensing State. type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing @@ -63,13 +63,13 @@ ise_response: type: dict sample: > { + "version": "string", "response": [ { - "message": "string", "name": "string", - "status": "string" + "status": "string", + "message": "string" } - ], - "version": "string" + ] } """ diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_info.py index 11ef62dae..d2838ad9a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing @@ -52,12 +52,12 @@ ise_response: sample: > [ { + "name": "string", + "status": "string", "compliance": "string", "consumptionCounter": 0, "daysOutOfCompliance": "string", - "lastAuthorization": "string", - "name": "string", - "status": "string" + "lastAuthorization": "string" } ] """ diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_account_status_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_account_status_info.py index 8a64d0eb2..6b70acd3e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_account_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_account_status_info.py @@ -24,7 +24,7 @@ options: - Duration path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_athentication_status_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_athentication_status_info.py index fd9138adf..541496cf8 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_athentication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_athentication_status_info.py @@ -28,7 +28,7 @@ options: - RECORDS path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_authentication_status_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_authentication_status_info.py index 5a033a6c9..58ed4a68f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_authentication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_authentication_status_info.py @@ -28,7 +28,7 @@ options: - RECORDS path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_failure_reasons_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_failure_reasons_info.py index 6ffa6c354..05cb7e7f0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_failure_reasons_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_failure_reasons_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_count_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_count_info.py index 0a0bf0c25..bd1b0797a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_count_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_count_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_list_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_list_info.py index e62b3ef9b..1e5352a4e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_list_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_list_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_auth_list_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_auth_list_info.py index 44685ba33..17890b330 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_auth_list_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_auth_list_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_ip_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_ip_info.py index ec45c8782..ce5a6c909 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_ip_info.py @@ -20,7 +20,7 @@ options: - Endpoint_ipv4 path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_mac_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_mac_info.py index d9a4bcfb3..22b41e7a0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_mac_info.py @@ -20,7 +20,7 @@ options: - Mac path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_nas_ip_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_nas_ip_info.py index d6f0fa959..68e64d96c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_nas_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_nas_ip_info.py @@ -20,7 +20,7 @@ options: - Nas_ipv4 path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_username_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_username_info.py index 548da9c6b..eea1960c3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_username_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_username_info.py @@ -20,7 +20,7 @@ options: - Username path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_delete_all.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_delete_all.py index 63b7fa1aa..c127e0a09 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_delete_all.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_delete_all.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_disconnect_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_disconnect_info.py index 8de5ed1d5..083cb56c9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_disconnect_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_disconnect_info.py @@ -36,7 +36,7 @@ options: - NAS_IPV4 path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_posture_count_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_posture_count_info.py index 774d9709a..78fa719cc 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_posture_count_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_posture_count_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_profiler_count_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_profiler_count_info.py index 05494c7d6..820197fb2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_profiler_count_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_profiler_count_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_reauthentication_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_reauthentication_info.py index 9f1e55b73..d0786bf63 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_reauthentication_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_reauthentication_info.py @@ -28,7 +28,7 @@ options: - REAUTH_TYPE path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_sessions_by_session_id_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_sessions_by_session_id_info.py index b00af3952..f7dedd57f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_sessions_by_session_id_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_sessions_by_session_id_info.py @@ -20,7 +20,7 @@ options: - Session_id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_version_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_version_info.py index c26efbd54..413db1fca 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_version_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_version_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/my_device_portal.py b/ansible_collections/cisco/ise/plugins/modules/my_device_portal.py index 5677290f9..cb258d0de 100644 --- a/ansible_collections/cisco/ise/plugins/modules/my_device_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/my_device_portal.py @@ -275,7 +275,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/my_device_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/my_device_portal_info.py index 742308c72..4b0a21b82 100644 --- a/ansible_collections/cisco/ise/plugins/modules/my_device_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/my_device_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile.py b/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile.py index c250782f3..4dc1b5796 100644 --- a/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile.py +++ b/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile.py @@ -48,7 +48,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for NativeSupplicantProfile diff --git a/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile_info.py b/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile_info.py index 5976821cb..8fc75f333 100644 --- a/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile_info.py @@ -31,7 +31,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for NativeSupplicantProfile diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules.py index 4b3be685e..9cf9b6e0a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules.py @@ -229,7 +229,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_info.py index f121dc6f2..9c298b03d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_reset_hitcount.py index e3e918c5f..476695c0e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_reset_hitcount.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules.py index 11cb7caff..04262598b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules.py @@ -220,7 +220,7 @@ options: description: Security group used in authorization policies. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_info.py index 6a5f812d3..0a237fa1b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_reset_hitcount.py index fc9311404..58ba3af9c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_reset_hitcount.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions.py b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions.py index b5abc72da..8f1947cc6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions.py @@ -164,7 +164,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authentication_rule_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authentication_rule_info.py index d1977079d..d1025bb5a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authentication_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authentication_rule_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authorization_rule_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authorization_rule_info.py index 1c33ff340..351c82760 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authorization_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authorization_rule_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_policy_set_info.py index eb9d44889..ad7ef2d1f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_policy_set_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_info.py index 04f96b355..aaf9ade1f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_info.py @@ -29,7 +29,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary.py index 64b1abb37..d2da6dfca 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary.py @@ -47,7 +47,7 @@ options: description: The dictionary version. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute.py index 2572d3833..7cd4a6705 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute.py @@ -55,7 +55,7 @@ options: description: The dictionary attribute's name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary Attribute diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute_info.py index 117323aac..fa44c37ec 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute_info.py @@ -27,7 +27,7 @@ options: - Name path parameter. The dictionary attribute name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary Attribute diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authentication_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authentication_info.py index cf7b71905..27d99454f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authentication_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authentication_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authorization_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authorization_info.py index 7325147f9..f549bf9d6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authorization_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authorization_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_policy_set_info.py index 07ac1479c..e2efc8258 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_policy_set_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_info.py index 7ddff701a..b74780804 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_info.py @@ -23,7 +23,7 @@ options: - Name path parameter. The dictionary name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules.py b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules.py index cb6eb3e48..1aeea1a74 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules.py @@ -217,7 +217,7 @@ options: description: Security group used in authorization policies. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_info.py index e98c99cb6..6bfc2d26b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_reset_hitcount.py index de070305f..48d8437f6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_reset_hitcount.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_identity_stores_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_identity_stores_info.py index 50c59b392..68f21b90d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_identity_stores_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_identity_stores_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Identity Stores diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules.py b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules.py index 94bd67b35..6862a69d8 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules.py @@ -220,7 +220,7 @@ options: description: Security group used in authorization policies. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_info.py index 572027db8..db3bcee1c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_reset_hitcounts.py b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_reset_hitcounts.py index a7e32207d..a15aeb581 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_reset_hitcounts.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_reset_hitcounts.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition.py b/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition.py index 4cf768c5d..db71eaaf2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition.py @@ -30,24 +30,23 @@ options: description: Network Access Network Condition's description. type: str deviceGroupList: - description:

    This field should contain a NDG Root, comma, and an NDG + description:

    This field should contain a tuple with NDG Root, comma, and an NDG (that it under the root).
    Line format - NDG Root Name, NDG, Port

    . elements: str type: list deviceList: - description:

    This field should contain Device-Name,port-number. The device - name must be the same as the name field in a Network Device object.
    Line - format - Device Name,Port

    . + description:

    This field should contain Device Name. The device name must be the + same as the name field in a Network Device object. Line format - Device Name

    . elements: str type: list id: description: Network Access Network Condition's id. type: str ipAddrList: - description:

    This field should contain IP-address-or-subnet,port number
    - IP address can be IPV4 format (n.n.n.n) or IPV6 format (n n n n n n n n).
    - IP subnet can be IPV4 format (n.n.n.n/m) or IPV6 format (n n n n n n n n/m).
    - Line format - IP Address or subnet,Port

    . + description:

    This field should contain IP address or subnet.
    IP address can + be IPV4 format (n.n.n.n) or IPV6 format (n n n n n n n n).
    IP subnet can be + IPV4 format (n.n.n.n/m) or IPV6 format (n n n n n n n n/m).
    Line format - + IP Address or subnet

    . elements: str type: list link: @@ -74,7 +73,7 @@ options: description: Network Condition name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Network Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition_info.py index 063585c97..ecfa4589e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Network Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set.py b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set.py index 8e98f1cb8..082866604 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set.py @@ -210,7 +210,7 @@ options: matched. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_info.py index 7c5c9d535..62ee4c19f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_reset_hitcount.py index ceda451e8..9d7de077c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_reset_hitcount.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_profiles_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_profiles_info.py index 5c954e513..b4cbade5e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_profiles_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Profiles diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_security_groups_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_security_groups_info.py index bcb6d16c9..921655812 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_security_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_security_groups_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Security Groups diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_service_name_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_service_name_info.py index 1f63e6c1c..68695c941 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_service_name_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_service_name_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Service Names diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions.py b/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions.py index efa5d901c..ef7706751 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions.py @@ -162,7 +162,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Time/Date Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions_info.py index eb6ee1b0b..f1fcd11db 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Time/Date Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device.py b/ansible_collections/cisco/ise/plugins/modules/network_device.py index cde422c7a..8e15c4604 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device.py @@ -191,7 +191,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_monitor_status_info.py index 8a766835d..2944371f3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_request.py index 530df579b..df606cf06 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_request.py @@ -23,7 +23,7 @@ options: description: Network Device Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device_group.py b/ansible_collections/cisco/ise/plugins/modules/network_device_group.py index d2c17dd56..13736156c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device_group.py @@ -27,11 +27,11 @@ options: name: description: Network Device Group's name. type: str - ndgtype: - description: Network Device Group's ndgtype. + othername: + description: Network Device Group's othername. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are @@ -57,7 +57,7 @@ EXAMPLES = r""" description: string id: string name: string - ndgtype: string + othername: string - name: Delete by id cisco.ise.network_device_group: @@ -77,7 +77,7 @@ EXAMPLES = r""" state: present description: string name: string - ndgtype: string + othername: string """ @@ -96,7 +96,7 @@ ise_response: "href": "string", "type": "string" }, - "ndgtype": "string" + "othername": "string" } ise_update_response: diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device_group_info.py b/ansible_collections/cisco/ise/plugins/modules/network_device_group_info.py index 757237f1d..ac6dd2542 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device_group_info.py @@ -73,7 +73,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are @@ -138,7 +138,7 @@ ise_response: "href": "string", "type": "string" }, - "ndgtype": "string" + "othername": "string" } ise_responses: @@ -158,7 +158,7 @@ ise_responses: "href": "string", "type": "string" }, - "ndgtype": "string" + "othername": "string" } ] """ diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device_info.py b/ansible_collections/cisco/ise/plugins/modules/network_device_info.py index 36505fec4..036a7bcbe 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/node_deployment.py b/ansible_collections/cisco/ise/plugins/modules/node_deployment.py index 237154029..0c997d773 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_deployment.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_deployment.py @@ -42,7 +42,7 @@ options: description: Node Deployment's userName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_deployment_info.py b/ansible_collections/cisco/ise/plugins/modules/node_deployment_info.py index 86af43a84..bbe07b639 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_deployment_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_deployment_info.py @@ -49,7 +49,7 @@ options: - Hostname path parameter. Hostname of the deployed node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_deployment_sync.py b/ansible_collections/cisco/ise/plugins/modules/node_deployment_sync.py index fd2e3ecca..60efa7d22 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_deployment_sync.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_deployment_sync.py @@ -10,7 +10,7 @@ module: node_deployment_sync short_description: Resource module for Node Deployment Sync description: - Manage operation create of the resource Node Deployment Sync. -- Performing a manual synchronization involves a reload of the target node, but. +- Performing a manual synchronization involves a reload of the target node, but not the primary PAN. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module @@ -20,7 +20,7 @@ options: description: Hostname path parameter. Hostname of the node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_group.py b/ansible_collections/cisco/ise/plugins/modules/node_group.py index 04fcc0f7d..0c6da3f49 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_group.py @@ -12,7 +12,7 @@ description: - Manage operations create, update and delete of the resource Node Group. - This API creates a node group in the cluster. A node group is a group of PSNs,. - Delete an existing node group in the cluster. Deleting the node group does not delete the nodes, but failover is no longer carried out among the nodes. -- Purpose of this API is to update an existing node group. +- Update an existing node group. version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module @@ -52,7 +52,7 @@ options: description: NodeGroupName path parameter. Name of the existing node group. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Group @@ -122,14 +122,14 @@ ise_response: type: dict sample: > { + "name": "string", "description": "string", "marCache": { - "query-attempts": 0, - "query-timeout": 0, + "replication-timeout": 0, "replication-attempts": 0, - "replication-timeout": 0 - }, - "name": "string" + "query-timeout": 0, + "query-attempts": 0 + } } ise_update_response: diff --git a/ansible_collections/cisco/ise/plugins/modules/node_group_info.py b/ansible_collections/cisco/ise/plugins/modules/node_group_info.py index 4fbf7af0f..c2cc29728 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_group_info.py @@ -23,7 +23,7 @@ options: - NodeGroupName path parameter. Name of the existing node group. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Group @@ -67,13 +67,13 @@ ise_response: type: dict sample: > { + "name": "string", "description": "string", "marCache": { - "query-attempts": 0, - "query-timeout": 0, + "replication-timeout": 0, "replication-attempts": 0, - "replication-timeout": 0 - }, - "name": "string" + "query-timeout": 0, + "query-attempts": 0 + } } """ diff --git a/ansible_collections/cisco/ise/plugins/modules/node_group_node_create.py b/ansible_collections/cisco/ise/plugins/modules/node_group_node_create.py index 6a70be798..7f420797c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_group_node_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_group_node_create.py @@ -23,7 +23,7 @@ options: description: NodeGroupName path parameter. Name of the existing node group. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Group diff --git a/ansible_collections/cisco/ise/plugins/modules/node_group_node_delete.py b/ansible_collections/cisco/ise/plugins/modules/node_group_node_delete.py index 84fc6b947..b6615c667 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_group_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_group_node_delete.py @@ -23,7 +23,7 @@ options: description: NodeGroupName path parameter. Name of the existing node group. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Group diff --git a/ansible_collections/cisco/ise/plugins/modules/node_group_node_info.py b/ansible_collections/cisco/ise/plugins/modules/node_group_node_info.py index a2fbd4294..c35c00fa3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_group_node_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_group_node_info.py @@ -21,7 +21,7 @@ options: - NodeGroupName path parameter. Name of the existing node group. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Group diff --git a/ansible_collections/cisco/ise/plugins/modules/node_info.py b/ansible_collections/cisco/ise/plugins/modules/node_info.py index 92e80d782..2c5d0acab 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_info.py @@ -63,7 +63,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for NodeDetails diff --git a/ansible_collections/cisco/ise/plugins/modules/node_primary_to_standalone.py b/ansible_collections/cisco/ise/plugins/modules/node_primary_to_standalone.py index a9d2c776f..e2bafd34a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_primary_to_standalone.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_primary_to_standalone.py @@ -21,7 +21,7 @@ options: type: str required: true requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_promotion.py b/ansible_collections/cisco/ise/plugins/modules/node_promotion.py index 8c6582275..84eca3856 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_promotion.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_promotion.py @@ -19,7 +19,7 @@ options: description: Node Promotion's promotionType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/node_replication_status_info.py b/ansible_collections/cisco/ise/plugins/modules/node_replication_status_info.py index 430ddc187..ef6d06338 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_replication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_replication_status_info.py @@ -20,7 +20,7 @@ options: - Node path parameter. ID of the existing node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/node_secondary_to_primary.py b/ansible_collections/cisco/ise/plugins/modules/node_secondary_to_primary.py index f837ebfe1..7e3901fb2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_secondary_to_primary.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_secondary_to_primary.py @@ -21,7 +21,7 @@ options: type: str required: true requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_services_interfaces_info.py b/ansible_collections/cisco/ise/plugins/modules/node_services_interfaces_info.py index 15d3d06b2..8b0564968 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_services_interfaces_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_services_interfaces_info.py @@ -21,7 +21,7 @@ options: - Hostname path parameter. Hostname of the node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Services diff --git a/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config.py b/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config.py index 1307411ce..4abe83a25 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config.py @@ -140,7 +140,7 @@ options: type: int type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Services diff --git a/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config_info.py b/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config_info.py index c65326de2..82a284ed0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config_info.py @@ -21,7 +21,7 @@ options: - Hostname path parameter. Hostname of the node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Services diff --git a/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces.py b/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces.py index fc29dc3e5..3d28ad1bc 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces.py @@ -23,7 +23,7 @@ options: description: Node Services SXP Interfaces's interface. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Services diff --git a/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces_info.py b/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces_info.py index 3c2f925d9..219b3cae9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces_info.py @@ -21,7 +21,7 @@ options: - Hostname path parameter. Hostname of the node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Services diff --git a/ansible_collections/cisco/ise/plugins/modules/node_standalone_to_primary.py b/ansible_collections/cisco/ise/plugins/modules/node_standalone_to_primary.py index 67160219b..c096002b1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_standalone_to_primary.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_standalone_to_primary.py @@ -21,7 +21,7 @@ options: type: str required: true requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_sync.py b/ansible_collections/cisco/ise/plugins/modules/node_sync.py index 7389635e4..51a79c2a3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_sync.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_sync.py @@ -19,7 +19,7 @@ options: description: Node Sync's hostname. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pan_ha.py b/ansible_collections/cisco/ise/plugins/modules/pan_ha.py index 3029954f9..a7df12555 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pan_ha.py +++ b/ansible_collections/cisco/ise/plugins/modules/pan_ha.py @@ -31,7 +31,7 @@ options: description: Pan Ha's secondaryHealthCheckNode. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pan_ha_info.py b/ansible_collections/cisco/ise/plugins/modules/pan_ha_info.py index 3061000ca..4a7b4da1c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pan_ha_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pan_ha_info.py @@ -20,7 +20,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for PAN HA @@ -53,14 +53,14 @@ ise_response: type: dict sample: > { - "failedAttempts": 0, "isEnabled": true, - "pollingInterval": 0, "primaryHealthCheckNode": { "hostname": "string" }, "secondaryHealthCheckNode": { "hostname": "string" - } + }, + "pollingInterval": 0, + "failedAttempts": 0 } """ diff --git a/ansible_collections/cisco/ise/plugins/modules/pan_ha_update.py b/ansible_collections/cisco/ise/plugins/modules/pan_ha_update.py index 9a8b048b2..afde826c2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pan_ha_update.py +++ b/ansible_collections/cisco/ise/plugins/modules/pan_ha_update.py @@ -42,7 +42,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for PAN HA diff --git a/ansible_collections/cisco/ise/plugins/modules/patch_info.py b/ansible_collections/cisco/ise/plugins/modules/patch_info.py index ba13a4851..54eaafff9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/patch_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/patch_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching diff --git a/ansible_collections/cisco/ise/plugins/modules/patch_install.py b/ansible_collections/cisco/ise/plugins/modules/patch_install.py index d2a1bfc92..fcc239e3e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/patch_install.py +++ b/ansible_collections/cisco/ise/plugins/modules/patch_install.py @@ -12,12 +12,16 @@ description: - Manage operation create of the resource Patch Install. - > Triggers patch installation on the Cisco ISE node. A task ID is returned which can be used to monitor the progress of the patch installation process. As - the patch installation triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. + the patch installation triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. For installation of patch on + secondary nodes, request needs to be sent to individual node instead of the Primary Administration Node. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module author: Rafael Campos (@racampos) options: + isDirectoryListed: + description: IsDirectoryListed flag. + type: bool patchName: description: Patch Install's patchName. type: str @@ -25,7 +29,7 @@ options: description: Patch Install's repositoryName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching @@ -47,6 +51,7 @@ EXAMPLES = r""" ise_username: "{{ise_username}}" ise_password: "{{ise_password}}" ise_verify: "{{ise_verify}}" + isDirectoryListed: true patchName: string repositoryName: string diff --git a/ansible_collections/cisco/ise/plugins/modules/patch_rollback.py b/ansible_collections/cisco/ise/plugins/modules/patch_rollback.py index 2838048f8..277eda197 100644 --- a/ansible_collections/cisco/ise/plugins/modules/patch_rollback.py +++ b/ansible_collections/cisco/ise/plugins/modules/patch_rollback.py @@ -12,7 +12,8 @@ description: - Manage operation create of the resource Patch Rollback. - > Triggers patch rollback on the Cisco ISE node. A task ID is returned which can be used to monitor the progress of the patch rollback process. As the - patch rollback triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. + patch rollback triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. For rollback of patch on secondary + nodes , request needs to sent on individual node instead of the Primary Administration Node. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module @@ -22,7 +23,7 @@ options: description: Patch Rollback's patchNumber. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching diff --git a/ansible_collections/cisco/ise/plugins/modules/personas_promote_primary.py b/ansible_collections/cisco/ise/plugins/modules/personas_promote_primary.py index 428c48230..a25ac912e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/personas_promote_primary.py +++ b/ansible_collections/cisco/ise/plugins/modules/personas_promote_primary.py @@ -15,7 +15,11 @@ author: Rafael Campos (@racampos) options: ip: description: - - The IP address of the primary node + - The public IP address of the primary node + type: str + hostname: + description: + - The hostname of the primary node. type: str username: description: @@ -25,6 +29,11 @@ options: description: - The password to log into the primary node. type: str + roles: + description: + - The roles to be fulfilled by this node. Must contain at least PPAN and any of MNT-ACTIVE or MNT-STANDBY or PDP + type: list + elements: str ise_verify: description: - Whether or not to verify the identity of the node. @@ -51,8 +60,12 @@ EXAMPLES = r""" - name: Promote primary node cisco.ise.personas_promote_primary: ip: 10.1.1.1 + hostname: ise-pan-server-1 username: admin - password: Cisco123 + password: cisco123 + roles: + - PPAN + - MNT-ACTIVE """ RETURN = r""" diff --git a/ansible_collections/cisco/ise/plugins/modules/portal_global_setting.py b/ansible_collections/cisco/ise/plugins/modules/portal_global_setting.py index af332d5c2..72ca73642 100644 --- a/ansible_collections/cisco/ise/plugins/modules/portal_global_setting.py +++ b/ansible_collections/cisco/ise/plugins/modules/portal_global_setting.py @@ -23,7 +23,7 @@ options: description: Portal Global Setting's id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/portal_global_setting_info.py b/ansible_collections/cisco/ise/plugins/modules/portal_global_setting_info.py index ae481c4a3..91e70d099 100644 --- a/ansible_collections/cisco/ise/plugins/modules/portal_global_setting_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/portal_global_setting_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/portal_info.py b/ansible_collections/cisco/ise/plugins/modules/portal_info.py index 2d9654517..f394eabc9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/portal_theme.py b/ansible_collections/cisco/ise/plugins/modules/portal_theme.py index 8554639f4..b795db83a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/portal_theme.py +++ b/ansible_collections/cisco/ise/plugins/modules/portal_theme.py @@ -31,7 +31,7 @@ options: description: Portal Theme for all portals. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/portal_theme_info.py b/ansible_collections/cisco/ise/plugins/modules/portal_theme_info.py index bc1fb3884..d1cd77e77 100644 --- a/ansible_collections/cisco/ise/plugins/modules/portal_theme_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/portal_theme_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/profiler_profile_info.py b/ansible_collections/cisco/ise/plugins/modules/profiler_profile_info.py index 9ddd192b0..60f716403 100644 --- a/ansible_collections/cisco/ise/plugins/modules/profiler_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/profiler_profile_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings.py b/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings.py index a4bb5b688..5ff3e0a6b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings.py +++ b/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings.py @@ -35,7 +35,7 @@ options: description: User name for the proxy connection. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for proxy diff --git a/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings_info.py b/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings_info.py index 989e22add..ca4f92afd 100644 --- a/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for proxy diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_direct.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct.py new file mode 100644 index 000000000..69fefc242 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct.py @@ -0,0 +1,276 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: px_grid_direct +short_description: Resource module for Px Grid Direct +description: +- Manage operations create, update and delete of the resource Px Grid Direct. +- PxGrid Direct - Configure connectorconfig information. +- PxGrid Direct - Delete Configure connectorConfig information based on ConnectorName. +- PxGrid Direct - update Configure connectorConfig information based on ConnectorName. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + additionalProperties: + description: Px Grid Direct's additionalProperties. + type: dict + attributes: + description: ConnectorName. + suboptions: + attributeMapping: + description:

    List of feature names

    . + elements: dict + suboptions: + dictionaryAttribute: + description: Px Grid Direct's dictionaryAttribute. + type: str + includeInDictionary: + description: IncludeInDictionary flag. + type: bool + jsonAttribute: + description: Px Grid Direct's jsonAttribute. + type: str + type: list + correlationIdentifier: + description: Uniqueness to identify. + type: str + topLevelObject: + description: Root level of json. + type: str + uniqueIdentifier: + description: Uniqueness to identify. + type: str + versionIdentifier: + description: Version uniqueness to identify. + type: str + type: dict + connectorName: + description: ConnectorName. + type: str + connectorType: + description: Connector Type list. + type: str + deltasyncSchedule: + description: Px Grid Direct's deltasyncSchedule. + suboptions: + interval: + description: Run at interval (hours). + type: int + intervalUnit: + description: Interval Units. + type: str + startDate: + description: Start date and Time. + type: str + type: dict + description: + description: Description. + type: str + enabled: + description: Enabled flag. + type: bool + fullsyncSchedule: + description: Px Grid Direct's fullsyncSchedule. + suboptions: + interval: + description: Run at interval (hours). + type: int + intervalUnit: + description: Interval Units. + type: str + startDate: + description: Start date and Time. + type: str + type: dict + protocol: + description: Protocol. + type: str + skipCertificateValidations: + description: SkipCertificateValidations flag. + type: bool + url: + description: Px Grid Direct's url. + suboptions: + authenticationType: + description: Authentication Type list. + type: str + bulkUrl: + description: BulkUrl. + type: str + incrementalUrl: + description: IncrementalUrl. + type: str + password: + description: Password. + type: str + userName: + description: UserName. + type: str + type: dict +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + px_grid_direct.PxGridDirect.create_connector_config, + px_grid_direct.PxGridDirect.delete_connector_config_by_connector_name, + px_grid_direct.PxGridDirect.update_connector_config_by_connector_name, + + - Paths used are + post /api/v1/pxgrid-direct/connector-config, + delete /api/v1/pxgrid-direct/connector-config/{connectorName}, + put /api/v1/pxgrid-direct/connector-config/{connectorName}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.px_grid_direct: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + additionalProperties: {} + attributes: + attributeMapping: + - dictionaryAttribute: string + includeInDictionary: true + jsonAttribute: string + correlationIdentifier: string + topLevelObject: string + uniqueIdentifier: string + versionIdentifier: string + connectorName: string + connectorType: string + deltasyncSchedule: + interval: 0 + intervalUnit: string + startDate: string + description: string + enabled: true + fullsyncSchedule: + interval: 0 + intervalUnit: string + startDate: string + protocol: string + skipCertificateValidations: true + url: + authenticationType: string + bulkUrl: string + incrementalUrl: string + password: string + userName: string + +- name: Update by name + cisco.ise.px_grid_direct: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + additionalProperties: {} + attributes: + attributeMapping: + - dictionaryAttribute: string + includeInDictionary: true + jsonAttribute: string + correlationIdentifier: string + topLevelObject: string + uniqueIdentifier: string + versionIdentifier: string + connectorName: string + connectorType: string + deltasyncSchedule: + interval: 0 + intervalUnit: string + startDate: string + description: string + enabled: true + fullsyncSchedule: + interval: 0 + intervalUnit: string + startDate: string + protocol: string + skipCertificateValidations: true + url: + authenticationType: string + bulkUrl: string + incrementalUrl: string + password: string + userName: string + +- name: Delete by name + cisco.ise.px_grid_direct: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + connectorName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connector": { + "additionalProperties": {}, + "attributes": { + "attributeMapping": [ + { + "dictionaryAttribute": "string", + "includeInDictionary": true, + "jsonAttribute": "string" + } + ], + "correlationIdentifier": "string", + "topLevelObject": "string", + "uniqueIdentifier": "string", + "versionIdentifier": "string" + }, + "connectorName": "string", + "connectorType": "string", + "deltasyncSchedule": { + "interval": 0, + "intervalUnit": "string", + "startDate": "string" + }, + "description": "string", + "enabled": true, + "fullsyncSchedule": { + "interval": 0, + "intervalUnit": "string", + "startDate": "string" + }, + "protocol": "string", + "skipCertificateValidations": true, + "url": { + "authenticationType": "string", + "bulkUrl": "string", + "incrementalUrl": "string", + "password": "string", + "userName": "string" + } + } + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_dictionary_info.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_dictionary_info.py new file mode 100644 index 000000000..c79b68fa4 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_dictionary_info.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: px_grid_direct_dictionary_info +short_description: Information module for Px Grid Direct Dictionary Info +description: +- Get all Px Grid Direct Dictionary Info. +- PxGrid Direct - Get a map of references to pxgrid-direct dictionaries. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + px_grid_direct.PxGridDirect.getpxgrid_direct_dictionary_references, + + - Paths used are + get /api/v1/pxgrid-direct/dictionary-references, + +""" + +EXAMPLES = r""" +- name: Get all Px Grid Direct Dictionary Info + cisco.ise.px_grid_direct_dictionary_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + {} +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_info.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_info.py new file mode 100644 index 000000000..c9a65591c --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_info.py @@ -0,0 +1,106 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: px_grid_direct_info +short_description: Information module for Px Grid Direct Info +description: +- Get all Px Grid Direct Info. +- Get Px Grid Direct Info by name. +- PxGrid Direct - Get ALL connectorConfig information. +- PxGrid Direct - Get connectorConfig information based on ConnectorName. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + connectorName: + description: + - ConnectorName path parameter. Update or delete or retrieve the connector config. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + px_grid_direct.PxGridDirect.get_connector_config, + px_grid_direct.PxGridDirect.get_connector_config_by_connector_name, + + - Paths used are + get /api/v1/pxgrid-direct/connector-config, + get /api/v1/pxgrid-direct/connector-config/{connectorName}, + +""" + +EXAMPLES = r""" +- name: Get all Px Grid Direct Info + cisco.ise.px_grid_direct_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +- name: Get Px Grid Direct Info by name + cisco.ise.px_grid_direct_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + connectorName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connector": { + "additionalProperties": {}, + "attributes": { + "attributeMapping": [ + { + "dictionaryAttribute": "string", + "includeInDictionary": true, + "jsonAttribute": "string" + } + ], + "correlationIdentifier": "string", + "topLevelObject": "string", + "uniqueIdentifier": "string", + "versionIdentifier": "string" + }, + "connectorName": "string", + "connectorType": "string", + "deltasyncSchedule": { + "interval": 0, + "intervalUnit": "string", + "startDate": "string" + }, + "description": "string", + "enabled": true, + "fullsyncSchedule": { + "interval": 0, + "intervalUnit": "string", + "startDate": "string" + }, + "protocol": "string", + "skipCertificateValidations": true, + "url": { + "authenticationType": "string", + "bulkUrl": "string", + "incrementalUrl": "string", + "password": "string", + "userName": "string" + } + } + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync.py new file mode 100644 index 000000000..932642039 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync.py @@ -0,0 +1,66 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: px_grid_direct_sync +short_description: Resource module for Px Grid Direct Sync +description: +- Manage operation create of the resource Px Grid Direct Sync. +- This syncNow is used on demand on a URLFetch Type connector only. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + SyncType: + description: Connector Type list. + type: str + connectorName: + description: ConnectorName. + type: str + description: + description: Description. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + px_grid_direct.PxGridDirect.sync_now_connector, + + - Paths used are + post /api/v1/pxgrid-direct/syncnow, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.px_grid_direct_sync: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + SyncType: string + connectorName: string + description: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connector": { + "connectorName": "string", + "syncStatus": "string" + } + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync_info.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync_info.py new file mode 100644 index 000000000..1b99ee501 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync_info.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: px_grid_direct_sync_info +short_description: Information module for Px Grid Direct Sync +description: +- Get Px Grid Direct Sync by name. +- This API is used to get the status for SyncNow Status. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + connectorName: + description: + - ConnectorName path parameter. Retrieve the connector syncnow status. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + px_grid_direct.PxGridDirect.get_connector_config_sync_now_status, + + - Paths used are + get /api/v1/pxgrid-direct/syncNowStatus/{connectorName}, + +""" + +EXAMPLES = r""" +- name: Get Px Grid Direct Sync by name + cisco.ise.px_grid_direct_sync_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + connectorName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connector": { + "connectorName": "string", + "syncStatus": "string" + } + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_test_connector.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_test_connector.py new file mode 100644 index 000000000..7fc243fe3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_test_connector.py @@ -0,0 +1,92 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: px_grid_direct_test_connector +short_description: Resource module for Px Grid Direct Test Connector +description: +- Manage operation create of the resource Px Grid Direct Test Connector. +- PxGrid Direct - test the Connector. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + authType: + description: Authentication Type list. + type: str + authValues: + description: Request to test Connector. + suboptions: + password: + description: Password. + type: str + userName: + description: UserName. + type: str + type: dict + connectorName: + description: ConnectorName. + type: str + responseParsing: + description: Uniqueness to identify. + type: str + skipCertificateValidations: + description: SkipCertificateValidations. + type: bool + uniqueID: + description: Uniqueness to identify. + type: str + url: + description: BulkUrl. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + px_grid_direct.PxGridDirect.test_connector, + + - Paths used are + post /api/v1/pxgrid-direct/test-connector, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.px_grid_direct_test_connector: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + authType: string + authValues: + password: string + userName: string + connectorName: string + responseParsing: string + skipCertificateValidations: true + uniqueID: string + url: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connectorName": "string", + "data": "string", + "error": "string", + "skipCertificateValidations": true, + "status": "string", + "uniqueID": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_approve.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_approve.py index 8cb0c132b..1a2981c47 100644 --- a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_approve.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_approve.py @@ -20,7 +20,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_delete.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_delete.py index bac63eb41..9774d8a51 100644 --- a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_delete.py @@ -20,7 +20,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_info.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_info.py index 7241dcd52..3d7639ba6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_settings_auto_approve.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_settings_auto_approve.py index e87b41303..5cf766342 100644 --- a/ansible_collections/cisco/ise/plugins/modules/px_grid_settings_auto_approve.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_settings_auto_approve.py @@ -23,7 +23,7 @@ options: description: Auto approve certificate based accounts when true. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_access_secret.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_access_secret.py index 358d777f0..b3f1c77aa 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_access_secret.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_access_secret.py @@ -19,7 +19,7 @@ options: description: pxGrid Access Secret's peerNodeName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_activate.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_activate.py index bcb84e34a..c3ff43d1a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_activate.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_activate.py @@ -19,7 +19,7 @@ options: description: pxGrid Account Activate's description. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_create.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_create.py index 83a6b2f8a..c398f08ce 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_create.py @@ -19,7 +19,7 @@ options: description: pxGrid Account Create's nodeName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_authorization.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_authorization.py index 13022cd27..9e57bc921 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_authorization.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_authorization.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_bindings_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_bindings_info.py index d7d05cf37..51ba7b0e6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_bindings_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_matrices_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_matrices_info.py index 2e6450f32..fb8b42ddf 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_matrices_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_matrices_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_policies_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_policies_info.py index b2024371d..0175bb209 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_policies_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_policies_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoint_by_mac_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoint_by_mac_info.py index 55e255bc3..ca815db2d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoint_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoint_by_mac_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_os_type_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_os_type_info.py index a9c6fa00f..36f5ce3f5 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_os_type_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_os_type_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_type_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_type_info.py index ef1ddf642..239709c8c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_type_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_type_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_info.py index 9224eb08e..98c4af38f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_failures_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_failures_info.py index dc552be6d..97b460d29 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_failures_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_failures_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_healths_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_healths_info.py index f5963ddf2..a6f3e8e86 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_healths_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_healths_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_approve.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_approve.py index f808e5cc7..c8796201f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_approve.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_approve.py @@ -20,7 +20,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_delete.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_delete.py index 16c42889c..9b139f0a3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_delete.py @@ -20,7 +20,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_info.py index 5da12013d..ffef9a9ff 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_performances_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_performances_info.py index f9a4767c1..919b54ef5 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_performances_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_performances_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_profiles_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_profiles_info.py index 687581cea..fffed0df2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_profiles_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_group_acls_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_group_acls_info.py index c41be5560..2fdb9987f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_group_acls_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_group_acls_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_groups_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_groups_info.py index 2abc51e1e..8b15b1d81 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_groups_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_lookup.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_lookup.py index 755a1231f..0afbedcee 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_lookup.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_lookup.py @@ -19,7 +19,7 @@ options: description: pxGrid Service Lookup's name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_register.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_register.py index 4484573af..378e6dd1c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_register.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_register.py @@ -19,7 +19,7 @@ options: description: pxGrid Service Register's name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_reregister.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_reregister.py index b91798631..371b3ab85 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_reregister.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_reregister.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_unregister.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_unregister.py index 3926a9960..bdb51f3dd 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_unregister.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_unregister.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_ip_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_ip_info.py index df9720cb7..e0a416319 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_ip_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_mac_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_mac_info.py index 56a5e9204..639c621d1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_mac_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_for_recovery_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_for_recovery_info.py index 6e3ca80eb..53b441508 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_for_recovery_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_for_recovery_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_sessions_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_sessions_info.py index 9f0305ab6..c2bcf5b7a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_sessions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_sessions_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_settings_auto_approve.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_settings_auto_approve.py index 3203ed0b8..f287298de 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_settings_auto_approve.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_settings_auto_approve.py @@ -23,7 +23,7 @@ options: description: Auto approve certificate based accounts when true. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_group_by_username_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_group_by_username_info.py index e3b54fa92..f79717e8f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_group_by_username_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_group_by_username_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_groups_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_groups_info.py index 3add71347..3b7cdca5c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_groups_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence.py b/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence.py index 8031470a4..e5827e123 100644 --- a/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence.py +++ b/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence.py @@ -103,7 +103,7 @@ options: description: UseAttrSetOnRequest flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence_info.py b/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence_info.py index 1073928ea..7c5f35e02 100644 --- a/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence_info.py @@ -31,7 +31,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/renew_certificate.py b/ansible_collections/cisco/ise/plugins/modules/renew_certificate.py index a4561a02b..b085f42e1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/renew_certificate.py +++ b/ansible_collections/cisco/ise/plugins/modules/renew_certificate.py @@ -10,7 +10,7 @@ module: renew_certificate short_description: Resource module for Renew Certificate description: - Manage operation create of the resource Renew Certificate. -- This API initiates regeneration of certificates. Response contains ID which can be used to track the status. +- This API initiates regeneration of certificates. The response contains an ID which can be used to track the status. version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module @@ -20,7 +20,7 @@ options: description: Renew Certificate's certType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/repository.py b/ansible_collections/cisco/ise/plugins/modules/repository.py index 635d1d464..937b26a9c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/repository.py +++ b/ansible_collections/cisco/ise/plugins/modules/repository.py @@ -45,7 +45,7 @@ options: description: Username may contain alphanumeric and _-./@\\$ characters. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Repository diff --git a/ansible_collections/cisco/ise/plugins/modules/repository_files_info.py b/ansible_collections/cisco/ise/plugins/modules/repository_files_info.py index 32f628688..11d5454bd 100644 --- a/ansible_collections/cisco/ise/plugins/modules/repository_files_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/repository_files_info.py @@ -21,7 +21,7 @@ options: - RepositoryName path parameter. Unique name for a repository. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Repository diff --git a/ansible_collections/cisco/ise/plugins/modules/repository_info.py b/ansible_collections/cisco/ise/plugins/modules/repository_info.py index 6631f499b..5a0f9cae5 100644 --- a/ansible_collections/cisco/ise/plugins/modules/repository_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/repository_info.py @@ -23,7 +23,7 @@ options: - RepositoryName path parameter. Unique name for a repository. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Repository diff --git a/ansible_collections/cisco/ise/plugins/modules/reservation.py b/ansible_collections/cisco/ise/plugins/modules/reservation.py new file mode 100644 index 000000000..9682fcf3a --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/reservation.py @@ -0,0 +1,114 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: reservation +short_description: Resource module for Reservation +description: +- Manage operations create, update and delete of the resource Reservation. +- Reserve given number of SGTs in a continuous range for the given Client. +- Delete the reserved range of SGT for the given Client. +- Update the reserved ranges of a specific Client by giving the custom start and end index. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + clientID: + description: ClientID path parameter. Unique name for a Client. + type: str + clientId: + description: Unique ID of the given client. + type: str + clientName: + description: Name of the given client. + type: str + endIndex: + description: End index of the reserved range. + type: int + numberOfTags: + description: Nummber of tags required to be reserved in ISE. + type: int + startIndex: + description: Start index of the reserved range. + type: int +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + sgt_range_reservation.SgtRangeReservation.delete_sgt_reserve_range, + sgt_range_reservation.SgtRangeReservation.reserve_sgt_range, + sgt_range_reservation.SgtRangeReservation.update_reserved_range, + + - Paths used are + post /api/v1/sgt/reservation/reserveRange, + delete /api/v1/sgt/reservation/{clientID}, + put /api/v1/sgt/reservation/{clientID}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.reservation: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + clientName: string + numberOfTags: 0 + +- name: Update by id + cisco.ise.reservation: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + clientID: string + clientId: string + endIndex: 0 + startIndex: 0 + +- name: Delete by id + cisco.ise.reservation: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + clientID: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "clientId": "string", + "clientName": "string", + "endIndex": 0, + "startIndex": 0 + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "success": { + "message": "string" + }, + "version": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/reservation_info.py b/ansible_collections/cisco/ise/plugins/modules/reservation_info.py new file mode 100644 index 000000000..dbbdc17a2 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/reservation_info.py @@ -0,0 +1,97 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: reservation_info +short_description: Information module for Reservation Info +description: +- Get all Reservation Info. +- Get Reservation Info by id. +- Get all the reserved Security Group tag ranges in ISE. +- Get the reserved range of SGT for the specific client which is passed in the URL. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + clientID: + description: + - ClientID path parameter. Unique name for a Client. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + sgt_range_reservation.SgtRangeReservation.get_sgt_reserved_range, + sgt_range_reservation.SgtRangeReservation.get_sgt_reserved_ranges_generator, + + - Paths used are + get /api/v1/sgt/reservation, + get /api/v1/sgt/reservation/{clientID}, + +""" + +EXAMPLES = r""" +- name: Get all Reservation Info + cisco.ise.reservation_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + register: result + +- name: Get Reservation Info by id + cisco.ise.reservation_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + clientID: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "clientId": "string", + "clientName": "string", + "endIndex": 0, + "startIndex": 0 + } + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: list + elements: dict + sample: > + [ + { + "clientId": "string", + "clientName": "string", + "endIndex": 0, + "startIndex": 0 + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/resource_version_info.py b/ansible_collections/cisco/ise/plugins/modules/resource_version_info.py index 826afa9c8..53e684719 100644 --- a/ansible_collections/cisco/ise/plugins/modules/resource_version_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/resource_version_info.py @@ -21,7 +21,7 @@ options: - Resource path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/rest_id_store.py b/ansible_collections/cisco/ise/plugins/modules/rest_id_store.py index a91c0b4f8..a36b1ac58 100644 --- a/ansible_collections/cisco/ise/plugins/modules/rest_id_store.py +++ b/ansible_collections/cisco/ise/plugins/modules/rest_id_store.py @@ -63,7 +63,7 @@ options: description: REST Id Store's name. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/rest_id_store_info.py b/ansible_collections/cisco/ise/plugins/modules/rest_id_store_info.py index 07a3b19e2..0a71cc368 100644 --- a/ansible_collections/cisco/ise/plugins/modules/rest_id_store_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/rest_id_store_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/self_registered_portal.py b/ansible_collections/cisco/ise/plugins/modules/self_registered_portal.py index 81b396660..8c5e67603 100644 --- a/ansible_collections/cisco/ise/plugins/modules/self_registered_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/self_registered_portal.py @@ -682,7 +682,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SelfRegisteredPortal diff --git a/ansible_collections/cisco/ise/plugins/modules/self_registered_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/self_registered_portal_info.py index 5d1952ed7..1924cf493 100644 --- a/ansible_collections/cisco/ise/plugins/modules/self_registered_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/self_registered_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SelfRegisteredPortal diff --git a/ansible_collections/cisco/ise/plugins/modules/selfsigned_certificate_generate.py b/ansible_collections/cisco/ise/plugins/modules/selfsigned_certificate_generate.py index 84be20739..956a9aa2b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/selfsigned_certificate_generate.py +++ b/ansible_collections/cisco/ise/plugins/modules/selfsigned_certificate_generate.py @@ -119,7 +119,7 @@ options: description: Certificate state (ST). type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/session_service_node_info.py b/ansible_collections/cisco/ise/plugins/modules/session_service_node_info.py index 8d531833a..92d8c81e8 100644 --- a/ansible_collections/cisco/ise/plugins/modules/session_service_node_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/session_service_node_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for PsnNodeDetailsWithRadiusService diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_acl.py b/ansible_collections/cisco/ise/plugins/modules/sg_acl.py index 8f6d53354..9c511a188 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_acl.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_acl.py @@ -43,7 +43,7 @@ options: description: SGACL's name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupsACLs diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_monitor_status_info.py index 814837559..b322a819c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupsACLs diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_request.py index 79dd73025..83455ae39 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_request.py @@ -23,7 +23,7 @@ options: description: SGACL Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupsACLs diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_acl_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_acl_info.py index b3c4cae7c..39b723dd9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_acl_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_acl_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupsACLs diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping.py index 9d27da3cb..d0ff397b4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping.py @@ -44,7 +44,7 @@ options: description: Mandatory unless mappingGroup is set. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_monitor_status_info.py index c0988da7c..677867aa7 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_request.py index c3298c551..3baac7d8d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_request.py @@ -23,7 +23,7 @@ options: description: SG Mapping Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy.py index 97b9c2368..dc2059ac4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_all.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_all.py index 317037a5b..3e6169246 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_all.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_all.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_status_info.py index 40a7adb84..97a80417c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_status_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group.py index 6b6d7fcd0..cc40ba315 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group.py @@ -34,7 +34,7 @@ options: description: Mandatory unless mappingGroup is set. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_monitor_status_info.py index cd6af8a56..cafa582ed 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_request.py index 18ed1150d..dcdea3c60 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_request.py @@ -23,7 +23,7 @@ options: description: SG Mapping Group Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy.py index 1012ababc..3f8c47b6f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_all.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_all.py index 08b7223e2..a5781f637 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_all.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_all.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_status_info.py index f02d6260a..745e6aa20 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_status_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_info.py index c05b582ff..c82308a61 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_info.py index cc46a2d6a..d0aaba2c9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan.py b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan.py index bba7eeb3a..9d5c53ed8 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan.py @@ -71,7 +71,7 @@ options: type: list type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupToVirtualNetwork diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_monitor_status_info.py index ceebe7245..d9bbb2176 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupToVirtualNetwork diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_request.py index c466ec4a7..6b4b3dbe6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_request.py @@ -23,7 +23,7 @@ options: description: SG To VN To VLAN Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupToVirtualNetwork diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_info.py index 5759bcbdf..6e7527738 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_info.py @@ -57,7 +57,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupToVirtualNetwork diff --git a/ansible_collections/cisco/ise/plugins/modules/sgt.py b/ansible_collections/cisco/ise/plugins/modules/sgt.py index 7d65c2e9a..232e7bb59 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sgt.py +++ b/ansible_collections/cisco/ise/plugins/modules/sgt.py @@ -46,7 +46,7 @@ options: type: int required: true requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_monitor_status_info.py index 29ffa4038..d0d4d7dd3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_request.py index 6afae3073..d87d53662 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_request.py @@ -23,7 +23,7 @@ options: description: SGt Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/sgt_info.py b/ansible_collections/cisco/ise/plugins/modules/sgt_info.py index 98190f097..fd01585ef 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sgt_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sgt_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/sms_provider_info.py b/ansible_collections/cisco/ise/plugins/modules/sms_provider_info.py index 38175a56e..71a768a5d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sms_provider_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sms_provider_info.py @@ -59,7 +59,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsor_group.py b/ansible_collections/cisco/ise/plugins/modules/sponsor_group.py index be39a7e2c..41c03eff7 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsor_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsor_group.py @@ -120,7 +120,7 @@ options: type: bool type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsor_group_info.py b/ansible_collections/cisco/ise/plugins/modules/sponsor_group_info.py index 88e4f9599..f482d97af 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsor_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsor_group_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsor_group_member_info.py b/ansible_collections/cisco/ise/plugins/modules/sponsor_group_member_info.py index 4d782aa71..1e8bf6704 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsor_group_member_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsor_group_member_info.py @@ -59,7 +59,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsor_portal.py b/ansible_collections/cisco/ise/plugins/modules/sponsor_portal.py index 6acb22f0f..be4ac95ed 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsor_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsor_portal.py @@ -281,7 +281,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsor_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/sponsor_portal_info.py index 9c51373f0..7f5edcd72 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsor_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsor_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal.py b/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal.py index e8f99c386..2ca0b2edf 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal.py @@ -385,7 +385,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal_info.py index 017236454..87fe321a2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/stop_replication.py b/ansible_collections/cisco/ise/plugins/modules/stop_replication.py new file mode 100644 index 000000000..6f52d3da8 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/stop_replication.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: stop_replication +short_description: Resource module for Stop Replication +description: +- Manage operation update of the resource Stop Replication. +- This API updates the status of Endpoint stop replication Service. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + isEnabled: + description: IsEnabled flag. + type: bool +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoint_stop_replication_service.EndpointStopReplicationService.set_stop_replication_service, + + - Paths used are + put /api/v1/stop-replication, + +""" + +EXAMPLES = r""" +- name: Update all + cisco.ise.stop_replication: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + isEnabled: true + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "isEnabled": true + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "success": { + "message": "string" + }, + "version": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/stop_replication_info.py b/ansible_collections/cisco/ise/plugins/modules/stop_replication_info.py new file mode 100644 index 000000000..8acb0474e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/stop_replication_info.py @@ -0,0 +1,51 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: stop_replication_info +short_description: Information module for Stop Replication Info +description: +- Get all Stop Replication Info. +- This API retrieves the status of Endpoint stop replication Service. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoint_stop_replication_service.EndpointStopReplicationService.get_stop_replication_status, + + - Paths used are + get /api/v1/stop-replication, + +""" + +EXAMPLES = r""" +- name: Get all Stop Replication Info + cisco.ise.stop_replication_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "isEnabled": true + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/subscriber.py b/ansible_collections/cisco/ise/plugins/modules/subscriber.py index e62fe2c55..baeca3007 100644 --- a/ansible_collections/cisco/ise/plugins/modules/subscriber.py +++ b/ansible_collections/cisco/ise/plugins/modules/subscriber.py @@ -41,7 +41,7 @@ options: description: SubscriberId path parameter. Unique id for a subscriber object. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/subscriber_bulk.py b/ansible_collections/cisco/ise/plugins/modules/subscriber_bulk.py index 2b6547097..f7370752b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/subscriber_bulk.py +++ b/ansible_collections/cisco/ise/plugins/modules/subscriber_bulk.py @@ -49,7 +49,7 @@ options: description: Subscriber Bulk's operation. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/subscriber_imsi_info.py b/ansible_collections/cisco/ise/plugins/modules/subscriber_imsi_info.py index 4da62a78f..f2bf23c84 100644 --- a/ansible_collections/cisco/ise/plugins/modules/subscriber_imsi_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/subscriber_imsi_info.py @@ -20,7 +20,7 @@ options: - Imsi path parameter. IMSI parameter. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/subscriber_info.py b/ansible_collections/cisco/ise/plugins/modules/subscriber_info.py index 660937786..189befb9f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/subscriber_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/subscriber_info.py @@ -62,7 +62,7 @@ options: - SubscriberId path parameter. Unique id for a subscriber object. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/support_bundle.py b/ansible_collections/cisco/ise/plugins/modules/support_bundle.py index cd29a5b31..dc00458ec 100644 --- a/ansible_collections/cisco/ise/plugins/modules/support_bundle.py +++ b/ansible_collections/cisco/ise/plugins/modules/support_bundle.py @@ -57,7 +57,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SupportBundleTriggerConfiguration diff --git a/ansible_collections/cisco/ise/plugins/modules/support_bundle_download.py b/ansible_collections/cisco/ise/plugins/modules/support_bundle_download.py index 952d9fcf3..3e668519a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/support_bundle_download.py +++ b/ansible_collections/cisco/ise/plugins/modules/support_bundle_download.py @@ -29,7 +29,7 @@ options: description: Enable or disable automatic file creation of raw response. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/support_bundle_status_info.py b/ansible_collections/cisco/ise/plugins/modules/support_bundle_status_info.py index 67fd177d2..9d4f1db9b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/support_bundle_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/support_bundle_status_info.py @@ -31,7 +31,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_connections.py b/ansible_collections/cisco/ise/plugins/modules/sxp_connections.py index 53a6ec262..a68eb2bdb 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_connections.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_connections.py @@ -46,7 +46,7 @@ options: description: SXP Connections's sxpVpn. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_monitor_status_info.py index dfcbb8eb2..36dc9c500 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_request.py index 3e62f2782..2f18d5528 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_request.py @@ -23,7 +23,7 @@ options: description: SXP Connections Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_info.py index 42e979779..8f9c8be41 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings.py b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings.py index a403670fd..1197d063d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings.py @@ -42,7 +42,7 @@ options: or vns should be defined. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_monitor_status_info.py index f34f4741c..f50e1b818 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_request.py index 66b5e0ab1..71127a465 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_request.py @@ -23,7 +23,7 @@ options: description: SXP Local Bindings Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_info.py index 15aeaf5e3..ffb26a276 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns.py b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns.py index abab51624..861608a2a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns.py @@ -24,7 +24,7 @@ options: description: SXP VPNs's sxpVpnName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_monitor_status_info.py index d749941ab..9e1e061df 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_request.py index 0d24fbc94..537b4a2a0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_request.py @@ -23,7 +23,7 @@ options: description: SXP VPNs Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_info.py index 4fffbfc4a..3707fbb3c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_info.py @@ -65,7 +65,7 @@ options: - Sortdsc query parameter. Sort desc. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/system_certificate.py b/ansible_collections/cisco/ise/plugins/modules/system_certificate.py index f2dd7a73b..456efaf31 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_certificate.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_certificate.py @@ -78,7 +78,7 @@ options: description: Use certificate for SAML Signing. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/system_certificate_create.py b/ansible_collections/cisco/ise/plugins/modules/system_certificate_create.py index 916142bb3..9c95376a6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_certificate_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_certificate_create.py @@ -88,7 +88,7 @@ options: description: NodeId of Cisco ISE application. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/system_certificate_export_info.py b/ansible_collections/cisco/ise/plugins/modules/system_certificate_export_info.py index e53c17a3a..16504a65d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_certificate_export_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_certificate_export_info.py @@ -25,6 +25,10 @@ options: filename: description: The filename used to save the download file. type: str + hostName: + description: Hostname of the Cisco ISE node in which self-signed certificate should + be generated. + type: str id: description: System Certificate Export Info's id. type: str @@ -35,7 +39,7 @@ options: description: Enable or disable automatic file creation of raw response. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates @@ -59,6 +63,7 @@ EXAMPLES = r""" dirPath: /tmp/downloads/ export: string filename: download_filename.extension + hostName: string id: string password: string saveFile: true @@ -69,7 +74,16 @@ RETURN = r""" ise_response: description: A dictionary or list with the response returned by the Cisco ISE Python SDK returned: always - type: str + type: dict sample: > - "'string'" + { + "description": "string", + "file": "string", + "filename": "string", + "inputStream": {}, + "open": true, + "readable": true, + "uri": "string", + "url": "string" + } """ diff --git a/ansible_collections/cisco/ise/plugins/modules/system_certificate_import.py b/ansible_collections/cisco/ise/plugins/modules/system_certificate_import.py index 72f69d078..a1ef8c87a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_certificate_import.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_certificate_import.py @@ -81,7 +81,7 @@ options: description: Validate certificate extensions. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/system_certificate_info.py b/ansible_collections/cisco/ise/plugins/modules/system_certificate_info.py index 7d90d10d4..66fcea6c9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_certificate_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_certificate_info.py @@ -11,8 +11,8 @@ short_description: Information module for System Certificate description: - Get System Certificate by id. - Get System Certificate by name. -- This API provides details of a System Certificate of a particular node based on given HostName and ID. -- This API supports Filtering, Sorting and Pagination. +- This API provides details of a system certificate of a particular node based on given hostname and ID. +- This API supports filtering, sorting and pagination. version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module_info @@ -20,7 +20,7 @@ author: Rafael Campos (@racampos) options: hostName: description: - - HostName path parameter. Name of the host of which system certificates should be returned. + - HostName path parameter. Name of the host for which the system certificates should be returned. type: str page: description: @@ -56,8 +56,7 @@ options: - The 'NENDSW' operator describes 'Not Ends With'. - The 'CONTAINS' operator describes 'Contains'. - The 'NCONTAINS' operator describes 'Not Contains'. - elements: str - type: list + type: str filterType: description: - > @@ -69,7 +68,7 @@ options: - Id path parameter. ID of the system certificate. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates @@ -107,7 +106,7 @@ EXAMPLES = r""" size: 0 sort: string sortBy: string - filter: [] + filter: string filterType: string hostName: string register: result diff --git a/ansible_collections/cisco/ise/plugins/modules/system_config_version_info.py b/ansible_collections/cisco/ise/plugins/modules/system_config_version_info.py index 2213574f0..4f76508f1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_config_version_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_config_version_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for VersionAndPatch diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets.py index af3075c13..061cb68e4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets.py @@ -49,7 +49,7 @@ options: description: PermitUnmatched flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets_info.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets_info.py index 4aa4f9be9..5fbf50064 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers.py index 2d724e764..15dcb8ef4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers.py @@ -43,7 +43,7 @@ options: description: The server timeout. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers_info.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers_info.py index d097fcf25..67d1339fb 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_profile.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_profile.py index 304caaabd..3d6885843 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_profile.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_profile.py @@ -46,7 +46,7 @@ options: type: list type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_profile_info.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_profile_info.py index 59f1495f6..b5e6edb92 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_profile_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence.py index e26adf0ae..afd5bff12 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence.py @@ -50,7 +50,7 @@ options: description: Define if a delimiter will be used for suffix strip. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence_info.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence_info.py index 69d4424b0..a6247d2ae 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tasks_info.py b/ansible_collections/cisco/ise/plugins/modules/tasks_info.py index b038c6e9d..c4278c530 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tasks_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/tasks_info.py @@ -21,7 +21,7 @@ options: - TaskId path parameter. The id of the task executed before. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for tasks diff --git a/ansible_collections/cisco/ise/plugins/modules/telemetry_info.py b/ansible_collections/cisco/ise/plugins/modules/telemetry_info.py index 089d885d1..013b23a6c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/telemetry_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/telemetry_info.py @@ -57,7 +57,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for TelemetryInformation diff --git a/ansible_collections/cisco/ise/plugins/modules/test_connector.py b/ansible_collections/cisco/ise/plugins/modules/test_connector.py deleted file mode 100644 index 4caaadc4b..000000000 --- a/ansible_collections/cisco/ise/plugins/modules/test_connector.py +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# Copyright (c) 2021, Cisco Systems -# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) - -DOCUMENTATION = r""" ---- -module: test_connector -short_description: Resource module for Test Connector -description: -- Manage operation create of the resource Test Connector. -- EDDA - test the Connector. -version_added: '2.8.0' -extends_documentation_fragment: - - cisco.ise.module -author: Rafael Campos (@racampos) -options: - authType: - description: Authentication Type list. - type: str - authValues: - description: Request to test Connector. - suboptions: - password: - description: Password. - type: str - userName: - description: UserName. - type: str - type: dict - connectorName: - description: ConnectorName. - type: str - responseParsing: - description: Uniqueness to identify. - type: str - uniqueID: - description: Uniqueness to identify. - type: str - url: - description: BulkUrl. - type: str -requirements: -- ciscoisesdk >= 2.0.1 -- python >= 3.5 -notes: - - SDK Method used are - edda.Edda.test_connector, - - - Paths used are - post /api/v1/edda/test-connector, - -""" - -EXAMPLES = r""" -- name: Create - cisco.ise.test_connector: - ise_hostname: "{{ise_hostname}}" - ise_username: "{{ise_username}}" - ise_password: "{{ise_password}}" - ise_verify: "{{ise_verify}}" - authType: string - authValues: - password: string - userName: string - connectorName: string - responseParsing: string - uniqueID: string - url: string - -""" - -RETURN = r""" -ise_response: - description: A dictionary or list with the response returned by the Cisco ISE Python SDK - returned: always - type: dict - sample: > - { - "connectorName": "string", - "data": "string", - "error": "string", - "status": "string", - "uniqueID": "string" - } -""" diff --git a/ansible_collections/cisco/ise/plugins/modules/threat_vulnerabilities_clear.py b/ansible_collections/cisco/ise/plugins/modules/threat_vulnerabilities_clear.py index 6288b13c6..d18b33cbf 100644 --- a/ansible_collections/cisco/ise/plugins/modules/threat_vulnerabilities_clear.py +++ b/ansible_collections/cisco/ise/plugins/modules/threat_vulnerabilities_clear.py @@ -20,7 +20,7 @@ options: description: Threat Vulnerabilities Clear's macAddresses. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for ClearThreatsAndVulnerabilities diff --git a/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings.py b/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings.py index 9b7012f3b..3668f2f9b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings.py +++ b/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings.py @@ -10,7 +10,7 @@ module: transport_gateway_settings short_description: Resource module for Transport Gateway Settings description: - Manage operation update of the resource Transport Gateway Settings. -- Transport Gateway acts a proxy for the communication between the ISE servers in your network and the Telemetry servers in case of air-gapped network. +- Transport Gateway acts a proxy for the communication between the ISE servers in your network and the telemetry servers in case of air-gapped network. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module @@ -23,7 +23,7 @@ options: description: URL of transport gateway. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for telemetry diff --git a/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings_info.py b/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings_info.py index 404d01827..88c7b5159 100644 --- a/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings_info.py @@ -10,14 +10,14 @@ module: transport_gateway_settings_info short_description: Information module for Transport Gateway Settings description: - Get all Transport Gateway Settings. -- Transport Gateway acts a proxy for the communication between the ISE servers in your network and the Telemetry servers in case of air-gapped network. +- Transport Gateway acts a proxy for the communication between the ISE servers in your network and the telemetry servers in case of air-gapped network. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for telemetry diff --git a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate.py b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate.py index abe3948a5..933652bb1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate.py +++ b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate.py @@ -91,7 +91,7 @@ options: description: Trust for authentication within Cisco ISE. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_export_info.py b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_export_info.py index 640dffb3b..b65e803f3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_export_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_export_info.py @@ -33,7 +33,7 @@ options: - The filename used to save the download file. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_import.py b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_import.py index a03c7d41d..10947ddf0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_import.py +++ b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_import.py @@ -50,7 +50,7 @@ options: description: Validate trust certificate extension. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_info.py b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_info.py index 198e0539b..12744d57d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_info.py @@ -52,8 +52,7 @@ options: - The 'NENDSW' operator describes 'Not Ends With'. - The 'CONTAINS' operator describes 'Contains'. - The 'NCONTAINS' operator describes 'Not Contains'. - elements: str - type: list + type: str filterType: description: - > @@ -65,7 +64,7 @@ options: - Id path parameter. ID of the trust certificate. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates @@ -93,7 +92,7 @@ EXAMPLES = r""" size: 0 sort: string sortBy: string - filter: [] + filter: string filterType: string register: result diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app.py new file mode 100644 index 000000000..42ef74eb2 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app.py @@ -0,0 +1,141 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_nbar_app +short_description: Resource module for Trustsec NBAR App +description: +- Manage operations create, update and delete of the resource Trustsec NBAR App. +- Create NBAR application. +- Update NBAR Application. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + description: + description: Trustsec NBAR App's description. + type: str + id: + description: Trustsec NBAR App's id. + type: str + name: + description: Trustsec NBAR App's name. + type: str + networkIdentities: + description: Array of NIs. + elements: dict + suboptions: + ports: + description: Trustsec NBAR App's ports. + type: str + protocol: + description: Trustsec NBAR App's protocol. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for nbarApp + description: Complete reference of the nbarApp API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + nbar_app.NbarApp.create_nbar_app, + nbar_app.NbarApp.delete_nbar_app_by_id, + nbar_app.NbarApp.update_nbar_app_by_id, + + - Paths used are + post /api/v1/trustsec/sgacl/nbarapp, + delete /api/v1/trustsec/sgacl/nbarapp/{id}, + put /api/v1/trustsec/sgacl/nbarapp/{id}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_nbar_app: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + description: string + id: string + name: string + networkIdentities: + - ports: string + protocol: string + +- name: Update by id + cisco.ise.trustsec_nbar_app: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + description: string + id: string + name: string + networkIdentities: + - ports: string + protocol: string + +- name: Delete by id + cisco.ise.trustsec_nbar_app: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + id: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "description": "string", + "id": "string", + "name": "string", + "networkIdentities": [ + { + "ports": "string", + "protocol": "string" + } + ] + } + ] + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "response": [ + { + "description": "string", + "id": "string", + "name": "string", + "networkIdentities": [ + { + "ports": "string", + "protocol": "string" + } + ] + } + ] + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app_info.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app_info.py new file mode 100644 index 000000000..e5d3a7ebe --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app_info.py @@ -0,0 +1,150 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_nbar_app_info +short_description: Information module for Trustsec NBAR App +description: +- Get all Trustsec NBAR App. +- Get Trustsec NBAR App by id. +- Get NBAR Application by id. +- Get all NBAR Applications. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + id: + description: + - Id path parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for nbarApp + description: Complete reference of the nbarApp API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + nbar_app.NbarApp.get_nbar_app_by_id, + nbar_app.NbarApp.get_nbar_apps_generator, + + - Paths used are + get /api/v1/trustsec/sgacl/nbarapp, + get /api/v1/trustsec/sgacl/nbarapp/{id}, + +""" + +EXAMPLES = r""" +- name: Get all Trustsec NBAR App + cisco.ise.trustsec_nbar_app_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Trustsec NBAR App by id + cisco.ise.trustsec_nbar_app_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + id: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "description": "string", + "id": "string", + "name": "string", + "networkIdentities": [ + { + "ports": "string", + "protocol": "string" + } + ] + } + ] + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "description": "string", + "id": "string", + "name": "string", + "networkIdentities": [ + { + "ports": "string", + "protocol": "string" + } + ] + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping.py new file mode 100644 index 000000000..5aed74a06 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping.py @@ -0,0 +1,134 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_sg_vn_mapping +short_description: Resource module for Trustsec SG VN Mapping +description: +- Manage operations create, update and delete of the resource Trustsec SG VN Mapping. +- Create Security Group and Virtual Network mapping. +- Delete Security Group and Virtual Network mapping. +- Update Security Group and Virtual Network mapping. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + id: + description: Identifier of the SG-VN mapping. + type: str + lastUpdate: + description: Timestamp for the last update of the SG-VN mapping. + type: str + sgName: + description: Name of the associated Security Group to be used for identity if id + is not provided. + type: str + sgtId: + description: Identifier of the associated Security Group which is required unless + its name is provided. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required unless + its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity if id + is not provided. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for sgVnMapping + description: Complete reference of the sgVnMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + sg_vn_mapping.SgVnMapping.create_sg_vn_mapping, + sg_vn_mapping.SgVnMapping.delete_sg_vn_mapping, + sg_vn_mapping.SgVnMapping.update_sg_vn_mapping, + + - Paths used are + post /api/v1/trustsec/sgvnmapping, + delete /api/v1/trustsec/sgvnmapping/{id}, + put /api/v1/trustsec/sgvnmapping/{id}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_sg_vn_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + id: string + lastUpdate: string + sgName: string + sgtId: string + vnId: string + vnName: string + +- name: Update by id + cisco.ise.trustsec_sg_vn_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + id: string + lastUpdate: string + sgName: string + sgtId: string + vnId: string + vnName: string + +- name: Delete by id + cisco.ise.trustsec_sg_vn_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + id: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "lastUpdate": "string", + "sgName": "string", + "sgtId": "string", + "vnId": "string", + "vnName": "string" + } + ] + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string", + "lastUpdate": "string", + "sgName": "string", + "sgtId": "string", + "vnId": "string", + "vnName": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_create.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_create.py new file mode 100644 index 000000000..18b2ae711 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_create.py @@ -0,0 +1,87 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_sg_vn_mapping_bulk_create +short_description: Resource module for Trustsec SG VN Mapping Bulk Create +description: +- Manage operation create of the resource Trustsec SG VN Mapping Bulk Create. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec SG VN Mapping Bulk Create's payload. + elements: dict + suboptions: + id: + description: Identifier of the SG-VN mapping. + type: str + lastUpdate: + description: Timestamp for the last update of the SG-VN mapping. + type: str + sgName: + description: Name of the associated Security Group to be used for identity if + id is not provided. + type: str + sgtId: + description: Identifier of the associated Security Group which is required unless + its name is provided. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required + unless its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity + if id is not provided. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for sgVnMapping + description: Complete reference of the sgVnMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + sg_vn_mapping.SgVnMapping.bulk_create_sg_vn_mappings, + + - Paths used are + post /api/v1/trustsec/sgvnmapping/bulk/create, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_sg_vn_mapping_bulk_create: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - id: string + lastUpdate: string + sgName: string + sgtId: string + vnId: string + vnName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_delete.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_delete.py new file mode 100644 index 000000000..5d1638c84 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_delete.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_sg_vn_mapping_bulk_delete +short_description: Resource module for Trustsec SG VN Mapping Bulk Delete +description: +- Manage operation create of the resource Trustsec SG VN Mapping Bulk Delete. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec SG VN Mapping Bulk Delete's payload. + elements: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for sgVnMapping + description: Complete reference of the sgVnMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + sg_vn_mapping.SgVnMapping.bulk_delete_sg_vn_mappings, + + - Paths used are + post /api/v1/trustsec/sgvnmapping/bulk/delete, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_sg_vn_mapping_bulk_delete: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_update.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_update.py new file mode 100644 index 000000000..4c91c767c --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_update.py @@ -0,0 +1,87 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_sg_vn_mapping_bulk_update +short_description: Resource module for Trustsec SG VN Mapping Bulk Update +description: +- Manage operation create of the resource Trustsec SG VN Mapping Bulk Update. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec SG VN Mapping Bulk Update's payload. + elements: dict + suboptions: + id: + description: Identifier of the SG-VN mapping. + type: str + lastUpdate: + description: Timestamp for the last update of the SG-VN mapping. + type: str + sgName: + description: Name of the associated Security Group to be used for identity if + id is not provided. + type: str + sgtId: + description: Identifier of the associated Security Group which is required unless + its name is provided. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required + unless its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity + if id is not provided. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for sgVnMapping + description: Complete reference of the sgVnMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + sg_vn_mapping.SgVnMapping.bulk_update_sg_vn_mappings, + + - Paths used are + post /api/v1/trustsec/sgvnmapping/bulk/update, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_sg_vn_mapping_bulk_update: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - id: string + lastUpdate: string + sgName: string + sgtId: string + vnId: string + vnName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_info.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_info.py new file mode 100644 index 000000000..9a41af068 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_info.py @@ -0,0 +1,144 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_sg_vn_mapping_info +short_description: Information module for Trustsec SG VN Mapping +description: +- Get all Trustsec SG VN Mapping. +- Get Trustsec SG VN Mapping by id. +- Get Security Group and Virtual Network mapping by id. +- Get all Security Group and Virtual Network mappings. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + id: + description: + - Id path parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for sgVnMapping + description: Complete reference of the sgVnMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + sg_vn_mapping.SgVnMapping.get_sg_vn_mapping_by_id, + sg_vn_mapping.SgVnMapping.get_sg_vn_mapping_list_generator, + + - Paths used are + get /api/v1/trustsec/sgvnmapping, + get /api/v1/trustsec/sgvnmapping/{id}, + +""" + +EXAMPLES = r""" +- name: Get all Trustsec SG VN Mapping + cisco.ise.trustsec_sg_vn_mapping_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Trustsec SG VN Mapping by id + cisco.ise.trustsec_sg_vn_mapping_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + id: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "lastUpdate": "string", + "sgName": "string", + "sgtId": "string", + "vnId": "string", + "vnName": "string" + } + ] + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "lastUpdate": "string", + "sgName": "string", + "sgtId": "string", + "vnId": "string", + "vnName": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn.py new file mode 100644 index 000000000..3742bd146 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn.py @@ -0,0 +1,119 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn +short_description: Resource module for Trustsec VN +description: +- Manage operations create, update and delete of the resource Trustsec VN. +- Create Virtual Network. +- Update Virtual Network. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + additionalAttributes: + description: JSON String of additional attributes for the Virtual Network. + type: str + id: + description: Identifier of the Virtual Network. + type: str + lastUpdate: + description: Timestamp for the last update of the Virtual Network. + type: str + name: + description: Name of the Virtual Network. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for virtualNetwork + description: Complete reference of the virtualNetwork API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + virtual_network.VirtualNetwork.create_virtual_network, + virtual_network.VirtualNetwork.delete_virtual_network_by_id, + virtual_network.VirtualNetwork.update_virtual_network_by_id, + + - Paths used are + post /api/v1/trustsec/virtualnetwork, + delete /api/v1/trustsec/virtualnetwork/{id}, + put /api/v1/trustsec/virtualnetwork/{id}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + additionalAttributes: string + id: string + lastUpdate: string + name: string + +- name: Update by id + cisco.ise.trustsec_vn: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + additionalAttributes: string + id: string + lastUpdate: string + name: string + +- name: Delete by id + cisco.ise.trustsec_vn: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + id: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "additionalAttributes": "string", + "id": "string", + "lastUpdate": "string", + "name": "string" + } + ] + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "response": [ + { + "additionalAttributes": "string", + "id": "string", + "lastUpdate": "string", + "name": "string" + } + ] + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_create.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_create.py new file mode 100644 index 000000000..17a41128f --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_create.py @@ -0,0 +1,75 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_bulk_create +short_description: Resource module for Trustsec VN Bulk Create +description: +- Manage operation create of the resource Trustsec VN Bulk Create. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN Bulk Create's payload. + elements: dict + suboptions: + additionalAttributes: + description: JSON String of additional attributes for the Virtual Network. + type: str + id: + description: Identifier of the Virtual Network. + type: str + lastUpdate: + description: Timestamp for the last update of the Virtual Network. + type: str + name: + description: Name of the Virtual Network. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for virtualNetwork + description: Complete reference of the virtualNetwork API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + virtual_network.VirtualNetwork.bulk_create_virtual_networks, + + - Paths used are + post /api/v1/trustsec/virtualnetwork/bulk/create, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_bulk_create: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - additionalAttributes: string + id: string + lastUpdate: string + name: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_delete.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_delete.py new file mode 100644 index 000000000..d8ab682d9 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_delete.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_bulk_delete +short_description: Resource module for Trustsec VN Bulk Delete +description: +- Manage operation create of the resource Trustsec VN Bulk Delete. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN Bulk Delete's payload. + elements: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for virtualNetwork + description: Complete reference of the virtualNetwork API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + virtual_network.VirtualNetwork.bulk_delete_virtual_networks, + + - Paths used are + post /api/v1/trustsec/virtualnetwork/bulk/delete, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_bulk_delete: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_update.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_update.py new file mode 100644 index 000000000..bf79b2c28 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_update.py @@ -0,0 +1,75 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_bulk_update +short_description: Resource module for Trustsec VN Bulk Update +description: +- Manage operation create of the resource Trustsec VN Bulk Update. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN Bulk Update's payload. + elements: dict + suboptions: + additionalAttributes: + description: JSON String of additional attributes for the Virtual Network. + type: str + id: + description: Identifier of the Virtual Network. + type: str + lastUpdate: + description: Timestamp for the last update of the Virtual Network. + type: str + name: + description: Name of the Virtual Network. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for virtualNetwork + description: Complete reference of the virtualNetwork API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + virtual_network.VirtualNetwork.bulk_update_virtual_networks, + + - Paths used are + post /api/v1/trustsec/virtualnetwork/bulk/update, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_bulk_update: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - additionalAttributes: string + id: string + lastUpdate: string + name: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_info.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_info.py new file mode 100644 index 000000000..cb1bbd9f8 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_info.py @@ -0,0 +1,140 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_info +short_description: Information module for Trustsec VN +description: +- Get all Trustsec VN. +- Get Trustsec VN by id. +- Get Virtual Network by id. +- Get all Virtual Networks. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + id: + description: + - Id path parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for virtualNetwork + description: Complete reference of the virtualNetwork API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + virtual_network.VirtualNetwork.get_virtual_network_by_id, + virtual_network.VirtualNetwork.get_virtual_networks_generator, + + - Paths used are + get /api/v1/trustsec/virtualnetwork, + get /api/v1/trustsec/virtualnetwork/{id}, + +""" + +EXAMPLES = r""" +- name: Get all Trustsec VN + cisco.ise.trustsec_vn_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Trustsec VN by id + cisco.ise.trustsec_vn_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + id: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "additionalAttributes": "string", + "id": "string", + "lastUpdate": "string", + "name": "string" + } + ] + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "additionalAttributes": "string", + "id": "string", + "lastUpdate": "string", + "name": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping.py new file mode 100644 index 000000000..fd8ced03d --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping.py @@ -0,0 +1,138 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_vlan_mapping +short_description: Resource module for Trustsec VN VLAN Mapping +description: +- Manage operations create, update and delete of the resource Trustsec VN VLAN Mapping. +- Create VN-Vlan Mapping. +- Update VN-Vlan Mapping. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + id: + description: Identifier of the VN-VLAN Mapping. + type: str + isData: + description: Flag which indicates whether the VLAN is data or voice type. + type: bool + isDefaultVLAN: + description: Flag which indicates if the VLAN is default. + type: bool + lastUpdate: + description: Timestamp for the last update of the VN-VLAN Mapping. + type: str + maxValue: + description: Max value. + type: int + name: + description: Name of the VLAN. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required unless + its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity if id + is not provided. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for vnVlanMapping + description: Complete reference of the vnVlanMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + vn_vlan_mapping.VnVlanMapping.create_vn_vlan_mapping, + vn_vlan_mapping.VnVlanMapping.delete_vn_vlan_mapping, + vn_vlan_mapping.VnVlanMapping.update_vn_vlan_mapping, + + - Paths used are + post /api/v1/trustsec/vnvlanmapping, + delete /api/v1/trustsec/vnvlanmapping/{id}, + put /api/v1/trustsec/vnvlanmapping/{id}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_vlan_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + id: string + isData: true + isDefaultVlan: true + lastUpdate: string + maxValue: 0 + name: string + vnId: string + vnName: string + +- name: Update by id + cisco.ise.trustsec_vn_vlan_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + id: string + isData: true + isDefaultVlan: true + lastUpdate: string + maxValue: 0 + name: string + vnId: string + vnName: string + +- name: Delete by id + cisco.ise.trustsec_vn_vlan_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + id: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "isData": true, + "isDefaultVlan": true, + "lastUpdate": "string", + "maxValue": 0, + "name": "string", + "vnId": "string", + "vnName": "string" + } + ] + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "message": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_create.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_create.py new file mode 100644 index 000000000..d2e819c33 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_create.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_vlan_mapping_bulk_create +short_description: Resource module for Trustsec VN VLAN Mapping Bulk Create +description: +- Manage operation create of the resource Trustsec VN VLAN Mapping Bulk Create. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN VLAN Mapping Bulk Create's payload. + elements: dict + suboptions: + id: + description: Identifier of the VN-VLAN Mapping. + type: str + isData: + description: Flag which indicates whether the VLAN is data or voice type. + type: bool + isDefaultVLAN: + description: Flag which indicates if the VLAN is default. + type: bool + lastUpdate: + description: Timestamp for the last update of the VN-VLAN Mapping. + type: str + maxValue: + description: Max value. + type: int + name: + description: Name of the VLAN. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required + unless its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity + if id is not provided. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for vnVlanMapping + description: Complete reference of the vnVlanMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + vn_vlan_mapping.VnVlanMapping.bulk_create_vn_vlan_mappings, + + - Paths used are + post /api/v1/trustsec/vnvlanmapping/bulk/create, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_vlan_mapping_bulk_create: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - id: string + isData: true + isDefaultVlan: true + lastUpdate: string + maxValue: 0 + name: string + vnId: string + vnName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_delete.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_delete.py new file mode 100644 index 000000000..4431bf32e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_delete.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_vlan_mapping_bulk_delete +short_description: Resource module for Trustsec VN VLAN Mapping Bulk Delete +description: +- Manage operation create of the resource Trustsec VN VLAN Mapping Bulk Delete. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN VLAN Mapping Bulk Delete's payload. + elements: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for vnVlanMapping + description: Complete reference of the vnVlanMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + vn_vlan_mapping.VnVlanMapping.bulk_delete_vn_vlan_mappings, + + - Paths used are + post /api/v1/trustsec/vnvlanmapping/bulk/delete, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_vlan_mapping_bulk_delete: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_update.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_update.py new file mode 100644 index 000000000..531296199 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_update.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_vlan_mapping_bulk_update +short_description: Resource module for Trustsec VN VLAN Mapping Bulk Update +description: +- Manage operation create of the resource Trustsec VN VLAN Mapping Bulk Update. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN VLAN Mapping Bulk Update's payload. + elements: dict + suboptions: + id: + description: Identifier of the VN-VLAN Mapping. + type: str + isData: + description: Flag which indicates whether the VLAN is data or voice type. + type: bool + isDefaultVLAN: + description: Flag which indicates if the VLAN is default. + type: bool + lastUpdate: + description: Timestamp for the last update of the VN-VLAN Mapping. + type: str + maxValue: + description: Max value. + type: int + name: + description: Name of the VLAN. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required + unless its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity + if id is not provided. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for vnVlanMapping + description: Complete reference of the vnVlanMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + vn_vlan_mapping.VnVlanMapping.bulk_update_vn_vlan_mappings, + + - Paths used are + post /api/v1/trustsec/vnvlanmapping/bulk/update, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_vlan_mapping_bulk_update: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - id: string + isData: true + isDefaultVlan: true + lastUpdate: string + maxValue: 0 + name: string + vnId: string + vnName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_info.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_info.py new file mode 100644 index 000000000..5e9c19413 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_info.py @@ -0,0 +1,148 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_vlan_mapping_info +short_description: Information module for Trustsec VN VLAN Mapping +description: +- Get all Trustsec VN VLAN Mapping. +- Get Trustsec VN VLAN Mapping by id. +- Get VN-Vlan Mapping by id. +- Get all VN-Vlan Mappings. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + id: + description: + - Id path parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for vnVlanMapping + description: Complete reference of the vnVlanMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + vn_vlan_mapping.VnVlanMapping.get_vn_vlan_mapping_by_id, + vn_vlan_mapping.VnVlanMapping.get_vn_vlan_mapping_list_generator, + + - Paths used are + get /api/v1/trustsec/vnvlanmapping, + get /api/v1/trustsec/vnvlanmapping/{id}, + +""" + +EXAMPLES = r""" +- name: Get all Trustsec VN VLAN Mapping + cisco.ise.trustsec_vn_vlan_mapping_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Trustsec VN VLAN Mapping by id + cisco.ise.trustsec_vn_vlan_mapping_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + id: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "isData": true, + "isDefaultVlan": true, + "lastUpdate": "string", + "maxValue": 0, + "name": "string", + "vnId": "string", + "vnName": "string" + } + ] + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "isData": true, + "isDefaultVlan": true, + "lastUpdate": "string", + "maxValue": 0, + "name": "string", + "vnId": "string", + "vnName": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed.py new file mode 100644 index 000000000..c53223cad --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed.py @@ -0,0 +1,69 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_proceed +short_description: Resource module for Upgrade Proceed +description: +- Manage operation create of the resource Upgrade Proceed. +- API's purpose would be to orchestrate upgrade execution on PPAN. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostnames: + description: Upgrade Proceed's hostnames. + elements: str + type: list + preCheckReportID: + description: Upgrade Proceed's preCheckReportID. + type: str + upgradeType: + description: Upgrade Proceed's upgradeType. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + fullupgrade.Fullupgrade.initiate_upgrade_on_p_p_a_n, + + - Paths used are + post /api/v1/upgrade/proceed/initiate-upgrade, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.upgrade_proceed: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + hostnames: + - string + preCheckReportID: string + upgradeType: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "response": { + "message": "string", + "preCheckReportID": "string" + }, + "version": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed_info.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed_info.py new file mode 100644 index 000000000..df27e55ef --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed_info.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_proceed_info +short_description: Information module for Upgrade Proceed +description: +- Get the status of upgrade process for the requested nodes +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + preCheckReportID: + description: preCheckReportID. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + full_upgrade.FullUpgrade.proceed_status, + - Paths used are + get /api/v1/upgrade/proceed/get-status, + +""" + +EXAMPLES = r""" +- name: Get status of upgrade process for the requested nodes + cisco.ise.upgrade_proceed_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + preCheckReportID: string + register: result +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "message": "string", + "preCheckReportID": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel.py new file mode 100644 index 000000000..8399cfb38 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel.py @@ -0,0 +1,73 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_stage_cancel +short_description: Resource module for Upgrade Stage Cancel +description: +- Manage operation create of the resource Upgrade Stage Cancel. +- API to cancel staging process of specified nodes from PPAN. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostnames: + description: Upgrade Stage Cancel's hostnames. + elements: str + type: list + preCheckReportID: + description: Upgrade Stage Cancel's preCheckReportID. + type: str + upgradeType: + description: Upgrade Stage Cancel's upgradeType. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + fullupgrade.Fullupgrade.cancel_staging_on_p_p_a_n, + + - Paths used are + post /api/v1/upgrade/stage/cancel-stage, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.upgrade_stage_cancel: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + hostnames: + - string + preCheckReportID: string + upgradeType: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "dbStatus": "string", + "message": "string", + "node": "string", + "percentage": 0, + "progressMsg": "string", + "status": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel_info.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel_info.py new file mode 100644 index 000000000..13e83e709 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel_info.py @@ -0,0 +1,64 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_stage_cancel_info +short_description: Information module for Upgrade Stage Cancel +description: +- Get all Upgrade Stage Cancel. +- Get the status of upgrade stage process for the requested nodes. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + preCheckReportID: + description: + - PreCheckReportID query parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + fullupgrade.Fullupgrade.stage_status, + + - Paths used are + get /api/v1/upgrade/stage/get-status, + +""" + +EXAMPLES = r""" +- name: Get all Upgrade Stage Cancel + cisco.ise.upgrade_stage_cancel_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + preCheckReportID: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "dbStatus": "string", + "message": "string", + "node": "string", + "percentage": 0, + "progressMsg": "string", + "status": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start.py new file mode 100644 index 000000000..5d6b248eb --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start.py @@ -0,0 +1,77 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_stage_start +short_description: Resource module for Upgrade Stage Start +description: +- Manage operation create of the resource Upgrade Stage Start. +- API to initiate staging orcheastration from PPAN. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostnames: + description: Upgrade Stage Start's hostnames. + elements: str + type: list + preCheckReportID: + description: Upgrade Stage Start's preCheckReportID. + type: str + reTrigger: + description: ReTrigger flag. + type: bool + upgradeType: + description: Upgrade Stage Start's upgradeType. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + fullupgrade.Fullupgrade.initiate_staging_on_p_p_a_n, + + - Paths used are + post /api/v1/upgrade/stage/start-stage, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.upgrade_stage_start: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + hostnames: + - string + preCheckReportID: string + reTrigger: true + upgradeType: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "dbStatus": "string", + "message": "string", + "node": "string", + "percentage": 0, + "progressMsg": "string", + "status": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start_info.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start_info.py new file mode 100644 index 000000000..2d7f92cf3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start_info.py @@ -0,0 +1,64 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_stage_start_info +short_description: Information module for Upgrade Stage Start +description: +- Get all Upgrade Stage Start. +- Get the status of upgrade stage process for the requested nodes. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + preCheckReportID: + description: + - PreCheckReportID query parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + fullupgrade.Fullupgrade.stage_status, + + - Paths used are + get /api/v1/upgrade/stage/get-status, + +""" + +EXAMPLES = r""" +- name: Get all Upgrade Stage Start + cisco.ise.upgrade_stage_start_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + preCheckReportID: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "dbStatus": "string", + "message": "string", + "node": "string", + "percentage": 0, + "progressMsg": "string", + "status": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment.py new file mode 100644 index 000000000..ff7f4c971 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment.py @@ -0,0 +1,98 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment +short_description: Resource module for User Equipment +description: +- Manage operations create, update and delete of the resource User Equipment. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + description: + description: Description for User Equipment. + type: str + deviceGroup: + description: Device or Endpoint Group. + type: str + imei: + description: IMEI for User Equipment. + type: str + userEquipmentId: + description: UserEquipmentId path parameter. Unique ID for a user equipment object. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.create_user_equipment, + user_equipment.UserEquipment.delete_user_equipment, + user_equipment.UserEquipment.update_user_equipment, + + - Paths used are + post /api/v1/fiveg/user-equipment, + delete /api/v1/fiveg/user-equipment/{userEquipmentId}, + put /api/v1/fiveg/user-equipment/{userEquipmentId}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.user_equipment: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + description: string + deviceGroup: string + imei: string + +- name: Update by id + cisco.ise.user_equipment: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + description: string + deviceGroup: string + userEquipmentId: 7c9484cf-0ebc-47ad-a9ef-bc12729ed73b + +- name: Delete by id + cisco.ise.user_equipment: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + userEquipmentId: 7c9484cf-0ebc-47ad-a9ef-bc12729ed73b + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + {} + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "response": {}, + "version": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment_bulk.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment_bulk.py new file mode 100644 index 000000000..240bad6e9 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment_bulk.py @@ -0,0 +1,75 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment_bulk +short_description: Resource module for User Equipment Bulk +description: +- Manage operation create of the resource User Equipment Bulk. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + ItemList: + description: User Equipment Bulk's ItemList. + elements: dict + suboptions: + description: + description: User Equipment Bulk's description. + type: str + deviceGroup: + description: Device or Endpoint Group. + type: str + id: + description: User Equipment Bulk's id. + type: str + imei: + description: User Equipment Bulk's imei. + type: str + type: list + operation: + description: User Equipment Bulk's operation. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.bulk_user_equipment_operation, + + - Paths used are + post /api/v1/fiveg/user-equipment/bulk, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.user_equipment_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + ItemList: + - description: string + deviceGroup: string + id: string + imei: string + operation: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment_csv.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment_csv.py new file mode 100644 index 000000000..5a80cdac8 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment_csv.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment_csv +short_description: Resource module for User Equipment Csv +description: +- Manage operation create of the resource User Equipment Csv. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.create_user_equipments_from_c_s_v, + + - Paths used are + post /api/v1/fiveg/user-equipment/csv, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.user_equipment_csv: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment_imei_info.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment_imei_info.py new file mode 100644 index 000000000..cd74da4e2 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment_imei_info.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment_imei_info +short_description: Information module for User Equipment Imei Info +description: +- Get User Equipment Imei Info by id. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + imei: + description: + - Imei path parameter. IMEI for the user equipment object. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.get_user_equipment_by_i_m_e_i, + + - Paths used are + get /api/v1/fiveg/user-equipment/imei/{imei}, + +""" + +EXAMPLES = r""" +- name: Get User Equipment Imei Info by id + cisco.ise.user_equipment_imei_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + imei: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + {} +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment_info.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment_info.py new file mode 100644 index 000000000..89c951e57 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment_info.py @@ -0,0 +1,122 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment_info +short_description: Information module for User Equipment Info +description: +- Get all User Equipment Info. +- Get User Equipment Info by id. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + userEquipmentId: + description: + - UserEquipmentId path parameter. Unique ID for a user equipment object. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.get_user_equipment_by_id, + user_equipment.UserEquipment.get_user_equipments_generator, + + - Paths used are + get /api/v1/fiveg/user-equipment, + get /api/v1/fiveg/user-equipment/{userEquipmentId}, + +""" + +EXAMPLES = r""" +- name: Get all User Equipment Info + cisco.ise.user_equipment_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + filter: string + filterType: string + sort: string + sortBy: string + register: result + +- name: Get User Equipment Info by id + cisco.ise.user_equipment_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + userEquipmentId: 7c9484cf-0ebc-47ad-a9ef-bc12729ed73b + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + {} + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: list + elements: dict + sample: > + [ + {} + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment_subscriber_info.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment_subscriber_info.py new file mode 100644 index 000000000..48b40dd5d --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment_subscriber_info.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment_subscriber_info +short_description: Information module for User Equipment Subscriber Info +description: +- Get User Equipment Subscriber Info by id. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + subscriberId: + description: + - SubscriberId path parameter. Unique ID for a subscriber object. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.get_user_equipments_by_subscriber_id, + + - Paths used are + get /api/v1/fiveg/user-equipment/subscriber/{subscriberId}, + +""" + +EXAMPLES = r""" +- name: Get User Equipment Subscriber Info by id + cisco.ise.user_equipment_subscriber_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + subscriberId: 7c9484cf-0ebc-47ad-a9ef-bc12729ed73d + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "description": "string", + "deviceGroup": "string", + "imei": "string", + "createTime": "string", + "updateTime": "string", + "id": "string", + "link": { + "rel": "string", + "href": "string", + "type": "string" + } + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/plugin_utils/ise.py b/ansible_collections/cisco/ise/plugins/plugin_utils/ise.py index fbb0843c2..85d6889f2 100644 --- a/ansible_collections/cisco/ise/plugins/plugin_utils/ise.py +++ b/ansible_collections/cisco/ise/plugins/plugin_utils/ise.py @@ -133,7 +133,7 @@ def ise_argument_spec(): ise_username=dict(type="str", fallback=(env_fallback, ['ISE_USERNAME']), required=True), ise_password=dict(type="str", fallback=(env_fallback, ['ISE_PASSWORD']), required=True, no_log=True), ise_verify=dict(type="bool", default=True, fallback=(env_fallback, ['ISE_VERIFY'])), - ise_version=dict(type="str", default="3.2_beta", fallback=(env_fallback, ['ISE_VERSION'])), + ise_version=dict(type="str", default="3.3_patch_1", fallback=(env_fallback, ['ISE_VERSION'])), ise_wait_on_rate_limit=dict(type="bool", default=True, fallback=(env_fallback, ['ISE_WAIT_ON_RATE_LIMIT'])), ise_uses_api_gateway=dict(type="bool", default=True, fallback=(env_fallback, ['ISE_USES_API_GATEWAY'])), ise_uses_csrf_token=dict(type="bool", default=False, fallback=(env_fallback, ['ISE_USES_CSRF_TOKEN'])), diff --git a/ansible_collections/cisco/ise/requirements.txt b/ansible_collections/cisco/ise/requirements.txt index 010de3983..5e460438f 100644 --- a/ansible_collections/cisco/ise/requirements.txt +++ b/ansible_collections/cisco/ise/requirements.txt @@ -1,2 +1,2 @@ -ciscoisesdk >= 2.1.1 +ciscoisesdk >= 2.2.1 requests >= 2.25.1 diff --git a/ansible_collections/cisco/meraki/FILES.json b/ansible_collections/cisco/meraki/FILES.json index b254fc063..e0143a1f1 100644 --- a/ansible_collections/cisco/meraki/FILES.json +++ b/ansible_collections/cisco/meraki/FILES.json @@ -305,7 +305,7 @@ "name": "plugins/action/networks_appliance_vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c761dfdb7567afd656b5788e4370d50eb72b6a9e94932379a1042f357ca249d5", + "chksum_sha256": "0d8f2a124c247958c603f6a8f0bde35c5e4047f23c4be0a0931b67e3ffec3949", "format": 1 }, { @@ -641,7 +641,7 @@ "name": "plugins/action/organizations_appliance_vpn_third_party_vpnpeers_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26a5eaec32372b94e348f2e83550f5456bbe018acd3d5ef53ec7b9277e30cdf5", + "chksum_sha256": "777e5c3045b12fc29d855220bed36084b8a05a6f9fdf843776f82d91ff687d0f", "format": 1 }, { @@ -5170,7 +5170,7 @@ "name": "plugins/modules/networks_syslog_servers.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb9294dd8a2398513d14d99fedbf113df49b86739bd9d93d9b90a7cac30ce370", + "chksum_sha256": "fc6ac1af61bd50fa834a4f99b5a2b49e8bbb58c85f46e1e02bc183b6e4b75f4a", "format": 1 }, { @@ -8267,6 +8267,13 @@ "chksum_sha256": null, "format": 1 }, + { + "name": "tests/sanity/ignore-2.18.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8913c618635181041c024588594a4fe41a65b0f2e1bf06f1cb43c160b88a5187", + "format": 1 + }, { "name": "tests/sanity/ignore-2.17.txt", "ftype": "file", @@ -8488,7 +8495,7 @@ "name": "playbooks/test.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bfd74f470da9b4f7431ca97e36246467d19b4f1b13fcf8b1a12b04efc2d51c7e", + "chksum_sha256": "378a7452fdcf625029889a302a2a5af10836ef09d7174da3e9566aca32b567bd", "format": 1 }, { @@ -8831,14 +8838,14 @@ "name": "changelogs/changelog.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0edb9769be2615fbd836b0e2163b3f1ac4a6a5a5c1d26e21d073a68e3a3121cb", + "chksum_sha256": "1060f4303d8c5c24a55241cf88e050652c4343127a884d63f451ebe3268a62bb", "format": 1 }, { "name": "README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1783cef0d9bf0bc424d1cb9bf05cc3e6ead14b99c48a5cde79efdf46c11546e3", + "chksum_sha256": "d96640c4c076a573e682d98147f5b7355482761ec5723d5a9f987ee74a96ec25", "format": 1 }, { diff --git a/ansible_collections/cisco/meraki/MANIFEST.json b/ansible_collections/cisco/meraki/MANIFEST.json index 6f671e250..30201ab43 100644 --- a/ansible_collections/cisco/meraki/MANIFEST.json +++ b/ansible_collections/cisco/meraki/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "cisco", "name": "meraki", - "version": "2.18.0", + "version": "2.18.1", "authors": [ "Francisco Mu\u00f1oz ", "Bryan Vargas ", @@ -33,7 +33,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c5636d16b861bfa135c614ab136a32cfe5ca9b0d639f5743d9136b2c3454ca8", + "chksum_sha256": "d71c0f2bceacc791dc8fe1c7b8612d934a800e2a8287300af76e6fa546d42a4b", "format": 1 }, "format": 1 diff --git a/ansible_collections/cisco/meraki/README.md b/ansible_collections/cisco/meraki/README.md index f7dc05f6a..ef5fd1179 100644 --- a/ansible_collections/cisco/meraki/README.md +++ b/ansible_collections/cisco/meraki/README.md @@ -65,7 +65,7 @@ Other versions of this collection have support for previous Cisco Meraki version | Cisco Meraki version | Ansible "cisco.meraki" version | Python "DashboardAPI" version | |--------------------------|------------------------------|-------------------------------| | 1.33.0 | 2.17.0 |1.33.0 | -| 1.44.1 | 2.18.0 |1.44.1 | +| 1.44.1 | 2.18.1 |1.44.1 | *Notes*: diff --git a/ansible_collections/cisco/meraki/changelogs/changelog.yaml b/ansible_collections/cisco/meraki/changelogs/changelog.yaml index 9909009fc..31f7c73bd 100644 --- a/ansible_collections/cisco/meraki/changelogs/changelog.yaml +++ b/ansible_collections/cisco/meraki/changelogs/changelog.yaml @@ -1063,4 +1063,11 @@ releases: - organizations_wireless_devices_channel_utilization_history_by_network_by_interval_info - new plugin. - organizations_wireless_devices_packet_loss_by_client_info - new plugin. - organizations_wireless_devices_packet_loss_by_device_info - new plugin. - - organizations_wireless_devices_packet_loss_by_network_info - new plugin. \ No newline at end of file + - organizations_wireless_devices_packet_loss_by_network_info - new plugin. + 2.18.1: + changes: + minor_changes: + - The `id` parameter is now required for `networks_appliance_vlans` module. + - The `id` parameter is change type to an `integer` in `networks_appliance_vlans` module. + - Fixing problem of naming in `organizations_appliance_vpn_third_party_vpnpeers_info`. + - Removing `state` from allowed parameters for `networks_syslog_servers` module. \ No newline at end of file diff --git a/ansible_collections/cisco/meraki/playbooks/test.yml b/ansible_collections/cisco/meraki/playbooks/test.yml index 02e2c7cd9..f2b0a4dcb 100644 --- a/ansible_collections/cisco/meraki/playbooks/test.yml +++ b/ansible_collections/cisco/meraki/playbooks/test.yml @@ -127,9 +127,97 @@ # state: present # meraki_suppress_logging: false - - name: onboard order - cisco.meraki.organizations_inventory_claim: - # meraki_api_key: "{{ meraki_api }}" - # meraki_simulate: "{{ testpolicy }}" - organizationId: "{{ org_id }}" - orders: "1" \ No newline at end of file + # - name: onboard order + # cisco.meraki.organizations_inventory_claim: + # # meraki_api_key: "{{ meraki_api }}" + # # meraki_simulate: "{{ testpolicy }}" + # organizationId: "{{ org_id }}" + # orders: "1" + + + # - name: Enable Vlans on the MX + # cisco.meraki.networks_appliance_vlans_settings: + # state: present + # networkId: "{{network_id}}" + # vlansEnabled: true + + # - name: Create appliance Vlan 100 + # cisco.meraki.networks_appliance_vlans: + # state: present + # applianceIp: 192.168.1.2 + # cidr: 192.168.1.0/24 + # id: '100' + # name: My VLAN + # networkId: "{{network_id}}" + # subnet: 192.168.1.0/24 + + # - name: Create appliance Vlan 200 + # cisco.meraki.networks_appliance_vlans: + # state: present + # applianceIp: 192.168.2.2 + # cidr: 192.168.2.0/24 + # id: '200' + # name: My VLAN + # networkId: "{{network_id}}" + # subnet: 192.168.2.0/24 + + # - name: Create appliance Vlan 300 + # cisco.meraki.networks_appliance_vlans: + # state: present + # applianceIp: 192.168.3.2 + # cidr: 192.168.3.0/24 + # id: '300' + # name: My VLAN + # networkId: "{{network_id}}" + # subnet: 192.168.3.0/24 + + + # - name: Enable Vlans on the MX + # cisco.meraki.networks_appliance_vlans_settings: + # state: present + # networkId: "{{network_id}}" + # vlansEnabled: true + + # - name: Create appliance Vlan 100 + # cisco.meraki.networks_appliance_vlans: + # state: present + # meraki_suppress_logging: false + # applianceIp: 10.1.0.2 + # cidr: 10.1.0.0/17 + # id: '100' + # name: My VLAN + # networkId: "{{network_id}}" + # subnet: 10.1.0.0/17 + + # - name: Create appliance Vlan 200 + # cisco.meraki.networks_appliance_vlans: + # state: present + # meraki_suppress_logging: false + # applianceIp: 172.200.0.2 + # cidr: 172.200.0.0/20 + # id: '200' + # name: My VLAN + # networkId: "{{network_id}}" + # subnet: 172.200.0.0/20 + + # - name: Create appliance Vlan 300 + # cisco.meraki.networks_appliance_vlans: + # state: present + # meraki_suppress_logging: false + # applianceIp: 172.16.0.2 + # cidr: 172.16.0.0/24 + # id: 300 + # name: My VLAN 2 + # networkId: "{{network_id}}" + # subnet: 172.16.0.0/24 + + + # - name: Get all organizations _appliance _vpn _thirdpartyvpnpeers + # cisco.meraki.organizations_appliance_vpn_third_party_vpnpeers_info: + # meraki_suppress_logging: false + # organizationId: "828099381482762270" + # register: result + + # - name: Show result + # ansible.builtin.debug: + # msg: "{{ result }}" \ No newline at end of file diff --git a/ansible_collections/cisco/meraki/plugins/action/networks_appliance_vlans.py b/ansible_collections/cisco/meraki/plugins/action/networks_appliance_vlans.py index 48ebdb4ca..2842327c9 100644 --- a/ansible_collections/cisco/meraki/plugins/action/networks_appliance_vlans.py +++ b/ansible_collections/cisco/meraki/plugins/action/networks_appliance_vlans.py @@ -35,7 +35,7 @@ argument_spec.update(dict( applianceIp=dict(type="str"), cidr=dict(type="str"), groupPolicyId=dict(type="str"), - id=dict(type="str"), + id=dict(type="int"), ipv6=dict(type="dict"), mandatoryDhcp=dict(type="dict"), mask=dict(type="int"), @@ -43,7 +43,7 @@ argument_spec.update(dict( subnet=dict(type="str"), templateVlanType=dict(type="str"), networkId=dict(type="str"), - vlanId=dict(type="str"), + # vlanId=dict(type="str"), dhcpBootFilename=dict(type="str"), dhcpBootNextServer=dict(type="str"), dhcpBootOptionsEnabled=dict(type="bool"), @@ -58,8 +58,8 @@ argument_spec.update(dict( )) required_if = [ - ("state", "present", ["name", "networkId", "vlanId"], True), - ("state", "absent", ["name", "networkId", "vlanId"], True), + ("state", "present", ["name", "networkId", "id"], True), + ("state", "absent", ["name", "networkId", "id"], True), ] required_one_of = [] mutually_exclusive = [] @@ -107,9 +107,10 @@ class NetworksApplianceVlans(object): if self.new_object.get('networkId') is not None or self.new_object.get('network_id') is not None: new_object_params['networkId'] = self.new_object.get('networkId') or \ self.new_object.get('network_id') - if self.new_object.get('vlanId') is not None or self.new_object.get('vlan_id') is not None: - new_object_params['vlanId'] = self.new_object.get('vlanId') or \ - self.new_object.get('vlan_id') + if self.new_object.get('vlanId') is not None or self.new_object.get('vlan_id') is not None or \ + self.new_object.get('id') is not None: + new_object_params['vlanId'] = self.new_object.get('id') or \ + self.new_object.get('id') return new_object_params def create_params(self): @@ -154,9 +155,10 @@ class NetworksApplianceVlans(object): if self.new_object.get('networkId') is not None or self.new_object.get('network_id') is not None: new_object_params['networkId'] = self.new_object.get('networkId') or \ self.new_object.get('network_id') - if self.new_object.get('vlanId') is not None or self.new_object.get('vlan_id') is not None: - new_object_params['vlanId'] = self.new_object.get('vlanId') or \ - self.new_object.get('vlan_id') + if self.new_object.get('vlanId') is not None or self.new_object.get('vlan_id') is not None or \ + self.new_object.get('id') is not None: + new_object_params['vlanId'] = self.new_object.get('id') or \ + self.new_object.get('id') return new_object_params def update_by_id_params(self): @@ -174,7 +176,8 @@ class NetworksApplianceVlans(object): new_object_params['dhcpBootNextServer'] = self.new_object.get('dhcpBootNextServer') or \ self.new_object.get('dhcp_boot_next_server') if self.new_object.get('dhcpBootOptionsEnabled') is not None or self.new_object.get('dhcp_boot_options_enabled') is not None: - new_object_params['dhcpBootOptionsEnabled'] = self.new_object.get('dhcpBootOptionsEnabled') + new_object_params['dhcpBootOptionsEnabled'] = self.new_object.get( + 'dhcpBootOptionsEnabled') if self.new_object.get('dhcpHandling') is not None or self.new_object.get('dhcp_handling') is not None: new_object_params['dhcpHandling'] = self.new_object.get('dhcpHandling') or \ self.new_object.get('dhcp_handling') @@ -223,9 +226,10 @@ class NetworksApplianceVlans(object): if self.new_object.get('networkId') is not None or self.new_object.get('network_id') is not None: new_object_params['networkId'] = self.new_object.get('networkId') or \ self.new_object.get('network_id') - if self.new_object.get('vlanId') is not None or self.new_object.get('vlan_id') is not None: - new_object_params['vlanId'] = self.new_object.get('vlanId') or \ - self.new_object.get('vlan_id') + if self.new_object.get('vlanId') is not None or self.new_object.get('vlan_id') is not None or \ + self.new_object.get('id') is not None: + new_object_params['vlanId'] = self.new_object.get('id') or \ + self.new_object.get('id') return new_object_params def get_object_by_name(self, name): @@ -272,7 +276,7 @@ class NetworksApplianceVlans(object): o_id = self.new_object.get("id") o_id = o_id or self.new_object.get( "vlan_id") or self.new_object.get("vlanId") - name = self.new_object.get("name") + name = None if o_id: prev_obj = self.get_object_by_id(o_id) id_exists = prev_obj is not None and isinstance(prev_obj, dict) @@ -298,7 +302,6 @@ class NetworksApplianceVlans(object): obj_params = [ ("applianceIp", "applianceIp"), - ("cidr", "cidr"), ("groupPolicyId", "groupPolicyId"), ("id", "id"), ("ipv6", "ipv6"), @@ -308,7 +311,6 @@ class NetworksApplianceVlans(object): ("subnet", "subnet"), ("templateVlanType", "templateVlanType"), ("networkId", "networkId"), - ("vlanId", "vlanId"), ("dhcpBootFilename", "dhcpBootFilename"), ("dhcpBootNextServer", "dhcpBootNextServer"), ("dhcpBootOptionsEnabled", "dhcpBootOptionsEnabled"), diff --git a/ansible_collections/cisco/meraki/plugins/action/organizations_appliance_vpn_third_party_vpnpeers_info.py b/ansible_collections/cisco/meraki/plugins/action/organizations_appliance_vpn_third_party_vpnpeers_info.py index 69f7bd061..195a9138c 100644 --- a/ansible_collections/cisco/meraki/plugins/action/organizations_appliance_vpn_third_party_vpnpeers_info.py +++ b/ansible_collections/cisco/meraki/plugins/action/organizations_appliance_vpn_third_party_vpnpeers_info.py @@ -82,7 +82,7 @@ class ActionModule(ActionBase): response = meraki.exec_meraki( family="appliance", - function='getOrganizationApplianceVpnThirdPartyVpnpeers', + function='getOrganizationApplianceVpnThirdPartyVPNPeers', params=self.get_all(self._task.args), ) self._result.update(dict(meraki_response=response)) diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers.py b/ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers.py index 77cede8de..ebc85c17e 100644 --- a/ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers.py +++ b/ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers.py @@ -74,7 +74,6 @@ EXAMPLES = r""" meraki_be_geo_id: "{{meraki_be_geo_id}}" meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}" meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}" - state: present networkId: string servers: - host: 1.2.3.4 diff --git a/ansible_collections/cisco/meraki/tests/sanity/ignore-2.18.txt b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.18.txt new file mode 100644 index 000000000..dce1be5cb --- /dev/null +++ b/ansible_collections/cisco/meraki/tests/sanity/ignore-2.18.txt @@ -0,0 +1 @@ +plugins/modules/meraki_mx_intrusion_prevention.py validate-modules:invalid-argument-name \ No newline at end of file diff --git a/ansible_collections/cisco/nxos/.flake8 b/ansible_collections/cisco/nxos/.flake8 new file mode 100644 index 000000000..9a7fc1251 --- /dev/null +++ b/ansible_collections/cisco/nxos/.flake8 @@ -0,0 +1,67 @@ +[flake8] + +builtins = _ + +# Print the total number of errors: +count = true + +# Don't even try to analyze these: +extend-exclude = + # No need to traverse egg info dir + *.egg-info, + # tool cache dirs + *_cache + # project env vars + .env, + # GitHub configs + .github, + # Cache files of MyPy + .mypy_cache, + # Cache files of pytest + .pytest_cache, + # Temp dir of pytest-testmon + .tmontmp, + # Occasional virtualenv dir + .venv + # VS Code + .vscode, + # Temporary build dir + build, + # This contains sdists and wheels of ansible-navigator that we don't want to check + dist, + # Metadata of `pip wheel` cmd is autogenerated + pip-wheel-metadata, + # adjacent venv + venv + # ansible won't let me + __init__.py + +# IMPORTANT: avoid using ignore option, always use extend-ignore instead +# Completely and unconditionally ignore the following errors: +extend-ignore = + F841, + # line-length + E501, + # module level import not at top of file + E402 + +# Accessibility/large fonts and PEP8 unfriendly: +max-line-length = 120 + +# Allow certain violations in certain files: +# Please keep both sections of this list sorted, as it will be easier for others to find and add entries in the future +per-file-ignores = + # The following ignores have been researched and should be considered permanent + # each should be preceeded with an explanation of each of the error codes + # If other ignores are added for a specific file in the section following this, + # these will need to be added to that line as well. + + + # S101: Allow the use of assert within the tests directory, since tests require it. + tests/**.py: S101 + + # The following were present during the initial implementation. + # They are expected to be fixed and unignored over time. + +# Count the number of occurrences of each error/warning code and print a report: +statistics = true diff --git a/ansible_collections/cisco/nxos/.github/workflows/ack.yml b/ansible_collections/cisco/nxos/.github/workflows/ack.yml deleted file mode 100644 index fda595dc5..000000000 --- a/ansible_collections/cisco/nxos/.github/workflows/ack.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# 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/cisco/nxos/.github/workflows/check_label.yml b/ansible_collections/cisco/nxos/.github/workflows/check_label.yml new file mode 100644 index 000000000..b120bfa32 --- /dev/null +++ b/ansible_collections/cisco/nxos/.github/workflows/check_label.yml @@ -0,0 +1,11 @@ +--- +name: "Check label" +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: + check_label: + uses: ansible/ansible-content-actions/.github/workflows/check_label.yaml@main diff --git a/ansible_collections/cisco/nxos/.github/workflows/codecoverage.yml b/ansible_collections/cisco/nxos/.github/workflows/codecoverage.yml index be2018590..034589bc1 100644 --- a/ansible_collections/cisco/nxos/.github/workflows/codecoverage.yml +++ b/ansible_collections/cisco/nxos/.github/workflows/codecoverage.yml @@ -1,8 +1,9 @@ --- -name: Code Coverage +name: "Code coverage" on: # yamllint disable-line rule:truthy push: + branches: [main] pull_request: branches: [main] diff --git a/ansible_collections/cisco/nxos/.github/workflows/draft_release.yml b/ansible_collections/cisco/nxos/.github/workflows/draft_release.yml new file mode 100644 index 000000000..618f8a379 --- /dev/null +++ b/ansible_collections/cisco/nxos/.github/workflows/draft_release.yml @@ -0,0 +1,18 @@ +--- +name: "Draft release" +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: ${{ github.repository_owner }} + COLLECTION_NAME: nxos + ANSIBLE_COLLECTIONS_PATHS: ./ +jobs: + update_release_draft: + uses: ansible/ansible-content-actions/.github/workflows/draft_release.yaml@main + with: + repo: ${{ github.event.pull_request.head.repo.full_name }} + secrets: + BOT_PAT: ${{ secrets.BOT_PAT }} diff --git a/ansible_collections/cisco/nxos/.github/workflows/integration-test.yml b/ansible_collections/cisco/nxos/.github/workflows/integration-test.yml new file mode 100644 index 000000000..31375e1ca --- /dev/null +++ b/ansible_collections/cisco/nxos/.github/workflows/integration-test.yml @@ -0,0 +1,38 @@ +name: Integration +on: + pull_request_target: + branches: [main] + types: + - labeled + - opened + - reopened + - synchronize + paths: + - "plugins/**" + - "tests/integration/**" + workflow_dispatch: + +jobs: + safe-to-test: + if: >- + github.event.label.name == 'safe to test' || + github.event.action != 'labeled' + uses: ansible-network/github_actions/.github/workflows/safe-to-test.yml@main + secrets: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + integration: + uses: ansible-network/github_actions/.github/workflows/integration.yml@main + needs: + - safe-to-test + with: + lab_title: cisco_nxos + network_os: cisco.nxos.nxos + pytest_addopts: "--color=yes -n 2 --log-level WARNING -vvv --role-excludes=snmp_server" + collection_pre_install: >- + git+https://github.com/ansible-collections/ansible.utils.git + git+https://github.com/ansible-collections/ansible.netcommon.git + secrets: + cml_ssh_password: ${{ secrets.CML_SSH_PASSWORD }} + virl_host: ${{ secrets.VIRL_HOST }} + virl_password: ${{ secrets.VIRL_PASSWORD }} diff --git a/ansible_collections/cisco/nxos/.github/workflows/push.yml b/ansible_collections/cisco/nxos/.github/workflows/push.yml deleted file mode 100644 index 771dd857a..000000000 --- a/ansible_collections/cisco/nxos/.github/workflows/push.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -# 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: cisco - COLLECTION_NAME: nxos - ANSIBLE_COLLECTIONS_PATHS: ./ - -jobs: - update_release_draft: - uses: ansible/devtools/.github/workflows/push_network.yml@main - with: - repo: ansible-collections/cisco.nxos - secrets: - BOT_PAT: ${{ secrets.BOT_PAT }} diff --git a/ansible_collections/cisco/nxos/.github/workflows/release.yml b/ansible_collections/cisco/nxos/.github/workflows/release.yml index eb04259d1..6dbb1aa39 100644 --- a/ansible_collections/cisco/nxos/.github/workflows/release.yml +++ b/ansible_collections/cisco/nxos/.github/workflows/release.yml @@ -1,12 +1,12 @@ --- -name: release +name: "Release collection" on: # yamllint disable-line rule:truthy release: types: [published] jobs: release: - uses: ansible/devtools/.github/workflows/release_collection.yml@main + uses: ansible/ansible-content-actions/.github/workflows/release.yaml@main with: environment: release secrets: diff --git a/ansible_collections/cisco/nxos/.github/workflows/tests.yml b/ansible_collections/cisco/nxos/.github/workflows/tests.yml index e9f92a2a0..5e8d914d4 100644 --- a/ansible_collections/cisco/nxos/.github/workflows/tests.yml +++ b/ansible_collections/cisco/nxos/.github/workflows/tests.yml @@ -1,5 +1,5 @@ --- -name: CI +name: "CI" concurrency: group: ${{ github.head_ref || github.run_id }} @@ -12,17 +12,18 @@ on: # yamllint disable-line rule:truthy 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 + uses: ansible/ansible-content-actions/.github/workflows/changelog.yaml@main if: github.event_name == 'pull_request' + build-import: + uses: ansible/ansible-content-actions/.github/workflows/build_import.yaml@main + ansible-lint: + uses: ansible/ansible-content-actions/.github/workflows/ansible_lint.yaml@main sanity: - uses: ansible-network/github_actions/.github/workflows/sanity.yml@main + uses: ansible/ansible-content-actions/.github/workflows/sanity.yaml@main unit-galaxy: - uses: ansible-network/github_actions/.github/workflows/unit_galaxy.yml@main + uses: ansible/ansible-content-actions/.github/workflows/unit.yaml@main unit-source: uses: ansible-network/github_actions/.github/workflows/unit_source.yml@main with: @@ -32,19 +33,20 @@ jobs: all_green: if: ${{ always() }} needs: - - ansible-lint - changelog + - build-import - sanity - unit-galaxy - unit-source + - ansible-lint runs-on: ubuntu-latest steps: - run: >- python -c "assert 'failure' not in set([ - '${{ needs.ansible-lint.result }}', '${{ needs.changelog.result }}', '${{ needs.sanity.result }}', - '${{ needs.unit-galaxy.result }}', + '${{ needs.unit-galaxy.result }}' + '${{ needs.ansible-lint.result }}' '${{ needs.unit-source.result }}' ])" diff --git a/ansible_collections/cisco/nxos/.pre-commit-config.yaml b/ansible_collections/cisco/nxos/.pre-commit-config.yaml index ac716f311..6db6f7ece 100644 --- a/ansible_collections/cisco/nxos/.pre-commit-config.yaml +++ b/ansible_collections/cisco/nxos/.pre-commit-config.yaml @@ -22,7 +22,7 @@ repos: - id: add-trailing-comma - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v3.1.0" + rev: "v4.0.0-alpha.8" hooks: - id: prettier entry: env CI=1 bash -c "prettier --list-different . || ec=$? && prettier --loglevel=error --write . && exit $ec" @@ -33,13 +33,18 @@ repos: - prettier-plugin-toml - repo: https://github.com/PyCQA/isort - rev: 5.12.0 + rev: 5.13.2 hooks: - id: isort name: Sort import statements using isort args: ["--filter-files"] - repo: https://github.com/psf/black - rev: 23.11.0 + rev: 23.12.1 hooks: - id: black + + - repo: https://github.com/pycqa/flake8 + rev: 7.0.0 + hooks: + - id: flake8 diff --git a/ansible_collections/cisco/nxos/CHANGELOG.rst b/ansible_collections/cisco/nxos/CHANGELOG.rst index a23f4bf80..7f8bda1e5 100644 --- a/ansible_collections/cisco/nxos/CHANGELOG.rst +++ b/ansible_collections/cisco/nxos/CHANGELOG.rst @@ -4,6 +4,79 @@ Cisco Nxos Collection Release Notes .. contents:: Topics +v8.0.0 +====== + +Major Changes +------------- + +- Updated the minimum required ansible.netcommon version to 6.1.0 to support the cli_restore module. + +Minor Changes +------------- + +- Add support for cli_restore functionality. +- Please refer the PR to know more about core changes (https://github.com/ansible-collections/ansible.netcommon/pull/618). + The cli_restore module is a part of ansible.netcommon. + +Bugfixes +-------- + +- nxos_facts - correct parse JSON output when multiple interfaces have IPv6 address assigned (https://github.com/ansible-collections/cisco.nxos/issues/771). + +v7.0.0 +====== + +Major Changes +------------- + +- This release removes four previously deprecated modules from this collection. Please refer to the **Removed Features** section for details. + +Removed Features (previously deprecated) +---------------------------------------- + +- The nxos_logging module has been removed with this release. +- The nxos_ntp module has been removed with this release. +- The nxos_ntp_auth module has been removed with this release. +- The nxos_ntp_options module has been removed with this release. + +v6.0.3 +====== + +Bugfixes +-------- + +- nxos_acls - Fix parsing of ace entries with range in it. (https://github.com/ansible-collections/cisco.nxos/issues/788) + +v6.0.2 +====== + +Bugfixes +-------- + +- nxos_interfaces - Correctly enable L3 interfaces on supported N3K platforms (https://github.com/ansible-collections/cisco.nxos/issues/749). + +v6.0.1 +====== + +Bugfixes +-------- + +- Prevents module_defaults from were being incorrectly applied to the platform action, instead of the concerned module. +- nxos_file_copy - correctly set file_pull_timeout/persistent_command_timeout value. + +v6.0.0 +====== + +Release Summary +--------------- + +Starting from this release, the minimum `ansible-core` version this collection requires is `2.14.0`. The last known version compatible with ansible-core<2.14 is `v5.3.0`. + +Major Changes +------------- + +- Bumping `requires_ansible` to `>=2.14.0`, since previous ansible-core versions are EoL now. v5.3.0 ====== diff --git a/ansible_collections/cisco/nxos/FILES.json b/ansible_collections/cisco/nxos/FILES.json index 4f62ba841..b7d4211ca 100644 --- a/ansible_collections/cisco/nxos/FILES.json +++ b/ansible_collections/cisco/nxos/FILES.json @@ -8,1725 +8,1781 @@ "format": 1 }, { - "name": "codecov.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4aa7e485dd4db6f8a55b046088c745def2b3145d9499ccda4e9a3336467dcea2", + "name": "docs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "LICENSE", + "name": "docs/cisco.nxos.nxos_snmp_location_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "chksum_sha256": "321530eb77aa27eecab0eb6090a189eee7b9a7431cc94750c1f0f38718058d4d", "format": 1 }, { - "name": "requirements.txt", + "name": "docs/cisco.nxos.nxos_user_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "70053744bf8f5b698f82ad59a6daec106188d9b63c6d1246f860f21ab8cb6ac5", + "chksum_sha256": "5987398411ee888f2b8e148be96c318e831a7b712b0de344d456fba46825197f", "format": 1 }, { - "name": "meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.nxos.nxos_ping_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "74122faa018ba84c3628abadef990f3888d58a72897d4b56ec41882348a12141", "format": 1 }, { - "name": "meta/runtime.yml", + "name": "docs/cisco.nxos.nxos_igmp_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "022e45d02e5b6967bacc2ff1a60c93012a7df35561c44404c9835128e9134aeb", + "chksum_sha256": "9f12f1c5cb360aa1634964c6343e14141cfce7fc49e37e0062c2957b20459399", "format": 1 }, { - "name": "meta/__init__.py", + "name": "docs/cisco.nxos.nxos_prefix_lists_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "e411c76a91d77aac63c31c51864f7247f91fb48226b134bbb1b2cbc29029bfa3", "format": 1 }, { - "name": "README.md", + "name": "docs/cisco.nxos.nxos_vrf_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ea385f1a3bb47260949ad5a2ba1421a0c068d3a91574b9cce468fd4b49e48c0c", + "chksum_sha256": "33c9e1a06961e0785265c7b132c9caf7fa33c4cff00f15ef479787531d56f122", "format": 1 }, { - "name": "plugins", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.nxos.nxos_banner_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f33242bd0d3b632cb5e97dc9ce3e6a9029060e204c87a3554aff1ed36a7d19f0", "format": 1 }, { - "name": "plugins/terminal", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.nxos.nxos_aaa_server_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ae7d06f89fb79b0ff5b7dbb41b289db70e8c602a08c1baac5b059adc72775665", "format": 1 }, { - "name": "plugins/terminal/__init__.py", + "name": "docs/cisco.nxos.nxos_overlay_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c8362ed52554894dd979a332e946ede7fa0834c17d8980a08a282320a2a18391", "format": 1 }, { - "name": "plugins/terminal/nxos.py", + "name": "docs/cisco.nxos.nxos_install_os_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e49e9c495e05b71317fa3d2c462cb085ce5827874235484d735f470e7afa5059", + "chksum_sha256": "a2ad6d9178006558a46f6ef8038621cebd25eb937493f76503fbde8f65f9a6c6", "format": 1 }, { - "name": "plugins/inventory", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.nxos.nxos_feature_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e31d99494f87afad1ecdce42d483a32e523e8e978f42b1955de1f3b0033bcf80", "format": 1 }, { - "name": "plugins/inventory/__init__.py", + "name": "docs/cisco.nxos.nxos_hsrp_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "41fd5b3b6c57a33c8ce81d03798b35d598496b89d13327c18dfe27dedaf99ae4", "format": 1 }, { - "name": "plugins/netconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.nxos.nxos_command_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8414812954c669abeb7370516fd50ea893bccd1a5e804d81d3174cafc441aad6", "format": 1 }, { - "name": "plugins/netconf/__init__.py", + "name": "docs/cisco.nxos.nxos_ospfv2_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "d2704aec625f078e9b8c03b949dec0b6ce33ee85efc5e495b37f0c27339b20c8", "format": 1 }, { - "name": "plugins/netconf/nxos.py", + "name": "docs/cisco.nxos.nxos_vlans_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c00660150bfe527dd71eeeb961c9e08da9ac65faa7e1852f4737a47305e723bc", + "chksum_sha256": "e60a339f8dbb48eaed5188761be6c6b375f5f6641ff322d3904e45f199f5ee0f", "format": 1 }, { - "name": "plugins/httpapi", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.nxos.nxos_config_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d4ad6ef9b747b454824d16ca0cd7c56fdde289a6cc8c93c9ecf3bf1d23db5f84", "format": 1 }, { - "name": "plugins/httpapi/__init__.py", + "name": "docs/cisco.nxos.nxos_logging_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "7794e28520082d477a17b1e52ac8feeacf092bd98b7e4c11e832cfb67aa49b3b", "format": 1 }, { - "name": "plugins/httpapi/nxos.py", + "name": "docs/cisco.nxos.nxos_vtp_version_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "acfbda7df81189f8211a3d8af3d7e567bc719328e075531c154671cd97bd92be", + "chksum_sha256": "c27cc4c99dbad288216a917b46c9949f1cc2ed72a4268e79ef61e708d6a1edff", "format": 1 }, { - "name": "plugins/cliconf", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.nxos.nxos_snmp_user_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0ebfbf6a1bdda73a9f3e5943dc33bbb38d636865ab213c2e79501baca180a6ef", "format": 1 }, { - "name": "plugins/cliconf/__init__.py", + "name": "docs/cisco.nxos.nxos_lldp_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b14e490bedd8b115c8beebe5ec81fda4a7db93457f546fbca91fe2bce3887e76", "format": 1 }, { - "name": "plugins/cliconf/nxos.py", + "name": "docs/cisco.nxos.nxos_devicealias_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d4f94f69919d7d494652e191f1a5074a1022c120da62d68eb992c4879f9b505", + "chksum_sha256": "ff0660c7a4fa99aabb1c0c1d59d33fc923d3cdc50d2be391fc79bdeef13ae66b", "format": 1 }, { - "name": "plugins/modules", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "docs/cisco.nxos.nxos_snmp_host_module.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "738d6be19ec9aea9158035e6f1a2302d3484500ee9b3148e2d01628bf2f9fcdc", "format": 1 }, { - "name": "plugins/modules/nxos_vpc.py", + "name": "docs/cisco.nxos.nxos_evpn_vni_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "edd715fc9e823dbf37a31a16de8f680132e0cc9b2feea46ab073d34f8098acf5", + "chksum_sha256": "1d69d440ff1844c0ffcf234f50c4cbaccafd2a5dd56481e14aeecac6c80e94a1", "format": 1 }, { - "name": "plugins/modules/nxos_reboot.py", + "name": "docs/cisco.nxos.nxos_snmp_traps_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "826e076559d7143fc03a3de9f0e5ec125241fd3196037f2a1a524e033e75b8de", + "chksum_sha256": "25326502a9e485b1bfe99093b316af67686f797fb8ce8d972c9ae914d8e9da27", "format": 1 }, { - "name": "plugins/modules/nxos_lag_interfaces.py", + "name": "docs/cisco.nxos.nxos_pim_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d74c13af260252c75c2fce4b20ac3e8d85c14d45bec8a7ea04016a448b3a8b48", + "chksum_sha256": "f974bc3ca8293d0e60b7dd26ef3babfc02003702ea5632feee97fbba59fc59a0", "format": 1 }, { - "name": "plugins/modules/nxos_nxapi.py", + "name": "docs/cisco.nxos.nxos_ntp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cf44a3e80959a805238202c49a5a639d6a1ecf5f6d8191b93b3f6db314a80c15", + "chksum_sha256": "07810bf5a6fb659d294c956436bb3527b4506c7a07642997af02f1cf717d97d9", "format": 1 }, { - "name": "plugins/modules/nxos_logging.py", + "name": "docs/cisco.nxos.nxos_vsan_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3a99d36431853d5cf83e4dcc3602302c2a48415123ff93066ac0fd54ed079538", + "chksum_sha256": "f7557df9a0b6bef895a8f935bd24979b7e279cc0768e8109973a7dc3b9c5dc29", "format": 1 }, { - "name": "plugins/modules/nxos_zone_zoneset.py", + "name": "docs/cisco.nxos.nxos_aaa_server_host_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "34d94bcc1af5752a00ada15b62428af97cd8ea28fe48a8b0760b90105a93ff31", + "chksum_sha256": "e8d1dc8303a82ca59e70c37d6852f8dd1ba6b002e896a9f4f2182148a6944ef7", "format": 1 }, { - "name": "plugins/modules/nxos_snmp_server.py", + "name": "docs/cisco.nxos.nxos_snmp_community_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fee45cc5653eb0c0148e2213a8d2de129410f2a001496d684b2538c3a8e294f9", + "chksum_sha256": "273905bc36e919c6f348d146018b77d4b028457714b0f3b4b2fad6a078680fe7", "format": 1 }, { - "name": "plugins/modules/nxos_vlans.py", + "name": "docs/cisco.nxos.nxos_bgp_templates_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d37e3cbddfb07ede884e014bcd1edaa6fb20366953c3e8de40c2872d63ea8cf", + "chksum_sha256": "00bb83305a1e55e1fa99e7008ff4131123f6702514a66409c524e6ca1374c00e", "format": 1 }, { - "name": "plugins/modules/nxos_snmp_host.py", + "name": "docs/cisco.nxos.nxos_udld_interface_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae6e69d2c2af158c70e81aed0f2a6dbccca2c69033861bd697af4dba0c5183c7", + "chksum_sha256": "7786920d50729a8a8a73a20bcd0d4296af8095f52590076177511dc0c696dda5", "format": 1 }, { - "name": "plugins/modules/nxos_igmp_snooping.py", + "name": "docs/cisco.nxos.nxos_bfd_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ee94035d9f4a71393a16670f8e269064476b6da5d99071a4f23cfc253da13703", + "chksum_sha256": "1ff1d376f71be1de3dc5e97bfae1ea331e92430adb9e31b61e6fdde8da710538", "format": 1 }, { - "name": "plugins/modules/nxos_vtp_password.py", + "name": "docs/cisco.nxos.nxos_static_routes_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6cb79ae92bdf1ab82291e4b331dfeb53b42f004a416908268380813905b8215", + "chksum_sha256": "744ec8723ea44a3b9514b823ad0d2803bc153654f4e831d33e2fad5522f4d3a9", "format": 1 }, { - "name": "plugins/modules/nxos_snmp_location.py", + "name": "docs/cisco.nxos.nxos_vxlan_vtep_vni_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a11d2a363173b645bdf9c8cd1cdb80e77b94d4c169069614deae90a441a1de22", + "chksum_sha256": "7aebad3ad5c1c53036df468c782c366a17fea865b15a189f99aff17c171e464b", "format": 1 }, { - "name": "plugins/modules/nxos_snmp_contact.py", + "name": "docs/cisco.nxos.nxos_vrf_interface_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "936a5e9b00d8c46ed39a8818f5806971f16fc8cebd3f5106e6909b7ed8395ac1", + "chksum_sha256": "64296c4de9145ceec2a49e4f09b2573fd163bbe33247b395769cb6833cdd16ba", "format": 1 }, { - "name": "plugins/modules/nxos_vtp_domain.py", + "name": "docs/cisco.nxos.nxos_gir_profile_management_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e76836b4b68b3c32d5a146bcb6738009872e3e69d3afffe269e50846d4a84058", + "chksum_sha256": "63332c56149477772d1571d4884f3dd7d99c11f8119942426c1b22898d63dcc8", "format": 1 }, { - "name": "plugins/modules/nxos_snapshot.py", + "name": "docs/cisco.nxos.nxos_snapshot_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5cf9eab5ad1ae6953579860b7365ce6e6d604f69fe00389f656c63f99cb3b24f", + "chksum_sha256": "a0e3fad000d677b7f24bf64090f02742004a9cf100306a97f51aff9594fe8d9f", "format": 1 }, { - "name": "plugins/modules/nxos_bfd_interfaces.py", + "name": "docs/cisco.nxos.nxos_rollback_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "87e8b096568e3d9be77c6a3b26c865f06dd2f842ddef22a8ac7edd095482f664", + "chksum_sha256": "04cf041066c5d09e1a5317b7cb7cc1eb2504f0d1faeb9a28d3d59f3ae98c783f", "format": 1 }, { - "name": "plugins/modules/nxos_vrf_af.py", + "name": "docs/cisco.nxos.nxos_rpm_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c2029b042fc0e83b5b6298dcd6242aa7f5b014653eed4e703860ba6baddb3155", + "chksum_sha256": "e928284ecee7ed27ef75a660db2e02900d8de4cf0d255bfd31a819f4e2abe036", "format": 1 }, { - "name": "plugins/modules/nxos_ntp_auth.py", + "name": "docs/cisco.nxos.nxos_vtp_password_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ebfe534e67975d2e35170269fefaadc7b9327c3d4b2c754e09bf9d61b0a744e", + "chksum_sha256": "aba8c49ea83acf4e1ad8de779ebc06e21940537ce459b53bcfbdabdf72dacd06", "format": 1 }, { - "name": "plugins/modules/nxos_install_os.py", + "name": "docs/cisco.nxos.nxos_vrrp_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c750b05a78eefb2b014b339ef86a02de8a1cf8daa31bc7c8e68ccdd7be589c4", + "chksum_sha256": "26a52da59610c540242b40091c3fc689cf5b1672a4f36084202ebba38f5589e0", "format": 1 }, { - "name": "plugins/modules/nxos_vrrp.py", + "name": "docs/cisco.nxos.nxos_igmp_interface_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a261501d6200ac9685d544c2dd29f284377da8592864f7ad26e74ef4e55d5567", + "chksum_sha256": "1e5c432e7e272efb56ee80dda73b66a13b1a74e16f14bd48d38681023f710b7f", "format": 1 }, { - "name": "plugins/modules/nxos_vpc_interface.py", + "name": "docs/cisco.nxos.nxos_facts_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7361c2f7afeaedada1c42037a5f54d16b934ef5993f155819e0edb731c21de1f", + "chksum_sha256": "6ef51706f5729ece09bdcce4c7e1ab04ec7d58d4ae6c3a7e12ebf275b5d792ad", "format": 1 }, { - "name": "plugins/modules/nxos_user.py", + "name": "docs/cisco.nxos.nxos_lldp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f4dfc0cd9bc2a5d54075d68829c8129792633525fae273a4185710584b563981", + "chksum_sha256": "6994ab2f365796541f268d6d3051e4a192e2b911495e12342d6d3cad12016f2b", "format": 1 }, { - "name": "plugins/modules/nxos_command.py", + "name": "docs/cisco.nxos.nxos_cliconf.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5fd4119bed0074064b1158cbb231f3e2277576902d6fa9fb5bc42cc6ffd09d48", + "chksum_sha256": "546fc754b81109404a33285c90c3bba565b1a2529e00b7284609b62bb25b4d8b", "format": 1 }, { - "name": "plugins/modules/nxos_hsrp_interfaces.py", + "name": "docs/cisco.nxos.nxos_ospf_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9dd94e0d4d52a8ac424b30ec631b550f2438af36e3109c2da875d89a74f65d9e", + "chksum_sha256": "808523316e7aa23425653e4c2caed8ea2732ebb51fb3aa0f15dddd416d049725", "format": 1 }, { - "name": "plugins/modules/nxos_aaa_server.py", + "name": "docs/cisco.nxos.nxos_zone_zoneset_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7d0ba90c00bef7d014ca922ce5e66ea10fe116bb9af88bfdf671402527b404b", + "chksum_sha256": "2b25696dcecfa3f12cf9a899132d4b220dcc774df51e1aea5fdecd422ca3a36a", "format": 1 }, { - "name": "plugins/modules/nxos_ospfv2.py", + "name": "docs/cisco.nxos.nxos_vpc_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "889e9341133658eadea7cf2516361d1de0998baa8b2c08d203ea157977482530", + "chksum_sha256": "0aeb5a090773bcf219cb3ab181424bde284e9669ccc3ace93175b739fec4f81a", "format": 1 }, { - "name": "plugins/modules/nxos_lldp_global.py", + "name": "docs/cisco.nxos.nxos_gir_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "485b35aeac40cd9d3dfaf18a7f5481fc14796ce054387af3dca72160677f6dd7", + "chksum_sha256": "2969b2a880bc98f5272720086059bc55d861fc1ce00c8854c75aa061ba3aa8bf", "format": 1 }, { - "name": "plugins/modules/nxos_banner.py", + "name": "docs/cisco.nxos.nxos_bfd_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a98cf0828178ff3233b836f7a1d1478ad4f5020143b0a6435630737a82b4110e", + "chksum_sha256": "bcc5883c369f37ac683991364855f247f77299f2decc72a5e5c794e681a92fbc", "format": 1 }, { - "name": "plugins/modules/nxos_pim_interface.py", + "name": "docs/cisco.nxos.nxos_pim_rp_address_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "62a33fbb98411f4b017a3d884645f48f8e79049f27e0f3d87698b3bcb7f0c48c", + "chksum_sha256": "94630c630affe8dedd940b41d0fcdab02712ade527964334956ca5698280d13d", "format": 1 }, { - "name": "plugins/modules/nxos_overlay_global.py", + "name": "docs/cisco.nxos.nxos_lacp_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2e7bc1eff3259825c6eae134d87e92ee922cc3fd423b63fac821c659ea891d8", + "chksum_sha256": "81829e369c84802f5cc2fdbf88d380007da8d326106cafaacb981d86f38be6e1", "format": 1 }, { - "name": "plugins/modules/__init__.py", + "name": "docs/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/modules/nxos_pim.py", + "name": "docs/cisco.nxos.nxos_vxlan_vtep_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a06919bdfbaab64ef58295c408def23dc36336b630e12d80a2a80e3a31a53a85", + "chksum_sha256": "920cbc7cf6b2d9736bbeacbf6751674c6b8985af13183432f027070235ed745e", "format": 1 }, { - "name": "plugins/modules/nxos_snmp_traps.py", + "name": "docs/cisco.nxos.nxos_acl_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "73ef124bdd93a1b8d6d7d55870e04c99bb29cde93c0c400884f06c4972057f75", + "chksum_sha256": "03a8274fb4992504f056b15b84a7c7f98b08a9d3160a12ea038a1a700039e04a", "format": 1 }, { - "name": "plugins/modules/nxos_file_copy.py", + "name": "docs/cisco.nxos.nxos_system_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8418e53de9a83561d6c4b60b2d5d8115863d210376acbebf4f4c41a6489cd2a5", + "chksum_sha256": "7701830b6698de0515fb009aa9b2c01256f3144d62909b760ccf23e749ec7422", "format": 1 }, { - "name": "plugins/modules/nxos_ospf_interfaces.py", + "name": "docs/cisco.nxos.nxos_snmp_server_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07b1a4fda6c81b24e016828d5a21d49cb141cd969e32e18e7713e31206eb5afb", + "chksum_sha256": "2c41210552496035bd6ba8eed6ec9d37ad4445b724438207a50bb4ce9e8fb6bb", "format": 1 }, { - "name": "plugins/modules/nxos_vsan.py", + "name": "docs/cisco.nxos.nxos_bgp_neighbor_address_family_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ffc52ffc10befe666ce3cc43cac66a47a5b76ed5465cb691c888f5847a1b3468", + "chksum_sha256": "1fe6fe7be307fe262e49165038677e55a79be75ce8a1eaa0edf1617aa0b8c4e9", "format": 1 }, { - "name": "plugins/modules/nxos_facts.py", + "name": "docs/cisco.nxos.nxos_httpapi.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb1ae146c9df5aac3b721750a8074dd112b0397bb50ada4cc8d7629af8e52e1c", + "chksum_sha256": "eb7f6fd0b46ad4b478746f0518b8d443e541f44ba8d77f999a42a760671ea015", "format": 1 }, { - "name": "plugins/modules/nxos_hsrp.py", + "name": "docs/cisco.nxos.nxos_reboot_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8e0bccf6fb0aa7ce0cbacacb8acf9821015472213a2319df618e7eef4d03a52f", + "chksum_sha256": "194778e502ec450e673e2562baf84d459a9d844c3c3f281cd6ed2f2bc2618087", "format": 1 }, { - "name": "plugins/modules/nxos_interfaces.py", + "name": "docs/cisco.nxos.nxos_vpc_interface_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e748cfa29b6be827349f09c36e08c66c5e13d53ace6aff9412ebbc49b7218234", + "chksum_sha256": "941e607951f2fe1347329a6f68d9303ff04fcebedfd0792fe5ab181625e120d3", "format": 1 }, { - "name": "plugins/modules/nxos_ospfv3.py", + "name": "docs/cisco.nxos.nxos_hsrp_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0eee52b5452442a4a30eb75456593d85eb35c58e80b603bd94d43951f3fec0d8", + "chksum_sha256": "6cbf7b6611599b267ed05be736c19303ecc74c696750ea3b7b27bf97f942644f", "format": 1 }, { - "name": "plugins/modules/nxos_lacp.py", + "name": "docs/cisco.nxos.nxos_igmp_snooping_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf38b4169e3605546f6f4d7138529c1ba3effb60f74ea844f205ef2160e800c1", + "chksum_sha256": "a31b9e7cac6c66069bc1b9a46fbf4f3e778fec3cdbdb55f4b6d672abeaf7d795", "format": 1 }, { - "name": "plugins/modules/nxos_gir_profile_management.py", + "name": "docs/cisco.nxos.nxos_udld_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "38cc5881a72e0809fd023188435ecae1085b0e568f06865359e65bdd49853ef8", + "chksum_sha256": "26d0773b5cbd658f39b2c08b9949e45ae5aa8a94405c4f1ef9ed0708c682c4a3", "format": 1 }, { - "name": "plugins/modules/nxos_config.py", + "name": "docs/cisco.nxos.nxos_l3_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4ffbbb1233a6cd3811690832fdffc2ebbdea61c291f168b04995e3ed1f8dab62", + "chksum_sha256": "01adb1dc48dfbe1a73cf269060e1f83310d5e05b813dd109770e5e335abcb436", "format": 1 }, { - "name": "plugins/modules/nxos_ping.py", + "name": "docs/cisco.nxos.nxos_route_maps_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d2648ff85a7fee59b9b0b099afde09e1f7f11c7e5d9f033d27a2af0953e854e", + "chksum_sha256": "2041055670405961112eb26ef06db6afda07055ef02a81026f1f0293144c7331", "format": 1 }, { - "name": "plugins/modules/nxos_telemetry.py", + "name": "docs/cisco.nxos.nxos_acls_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e518a2c46e0bd074881b5dc60092154d8a1438a26a979dae60d98411288a5247", + "chksum_sha256": "2869249548f0b1aaf9f1d7c8b3d24a5301a7ffa88fadb82dda595aca2374ccb2", "format": 1 }, { - "name": "plugins/modules/nxos_snmp_user.py", + "name": "docs/cisco.nxos.nxos_ospfv3_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d16699e2fd607da804183e1fe29c6981095303d22b836f865f2046dc2c50ecf0", + "chksum_sha256": "041dd0262265b58cbe0bf6e505a7f676eb6b2d4a5fc59681f1e4b5e6c463de56", "format": 1 }, { - "name": "plugins/modules/nxos_vxlan_vtep_vni.py", + "name": "docs/cisco.nxos.nxos_netconf.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "00cc8a5f8826d10b27cbea4c1523a5dc48a57d174ae7ecfd918e02d506902b80", + "chksum_sha256": "da11bd9904bba75e1ca0484cf6ddc0ebcd0a2ffc12b1e9132d60f8a0bc54705c", "format": 1 }, { - "name": "plugins/modules/nxos_udld_interface.py", + "name": "docs/cisco.nxos.nxos_fc_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2346b5a0aec6682e11c7ee21cf5f77fd1b53bd4839d11a7da4e23e8378049aaa", + "chksum_sha256": "865bcbc040c3370de4f47a6b8e68c1339f8ba54dbbaa362b0ceeae8cecd86cc8", "format": 1 }, { - "name": "plugins/modules/nxos_l3_interfaces.py", + "name": "docs/cisco.nxos.nxos_lag_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "38db1135b557e314d88cdba25450ecf71c91d2269f2d2da9cf37d1f1229b688c", + "chksum_sha256": "4980199790b302fc46982df8e0c2fa5f5d81ef50ebae4d9961ebbfe6cb62eb0c", "format": 1 }, { - "name": "plugins/modules/nxos_fc_interfaces.py", + "name": "docs/cisco.nxos.nxos_bgp_address_family_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a746fdd004b73000fb8f37565758330710a9b3012f5a4e46362a33434bcec9e7", + "chksum_sha256": "9706519c8d06db723b98f3c2ed78ffda4ca604b08215be80461fad2defd9507c", "format": 1 }, { - "name": "plugins/modules/nxos_igmp.py", + "name": "docs/cisco.nxos.nxos_hostname_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec8870d4fb6ecf6089717936138d43fc5fe54381994a0a7d5e8299a94f9ade67", + "chksum_sha256": "2cc61e3ea5053c4ee1bb14f41a85e67e4790010b7142e21bb72fcc88a5e715aa", "format": 1 }, { - "name": "plugins/modules/nxos_devicealias.py", + "name": "docs/cisco.nxos.nxos_telemetry_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24e26ab14bb905ab26db440ceec24bad795a13186ad2af2eec0325637dd3814b", + "chksum_sha256": "70e0841739f0a1ab237624a5f5f6fbbebbeb61244a9fe00e9ae6a6af936d94a9", "format": 1 }, { - "name": "plugins/modules/nxos_rollback.py", + "name": "docs/cisco.nxos.nxos_evpn_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fec43544c7cb26eb84d9cdd22e74a4f042de04943e5896fcd45a1020f003e82", + "chksum_sha256": "993ea85ff1bf02311f55646f0c5dcadc2d216a2819b7902f43470a645d1b90d7", "format": 1 }, { - "name": "plugins/modules/nxos_acls.py", + "name": "docs/cisco.nxos.nxos_lacp_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb0a7f4add18a48fd542770f1d96e02ccfc64653a6b99f765969419c3abdd177", + "chksum_sha256": "bf3920fe2dbbd42f322d4a0f4dd23c875d01f6a5545dbc648ae5ae3aa62320de", "format": 1 }, { - "name": "plugins/modules/nxos_vrf_interface.py", + "name": "docs/cisco.nxos.nxos_vtp_domain_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2876512450aa2920f88a2d408eb72cd7976ec4124a95b058d57427d0f939fb1", + "chksum_sha256": "18a52103976ba1d930a98e0e7fa45de34d95a86ca222e59b0ffc9629585cdf6a", "format": 1 }, { - "name": "plugins/modules/nxos_lldp_interfaces.py", + "name": "docs/cisco.nxos.nxos_l2_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b7bfa2021d5f29528789e26074483fdc4b98187dd3a618dcbe38e14a06439e88", + "chksum_sha256": "8b94e0fc5aeaa2d80e755b774c097970fead1ddb156eb018bc852516de3ca877", "format": 1 }, { - "name": "plugins/modules/nxos_l2_interfaces.py", + "name": "docs/cisco.nxos.nxos_interfaces_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0e3ec947b751771f318eccdf3b086fad8ae9615deee632f00055081f594a3318", + "chksum_sha256": "ab3f38f88a8fbc5884c3694784ba4991c29c7690f21725706603dfe83c35e6e4", "format": 1 }, { - "name": "plugins/modules/nxos_hostname.py", + "name": "docs/cisco.nxos.nxos_snmp_contact_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d5e7ce46e1d1143211af0f5747253b429eaa78c68993852703861cf469ccad10", + "chksum_sha256": "cbb715723ead144ae09062bf77f7f4a73e4a5035a81a7ecec925b00410e8579b", "format": 1 }, { - "name": "plugins/modules/nxos_system.py", + "name": "docs/cisco.nxos.nxos_nxapi_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6797e5f93cb99da4c135b809da1eea5e9b8363caa5c49b830cd70ffbd66c1db", + "chksum_sha256": "7e1d3a6d1f0ab8c170068321f77ab36c1161892773c9efa90dfff711664bfdb3", "format": 1 }, { - "name": "plugins/modules/nxos_vrf.py", + "name": "docs/cisco.nxos.nxos_file_copy_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "118fd73f988199e74b0e6d5924fe9fd2ad995da9f9c6024485b4042f234aeab8", + "chksum_sha256": "c38e717848ddfc093b17245d08c45e6beda5d7b1c263453ef0a43171d5008f47", "format": 1 }, { - "name": "plugins/modules/nxos_lacp_interfaces.py", + "name": "docs/cisco.nxos.nxos_bgp_global_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efe09b0a78ee09528820134c160e70776659f1eae9aaf8cfd713d91011cccf4b", + "chksum_sha256": "83bf0acc036ccd3a7508746b650720220d208e5c8ff4894fff982b151af3689f", "format": 1 }, { - "name": "plugins/modules/nxos_aaa_server_host.py", + "name": "docs/cisco.nxos.nxos_vrf_af_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d59827f8eb3a10657b2dab79a121d44e976b207ed70c9b39f1fa343d67f1e328", + "chksum_sha256": "3719fa178c08c4d172a9a0307f402b45434931b395cc57f2451cc810bd45a786", "format": 1 }, { - "name": "plugins/modules/nxos_bgp_address_family.py", + "name": "docs/cisco.nxos.nxos_pim_interface_module.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9155dc8d46358457d800c604aa29fa38137af884caf9839e5139d5cc53d69015", + "chksum_sha256": "b7fa1c8e28a128af94059b3d66e3e40c97e7d748a858ff74e77a0e313641c3ff", "format": 1 }, { - "name": "plugins/modules/nxos_vxlan_vtep.py", + "name": "LICENSE", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9aefbaf9557a93bafc8de522a59e3246967964e658c9ee7631fa202e0b5215fa", + "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", "format": 1 }, { - "name": "plugins/modules/nxos_prefix_lists.py", + "name": ".github", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": ".github/release-drafter.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fbc6db3871917b6239c2e37caede67c3a6f69e2c578357f5831bf74173c09bd5", + "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", "format": 1 }, { - "name": "plugins/modules/nxos_udld.py", + "name": ".github/workflows", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": ".github/workflows/integration-test.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f9d531c20f551d644be87cf218c7bf8175f531a3190c60c7a20ae281203fbe8d", + "chksum_sha256": "84eed17fdcd3b69533dc7f9f6400611d3bd9fd59bc91eb4a4db491d0361c0020", "format": 1 }, { - "name": "plugins/modules/nxos_ntp_global.py", + "name": ".github/workflows/check_label.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6159f7b3f74c36fdae3eff740202f9db87d92eaae9ecd0bcc69d790312daacb9", + "chksum_sha256": "9eb6abad2038b10cd6ea70310aa88d163f10c374d1728df29bb553eff2acfaba", "format": 1 }, { - "name": "plugins/modules/nxos_acl_interfaces.py", + "name": ".github/workflows/codecoverage.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "721b0093fc696b7208b679f9c640e9828874f9cf049e0fc7799d12f3c4a29786", + "chksum_sha256": "9f229f5c0dd8649678fef5a0fcb616d83c26579b541b772de4b2832172678f06", "format": 1 }, { - "name": "plugins/modules/nxos_logging_global.py", + "name": ".github/workflows/release.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ddff9047c280d4e9d13643386551dc85c161dfd3f356a486e28930d7cae28477", + "chksum_sha256": "2e3f90a3147d93b97347d8418352f23e201417e05539a466399dd258a65d699c", "format": 1 }, { - "name": "plugins/modules/nxos_feature.py", + "name": ".github/workflows/draft_release.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8b8a6deea08ebeae462e2fefbcc4762dd67b71bc5a5d0f51e3ea3595375888da", + "chksum_sha256": "b582d81b8bbcfb8d0f077f40ff65463c0803c2a2713664aa9f28ff167c48e483", "format": 1 }, { - "name": "plugins/modules/nxos_static_routes.py", + "name": ".github/workflows/tests.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af380095fd7d243c8f9509b1abd065097b0e0e0df449d9d6da4e932987992550", + "chksum_sha256": "5e5d8797ac2c34af1b5cf6e9dd3c760655623bb9d7c40cff83958202066f69f6", "format": 1 }, { - "name": "plugins/modules/nxos_bfd_global.py", + "name": ".github/dependabot.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2121178e29e5e34ca77f7ed2dc78e7fdcf6ddbe7a9ab16545c39c11dc00f7ce", + "chksum_sha256": "c4d7b4c429faafe0eb46a070eafcd3d8d84d9083b5fe72943d627b5f4ccf0dd8", "format": 1 }, { - "name": "plugins/modules/nxos_evpn_global.py", + "name": "README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3cb0c7e66e32783f346744b3b08edd63f2d3ac82b67addb55597a19b48db7e9c", + "chksum_sha256": "95f172f0a54c78871ccb1230fb692ef79368765c2cc63d7d86c3a3f781e0f5ff", "format": 1 }, { - "name": "plugins/modules/nxos_vtp_version.py", + "name": "bindep.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c822abea7b871b5781dcf46856c07f0214793bc3768743d45966ae5a0b6e779", + "chksum_sha256": "f0e2709e0a523d84f824ccfb6883f62e9d27f70bd7a38be0d18506223ccfe60e", "format": 1 }, { - "name": "plugins/modules/nxos_evpn_vni.py", + "name": "plugins", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/modules/nxos_bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d4efeefbc3a4324d2b692ece1149289d2f249c8f338fc9e15d8adabf15ab71e8", + "chksum_sha256": "f2861a072c7f54bdf90fa0fca06b8ce0af964f3073e27a4ac00940a7fdfeb26a", "format": 1 }, { - "name": "plugins/modules/nxos_ntp.py", + "name": "plugins/modules/nxos_vrrp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d68b52173945d37cf18fa5253ab87d00efc2f77374821e8e22c82260fa04b38", + "chksum_sha256": "a261501d6200ac9685d544c2dd29f284377da8592864f7ad26e74ef4e55d5567", "format": 1 }, { - "name": "plugins/modules/nxos_route_maps.py", + "name": "plugins/modules/nxos_zone_zoneset.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f9206f344d091d6c3bc996ee2b961b2f52611be676b3d790a257e513faad2838", + "chksum_sha256": "44ead6bd11cb8112b667ecc6f7d1fd0751941737d6fc1154c73501e4abdd42a0", "format": 1 }, { - "name": "plugins/modules/nxos_bgp_templates.py", + "name": "plugins/modules/nxos_l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "955e3860781eef5083a0fa88e80d95803645ca485edd357b5867d3706bbc45bb", + "chksum_sha256": "06d0406435fadc33d78bdc5dc2b541d3cdb08b972497a7fd86357354638056a7", "format": 1 }, { - "name": "plugins/modules/nxos_igmp_interface.py", + "name": "plugins/modules/nxos_gir.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e971debe6199b397fefb3ebdb296851c2200f444d11bc1aec9e705e3f142dd40", + "chksum_sha256": "05675c570b78691538eaa20c62f548b41885b8db20018e5805a6ced813eaff40", "format": 1 }, { - "name": "plugins/modules/nxos_bgp_global.py", + "name": "plugins/modules/nxos_igmp_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f5f28fab53dae03299c208d2e851fdd0ef1baa1deda374ea26043722c0aedd6", + "chksum_sha256": "c8cbb9aec6383daa0e4a82c2c4c3d29ef313c078404d70413301abdd98513c17", "format": 1 }, { - "name": "plugins/modules/nxos_rpm.py", + "name": "plugins/modules/nxos_lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2ba7d2ec024a075a96be051996d4eba6f6e370058c6df454b89ac7c36759f58", + "chksum_sha256": "bf38b4169e3605546f6f4d7138529c1ba3effb60f74ea844f205ef2160e800c1", "format": 1 }, { - "name": "plugins/modules/nxos_gir.py", + "name": "plugins/modules/nxos_vrf_af.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05675c570b78691538eaa20c62f548b41885b8db20018e5805a6ced813eaff40", + "chksum_sha256": "bcddf538b58de6ee3355af3f5af10af8b95268b4a2bdd7166d2c451a7484228d", "format": 1 }, { - "name": "plugins/modules/nxos_bgp_neighbor_address_family.py", + "name": "plugins/modules/nxos_overlay_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a3641e84afc1182c7e1aaf3ea229317ec8e4901fdc54ffbe4bb446bb2297f50e", + "chksum_sha256": "f2e7bc1eff3259825c6eae134d87e92ee922cc3fd423b63fac821c659ea891d8", "format": 1 }, { - "name": "plugins/modules/nxos_ntp_options.py", + "name": "plugins/modules/nxos_bfd_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d569feceac1e9a09090b5e039d89cee9be55d3d3f60e8c1e63bf963c80655be7", + "chksum_sha256": "dd7b49293300983b1bfe085206f30ad341bf3af6ee17aad238186ad5d1bec86a", "format": 1 }, { - "name": "plugins/modules/nxos_pim_rp_address.py", + "name": "plugins/modules/nxos_ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "048f2a6e71622db905600dbc6f0862564275c438ac0a401aca0b2c792605d10f", + "chksum_sha256": "9d2648ff85a7fee59b9b0b099afde09e1f7f11c7e5d9f033d27a2af0953e854e", "format": 1 }, { - "name": "plugins/modules/nxos_snmp_community.py", + "name": "plugins/modules/nxos_vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4225f8c4053ec681cb9fadb841f3b0660771879e740d13858c459fedbfc5aa3c", + "chksum_sha256": "d603737717f0b6a697fac057acf07a763f002aa641026cd6436b2bc3e4611d3b", "format": 1 }, { - "name": "plugins/doc_fragments", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_gir_profile_management.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e5c49276a499ef2988a7047ec75a5464f13e5b458f0a7d6af46c8fd8e3f71c89", "format": 1 }, { - "name": "plugins/doc_fragments/__init__.py", + "name": "plugins/modules/nxos_udld_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "2346b5a0aec6682e11c7ee21cf5f77fd1b53bd4839d11a7da4e23e8378049aaa", "format": 1 }, { - "name": "plugins/doc_fragments/nxos.py", + "name": "plugins/modules/nxos_vxlan_vtep.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b71c234b0886b9a8c7cb54e9b1a2de2e433f8a19608a3ba45e67037c942943", + "chksum_sha256": "9aefbaf9557a93bafc8de522a59e3246967964e658c9ee7631fa202e0b5215fa", "format": 1 }, { - "name": "plugins/filter", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_config.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "160aa4af3ddc22a3a35d277eded9a0bf54df4a0b7b44a11fa2c077b5cca71db5", "format": 1 }, { - "name": "plugins/filter/__init__.py", + "name": "plugins/modules/nxos_lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "dc1a726578647a2b3f08a76ca542daa557960de383812b9b4067af37a49359d1", "format": 1 }, { - "name": "plugins/module_utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_route_maps.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3daed656349f74ca544cca0df90fe653384af61e5109235c2a0643e67593ddbf", "format": 1 }, { - "name": "plugins/module_utils/__init__.py", + "name": "plugins/modules/nxos_devicealias.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8fcfa22b50abdddab25a9235c03d8ef41055a7f98dfa6ab1af4a4e86fa6c1e10", "format": 1 }, { - "name": "plugins/module_utils/network", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_pim_rp_address.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "048f2a6e71622db905600dbc6f0862564275c438ac0a401aca0b2c792605d10f", "format": 1 }, { - "name": "plugins/module_utils/network/nxos", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_bgp_templates.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "955e3860781eef5083a0fa88e80d95803645ca485edd357b5867d3706bbc45bb", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_file_copy.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8418e53de9a83561d6c4b60b2d5d8115863d210376acbebf4f4c41a6489cd2a5", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/bgp_global.py", + "name": "plugins/modules/nxos_snmp_community.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ed671f6023709bf21f4a311d5b4d0d691d80ff73705eb81c6d20e7770da771f1", + "chksum_sha256": "4225f8c4053ec681cb9fadb841f3b0660771879e740d13858c459fedbfc5aa3c", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/fc_interfaces.py", + "name": "plugins/modules/nxos_acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f64b8a82076d44e2d84bb8e519e867de1be52eea91daa677a5e542f0a0d3429b", + "chksum_sha256": "283955d63ab51126d854605578e07115bb252047205fe90749563bf343bdb00a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/bgp_address_family.py", + "name": "plugins/modules/nxos_snmp_location.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13f0286247895225a98082e385e0024eb4b177acc5d8fcadb26e3ae4df75bd25", + "chksum_sha256": "a11d2a363173b645bdf9c8cd1cdb80e77b94d4c169069614deae90a441a1de22", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/bgp_neighbor_address_family.py", + "name": "plugins/modules/nxos_vrf_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c67e25a48908cf9c5567c09db909e2fb0223acd6cca1a737bb18101f0a6d2de", + "chksum_sha256": "a2876512450aa2920f88a2d408eb72cd7976ec4124a95b058d57427d0f939fb1", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/static_routes.py", + "name": "plugins/modules/nxos_vpc.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ccf265de0d70717436fd47a40647609558cba7a1d6407849f1b3e2577bd115b3", + "chksum_sha256": "edd715fc9e823dbf37a31a16de8f680132e0cc9b2feea46ab073d34f8098acf5", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/hostname.py", + "name": "plugins/modules/nxos_hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dd7353433ed688982b69d5f12378ff56bb0b399f0734e27b1571a86a14384253", + "chksum_sha256": "c6e80d807e983caef125de3683283634a0fb850861b4c240a7446c36660b8a22", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/ntp_global.py", + "name": "plugins/modules/nxos_logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c68f8b3e3e2fbe7a95f3520b0b2b785c4b88f706bfd12ed7f57d8d8e0747861", + "chksum_sha256": "1493bf17b72bd52b2f045a3d3c8767b2e414600762fadf79c065dda1b99e47d2", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/snmp_server.py", + "name": "plugins/modules/nxos_aaa_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "32cba948b16c3a3f53d2340958523c4b62de76300df58506c094fdf244d9cda6", + "chksum_sha256": "c7d0ba90c00bef7d014ca922ce5e66ea10fe116bb9af88bfdf671402527b404b", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/__init__.py", + "name": "plugins/modules/nxos_igmp_snooping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ee94035d9f4a71393a16670f8e269064476b6da5d99071a4f23cfc253da13703", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/ospfv3.py", + "name": "plugins/modules/nxos_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f1d51e9d1880df627d5d8c3f2cb483c1d6acb9e71919fd88ee7d0d2dc79e0682", + "chksum_sha256": "5535b8856eb027aabcd9885c29602a14a92c40554ca777b553879ae1bd8b18b6", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/route_maps.py", + "name": "plugins/modules/nxos_rollback.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e4d7751215f3d2c175f957ec2f8f667f547b3f59c4c4eb6b0e52559740a060a", + "chksum_sha256": "7fec43544c7cb26eb84d9cdd22e74a4f042de04943e5896fcd45a1020f003e82", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/bgp_templates.py", + "name": "plugins/modules/nxos_vtp_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "539774203fdf45d1b73fc4e4acfdfe38e86c43f285c18b873c03238c2bba01fc", + "chksum_sha256": "e6cb79ae92bdf1ab82291e4b331dfeb53b42f004a416908268380813905b8215", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/ospfv2.py", + "name": "plugins/modules/nxos_lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "743e72c4c99c023a2a4feee6c57cb7af7f8cd67643738af5ebedbb7ffa2aa2b7", + "chksum_sha256": "b444c878e0d7289fb705e56985724155c15dd9f5b8de4ad2fa581ddc77b29e0e", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/ospf_interfaces.py", + "name": "plugins/modules/nxos_prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "619993ad1e730c0263a72547114d501d22cad1cc30a1ea614ad10f463ec3292c", + "chksum_sha256": "fbc6db3871917b6239c2e37caede67c3a6f69e2c578357f5831bf74173c09bd5", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/logging_global.py", + "name": "plugins/modules/nxos_bfd_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f67d7522c05494210bc06984c76e11b9053b9c3e6c13aa10bafcafa527de814", + "chksum_sha256": "e2121178e29e5e34ca77f7ed2dc78e7fdcf6ddbe7a9ab16545c39c11dc00f7ce", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/rm_templates/prefix_lists.py", + "name": "plugins/modules/nxos_rpm.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c61c5caf3fd680763a367ee1d24dd318c773a6e390ab26a28eb28aff0176a1b2", + "chksum_sha256": "e2ba7d2ec024a075a96be051996d4eba6f6e370058c6df454b89ac7c36759f58", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/__init__.py", + "name": "plugins/modules/nxos_vtp_version.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "2c822abea7b871b5781dcf46856c07f0214793bc3768743d45966ae5a0b6e779", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_nxapi.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cf44a3e80959a805238202c49a5a639d6a1ecf5f6d8191b93b3f6db314a80c15", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_address_family", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_command.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "19c20fdbf3d421a6a487cb76e85904fcfc62dfe26569000e370e6d829c0fb838", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_address_family/bgp_address_family.py", + "name": "plugins/modules/nxos_snmp_contact.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9dceb9b1618124325de42f3625419e16b34dfa1b118f41d24742d16d188bd952", + "chksum_sha256": "936a5e9b00d8c46ed39a8818f5806971f16fc8cebd3f5106e6909b7ed8395ac1", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_address_family/__init__.py", + "name": "plugins/modules/nxos_aaa_server_host.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b7560a2b37d9b93af17d9d0241db8cc701778ff974fcc4f16204fcaa991c1f2a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/static_routes", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_ntp_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "48f03d894a18905e2934f7f22c43b8b78e66e8f3b2a39770e94b45907977a0a0", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/static_routes/static_routes.py", + "name": "plugins/modules/nxos_feature.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d158d7985a673c37a6a92d24c32f7fac372f8082b7aebc0f95215760c2891c8f", + "chksum_sha256": "8b8a6deea08ebeae462e2fefbcc4762dd67b71bc5a5d0f51e3ea3595375888da", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/static_routes/__init__.py", + "name": "plugins/modules/nxos_vxlan_vtep_vni.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "00cc8a5f8826d10b27cbea4c1523a5dc48a57d174ae7ecfd918e02d506902b80", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/prefix_lists", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/prefix_lists/__init__.py", + "name": "plugins/modules/nxos_pim_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "62a33fbb98411f4b017a3d884645f48f8e79049f27e0f3d87698b3bcb7f0c48c", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/prefix_lists/prefix_lists.py", + "name": "plugins/modules/nxos_snmp_traps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bdd9700bbce8280fc77f1fe6c2cb02ae15fd4680ab4076c50bb53c7ea0b35a69", + "chksum_sha256": "73ef124bdd93a1b8d6d7d55870e04c99bb29cde93c0c400884f06c4972057f75", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/hostname", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_reboot.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "826e076559d7143fc03a3de9f0e5ec125241fd3196037f2a1a524e033e75b8de", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/hostname/hostname.py", + "name": "plugins/modules/nxos_vsan.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c3330ec64341ba82a3d65827a9f33c088b95f64fd79f859db5b16334be443d9", + "chksum_sha256": "7a775ad1dba4b6997070b43beb0eff5a71f94cf0d7462c64d7761710663cb865", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/hostname/__init__.py", + "name": "plugins/modules/nxos_pim.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "a06919bdfbaab64ef58295c408def23dc36336b630e12d80a2a80e3a31a53a85", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lldp_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_banner.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a98cf0828178ff3233b836f7a1d1478ad4f5020143b0a6435630737a82b4110e", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lldp_interfaces/__init__.py", + "name": "plugins/modules/nxos_vpc_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "7361c2f7afeaedada1c42037a5f54d16b934ef5993f155819e0edb731c21de1f", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/modules/nxos_system.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26ea3b86085c974b67392b30142f605fd5efcace1c13044ba38a32c1b77d3069", + "chksum_sha256": "34a51f70bb99431fadc63a66270533d88d97d3a6eb422578a78c1f59da7c89e8", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lacp", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_hsrp_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5b9cea1b4a4a770fdf3b6dad829247384c19aefeaf5d300f8730ebbeb8c7bc0d", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lacp/lacp.py", + "name": "plugins/modules/nxos_vrf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b0f05127c1e721158123ed8ef3ddd6259eebdb4226a2b289ee70a8237d167c8a", + "chksum_sha256": "6145ff3c78f13d4bcd3d338da62805a3a1e594b80c8a72de7ff83059d3d5eb04", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lacp/__init__.py", + "name": "plugins/modules/nxos_vtp_domain.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "e76836b4b68b3c32d5a146bcb6738009872e3e69d3afffe269e50846d4a84058", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ospfv2", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_snmp_host.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ae6e69d2c2af158c70e81aed0f2a6dbccca2c69033861bd697af4dba0c5183c7", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ospfv2/__init__.py", + "name": "plugins/modules/nxos_fc_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "2b7cb927469f1aab619f06daa2442fd6c4267898dfd7f9f471d58b9970eb5b27", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ospfv2/ospfv2.py", + "name": "plugins/modules/nxos_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52b55a9bc2c837c33f85f0d3a20c5a392fc26a589b7c8d61e433d173fee934cc", + "chksum_sha256": "3421c84ad96b685dce41814131c5e17d336d58fdaac332ea01b72606ffdae07c", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/telemetry", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_evpn_vni.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cccbafbd724df1855a60cebf93e8429be7edc59582827b0ed6c5af84a877565a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/telemetry/__init__.py", + "name": "plugins/modules/nxos_install_os.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5a8d563421835390e3d46ff4cf4feadd2ff33a43d58a6f8d828a8c9f1f79d951", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/telemetry/telemetry.py", + "name": "plugins/modules/nxos_evpn_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b34d0128aee2e7a33355d4132f4a5ba31a0d5ac90ccc69d786c7bc2abec568c", + "chksum_sha256": "3cb0c7e66e32783f346744b3b08edd63f2d3ac82b67addb55597a19b48db7e9c", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/logging_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_static_routes.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2ef2625e9e8c20f8012c57596cf06ac0ac8b28662ee78e98e2911354dfea6f32", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/logging_global/__init__.py", + "name": "plugins/modules/nxos_facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "3d47e0e98adf0b507c6e725efcb94b573d9100679336c3beaf8193ee0247f24b", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/logging_global/logging_global.py", + "name": "plugins/modules/nxos_acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a5b8bd957449018ead97c56ab6c4c7b3945f6a176a9a6be0dee1bfaa02878939", + "chksum_sha256": "7d3aa83fa072e36c33233e8244b6d7f4b6b28eb355d5045dbffbb7ebd2cfbf8b", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ospfv3", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_telemetry.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5bf9c2cfa138af73b7d1e47a1d5345049dd93a00933eeb94e39a66d94ec759d0", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ospfv3/__init__.py", + "name": "plugins/modules/nxos_ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ceba0e4676fb124fe23e8c0e3e9358e247f6cf34f4af0c2e09db648692b03262", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ospfv3/ospfv3.py", + "name": "plugins/modules/nxos_lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "39f79531c9741bae023e8c9db926a5463c311093057a49422bd7e25536e6cab9", + "chksum_sha256": "485b35aeac40cd9d3dfaf18a7f5481fc14796ce054387af3dca72160677f6dd7", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_neighbor_address_family", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_hsrp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8e0bccf6fb0aa7ce0cbacacb8acf9821015472213a2319df618e7eef4d03a52f", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_neighbor_address_family/bgp_neighbor_address_family.py", + "name": "plugins/modules/nxos_l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a8658e63caa17970c687a6b260d8067ec1a83acc322b1efa0608ca9711b6a598", + "chksum_sha256": "b95b46e32c56259e36e705a3249140c51028bc43376257ef0913e93149918c1e", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_neighbor_address_family/__init__.py", + "name": "plugins/modules/nxos_ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5f7553546e438131fb6a81fb5c994270b900e30349f675a9f9ac77cb20b4a218", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/legacy", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_igmp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ec8870d4fb6ecf6089717936138d43fc5fe54381994a0a7d5e8299a94f9ade67", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/legacy/base.py", + "name": "plugins/modules/nxos_bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "71495bdb43fae534b7a23edf9ec4d932386e4b19320014664203482f9a42de99", + "chksum_sha256": "66c33d7e478c4d39b8899962fc8f152cab6651220069cc2a89cef2e299d1547e", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/legacy/__init__.py", + "name": "plugins/modules/nxos_snmp_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "d16699e2fd607da804183e1fe29c6981095303d22b836f865f2046dc2c50ecf0", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/l2_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_bgp_address_family.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "98ba4c208cb7259d49b76f7b48cd1baa8b6f049cac2e9f64142c5011e12c2eee", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/l2_interfaces/__init__.py", + "name": "plugins/modules/nxos_ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8ccbbc24a2038b70b2486f92b33ceaecf1932dbc2316167526855312dc6c599d", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/l2_interfaces/l2_interfaces.py", + "name": "plugins/modules/nxos_snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16e09269f14c79c8b4ec91aa5eccc89af3d385dd779dd37dc1434933d9e9bc72", + "chksum_sha256": "9ad2b68c98c78ad1082727d1997b52f29f03c4d8c9ee734ee40f7151bec58fd5", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/hsrp_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/modules/nxos_udld.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f9d531c20f551d644be87cf218c7bf8175f531a3190c60c7a20ae281203fbe8d", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/hsrp_interfaces/hsrp_interfaces.py", + "name": "plugins/modules/nxos_lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0024b419e2bca58180d26c864588f59ce5941f5f5420c9df5ed7063e672f391a", + "chksum_sha256": "8aa8104d1be201ba069a75576473610d9a3d5e6e9778687b8f83121557d20a73", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/hsrp_interfaces/__init__.py", + "name": "plugins/modules/nxos_snapshot.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5cf9eab5ad1ae6953579860b7365ce6e6d604f69fe00389f656c63f99cb3b24f", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ospf_interfaces", + "name": "plugins/terminal", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ospf_interfaces/__init__.py", + "name": "plugins/terminal/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/terminal/nxos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6df58dfe3eba436f0b43a2f4f089d58de078ca53907811f49c6ff9295a36e7b5", + "chksum_sha256": "e49e9c495e05b71317fa3d2c462cb085ce5827874235484d735f470e7afa5059", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/route_maps", + "name": "plugins/module_utils", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/route_maps/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "plugins/module_utils/network", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/route_maps/route_maps.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f15891603e1c71bcfee05df6fa749fc807f756b6a7413ac545b673ba76f57543", + "name": "plugins/module_utils/network/nxos", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/acl_interfaces", + "name": "plugins/module_utils/network/nxos/argspec", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/l3_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/nxos/argspec/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "7082768644e0745bf790852b29aa7c0a05a1aa73e1038bbd65b115085ed981f6", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac2e8ca4571619843fbe700e40af12f2205ba37dcae4e3ac8fc9552ab3f39c7f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lldp_global", + "name": "plugins/module_utils/network/nxos/argspec/telemetry", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lldp_global/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/telemetry/telemetry.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "735fed6cdb3cf9f532186ddcbd9caeceae6c66e803344bacfba16aae44312018", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lldp_global/lldp_global.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5a4c38941c0836cfcbe5870de76c13b5e991772d2514d919b52a0eb8861b1b8b", - "format": 1 - }, - { - "name": "plugins/module_utils/network/nxos/facts/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/telemetry/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/snmp_server", + "name": "plugins/module_utils/network/nxos/argspec/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/nxos/argspec/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "40b58f658b1b04583ed22216cb79b87040e113511d55c523c6dc17c8b1b9b103", + "chksum_sha256": "0a7bd0a029361af8e3f6355af52f8bbffdd6f6f31cb376a09574cbc248c63e4f", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/snmp_server/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/fc_interfaces", + "name": "plugins/module_utils/network/nxos/argspec/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/fc_interfaces/fc_interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cfe4284974d9e939b38db93c36988c773a5c75743b2754e734ad1a814617f232", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/fc_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/lldp_interfaces/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "6dca4e69682508b76a0992a7ea9be015da7ecd322898e1a7f303ed45478586bc", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lacp_interfaces", + "name": "plugins/module_utils/network/nxos/argspec/ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "023062f4e902d13603541dfa4ed7556aaf55c9f7e09624e82404ad99b375e1d3", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "e6e093df4df247e1c4aa45fc6bfcdd4a5abbc8c2af26bfe0e3b4b7298be76081", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/acls", + "name": "plugins/module_utils/network/nxos/argspec/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/acls/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/acls/acls.py", + "name": "plugins/module_utils/network/nxos/argspec/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e24890d18962cbd1e2170a036f3628d3c8686243e641f865d66f52e90f3d9835", + "chksum_sha256": "62a096743b254ad70713007700d5c44ea26a00d69ff7fb8106e640ba4e25fced", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ntp_global", + "name": "plugins/module_utils/network/nxos/argspec/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ntp_global/ntp_global.py", + "name": "plugins/module_utils/network/nxos/argspec/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a0e41e513e3e657d058c758de0f4f107cb10c35c806968552c6b0f42fea7377", + "chksum_sha256": "05b2c2b1670e7b5c0685f81d73c6a4f6176e9b659869554b51144e8311c62e56", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/ntp_global/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lag_interfaces", + "name": "plugins/module_utils/network/nxos/argspec/vlans", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/vlans/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59a72ebb6ded18c885dc7716f707873e9b2e4819c1f1af38d43d2f60d3ebb436", + "chksum_sha256": "1b23ecaded6b2b8fbcf578fd9bc5997cc3184037a70957a1dd17a772ab212f15", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/vlans/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bfd_interfaces", + "name": "plugins/module_utils/network/nxos/argspec/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bfd_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bfd_interfaces/bfd_interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85a308e34d42cc8d6a01e307d61f80aad2d3ebd4144654514b9855f96a1608f4", + "chksum_sha256": "37b88e6b28e3fae84e9403565021cf2bdcb54fb8c282b38a4ec095b1c25fcb4a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_templates", + "name": "plugins/module_utils/network/nxos/argspec/ntp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_templates/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/ntp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_templates/bgp_templates.py", + "name": "plugins/module_utils/network/nxos/argspec/ntp_global/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "019a61c240a5cc8c2177c4402ffecbfd035248efa3426db05f91d8c94da57246", + "chksum_sha256": "783602fd75a5c0ae5e6e5d966c292366b63a1b8c5806e5fe76163067f1442777", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/vlans", + "name": "plugins/module_utils/network/nxos/argspec/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/vlans/vlans.py", + "name": "plugins/module_utils/network/nxos/argspec/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "02438c1af2fd68b76f7f368fcf8e1199bb61922c892a467ba78eb73dd081631a", + "chksum_sha256": "571184731dbbe433772733ec8f703954ad6b17777b20251a7ed12a6f7ab441a7", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/vlans/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/interfaces", + "name": "plugins/module_utils/network/nxos/argspec/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/interfaces/interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c4a7320158d21677a5bfa159a9c2138ffec2ce98996ed5573c061b163b8daad", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "70978913c9daeedc0fccb8b5f374e2a32bac7d5954841226aed6ff30aa6b3588", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/l3_interfaces", + "name": "plugins/module_utils/network/nxos/argspec/bgp_neighbor_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/bgp_neighbor_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/bgp_neighbor_address_family/bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cd91ce2d24a35f39f37f8275196584b199f99d885a0f915fd32a02e70a1bac02", + "chksum_sha256": "8ca222317640163b92905c69d00da5f3cba1788125facfb63e3166e4a6ff4036", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_global", + "name": "plugins/module_utils/network/nxos/argspec/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_global/bgp_global.py", + "name": "plugins/module_utils/network/nxos/argspec/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef399135879accd85c0495e76be7c6fbf1a1141c57fe10ed98666d1f2cd174e4", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/bgp_global/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/lldp_global/lldp_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c9b7fb9ecb6060e51efd1eb61649c055657aabac60fb4b28e20d8d8b12ea363c", + "format": 1 + }, + { + "name": "plugins/module_utils/network/nxos/argspec/acl_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/nxos/argspec/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/facts/facts.py", + "name": "plugins/module_utils/network/nxos/argspec/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ca5196b5ac6835d5840ea9cbd58e2ed4b4554cd0b3f5a6625f30cde5ce03033", + "chksum_sha256": "bb0d056e85549d5ce2c3bbd3bc5330a3bd8ffb7562123dc8452d07a7999f1701", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/nxos.py", + "name": "plugins/module_utils/network/nxos/argspec/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "571d3839f5fdab7ee6046ccb1b7e3753877b862f7efd51d43973513910d60201", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec", + "name": "plugins/module_utils/network/nxos/argspec/ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_address_family", + "name": "plugins/module_utils/network/nxos/argspec/ospf_interfaces/ospf_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bf40cbc988c8bfd85f8f96409bc3a4246540e933527340e72cf19dfee0bca77b", + "format": 1 + }, + { + "name": "plugins/module_utils/network/nxos/argspec/ospf_interfaces/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "format": 1 + }, + { + "name": "plugins/module_utils/network/nxos/argspec/facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/nxos/argspec/facts/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37b88e6b28e3fae84e9403565021cf2bdcb54fb8c282b38a4ec095b1c25fcb4a", + "chksum_sha256": "3dbe3771e03c68a3144d8b70df7b0d5895c69dbec69a7f47e67f0396f18ae879", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/facts/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/static_routes", + "name": "plugins/module_utils/network/nxos/argspec/bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/static_routes/static_routes.py", + "name": "plugins/module_utils/network/nxos/argspec/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "01739405af9cd744f8a995dcad803834647bb933b5b65f238fe5d93fd35167f6", + "chksum_sha256": "4fbafd074800875e6855205cdc9797c6e9ede1d525aab97014a6aa60e59b3900", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/static_routes/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/prefix_lists", + "name": "plugins/module_utils/network/nxos/argspec/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "01739405af9cd744f8a995dcad803834647bb933b5b65f238fe5d93fd35167f6", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/nxos/argspec/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "979b5710687e9fd4d0001ee92d070b9a24e5b22b4c622bb47ab6aa3da657c613", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/hostname", + "name": "plugins/module_utils/network/nxos/argspec/fc_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/hostname/hostname.py", + "name": "plugins/module_utils/network/nxos/argspec/fc_interfaces/fc_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05b2c2b1670e7b5c0685f81d73c6a4f6176e9b659869554b51144e8311c62e56", + "chksum_sha256": "cde20eb7e720bd76c623eb69a11dccee251365a5c8c7b8b934d83f61338c2784", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/hostname/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/fc_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lldp_interfaces", + "name": "plugins/module_utils/network/nxos/argspec/route_maps", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/route_maps/route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "fc5a7ea360233ab48021b6513bca2b38467e94960b29c63945028e82e624702a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/route_maps/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6dca4e69682508b76a0992a7ea9be015da7ecd322898e1a7f303ed45478586bc", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { @@ -1751,105 +1807,105 @@ "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ospfv2", + "name": "plugins/module_utils/network/nxos/argspec/hsrp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ospfv2/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/hsrp_interfaces/hsrp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "78bff7e6897df616065eb94dab6e2aedf4cdef6106783c80c68e3a44b3641c30", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/nxos/argspec/hsrp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a7bd0a029361af8e3f6355af52f8bbffdd6f6f31cb376a09574cbc248c63e4f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/telemetry", + "name": "plugins/module_utils/network/nxos/argspec/bgp_templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/telemetry/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/bgp_templates/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/telemetry/telemetry.py", + "name": "plugins/module_utils/network/nxos/argspec/bgp_templates/bgp_templates.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "735fed6cdb3cf9f532186ddcbd9caeceae6c66e803344bacfba16aae44312018", + "chksum_sha256": "186b8ce90e4f21c9b9ec38647e9d34bb5665c667b6b88fe042b7eede91d27bf3", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/logging_global", + "name": "plugins/module_utils/network/nxos/argspec/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/logging_global/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "979b5710687e9fd4d0001ee92d070b9a24e5b22b4c622bb47ab6aa3da657c613", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/logging_global/logging_global.py", + "name": "plugins/module_utils/network/nxos/argspec/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "70978913c9daeedc0fccb8b5f374e2a32bac7d5954841226aed6ff30aa6b3588", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ospfv3", + "name": "plugins/module_utils/network/nxos/argspec/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ospfv3/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9ae7bf54bcbbd71a2eeec9fd2db8c3fdefa34af8162df5d5941c2e322c1c040d", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/nxos/argspec/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6e093df4df247e1c4aa45fc6bfcdd4a5abbc8c2af26bfe0e3b4b7298be76081", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_neighbor_address_family", + "name": "plugins/module_utils/network/nxos/argspec/lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_neighbor_address_family/bgp_neighbor_address_family.py", + "name": "plugins/module_utils/network/nxos/argspec/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8ca222317640163b92905c69d00da5f3cba1788125facfb63e3166e4a6ff4036", + "chksum_sha256": "ea53f8bfaffe46e9c184854c68f071da028b3e073d94c939438f5e66f0a9a5be", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_neighbor_address_family/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", @@ -1863,3027 +1919,2985 @@ "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ceeb10c6125b3efda9d04ac4d324e8025b291277400266b651c8b9e3b4f3f960", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ceeb10c6125b3efda9d04ac4d324e8025b291277400266b651c8b9e3b4f3f960", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/hsrp_interfaces", + "name": "plugins/module_utils/network/nxos/argspec/bfd_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/hsrp_interfaces/hsrp_interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/bfd_interfaces/bfd_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "78bff7e6897df616065eb94dab6e2aedf4cdef6106783c80c68e3a44b3641c30", + "chksum_sha256": "bf82cfc30230fa91de7fbfc2e5dd98a765f17ce3b123cfb8dc78668d3934523a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/hsrp_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/bfd_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ospf_interfaces", + "name": "plugins/module_utils/network/nxos/argspec/lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/argspec/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "73c1cb0cdb2fe7ddee5372b2ab1d2b9936248389c55e59ba3641a3cd7fd3a790", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/nxos/argspec/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf40cbc988c8bfd85f8f96409bc3a4246540e933527340e72cf19dfee0bca77b", - "format": 1 - }, - { - "name": "plugins/module_utils/network/nxos/argspec/route_maps", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/route_maps/__init__.py", + "name": "plugins/module_utils/network/nxos/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/route_maps/route_maps.py", + "name": "plugins/module_utils/network/nxos/nxos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc5a7ea360233ab48021b6513bca2b38467e94960b29c63945028e82e624702a", + "chksum_sha256": "571d3839f5fdab7ee6046ccb1b7e3753877b862f7efd51d43973513910d60201", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/acl_interfaces", + "name": "plugins/module_utils/network/nxos/rm_templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/rm_templates/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ed671f6023709bf21f4a311d5b4d0d691d80ff73705eb81c6d20e7770da771f1", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/nxos/rm_templates/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb0d056e85549d5ce2c3bbd3bc5330a3bd8ffb7562123dc8452d07a7999f1701", + "chksum_sha256": "ccf265de0d70717436fd47a40647609558cba7a1d6407849f1b3e2577bd115b3", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lldp_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/nxos/rm_templates/ospfv2.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f049139f75676305c98743a0efc940ea8a5fe481a0a9d37e99d5b7da9f5f6cb1", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lldp_global/__init__.py", + "name": "plugins/module_utils/network/nxos/rm_templates/route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "1e4d7751215f3d2c175f957ec2f8f667f547b3f59c4c4eb6b0e52559740a060a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lldp_global/lldp_global.py", + "name": "plugins/module_utils/network/nxos/rm_templates/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9b7fb9ecb6060e51efd1eb61649c055657aabac60fb4b28e20d8d8b12ea363c", + "chksum_sha256": "dd7353433ed688982b69d5f12378ff56bb0b399f0734e27b1571a86a14384253", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/__init__.py", + "name": "plugins/module_utils/network/nxos/rm_templates/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c61c5caf3fd680763a367ee1d24dd318c773a6e390ab26a28eb28aff0176a1b2", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/snmp_server", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/nxos/rm_templates/fc_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f64b8a82076d44e2d84bb8e519e867de1be52eea91daa677a5e542f0a0d3429b", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/nxos/rm_templates/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ae7bf54bcbbd71a2eeec9fd2db8c3fdefa34af8162df5d5941c2e322c1c040d", + "chksum_sha256": "32cba948b16c3a3f53d2340958523c4b62de76300df58506c094fdf244d9cda6", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/snmp_server/__init__.py", + "name": "plugins/module_utils/network/nxos/rm_templates/ospf_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "619993ad1e730c0263a72547114d501d22cad1cc30a1ea614ad10f463ec3292c", + "format": 1 + }, + { + "name": "plugins/module_utils/network/nxos/rm_templates/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/fc_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/nxos/rm_templates/logging_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2f67d7522c05494210bc06984c76e11b9053b9c3e6c13aa10bafcafa527de814", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/fc_interfaces/fc_interfaces.py", + "name": "plugins/module_utils/network/nxos/rm_templates/bgp_templates.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cde20eb7e720bd76c623eb69a11dccee251365a5c8c7b8b934d83f61338c2784", + "chksum_sha256": "539774203fdf45d1b73fc4e4acfdfe38e86c43f285c18b873c03238c2bba01fc", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/fc_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/rm_templates/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "13f0286247895225a98082e385e0024eb4b177acc5d8fcadb26e3ae4df75bd25", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/facts", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/nxos/rm_templates/bgp_neighbor_address_family.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4c67e25a48908cf9c5567c09db909e2fb0223acd6cca1a737bb18101f0a6d2de", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/facts/__init__.py", + "name": "plugins/module_utils/network/nxos/rm_templates/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9c68f8b3e3e2fbe7a95f3520b0b2b785c4b88f706bfd12ed7f57d8d8e0747861", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/facts/facts.py", + "name": "plugins/module_utils/network/nxos/rm_templates/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3dbe3771e03c68a3144d8b70df7b0d5895c69dbec69a7f47e67f0396f18ae879", + "chksum_sha256": "f1d51e9d1880df627d5d8c3f2cb483c1d6acb9e71919fd88ee7d0d2dc79e0682", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lacp_interfaces", + "name": "plugins/module_utils/network/nxos/facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/l3_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/module_utils/network/nxos/facts/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "73c1cb0cdb2fe7ddee5372b2ab1d2b9936248389c55e59ba3641a3cd7fd3a790", + "chksum_sha256": "cd91ce2d24a35f39f37f8275196584b199f99d885a0f915fd32a02e70a1bac02", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/acls", + "name": "plugins/module_utils/network/nxos/facts/telemetry", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/acls/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/telemetry/telemetry.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9b34d0128aee2e7a33355d4132f4a5ba31a0d5ac90ccc69d786c7bc2abec568c", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/acls/acls.py", + "name": "plugins/module_utils/network/nxos/facts/telemetry/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "62a096743b254ad70713007700d5c44ea26a00d69ff7fb8106e640ba4e25fced", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ntp_global", + "name": "plugins/module_utils/network/nxos/facts/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ntp_global/ntp_global.py", + "name": "plugins/module_utils/network/nxos/facts/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "783602fd75a5c0ae5e6e5d966c292366b63a1b8c5806e5fe76163067f1442777", + "chksum_sha256": "52b55a9bc2c837c33f85f0d3a20c5a392fc26a589b7c8d61e433d173fee934cc", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/ntp_global/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lag_interfaces", + "name": "plugins/module_utils/network/nxos/facts/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lag_interfaces/lag_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ea53f8bfaffe46e9c184854c68f071da028b3e073d94c939438f5e66f0a9a5be", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/lldp_interfaces/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "6a9af0b059926122015f40536c839c8dc3fbb14d14cfc6a6ae02d85d0de14a7a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bfd_interfaces", + "name": "plugins/module_utils/network/nxos/facts/ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bfd_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bfd_interfaces/bfd_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf82cfc30230fa91de7fbfc2e5dd98a765f17ce3b123cfb8dc78668d3934523a", + "chksum_sha256": "39f79531c9741bae023e8c9db926a5463c311093057a49422bd7e25536e6cab9", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_templates", + "name": "plugins/module_utils/network/nxos/facts/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_templates/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_templates/bgp_templates.py", + "name": "plugins/module_utils/network/nxos/facts/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "186b8ce90e4f21c9b9ec38647e9d34bb5665c667b6b88fe042b7eede91d27bf3", + "chksum_sha256": "d3bbdfc94cda205574023cea71125acc6b9511f3dcac5eb89aa9b6001c503c85", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/vlans", + "name": "plugins/module_utils/network/nxos/facts/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/vlans/vlans.py", + "name": "plugins/module_utils/network/nxos/facts/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b23ecaded6b2b8fbcf578fd9bc5997cc3184037a70957a1dd17a772ab212f15", + "chksum_sha256": "3c3330ec64341ba82a3d65827a9f33c088b95f64fd79f859db5b16334be443d9", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/vlans/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/interfaces", + "name": "plugins/module_utils/network/nxos/facts/facts.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0ca5196b5ac6835d5840ea9cbd58e2ed4b4554cd0b3f5a6625f30cde5ce03033", + "format": 1 + }, + { + "name": "plugins/module_utils/network/nxos/facts/vlans", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/interfaces/interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/vlans/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "571184731dbbe433772733ec8f703954ad6b17777b20251a7ed12a6f7ab441a7", + "chksum_sha256": "02438c1af2fd68b76f7f368fcf8e1199bb61922c892a467ba78eb73dd081631a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/vlans/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/l3_interfaces", + "name": "plugins/module_utils/network/nxos/facts/legacy", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/legacy/base.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "31d68732e6e3dccbb6ce2dacba8a4497cfe827638587bcd5aa6a4f6418a34a93", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/legacy/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7082768644e0745bf790852b29aa7c0a05a1aa73e1038bbd65b115085ed981f6", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_global", + "name": "plugins/module_utils/network/nxos/facts/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_global/bgp_global.py", + "name": "plugins/module_utils/network/nxos/facts/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4fbafd074800875e6855205cdc9797c6e9ede1d525aab97014a6aa60e59b3900", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/argspec/bgp_global/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/module_utils/network/nxos/config", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "9dceb9b1618124325de42f3625419e16b34dfa1b118f41d24742d16d188bd952", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_address_family", + "name": "plugins/module_utils/network/nxos/facts/ntp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_address_family/bgp_address_family.py", + "name": "plugins/module_utils/network/nxos/facts/ntp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab2d098a5e4d9f5dfccc95ec69210831e191ce526eb08fb55029517f27bca8f2", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_address_family/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/ntp_global/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "7a0e41e513e3e657d058c758de0f4f107cb10c35c806968552c6b0f42fea7377", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/static_routes", + "name": "plugins/module_utils/network/nxos/facts/interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/static_routes/static_routes.py", + "name": "plugins/module_utils/network/nxos/facts/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "329e8b628dae287612efa80e2ca7b5aaeefd530c19ddd8bd37a5b7774eb26aef", + "chksum_sha256": "3c4a7320158d21677a5bfa159a9c2138ffec2ce98996ed5573c061b163b8daad", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/static_routes/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/prefix_lists", + "name": "plugins/module_utils/network/nxos/facts/logging_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/prefix_lists/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/prefix_lists/prefix_lists.py", + "name": "plugins/module_utils/network/nxos/facts/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "445f9a55c8fd372fdbad1834ed7598d9281a376fd5de5e749218995310ccea81", + "chksum_sha256": "a5b8bd957449018ead97c56ab6c4c7b3945f6a176a9a6be0dee1bfaa02878939", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/hostname", + "name": "plugins/module_utils/network/nxos/facts/bgp_neighbor_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/hostname/hostname.py", + "name": "plugins/module_utils/network/nxos/facts/bgp_neighbor_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab919426e1bd33f667ae875af49ed837d5f3f1e3598b878a290c3bc35004765d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/hostname/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/bgp_neighbor_address_family/bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "a8658e63caa17970c687a6b260d8067ec1a83acc322b1efa0608ca9711b6a598", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lldp_interfaces", + "name": "plugins/module_utils/network/nxos/facts/lldp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lldp_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lldp_interfaces/lldp_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c15204ad386b15117fcb44a6e62be71db4eb03b7f9aac53f7bbdd29020a4690", + "chksum_sha256": "5a4c38941c0836cfcbe5870de76c13b5e991772d2514d919b52a0eb8861b1b8b", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lacp", + "name": "plugins/module_utils/network/nxos/facts/acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lacp/lacp.py", + "name": "plugins/module_utils/network/nxos/facts/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9612ac4a62de771ca9cef65d733373105e180a060227fff8330bc814d5cdde96", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lacp/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/acl_interfaces/acl_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dcde32d987bef1d67842179d8e8dad0077899c8009893fbef7ef89ab1b09ed05", + "format": 1 + }, + { + "name": "plugins/module_utils/network/nxos/facts/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ospfv2", + "name": "plugins/module_utils/network/nxos/facts/ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ospfv2/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "6df58dfe3eba436f0b43a2f4f089d58de078ca53907811f49c6ff9295a36e7b5", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ospfv2/ospfv2.py", + "name": "plugins/module_utils/network/nxos/facts/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9294a53417222ea7bd4cf1b003780c5774924a288309b70bb353b0c64e74bd7e", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/telemetry", + "name": "plugins/module_utils/network/nxos/facts/bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/telemetry/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ef399135879accd85c0495e76be7c6fbf1a1141c57fe10ed98666d1f2cd174e4", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/telemetry/telemetry.py", + "name": "plugins/module_utils/network/nxos/facts/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "727e58c53e65e0803777cc288930ceb07f415e2202e6cf5a8b58ebbdffbd46d8", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/logging_global", + "name": "plugins/module_utils/network/nxos/facts/static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/logging_global/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "d158d7985a673c37a6a92d24c32f7fac372f8082b7aebc0f95215760c2891c8f", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/logging_global/logging_global.py", + "name": "plugins/module_utils/network/nxos/facts/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7d1de04722e657bd71a3131e7bba17bc0178031c1c91cfa87df16e0eccc6878", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ospfv3", + "name": "plugins/module_utils/network/nxos/facts/fc_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ospfv3/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/fc_interfaces/fc_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "cfe4284974d9e939b38db93c36988c773a5c75743b2754e734ad1a814617f232", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ospfv3/ospfv3.py", + "name": "plugins/module_utils/network/nxos/facts/fc_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ee78999cd1450377200ffd92fa3e925ecf413b3c1cb1a4f11e084facf5844d9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_neighbor_address_family", + "name": "plugins/module_utils/network/nxos/facts/route_maps", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py", + "name": "plugins/module_utils/network/nxos/facts/route_maps/route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d8a658ac17e3b61cc0105d4567c8793adf8b2bd0cc0bcd68cf86353ac3116db3", + "chksum_sha256": "f15891603e1c71bcfee05df6fa749fc807f756b6a7413ac545b673ba76f57543", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/route_maps/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/l2_interfaces", + "name": "plugins/module_utils/network/nxos/facts/lacp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/l2_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/lacp/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "b0f05127c1e721158123ed8ef3ddd6259eebdb4226a2b289ee70a8237d167c8a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/l2_interfaces/l2_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/lacp/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44bae3bfcc74ec9e0328439391b1081d3fe54e6f3d3de17ff960c06b5e16e50c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/hsrp_interfaces", + "name": "plugins/module_utils/network/nxos/facts/hsrp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/hsrp_interfaces/hsrp_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/hsrp_interfaces/hsrp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d5eb7ab8b3ff9d4c90321a6372a73f5087712b5d269eb1351380b93e5f1e207", + "chksum_sha256": "0024b419e2bca58180d26c864588f59ce5941f5f5420c9df5ed7063e672f391a", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/hsrp_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/hsrp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ospf_interfaces", + "name": "plugins/module_utils/network/nxos/facts/bgp_templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ospf_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/bgp_templates/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ospf_interfaces/ospf_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/bgp_templates/bgp_templates.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a12a9c127ce960b84820ac79286672f458ab56934903abbfb52e74e2e9c98b6", + "chksum_sha256": "019a61c240a5cc8c2177c4402ffecbfd035248efa3426db05f91d8c94da57246", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/route_maps", + "name": "plugins/module_utils/network/nxos/facts/prefix_lists", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/route_maps/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "bdd9700bbce8280fc77f1fe6c2cb02ae15fd4680ab4076c50bb53c7ea0b35a69", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/route_maps/route_maps.py", + "name": "plugins/module_utils/network/nxos/facts/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3f4b8b99ca2c2ad045886e77c5f0e412dd9d906cd801daf0e462b02e719e6d47", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/acl_interfaces", + "name": "plugins/module_utils/network/nxos/facts/snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/acl_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "40b58f658b1b04583ed22216cb79b87040e113511d55c523c6dc17c8b1b9b103", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/acl_interfaces/acl_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0da4ca8f06addf22f010bdcfbc5d8f5c26b9caad3a4f0d0653f9bf1b56511a7", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lldp_global", + "name": "plugins/module_utils/network/nxos/facts/lag_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lldp_global/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/module_utils/network/nxos/config/lldp_global/lldp_global.py", + "name": "plugins/module_utils/network/nxos/facts/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1804e5abcd0b77a8b5c675c3bb4b90731e8932bf882f8445f01e839013660845", + "chksum_sha256": "59a72ebb6ded18c885dc7716f707873e9b2e4819c1f1af38d43d2f60d3ebb436", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/snmp_server", + "name": "plugins/module_utils/network/nxos/facts/l2_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/snmp_server/snmp_server.py", + "name": "plugins/module_utils/network/nxos/facts/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "213fd101832e7b149113afc178eac76dbff00448cec80e65c6c3e6e0d434e914", + "chksum_sha256": "16e09269f14c79c8b4ec91aa5eccc89af3d385dd779dd37dc1434933d9e9bc72", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/snmp_server/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/fc_interfaces", + "name": "plugins/module_utils/network/nxos/facts/bfd_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/fc_interfaces/fc_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/bfd_interfaces/bfd_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0438d7d1f23bc654fa0488e35002d8aff313dcf8afbef7412b0c68ee4e128f73", + "chksum_sha256": "85a308e34d42cc8d6a01e307d61f80aad2d3ebd4144654514b9855f96a1608f4", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/fc_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/bfd_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lacp_interfaces", + "name": "plugins/module_utils/network/nxos/facts/lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lacp_interfaces/lacp_interfaces.py", + "name": "plugins/module_utils/network/nxos/facts/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a3ca5d6369f95058d8133277cfda2b0f04b6465bebce78756e6a4b45adf1d20", + "chksum_sha256": "023062f4e902d13603541dfa4ed7556aaf55c9f7e09624e82404ad99b375e1d3", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lacp_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/facts/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/acls", + "name": "plugins/module_utils/network/nxos/utils", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/acls/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "plugins/module_utils/network/nxos/utils/telemetry", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/acls/acls.py", + "name": "plugins/module_utils/network/nxos/utils/telemetry/telemetry.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b04b56fe6b5f62801329741e2707a9c0d2030ba1963590ad4608fb28eba36706", + "chksum_sha256": "15cbafc9ce0f497e532fd5f677ac7fc847d0d94081f71d7538517699dcd59e30", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ntp_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/nxos/utils/telemetry/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ntp_global/ntp_global.py", + "name": "plugins/module_utils/network/nxos/utils/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6936bf5deb7b2708e4a6373b325c3155a14bbc454419ed7f516999e92946415c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/ntp_global/__init__.py", + "name": "plugins/module_utils/network/nxos/utils/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "061a3ad9eb413c3b48d2c4a77c060e11d499b21fa1830ab4a236f35d7f184fc9", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lag_interfaces", + "name": "plugins/module_utils/network/nxos/cmdref", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lag_interfaces/lag_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cb71721dc87b58474b79a72e3ef13d436c3cc5c65ddf79383e6a2a849c94bad9", + "name": "plugins/module_utils/network/nxos/cmdref/telemetry", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/lag_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/cmdref/telemetry/telemetry.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8da77084260edf236893c1758664c60ed4aa2a53f45d259db357712fb902c5cd", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bfd_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/module_utils/network/nxos/cmdref/telemetry/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bfd_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/cmdref/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bfd_interfaces/bfd_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "149dfe5bc61c80053e6fc498e2b98b70d1482ef8dd51ebb8ae7f84776e3b69b6", + "name": "plugins/module_utils/network/nxos/config", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_templates", + "name": "plugins/module_utils/network/nxos/config/l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_templates/__init__.py", + "name": "plugins/module_utils/network/nxos/config/l3_interfaces/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "e63f600eb2827bdd4a6fd5d16a728fe5a179a1bb8e29baa6da806e21bcf9cac9", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_templates/bgp_templates.py", + "name": "plugins/module_utils/network/nxos/config/l3_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dd3eb3ca52063455c3cbbb0fba6bdace21254000f3bd662466950098f82f72c1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/vlans", + "name": "plugins/module_utils/network/nxos/config/telemetry", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/vlans/vlans.py", + "name": "plugins/module_utils/network/nxos/config/telemetry/telemetry.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dd731a6f5a475a54f70cfc7f872737ebdc7b06e5a6b5f612ce2e92c0cc6bbfdc", + "chksum_sha256": "727e58c53e65e0803777cc288930ceb07f415e2202e6cf5a8b58ebbdffbd46d8", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/vlans/__init__.py", + "name": "plugins/module_utils/network/nxos/config/telemetry/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/interfaces", + "name": "plugins/module_utils/network/nxos/config/ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/interfaces/interfaces.py", + "name": "plugins/module_utils/network/nxos/config/ospfv2/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc036b0cfa2f0993c0a313334e3c849ef731671d917c75a9b0e5c2381bdbe5b4", + "chksum_sha256": "9294a53417222ea7bd4cf1b003780c5774924a288309b70bb353b0c64e74bd7e", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/config/ospfv2/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/l3_interfaces", + "name": "plugins/module_utils/network/nxos/config/lldp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/l3_interfaces/__init__.py", + "name": "plugins/module_utils/network/nxos/config/lldp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/l3_interfaces/l3_interfaces.py", + "name": "plugins/module_utils/network/nxos/config/lldp_interfaces/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e63f600eb2827bdd4a6fd5d16a728fe5a179a1bb8e29baa6da806e21bcf9cac9", + "chksum_sha256": "6c15204ad386b15117fcb44a6e62be71db4eb03b7f9aac53f7bbdd29020a4690", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_global", + "name": "plugins/module_utils/network/nxos/config/ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_global/bgp_global.py", + "name": "plugins/module_utils/network/nxos/config/ospfv3/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0d590ee1bf37a813910101a74b0d52709cfb6e174828990d34125a06a2ae570", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/config/bgp_global/__init__.py", + "name": "plugins/module_utils/network/nxos/config/ospfv3/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/module_utils/network/nxos/cmdref", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "0ee78999cd1450377200ffd92fa3e925ecf413b3c1cb1a4f11e084facf5844d9", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/cmdref/telemetry", + "name": "plugins/module_utils/network/nxos/config/acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/cmdref/telemetry/__init__.py", + "name": "plugins/module_utils/network/nxos/config/acls/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/cmdref/telemetry/telemetry.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8da77084260edf236893c1758664c60ed4aa2a53f45d259db357712fb902c5cd", - "format": 1 - }, - { - "name": "plugins/module_utils/network/nxos/cmdref/__init__.py", + "name": "plugins/module_utils/network/nxos/config/acls/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "plugins/module_utils/network/nxos/utils", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "b04b56fe6b5f62801329741e2707a9c0d2030ba1963590ad4608fb28eba36706", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/utils/telemetry", + "name": "plugins/module_utils/network/nxos/config/hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/utils/telemetry/__init__.py", + "name": "plugins/module_utils/network/nxos/config/hostname/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ab919426e1bd33f667ae875af49ed837d5f3f1e3598b878a290c3bc35004765d", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/utils/telemetry/telemetry.py", + "name": "plugins/module_utils/network/nxos/config/hostname/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f684bba2373a2a665e1b9ac34aa2822d33ab1a7f1e2919dd686a4395d07cab9", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/module_utils/network/nxos/utils/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "plugins/module_utils/network/nxos/config/vlans", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/module_utils/network/nxos/utils/utils.py", + "name": "plugins/module_utils/network/nxos/config/vlans/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "061a3ad9eb413c3b48d2c4a77c060e11d499b21fa1830ab4a236f35d7f184fc9", + "chksum_sha256": "dd731a6f5a475a54f70cfc7f872737ebdc7b06e5a6b5f612ce2e92c0cc6bbfdc", "format": 1 }, { - "name": "plugins/module_utils/network/__init__.py", + "name": "plugins/module_utils/network/nxos/config/vlans/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action", + "name": "plugins/module_utils/network/nxos/config/bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/feature.py", + "name": "plugins/module_utils/network/nxos/config/bgp_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/udld_interface.py", + "name": "plugins/module_utils/network/nxos/config/bgp_address_family/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "ab2d098a5e4d9f5dfccc95ec69210831e191ce526eb08fb55029517f27bca8f2", "format": 1 }, { - "name": "plugins/action/bgp_af.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/ntp_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/bgp_global.py", + "name": "plugins/module_utils/network/nxos/config/ntp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/evpn_global.py", + "name": "plugins/module_utils/network/nxos/config/ntp_global/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "6936bf5deb7b2708e4a6373b325c3155a14bbc454419ed7f516999e92946415c", "format": 1 }, { - "name": "plugins/action/vxlan_vtep_vni.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/lacp.py", + "name": "plugins/module_utils/network/nxos/config/interfaces/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "32368a2909b02f1b25206c7ee67e5e8da1ecfdc80800905a260decb71b2b873f", "format": 1 }, { - "name": "plugins/action/vlans.py", + "name": "plugins/module_utils/network/nxos/config/interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/pim.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/logging_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/lag_interfaces.py", + "name": "plugins/module_utils/network/nxos/config/logging_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/snmp_contact.py", + "name": "plugins/module_utils/network/nxos/config/logging_global/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e7d1de04722e657bd71a3131e7bba17bc0178031c1c91cfa87df16e0eccc6878", "format": 1 }, { - "name": "plugins/action/l2_interface.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/bgp_neighbor_address_family", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/user.py", + "name": "plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/interfaces.py", + "name": "plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "d8a658ac17e3b61cc0105d4567c8793adf8b2bd0cc0bcd68cf86353ac3116db3", "format": 1 }, { - "name": "plugins/action/snapshot.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/lldp_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/nxapi.py", + "name": "plugins/module_utils/network/nxos/config/lldp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/linkagg.py", + "name": "plugins/module_utils/network/nxos/config/lldp_global/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "1804e5abcd0b77a8b5c675c3bb4b90731e8932bf882f8445f01e839013660845", "format": 1 }, { - "name": "plugins/action/hsrp_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/acl_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/vsan.py", + "name": "plugins/module_utils/network/nxos/config/acl_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/snmp_user.py", + "name": "plugins/module_utils/network/nxos/config/acl_interfaces/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "0fe0d6c19ce427a02332486d5c2b3d3905634d7eadc1f76b37ca21799e018bde", "format": 1 }, { - "name": "plugins/action/bgp_address_family.py", + "name": "plugins/module_utils/network/nxos/config/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/bgp_neighbor_address_family.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/ospf_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/system.py", + "name": "plugins/module_utils/network/nxos/config/ospf_interfaces/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "6a12a9c127ce960b84820ac79286672f458ab56934903abbfb52e74e2e9c98b6", "format": 1 }, { - "name": "plugins/action/static_routes.py", + "name": "plugins/module_utils/network/nxos/config/ospf_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/gir_profile_management.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/bgp_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/l3_interface.py", + "name": "plugins/module_utils/network/nxos/config/bgp_global/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e0d590ee1bf37a813910101a74b0d52709cfb6e174828990d34125a06a2ae570", "format": 1 }, { - "name": "plugins/action/install_os.py", + "name": "plugins/module_utils/network/nxos/config/bgp_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/hostname.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/static_routes", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/vxlan_vtep.py", + "name": "plugins/module_utils/network/nxos/config/static_routes/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "329e8b628dae287612efa80e2ca7b5aaeefd530c19ddd8bd37a5b7774eb26aef", "format": 1 }, { - "name": "plugins/action/lacp_interfaces.py", + "name": "plugins/module_utils/network/nxos/config/static_routes/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/ospf.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/fc_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/vtp_version.py", + "name": "plugins/module_utils/network/nxos/config/fc_interfaces/fc_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "0438d7d1f23bc654fa0488e35002d8aff313dcf8afbef7412b0c68ee4e128f73", "format": 1 }, { - "name": "plugins/action/snmp_community.py", + "name": "plugins/module_utils/network/nxos/config/fc_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/logging.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/route_maps", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/ntp_global.py", + "name": "plugins/module_utils/network/nxos/config/route_maps/route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "3f4b8b99ca2c2ad045886e77c5f0e412dd9d906cd801daf0e462b02e719e6d47", "format": 1 }, { - "name": "plugins/action/hsrp.py", + "name": "plugins/module_utils/network/nxos/config/route_maps/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/interface_ospf.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/lacp", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/ntp.py", + "name": "plugins/module_utils/network/nxos/config/lacp/lacp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "9612ac4a62de771ca9cef65d733373105e180a060227fff8330bc814d5cdde96", "format": 1 }, { - "name": "plugins/action/smu.py", + "name": "plugins/module_utils/network/nxos/config/lacp/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/snmp_server.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/hsrp_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/vpc.py", + "name": "plugins/module_utils/network/nxos/config/hsrp_interfaces/hsrp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "5d5eb7ab8b3ff9d4c90321a6372a73f5087712b5d269eb1351380b93e5f1e207", "format": 1 }, { - "name": "plugins/action/__init__.py", + "name": "plugins/module_utils/network/nxos/config/hsrp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/interface.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/bgp_templates", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/ospfv3.py", + "name": "plugins/module_utils/network/nxos/config/bgp_templates/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/devicealias.py", + "name": "plugins/module_utils/network/nxos/config/bgp_templates/bgp_templates.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "dd3eb3ca52063455c3cbbb0fba6bdace21254000f3bd662466950098f82f72c1", "format": 1 }, { - "name": "plugins/action/file_copy.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/prefix_lists", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/telemetry.py", + "name": "plugins/module_utils/network/nxos/config/prefix_lists/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "445f9a55c8fd372fdbad1834ed7598d9281a376fd5de5e749218995310ccea81", "format": 1 }, { - "name": "plugins/action/nxos.py", + "name": "plugins/module_utils/network/nxos/config/prefix_lists/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/route_maps.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/snmp_server", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/aaa_server_host.py", + "name": "plugins/module_utils/network/nxos/config/snmp_server/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "213fd101832e7b149113afc178eac76dbff00448cec80e65c6c3e6e0d434e914", "format": 1 }, { - "name": "plugins/action/igmp_interface.py", + "name": "plugins/module_utils/network/nxos/config/snmp_server/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/zone_zoneset.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/lag_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/igmp_snooping.py", + "name": "plugins/module_utils/network/nxos/config/lag_interfaces/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "cb71721dc87b58474b79a72e3ef13d436c3cc5c65ddf79383e6a2a849c94bad9", "format": 1 }, { - "name": "plugins/action/pim_interface.py", + "name": "plugins/module_utils/network/nxos/config/lag_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/bgp.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/l2_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/reboot.py", + "name": "plugins/module_utils/network/nxos/config/l2_interfaces/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "30afeab2a5eff47a83411b870b078040d11cb84a5b0c094b5b7814bb69d2e831", "format": 1 }, { - "name": "plugins/action/l2_interfaces.py", + "name": "plugins/module_utils/network/nxos/config/l2_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/gir.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/bfd_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/command.py", + "name": "plugins/module_utils/network/nxos/config/bfd_interfaces/bfd_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "149dfe5bc61c80053e6fc498e2b98b70d1482ef8dd51ebb8ae7f84776e3b69b6", "format": 1 }, { - "name": "plugins/action/rpm.py", + "name": "plugins/module_utils/network/nxos/config/bfd_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/snmp_location.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/module_utils/network/nxos/config/lacp_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/ntp_options.py", + "name": "plugins/module_utils/network/nxos/config/lacp_interfaces/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "4a3ca5d6369f95058d8133277cfda2b0f04b6465bebce78756e6a4b45adf1d20", "format": 1 }, { - "name": "plugins/action/bfd_global.py", + "name": "plugins/module_utils/network/nxos/config/lacp_interfaces/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/ospf_vrf.py", + "name": "plugins/module_utils/network/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/igmp.py", + "name": "plugins/module_utils/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/pim_rp_address.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/cliconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/acl_interfaces.py", + "name": "plugins/cliconf/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "plugins/action/ospfv2.py", + "name": "plugins/cliconf/nxos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "13c8aee982db809a18709e985a54757e2390122a5a27461c2fbfbcde1286c926", "format": 1 }, { - "name": "plugins/action/config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "name": "plugins/action", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "plugins/action/vpc_interface.py", + "name": "plugins/action/bgp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/acls.py", + "name": "plugins/action/static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/udld.py", + "name": "plugins/action/feature.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/static_route.py", + "name": "plugins/action/vxlan_vtep_vni.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/lldp.py", + "name": "plugins/action/smu.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/l3_interfaces.py", + "name": "plugins/action/ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/vrf_af.py", + "name": "plugins/action/evpn_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/vrrp.py", + "name": "plugins/action/route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/ping.py", + "name": "plugins/action/hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/ospf_interfaces.py", + "name": "plugins/action/l2_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/lldp_interfaces.py", + "name": "plugins/action/snmp_contact.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/logging_global.py", + "name": "plugins/action/devicealias.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/vtp_domain.py", + "name": "plugins/action/ntp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/ntp_auth.py", + "name": "plugins/action/pim.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/prefix_lists.py", + "name": "plugins/action/acl.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/evpn_vni.py", + "name": "plugins/action/interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/bgp_neighbor.py", + "name": "plugins/action/vrf_af.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/vrf_interface.py", + "name": "plugins/action/bfd_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/vlan.py", + "name": "plugins/action/bgp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/bfd_interfaces.py", + "name": "plugins/action/logging.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/bgp_neighbor_af.py", + "name": "plugins/action/igmp_snooping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/banner.py", + "name": "plugins/action/prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { "name": "plugins/action/vrf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/rollback.py", + "name": "plugins/action/lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/acl.py", + "name": "plugins/action/snapshot.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/aaa_server.py", + "name": "plugins/action/vxlan_vtep.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/facts.py", + "name": "plugins/action/ping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/snmp_traps.py", + "name": "plugins/action/zone_zoneset.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/overlay_global.py", + "name": "plugins/action/facts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/vtp_password.py", + "name": "plugins/action/gir.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/lldp_global.py", + "name": "plugins/action/snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/acl_interface.py", + "name": "plugins/action/system.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "plugins/action/snmp_host.py", + "name": "plugins/action/vpc.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75b42907b60d3bdcdfb868b4d2b6af3e99b7a3339dcc59d36f5bfb07d4f24661", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": ".ansible-lint", + "name": "plugins/action/telemetry.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b47f72e159f93a5ff07ea2534752e0fa977b214e9ac05c667fa83ac13be4e50c", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "test-requirements.txt", + "name": "plugins/action/vlans.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef11b7e31c53ed88a2352faacda33806dda00f45d4e9cce540a40e6a47ccbe73", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/bgp_af.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/sanity", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/ospf_vrf.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/sanity/ignore-2.9.txt", + "name": "plugins/action/aaa_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5aed10757064babb8aa6dafee78f2c9f9aac004c2188c70ea3c0f018db82cbae", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/sanity/ignore-2.13.txt", + "name": "plugins/action/linkagg.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "935199601f3c767ca623e1a8c6f73032f3cfee0536e4aed1cf5842b157956671", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/sanity/ignore-2.11.txt", + "name": "plugins/action/snmp_community.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dffc0e474e545fd47798cbc252ee5836ff87b5f4eb0c7dfed83e78c29101d622", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/sanity/ignore-2.10.txt", + "name": "plugins/action/ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dffc0e474e545fd47798cbc252ee5836ff87b5f4eb0c7dfed83e78c29101d622", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/sanity/ignore-2.14.txt", + "name": "plugins/action/lldp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "935199601f3c767ca623e1a8c6f73032f3cfee0536e4aed1cf5842b157956671", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/sanity/ignore-2.17.txt", + "name": "plugins/action/snmp_location.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "935199601f3c767ca623e1a8c6f73032f3cfee0536e4aed1cf5842b157956671", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/sanity/ignore-2.16.txt", + "name": "plugins/action/snmp_host.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "935199601f3c767ca623e1a8c6f73032f3cfee0536e4aed1cf5842b157956671", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/sanity/ignore-2.12.txt", + "name": "plugins/action/overlay_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f183c744ea1c27c189e2d0da7a45ae3fb50f69e4c658e4aa55b023061181518", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/sanity/ignore-2.15.txt", + "name": "plugins/action/pim_rp_address.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "935199601f3c767ca623e1a8c6f73032f3cfee0536e4aed1cf5842b157956671", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/config.yml", + "name": "plugins/action/snmp_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de5087316490411841c67aa3307cfdd3acaea09875c9b4dee6852bca7c120764", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/bgp_neighbor_af.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/requirements.txt", + "name": "plugins/action/l3_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49ba996dc4735c3463e9af561344346dfae14bcc1a68096ce78364b377f0df1f", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/__init__.py", + "name": "plugins/action/vtp_version.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/mock", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/hsrp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/mock/vault_helper.py", + "name": "plugins/action/bgp_neighbor.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3bf7834d18bd34473d0f4b898253177229a131f14364874efba584ff985e4a41", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/mock/__init__.py", + "name": "plugins/action/evpn_vni.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/mock/procenv.py", + "name": "plugins/action/igmp_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a1e05e3b412bb02d16ec786919f6395c813a4e10d73ca7ca4d0ffcf5066e6947", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/mock/loader.py", + "name": "plugins/action/vtp_domain.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2343d1f644250d4b616f0bf0a826fdee8fe306243d8412d44dd0e033352b262b", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/mock/yaml_helper.py", + "name": "plugins/action/file_copy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc4f4d5d2968ced8e3a04653354945d720e7c6369aad67ba7724c5981c82b6ea", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/mock/path.py", + "name": "plugins/action/vrrp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6daa1376aa9b171f37dbe2fed6cd37d7b4bacea09e4646953dbe77a7e65ee7c", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/install_os.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/__init__.py", + "name": "plugins/action/lag_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/conftest.py", + "name": "plugins/action/rollback.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "354440d86f684a9641f329807a687fe71fc66ab901207f7a166ecfa648935488", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/utils.py", + "name": "plugins/action/rpm.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a0cf9489868d4ed6f549bf4133f50fd4f594850a6458e6c07a913078355c1385", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/lacp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/action/vsan.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_evpn_vni.py", + "name": "plugins/action/ospf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a9dd476a29066efedb3611a768c18208a1cbaa9fb7b6664c1d3496e8b12033db", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_ospf_interfaces.py", + "name": "plugins/action/config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a849b007bba2a9b83e993c51bae94cc56679256b94c0602d0f4dcebb09c2dacc", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos.py", + "name": "plugins/action/hsrp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37e6224e4f77205d58782bae0080a5af3da05610062f7b378f38554ee7514de1", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_static_routes.py", + "name": "plugins/action/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8f6e383e73a654e461b447f8b5721c4d7ba491da63c1c9d6aa0ee4a25d402af0", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_lacp_interfaces.py", + "name": "plugins/action/nxapi.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b8205f7e7b9840ded74d3476e1ed972bdfa75125b45024ffc1725e057690f120", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_lldp_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "32d30a2580844412a612a3a35fc32bfa5c6f5231f841a16574cc125bc856e02d", - "format": 1 - }, - { - "name": "tests/unit/modules/network/nxos/test_nxos_hostname.py", + "name": "plugins/action/nxos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5b7cc39cad57438bf866e079c7efe0a9e0bd05ad2cbc7e1fdc4dd6016f7d7736", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_vrf_af.py", + "name": "plugins/action/l3_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e420b96864806c431d47822e92410c0e12443ee856412e88037d83c7d8e7ec14", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_vpc_interface.py", + "name": "plugins/action/pim_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3abcf4a8badf2045283c90df190db8eb47d82df2be679b1318ac53ecb3cc42c7", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_feature.py", + "name": "plugins/action/vtp_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "04347076b23abb7bbb9225d1793e9c6faacea6e990f45cd6a3b2d8b0b3355eba", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_evpn_global.py", + "name": "plugins/action/bfd_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08fa4dafb774bcb34b593281550fa175b775bfa4e5c61befe0238b1bf9687179", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_command.py", + "name": "plugins/action/vpc_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "339e1cb26b204a937d7ea377d020cf220ba8a7fb5cedcde9a6e5c20ff9d26087", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_hsrp.py", + "name": "plugins/action/command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "32da41a469c83575c4db2f6b208286f9cf33df071d5a67c76a324ae8a1cb4f3d", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_interfaces.py", + "name": "plugins/action/banner.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "decd7046f084f6472878cf81e7978691ad4cdca125dfebf5cc1ea7a8769a941d", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_vpc.py", + "name": "plugins/action/logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d75391e6c222c6569a0aa77d2c7d531add9a16ea060e03f0f81a6352786ef0cc", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_bgp_global.py", + "name": "plugins/action/user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "726870e1bca5d80d7ffbc8f09e803e1444eafe633b8e2e32f1ef194666fb5200", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_ospfv3.py", + "name": "plugins/action/acl_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e707825398974684fd4a51ba79bdb1b5a75eb4ba93ceccbbd063af538c4ed149", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_zone_zoneset.py", + "name": "plugins/action/bgp_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "81675e55caa8a49026cd49db7ec69583a61553498db1b68b86596f491fa426d8", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_vrf.py", + "name": "plugins/action/lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "897434515383d004c4de31606091235b2186d690bc28315959de42b1d11dc02e", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/__init__.py", + "name": "plugins/action/interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_bgp_neighbor_address_family.py", + "name": "plugins/action/ntp_options.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "843eafd7ab9575c2f407e91f663efb88fa44c736c6724fead0c94438bee6e76d", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_bgp_templates.py", + "name": "plugins/action/aaa_server_host.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52063ec8838ba2d979b0df01dcbd4e66204a33e553ddf2bff9fdb1efafbae8cc", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_ospfv2.py", + "name": "plugins/action/bgp_neighbor_address_family.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0edb9f7af075021504b7fa5c4ef73d7057c2edfe1aa4d3b773484e862555cf8", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_devicealias.py", + "name": "plugins/action/static_route.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61bdff16bffda8f4f31b03f02fd0047d1aac07af0898f9c60b41469b1e192622", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_nxapi.py", + "name": "plugins/action/vlan.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ba8a07fd21828a268fdb90aa0921cdfe7b487de827db4c746228be2cc016e8c", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/nxos_module.py", + "name": "plugins/action/lldp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0d1a4eadc6d91ab91db07ea6ac3a5576e417f1339c1520079de065451b87fd3c", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_acl_interfaces.py", + "name": "plugins/action/vrf_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3682b5a6e62c35584ca486d95f112ad99c2551e3fb5913ee3509f4682397566", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_telemetry.py", + "name": "plugins/action/ntp_auth.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b3e8bf396743daed1d752588f7fadafcb1d9cc3cc562c2a40f36629f68b6f10", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_banner.py", + "name": "plugins/action/udld.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d5e68392d403e4440a3e85556a968abce1e85ae58dfadf487bbd25f9c26c6095", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_prefix_lists.py", + "name": "plugins/action/acl_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9c1c9c9d867611ee162f172041539ee6af3f8825af52cd2888c1623ed012603", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_ping.py", + "name": "plugins/action/udld_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8eeed1361334dd9a92549debd17027fab40c293dbec6307cdc460b69cb448ee9", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_overlay_global.py", + "name": "plugins/action/interface_ospf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a59fd945009509ca8eec7fb78bc6000d692230ef505bcadf48e8b843904987af", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_vsan.py", + "name": "plugins/action/igmp.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5912485637b9720e5f61c4364e65aa9c52fe1f5f3c9f06516bde908bd4d28f1c", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_system.py", + "name": "plugins/action/ntp_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bbd7e38463b30523fee2bda727e81518950dc70a423c0e8d4a26bfc96f3cf600", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_user.py", + "name": "plugins/action/l2_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8bdccd30ccc686e727cb486c80e3868097a43faeb27bc0d1b674acf77411c577", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_hsrp_interfaces.py", + "name": "plugins/action/snmp_traps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "da3a8f5c346182514bae4d4447628462c9b3271f1e36b27dd4b1372d44d6c46c", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_route_maps.py", + "name": "plugins/action/gir_profile_management.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "007fc4813c28fa488eea78d446db221cba0d12b5bd80ef34160ee799acc85f70", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_ntp_global.py", + "name": "plugins/action/acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "03208457ac4c50b9400c38c3ab8ee060254142d253743a71666b182f087ade8b", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_bfd_interfaces.py", + "name": "plugins/action/reboot.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dcb920f198f159f4c9c043913dcbb346ee07cc5c5524f747f064b09c5d25f1eb", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_vxlan_vtep_vni.py", + "name": "plugins/action/ospfv3.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc31efebfb5c1f6c256006c77678efef031c5b1d289e8873460b998db795318c", + "chksum_sha256": "be7c78254555923b2a83bccadc6d71c48d5a84c1a67941ee3666222b163fc7a4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures", + "name": "plugins/doc_fragments", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "plugins/doc_fragments/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface/show_interface_eth2_1", + "name": "plugins/doc_fragments/nxos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de922c7abca31dbb4d597cc485a02b9affe0c85fbaf1d268b15d38d8fe6ba069", + "chksum_sha256": "75b71c234b0886b9a8c7cb54e9b1a2de2e433f8a19608a3ba45e67037c942943", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface/show_ip_pim_interface_eth2_1", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "88ad9b709dae48e373fcf04c158d6714de1f94e808fa033204d3b7b4e48bf8bb", + "name": "plugins/filter", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface/config.cfg", + "name": "plugins/filter/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25600ba56e8e7066889af660ff87eb22aec3ce587ad60c1a7eca25c627064a5c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface/__init__.py", + "name": "plugins/netconf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "plugins/netconf/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface/sh_run_interface_eth2_1_all", + "name": "plugins/netconf/nxos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "3dceb9254be3c61b493715b4d993f42ab9c088dd103eb6b59563832aec26c22e", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interface", + "name": "plugins/httpapi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interface/show_running-config_aclmgr.txt", + "name": "plugins/httpapi/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "606d5b49ef095558924b32c6faa4e06f128f4655dddd57595e945cd33a4dbe72", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interface/__init__.py", + "name": "plugins/httpapi/nxos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "acfbda7df81189f8211a3d8af3d7e567bc719328e075531c154671cd97bd92be", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlan", + "name": "plugins/inventory", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlan/config.cfg", + "name": "plugins/inventory/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4cd4cba4fba8bd0ceca02c0cea325b38c65d82a1b01633f59776902dfc00010c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlan/__init__.py", + "name": ".flake8", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "f357bc604a44fe8a5912ec2b9067b734a88d1026da98d5993905d7b34ab44357", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlan/show_vlan_brief.txt", + "name": "pyproject.toml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c60b1775765492c72f6cf744aa56574aeea9b6c57ac19c974ebc73146cf4920a", + "chksum_sha256": "82a737e4c91699b90905fc2d347acaf5c3eb4567cc0750cf122c859d0eed78ed", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlan/agg_show_vlan_brief.txt", + "name": ".isort.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a6ad270b50167f7b13c3e7f40f83ebc812ceb7ef7d3455c0ce7b404ede9d6238", + "chksum_sha256": "3fc5fcc23727e7c5b9f1a7035303990229f796a171a84e21051dd1d242b90c52", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc_interface", + "name": "meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc_interface/__init__.py", + "name": "meta/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc_interface/show_vpc_brief", + "name": "meta/runtime.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1901ac7c063992cfcebb4ba110637bc241aa0fb122959d9af40be8957b47bf54", + "chksum_sha256": "40c6ab1595d2252393db7e834d0de46f776beddd1bd701a49a29a9d7b1a7c876", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc_interface/show_port-channel_summary", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bc24581fc9c635989ae2926270c03c4c85c642b768f6685cff7cfdcd924e70f6", + "name": "changelogs", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_telemetry", + "name": "changelogs/fragments", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_telemetry/N9K_SGs.cfg", + "name": "changelogs/fragments/.keep", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af042e9ae8d0a2e6b6ddc28f13ce438e7b49050385ca546bdb5f1a1b51c1da1e", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_telemetry/__init__.py", + "name": "changelogs/config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "54c802c2ade537e8b71ba45d10c73a422778a62aab0093bc6805c75ab8c7f448", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_telemetry/N9K.cfg", + "name": "changelogs/changelog.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8d4c2bff81ce036402bf1bfc5a01191ead2507ea6deb7e7d4930ceb35965b1e5", + "chksum_sha256": "679e0f7cfe3b1161eb8979912c5997848b879a8b3fa353578f61d866b1b9490e", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": ".pre-commit-config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "395482dc9117c2fbc52da3a2d5b78a06f526834f5959ff6091229f4e2d0035b2", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n7k", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "CHANGELOG.rst", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "138c9116b2e12a0f7804969ae129d2281aa64a30a36003593458731678e35da7", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n7k/__init__.py", + "name": "requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "70053744bf8f5b698f82ad59a6daec106188d9b63c6d1246f860f21ab8cb6ac5", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n7k/show_run_all", + "name": ".prettierignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0f487063d9698ed988f461a0f1d90be2406db893a1881d162720dd0587a0ddd9", + "chksum_sha256": "fe21cf5ca4606d16ccedb1bccc85ef06771ee697924ca50ecd8ca4c98acce5cc", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/__init__.py", + "name": "platform_guide.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "48467b2534cf719f3925b1b62e10a587eb68c1afbc19bf69d801dbec119a9277", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n3k", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": ".gitignore", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "179a6d0780422c32653a71b9395a3ecb8b3859346ffa3e38ca3c8d90f8063fd2", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n3k/__init__.py", + "name": "test-requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "cf0a6736e79a79f5ea107f0b74c38957ece4a6e4b5c00b01d2c1ea679d876089", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n3k/show_run_all", + "name": ".ansible-lint", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "db42fd8881e10bf436a6712d228152f2ca6e627e0aa07531751009df2153fc3d", + "chksum_sha256": "b47f72e159f93a5ff07ea2534752e0fa977b214e9ac05c667fa83ac13be4e50c", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_system", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "codecov.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4aa7e485dd4db6f8a55b046088c745def2b3145d9499ccda4e9a3336467dcea2", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_system/vrf_only", + "name": "tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_system/vrf_only/config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "78c6c60ac86950ccc102c733222dc40ca42ae78622fecbee3af27f61bb015adb", - "format": 1 - }, - { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_system/config.cfg", + "name": "tests/config.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c65fd0fea85d4421908dcb50a8778a562d62c2723ccb10520cb9c62c57f32977", + "chksum_sha256": "4129945061440c8d8c281590b8054b194f5958833c722aa40e878b09038c380e", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_rp_address", + "name": "tests/sanity", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_rp_address/config.cfg", + "name": "tests/sanity/ignore-2.15.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "358b10ada00b4a323c671eaa193bc4c62bfa6e6600042382003a8efe5708bddf", + "chksum_sha256": "935199601f3c767ca623e1a8c6f73032f3cfee0536e4aed1cf5842b157956671", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_rp_address/__init__.py", + "name": "tests/sanity/ignore-2.17.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "935199601f3c767ca623e1a8c6f73032f3cfee0536e4aed1cf5842b157956671", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_switchport", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/sanity/ignore-2.18.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "935199601f3c767ca623e1a8c6f73032f3cfee0536e4aed1cf5842b157956671", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_switchport/__init__.py", + "name": "tests/sanity/ignore-2.16.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "935199601f3c767ca623e1a8c6f73032f3cfee0536e4aed1cf5842b157956671", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_switchport/show_vlan", + "name": "tests/sanity/ignore-2.14.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "864e06b1e9befc20919e723ee5f9bcb2f51a88e524e8ce8e112ac9ec12bf38fc", + "chksum_sha256": "935199601f3c767ca623e1a8c6f73032f3cfee0536e4aed1cf5842b157956671", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_switchport/show_interface_ethernet_switchport", + "name": "tests/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8b266354ff8d44bc8987e97565cba41afedb2fbe282c577c8d371516e84d01bc", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_switchport/show_interface_ethernet", + "name": "tests/.gitignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3eba930c712f346d62428fc829d411a3c7f3b32d00ac0b54bee3e25f5a239876", + "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_bgp", + "name": "tests/unit", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_bgp/config_32_bits_as.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "deed874c21f6472915657eed44c550ff438995b132d365fedb8b94deb510c856", + "name": "tests/unit/modules", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_bgp/config.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f971230c61be923533c3ea1eb63e9938cdf701f3884d511105d551d7ee531554", + "name": "tests/unit/modules/network", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_bgp/__init__.py", + "name": "tests/unit/modules/network/nxos", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/modules/network/nxos/test_nxos_acls.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5a7acd1fa7f58e389510c0b12262c3ccad13fdbfa263a052df7ced07b51ae4a0", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/__init__.py", + "name": "tests/unit/modules/network/nxos/test_nxos_snmp_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "894022761947d303c8f275cdd907dd987a18b092589e069a7719332f9efc3180", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf_af", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_overlay_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84c43269ad7e4c30ec87b50598018aa176ecc5fa6a5cf83c04163549df700c11", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf_af/config.cfg", + "name": "tests/unit/modules/network/nxos/test_nxos_vrf.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a11a202b4b688d09c6b7cb78a74d139f2b599c85973dd068b1ec18892926cbf4", + "chksum_sha256": "ce6b30fdf5ea958858abea77348d845b53c2430333dbd879d9d8dbcf3f438432", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf_af/__init__.py", + "name": "tests/unit/modules/network/nxos/test_nxos_bfd_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "5c791a5a862edc717ae75ce62fcd53f8f2f2c629f267194482909a8350946457", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset", + "name": "tests/unit/modules/network/nxos/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonestatus_3.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3fee2a63052400d50f93de5abc0dfd7897a48269d71af99f53182139461c3bb0", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/show_zone_vsan.out", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "74aee6c5327fabe2de027ca0907e76be2628510e125976c8918575bbf09ea703", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonestatus_0.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans/show_running-config", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "010172dc57589c93d51b95aa50feecbda06ee706fd623422a088de23ccc9e723", + "chksum_sha256": "6b793f9fc0770084b8babcdd914c4c42b2d1d3256be53d0cba3a78c19a616dec", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzone_1.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans/show_vlan", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "abb9d2504120327f0b55c36a6c130c9180a0f455ae397737ecfaaa4e6f891ef5", + "chksum_sha256": "6ac358cca25afd3bbc1aa11515f5e31ea9d548abdbcdf0563949e446d76f0c3c", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzoneset_0.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans/show_vlan_no_facts", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cae1aca46b8d82f44a8f728182fafd1030040360725fb7367040392c1d52c018", + "chksum_sha256": "ca3d163bab055381827226140568f3bef7eaac187cebd76878e0b63e9e442356", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonestatus_1.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans/show_running-config_no_facts", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "46c16cd03a600d15085abf2052ed33830fed61424a02004021ce4dd82f0086e2", + "chksum_sha256": "783b64a65f752ecfbf2ab084cb164df5d5a818d3dc9980856037a47853bcbfd8", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzone_2.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6e109ddbe7ad8d251edbe3ebe5bf960c055ac9a1d3d5bc3865596bf0d65d83a5", + "chksum_sha256": "cea4ee76cbd062bd53302a5c1f37bc78584c8677950c99eb145c106a8852b278", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzoneset_1.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bcdd326b9710f2b1f56ac59ed3bdccaa6e853cfb24af1445743d3254ce458166", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzone_bug339.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6c45bdddc81417a51bdb8256cc024efef8d8cf432083297902ef8fcda9850703", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/show_zoneset_active_vsan.out", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_run_all", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eef09bfcfaae85faa6c0b10f2ac4207c73947496c77783c7aa6bac45a9d02d3a", + "chksum_sha256": "f2a24625313932312f1d5e1c1d2c3935f99e5ab28880315c7dd39698df72daf8", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzoneset_2.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_default_interface", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08f7f3dc2d44ed61e7002bc417cea69f8407d7f4b0a62634c1f449f5338f7384", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonestatus_2.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_management_interface", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "171f743817a7ffe74398b6d78a0600ec0126dc2fe0890694a62eb6db89225a58", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/show_zoneset_vsan.out", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_management", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc71e64aa30f5e4da11b419ac36c9b36cae8057bd8bef47b2da5bc293ebaaebb", + "chksum_sha256": "ca2359ed30a431281f356f0bb15f8bc2abb7169e21a6022034d8a4411fc413f6", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzone_0.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_ntc", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13fa7bba46e2967e5c1bc2254620c4cd5337daab92a23d8aa6d6dec1ea7905ae", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/show_zone_status_vsan.out", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "42ca86dc445e87a4cba4d08cbd217173af42f60181eb44017d852837c17e9a47", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonestatus_4.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_default", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5005380753639cd3afd7e1b4ed90452d5d9492bb05c0852563009949e285db0e", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonesetactive_0.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_ntc_interface", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1836db8862dd990ea4008e3c10d16d7a5563561ac27a8f846f2d2bfee8d805f0", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_evpn_global", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_evpn_global/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "25600ba56e8e7066889af660ff87eb22aec3ce587ad60c1a7eca25c627064a5c", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_evpn_global/unconfigured.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84f47e5f6bde50931928544ec35970db216f2bffd80cff2d7b7350903d86a5c1", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_evpn_global/configured.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface/show_interface_eth2_1", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "53ca3e78de8cd1b9ec6e040ece7bec23ea29663d1eebd1aed66a2980e832dc19", - "format": 1 - }, - { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep_vni", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "de922c7abca31dbb4d597cc485a02b9affe0c85fbaf1d268b15d38d8fe6ba069", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep_vni/config.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface/sh_run_interface_eth2_1_all", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9676910539593a9a50989e688d7848de6074092a58e720ebbb437fa02859bd5f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep_vni/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_interface/show_ip_pim_interface_eth2_1", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "88ad9b709dae48e373fcf04c158d6714de1f94e808fa033204d3b7b4e48bf8bb", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_command", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_command/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/show_interface_loopback0", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_command/show_version.txt", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/show_interface_Ethernet2_1", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c45a343dc5192f50ef68b6bebee3da8cb980be9ec3cd5b75b00a20658fde6748", + "chksum_sha256": "de922c7abca31dbb4d597cc485a02b9affe0c85fbaf1d268b15d38d8fe6ba069", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_bfd_global", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/show_run_interface_Ethernet2_1", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6fda3eb0c249234e367f3e6d981a9957902f3443ff892ee35c3fbb87f8b2760b", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_bfd_global/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_bfd_global/N7K.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/show_run_interface_loopback0", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "406c13868678145de8fa80ab6540d805084b62c191a928a466fd44e6e59ccd78", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_bfd_global/N9K.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/show_interface", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9089fae22c9d5b25f815c43f8de1b95041c2fd012d721e29e009e47f64fa66ff", + "chksum_sha256": "3152065a242771a7e158ce7a8a6da2f5e62f0a35807389d62d0b927830d2ab04", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc_interface", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/show_vrf_all", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a690233a51aeef35190bd4fd440a65fd819bc0153ea20b1b362c25392329e04c", - "format": 1 - }, - { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/vrf_test_show_inventory", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc_interface/show_port-channel_summary", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d501010723eb3675a96a954862a0210ac023095947f8e09ea951e15faa96545", + "chksum_sha256": "bc24581fc9c635989ae2926270c03c4c85c642b768f6685cff7cfdcd924e70f6", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc_interface/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/vrf_test_vpc_config", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f68fa10ece2a3162e69d8bc6ae207437f76b07a956782d6637214ae088346557", - "format": 1 - }, - { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/vrf_test_show_vpc", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc_interface/show_vpc_brief", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d5e079e4fa7499d1ee8e1f0ef98ba4908b5abe9bb146f2d07909c5e139940ff7", + "chksum_sha256": "1901ac7c063992cfcebb4ba110637bc241aa0fb122959d9af40be8957b47bf54", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/vrf_test_show_vrf_all", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f9b34cc87b238b789fa2c54dd008597f37aa0a859cf06c25e5ce60aefdd0ed12", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/vrf_test_show_hardware", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cf21f74cb2df54e19dae270c2b973eea492c3d9925ad7a1b8b59ff9f0e575287", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/show_vpc", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl/show_ip_access-list.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4876569ce50a9bb5a00412d9e0e3bd17aed2d739613b28796c3224ae5397b705", + "chksum_sha256": "61de402089db40d19ac51c2e8a52894c45d9002156027c09ab17d0cc3fea635d", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/cliconf", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_system", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/cliconf/nxos", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_system/vrf_only", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/cliconf/nxos/show_version", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_system/vrf_only/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "12c7c1c28fcd05fced589995a39f0a1389d970f6199fadcbf95543da330feb22", + "chksum_sha256": "78c6c60ac86950ccc102c733222dc40ca42ae78622fecbee3af27f61bb015adb", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/cliconf/nxos/show_inventory", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_system/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb14576378ab0f2fd25d13dd4c4dbc31c3940d65ecb5f2fa29b39eba7e04d7ee", + "chksum_sha256": "c65fd0fea85d4421908dcb50a8778a562d62c2723ccb10520cb9c62c57f32977", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/cliconf/mds", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_feature", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/cliconf/mds/show_version", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_feature/show_feature.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "33cb951f7e55bfc24ba68026e55c250973d49113340d4c86ec5f52d2dfb32198", + "chksum_sha256": "d7be73f626f2d19d384bda2c214b58505da78232c84a1b5c971495510e950db8", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/cliconf/mds/show_inventory", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_feature/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6e57d9cdf30356d92715fcd45fc9fc5e6fd0dc07298682343aef0f9c1c6231d5", - "format": 1 - }, - { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_feature", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { @@ -4894,3132 +4908,3083 @@ "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_feature/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_feature/show_feature.txt", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_overlay_global_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7be73f626f2d19d384bda2c214b58505da78232c84a1b5c971495510e950db8", + "chksum_sha256": "aeb566110f15e114259185610a7e1a17ba8a4a8380f590120292eceab885bccd", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vsan", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf_af", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vsan/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vsan/shvsanmem.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf_af/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91b604b4bdd22922dfbfb776dc40a760428806a2f845e8c9e76d42beef14bbb8", + "chksum_sha256": "a11a202b4b688d09c6b7cb78a74d139f2b599c85973dd068b1ec18892926cbf4", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vsan/shvsan.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf_af/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63e5ef2ff7dfbb786b21f77d0e047b16a5af1477901433189032c59f0d2e4988", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_config", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_bfd_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_config/config.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_bfd_global/N9K.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "03abdcaedc2f739a12fd1c31f37164f02ed471aff024ad8e654a0d7ec3e611e6", + "chksum_sha256": "9089fae22c9d5b25f815c43f8de1b95041c2fd012d721e29e009e47f64fa66ff", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_config/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_bfd_global/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_config/candidate.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_bfd_global/N7K.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3352c8002ead9454c96fa97e82bc2bf245ac57a69edbf8a934bed4ef809de3de", + "chksum_sha256": "406c13868678145de8fa80ab6540d805084b62c191a928a466fd44e6e59ccd78", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_command", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep/config.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_command/show_version.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cea4ee76cbd062bd53302a5c1f37bc78584c8677950c99eb145c106a8852b278", + "chksum_sha256": "c45a343dc5192f50ef68b6bebee3da8cb980be9ec3cd5b75b00a20658fde6748", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_command/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface", + "name": "tests/unit/modules/network/nxos/fixtures/cliconf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/show_run_interface_Ethernet2_1", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6fda3eb0c249234e367f3e6d981a9957902f3443ff892ee35c3fbb87f8b2760b", + "name": "tests/unit/modules/network/nxos/fixtures/cliconf/nxos", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/show_run_interface_loopback0", + "name": "tests/unit/modules/network/nxos/fixtures/cliconf/nxos/show_version", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "12c7c1c28fcd05fced589995a39f0a1389d970f6199fadcbf95543da330feb22", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/show_interface_Ethernet2_1", + "name": "tests/unit/modules/network/nxos/fixtures/cliconf/nxos/show_inventory", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de922c7abca31dbb4d597cc485a02b9affe0c85fbaf1d268b15d38d8fe6ba069", + "chksum_sha256": "cb14576378ab0f2fd25d13dd4c4dbc31c3940d65ecb5f2fa29b39eba7e04d7ee", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/cliconf/mds", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/modules/network/nxos/fixtures/cliconf/mds/show_version", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "33cb951f7e55bfc24ba68026e55c250973d49113340d4c86ec5f52d2dfb32198", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/show_interface", + "name": "tests/unit/modules/network/nxos/fixtures/cliconf/mds/show_inventory", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3152065a242771a7e158ce7a8a6da2f5e62f0a35807389d62d0b927830d2ab04", + "chksum_sha256": "6e57d9cdf30356d92715fcd45fc9fc5e6fd0dc07298682343aef0f9c1c6231d5", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface/show_interface_loopback0", + "name": "tests/unit/modules/network/nxos/fixtures/_nxos_ip_interface.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "ce28d8e36e6ed0776c23f9d57050b68a3dd4cace82f8d3909de89bf98c2b3401", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface_ospf", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interface", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface_ospf/config.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interface/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5251c622e0f68d8c94e0215bd6a9f8c5d7ab755fc8879ceff8a9cac9b09caf9c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface_ospf/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interface/show_running-config_aclmgr.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "606d5b49ef095558924b32c6faa4e06f128f4655dddd57595e945cd33a4dbe72", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_evpn_vni_config.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_static_route.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f12c0f2a38e284dde284dd4042cda86d71671289619456a3438a58f88ab929e7", + "chksum_sha256": "8787db2297394f70dfa9ea3550d604fcaef84c40d973c498b147d346422b8585", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep_vni", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_ntc", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep_vni/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "9676910539593a9a50989e688d7848de6074092a58e720ebbb437fa02859bd5f", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_management_interface", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vxlan_vtep_vni/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_rp_address", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_management", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_rp_address/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ca2359ed30a431281f356f0bb15f8bc2abb7169e21a6022034d8a4411fc413f6", + "chksum_sha256": "358b10ada00b4a323c671eaa193bc4c62bfa6e6600042382003a8efe5708bddf", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_default_interface", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim_rp_address/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_default", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_evpn_vni_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "f12c0f2a38e284dde284dd4042cda86d71671289619456a3438a58f88ab929e7", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_run_all", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f2a24625313932312f1d5e1c1d2c3935f99e5ab28880315c7dd39698df72daf8", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_bgp", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vrf/show_vrf_ntc_interface", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_bgp/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "f971230c61be923533c3ea1eb63e9938cdf701f3884d511105d551d7ee531554", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_static_route.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_bgp/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8787db2297394f70dfa9ea3550d604fcaef84c40d973c498b147d346422b8585", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/_nxos_ip_interface.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_bgp/config_32_bits_as.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ce28d8e36e6ed0776c23f9d57050b68a3dd4cace82f8d3909de89bf98c2b3401", + "chksum_sha256": "deed874c21f6472915657eed44c550ff438995b132d365fedb8b94deb510c856", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_l3_interface", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias/shdastatus_mansi.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_l3_interface/ethernet_noshut_multiple_ipv6", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b47fe27d3b8f630988803930db4eb009b8ef93e5f7838e4d3a49adf1859d43f5", + "chksum_sha256": "93f0654869c15b0670ae97f78615662b35f5f3aefccfb3c1e2e463ae3759a6d0", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_l3_interface/__init__.py", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias/shdastatus.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_l3_interface/ethernet_noshut", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5426bfb2d55edf2003ff250d0730cf4ea9ace4f44da02ce6664ed3bc77c7867d", + "chksum_sha256": "96a17611067db53f8bdee41ec48055b8ec808b2968d4f3dd784dfae1d6d85d4e", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias/shdastatuslock.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_l3_interface/ethernet_noshut_ipv4_ipv6", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba24a69173bd06b6a025d176427b5619878da807c2a2b8a42aced27ac16d607c", + "chksum_sha256": "9b65b76df737c6da986a8850a5874d6f6733c26b8209c778d7d861ce0b5cb894", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias/shdadatabse.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e912812c9084c8676a32afd1e2522f00bfd75d164fbb86113f01a88f164ebb8", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim/config.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/vrf_test_vpc_config", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0c10e6761048c3f05f7143dc844703c76c41ed38e9f0175479874c183cef2ac", + "chksum_sha256": "f68fa10ece2a3162e69d8bc6ae207437f76b07a956782d6637214ae088346557", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/show_vrf_all", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "format": 1 - }, - { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_l3_interface", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "a690233a51aeef35190bd4fd440a65fd819bc0153ea20b1b362c25392329e04c", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_l3_interface/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/vrf_test_show_vpc", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "d5e079e4fa7499d1ee8e1f0ef98ba4908b5abe9bb146f2d07909c5e139940ff7", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_l3_interface/ethernet_noshut", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/vrf_test_show_vrf_all", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96a17611067db53f8bdee41ec48055b8ec808b2968d4f3dd784dfae1d6d85d4e", + "chksum_sha256": "f9b34cc87b238b789fa2c54dd008597f37aa0a859cf06c25e5ce60aefdd0ed12", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_l3_interface/ethernet_noshut_ipv4_ipv6", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/show_vpc", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9b65b76df737c6da986a8850a5874d6f6733c26b8209c778d7d861ce0b5cb894", + "chksum_sha256": "4876569ce50a9bb5a00412d9e0e3bd17aed2d739613b28796c3224ae5397b705", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_l3_interface/ethernet_noshut_multiple_ipv6", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "93f0654869c15b0670ae97f78615662b35f5f3aefccfb3c1e2e463ae3759a6d0", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/vrf_test_show_inventory", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3d501010723eb3675a96a954862a0210ac023095947f8e09ea951e15faa96545", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vpc/vrf_test_show_hardware", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "cf21f74cb2df54e19dae270c2b973eea492c3d9925ad7a1b8b59ff9f0e575287", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans/show_running-config", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6b793f9fc0770084b8babcdd914c4c42b2d1d3256be53d0cba3a78c19a616dec", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_evpn_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans/show_running-config_no_facts", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_evpn_global/configured.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "783b64a65f752ecfbf2ab084cb164df5d5a818d3dc9980856037a47853bcbfd8", + "chksum_sha256": "53ca3e78de8cd1b9ec6e040ece7bec23ea29663d1eebd1aed66a2980e832dc19", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans/show_vlan", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_evpn_global/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ac358cca25afd3bbc1aa11515f5e31ea9d548abdbcdf0563949e446d76f0c3c", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlans/show_vlan_no_facts", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_evpn_global/unconfigured.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ca3d163bab055381827226140568f3bef7eaac187cebd76878e0b63e9e442356", + "chksum_sha256": "84f47e5f6bde50931928544ec35970db216f2bffd80cff2d7b7350903d86a5c1", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interfaces", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interfaces/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "c0c10e6761048c3f05f7143dc844703c76c41ed38e9f0175479874c183cef2ac", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interfaces/nxos_acl_interfaces.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_pim/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "764024b1837b2491a2e87e60ba305df48bc64541f6caf244fe4eea63653ee340", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n3k", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl/show_ip_access-list.txt", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n3k/show_run_all", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61de402089db40d19ac51c2e8a52894c45d9002156027c09ab17d0cc3fea635d", + "chksum_sha256": "db42fd8881e10bf436a6712d228152f2ca6e627e0aa07531751009df2153fc3d", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/fixtures/nxos_overlay_global_config.cfg", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n3k/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aeb566110f15e114259185610a7e1a17ba8a4a8380f590120292eceab885bccd", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_pim_interface.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c5937f68440ccc096dd950939c41e9dd41a824489a76043b332c1cf7be3e35f", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_l3_interfaces.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "92733ffae6656acc3fe5a549f92b8380cef8870e0cc1c8048dda5d10da856fbb", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n7k", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_vlans.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n7k/show_run_all", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5bbc41cc6074ab22083413658f1ff7b3e1880add6b03be2d0ef30dc2a85bf163", + "chksum_sha256": "0f487063d9698ed988f461a0f1d90be2406db893a1881d162720dd0587a0ddd9", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_pim.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_nxapi/n7k/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe1f59aa59b32a791b714b6ba94f5db95d63ecb36919a976fece5768c620de26", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_vxlan_vtep.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1fb26930f7397caf4e73360e986af9a6bdce38f9109603afa5688907b2a46719", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface_ospf", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_acls.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface_ospf/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3a022041902a02465149c84cdd3bdee33f6d54a5d161a9e1a7aca79e49c43ba2", + "chksum_sha256": "5251c622e0f68d8c94e0215bd6a9f8c5d7ab755fc8879ceff8a9cac9b09caf9c", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_fc_interfaces.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_interface_ospf/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f50d2c6c59efc438903a2064d09bdd734468f6e001a1ca31a460268bcff5e8bf", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "31ba29ac58679593dc02bb181382bee8b76f4728eb007ba2291681b64dfb783e", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_telemetry", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_logging_global.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_telemetry/N9K_SGs.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba671c099009dae25cf68d105fcada6f520d1c1becf042270df92a2b42e17218", + "chksum_sha256": "af042e9ae8d0a2e6b6ddc28f13ce438e7b49050385ca546bdb5f1a1b51c1da1e", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_pim_rp_address.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_telemetry/N9K.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e451350df730941297d3a8b19b3464a5dc0f1a6265e9528fff50165972eca894", + "chksum_sha256": "8d4c2bff81ce036402bf1bfc5a01191ead2507ea6deb7e7d4930ceb35965b1e5", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_bfd_global.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_telemetry/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6810dbdbe6eca1cb36fe8b377e9a51e7d4604a019db7ec3f1d7c44f8ad53bceb", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_snmp_server.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_config", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/unit/modules/network/nxos/fixtures/nxos_config/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "762a88d4f3946c107d8dc3738799fefa5d6e1647531aedfc7ce27ab01122838b", + "chksum_sha256": "03abdcaedc2f739a12fd1c31f37164f02ed471aff024ad8e654a0d7ec3e611e6", "format": 1 }, { - "name": "tests/unit/modules/network/nxos/test_nxos_bgp_address_family.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_config/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7060edef96542abbf9e9eefd25477e5599dfb63c1e5360e6c8eeb9d3cda9bb6", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/unit/modules/network/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_config/candidate.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "3352c8002ead9454c96fa97e82bc2bf245ac57a69edbf8a934bed4ef809de3de", "format": 1 }, { - "name": "tests/unit/compat", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_switchport", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/unit/compat/unittest.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_switchport/show_interface_ethernet", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "727203a3846be41893b78a4b77852a1658925e936fb19539551958a5d8e8fb81", + "chksum_sha256": "3eba930c712f346d62428fc829d411a3c7f3b32d00ac0b54bee3e25f5a239876", "format": 1 }, { - "name": "tests/unit/compat/__init__.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_switchport/show_interface_ethernet_switchport", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "8b266354ff8d44bc8987e97565cba41afedb2fbe282c577c8d371516e84d01bc", "format": 1 }, { - "name": "tests/unit/compat/mock.py", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_switchport/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d000c79c38a69b736cdc65ac48952cbb7ec574ab2e3b13f81bb213b8381b8f8c", - "format": 1 - }, - { - "name": "tests/integration", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/network-integration.requirements.txt", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_switchport/show_vlan", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "234d0353684f5a41c84eabb03e13539abf602dc0de061a90e129618976b3c106", - "format": 1 - }, - { - "name": "tests/integration/targets", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_static_routes", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "864e06b1e9befc20919e723ee5f9bcb2f51a88e524e8ce8e112ac9ec12bf38fc", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tasks", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tasks/main.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzoneset_2.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "40fe4fe85031868241ac9845115f925a1c7be1ad8c4f932f4896fdaad51da36c", + "chksum_sha256": "08f7f3dc2d44ed61e7002bc417cea69f8407d7f4b0a62634c1f449f5338f7384", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tasks/cli.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/show_zoneset_vsan.out", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2eacf5012e1fb8a88bd7663844178dc5f6b617535d4bc2ddf0037ce474a33b1e", + "chksum_sha256": "fc71e64aa30f5e4da11b419ac36c9b36cae8057bd8bef47b2da5bc293ebaaebb", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/show_zoneset_active_vsan.out", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "eef09bfcfaae85faa6c0b10f2ac4207c73947496c77783c7aa6bac45a9d02d3a", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/meta/main.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonestatus_1.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "46c16cd03a600d15085abf2052ed33830fed61424a02004021ce4dd82f0086e2", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/show_zone_vsan.out", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "74aee6c5327fabe2de027ca0907e76be2628510e125976c8918575bbf09ea703", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/defaults/main.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzoneset_0.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "cae1aca46b8d82f44a8f728182fafd1030040360725fb7367040392c1d52c018", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzone_2.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6e109ddbe7ad8d251edbe3ebe5bf960c055ac9a1d3d5bc3865596bf0d65d83a5", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonestatus_4.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5005380753639cd3afd7e1b4ed90452d5d9492bb05c0852563009949e285db0e", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common/_remove_config.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonesetactive_0.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "244c13d831c6419ec7e7a46e3e00e82fc1be5a476e5204561deae0efce659d93", + "chksum_sha256": "1836db8862dd990ea4008e3c10d16d7a5563561ac27a8f846f2d2bfee8d805f0", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common/parsed.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonestatus_0.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a2cd09da60d6b0bc0904e3f313e959fc3efbba7979d14309764e11aaefab96d", + "chksum_sha256": "010172dc57589c93d51b95aa50feecbda06ee706fd623422a088de23ccc9e723", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common/gathered.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f58a5e229e9cb4a2cd367d9bd3d36dfc7b8a03598bd35d77c19ea701e70b8976", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common/merged.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/show_zone_status_vsan.out", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d8a7a44814c334c50589139d3473b014a953fda361f2d88075fe1538f65a580e", + "chksum_sha256": "42ca86dc445e87a4cba4d08cbd217173af42f60181eb44017d852837c17e9a47", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common/replaced.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonestatus_2.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c23e4c252c1cd1583fd56550d8d702f0b09b867eb03c50886e83f3c24197690", + "chksum_sha256": "171f743817a7ffe74398b6d78a0600ec0126dc2fe0890694a62eb6db89225a58", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common/deleted.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzone_0.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "10271b66076c4d1659a13c85ae4ba02c903ba2eb771ba8a2e31f0910c46de739", + "chksum_sha256": "13fa7bba46e2967e5c1bc2254620c4cd5337daab92a23d8aa6d6dec1ea7905ae", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common/rtt.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzone_1.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac26dd65c91afd1fd0e3734c2d3b9c361904f6af8fed0fbce8ee7746c96b64bf", + "chksum_sha256": "abb9d2504120327f0b55c36a6c130c9180a0f455ae397737ecfaaa4e6f891ef5", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common/overridden.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzonestatus_3.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff14829c4bb5758e9c2bcce36a6a134e5fd2d02af7586147e25ce45f5d3c6197", + "chksum_sha256": "3fee2a63052400d50f93de5abc0dfd7897a48269d71af99f53182139461c3bb0", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common/_populate_config.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzoneset_1.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d486bec06fd92b15f491fc77298d00447520a955e2dbf3d84a5a739d1a2703c2", + "chksum_sha256": "bcdd326b9710f2b1f56ac59ed3bdccaa6e853cfb24af1445743d3254ce458166", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/tests/common/rendered.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_zone_zoneset/shzone_bug339.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b9734f5468d080e059ad191471f78497c2ce42fa6d87de56f9f2e273bc0d8e28", + "chksum_sha256": "6c45bdddc81417a51bdb8256cc024efef8d8cf432083297902ef8fcda9850703", "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/vars", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_static_routes/vars/main.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interfaces/nxos_acl_interfaces.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3eda3cf170b296ca5e5f4996c8b03c030d87a4e3e6197f7770e2b14e739e4ab3", + "chksum_sha256": "764024b1837b2491a2e87e60ba305df48bc64541f6caf244fe4eea63653ee340", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/fixtures/nxos_acl_interfaces/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface/tasks", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface/tasks/nxapi.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias/shdastatus_mansi.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "b47fe27d3b8f630988803930db4eb009b8ef93e5f7838e4d3a49adf1859d43f5", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface/tasks/main.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias/shdastatus.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "5426bfb2d55edf2003ff250d0730cf4ea9ace4f44da02ce6664ed3bc77c7867d", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface/tasks/cli.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias/shdastatuslock.cfg", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ba24a69173bd06b6a025d176427b5619878da807c2a2b8a42aced27ac16d607c", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface/meta/main.yml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_devicealias/shdadatabse.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "2e912812c9084c8676a32afd1e2522f00bfd75d164fbb86113f01a88f164ebb8", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface/defaults", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vsan", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface/defaults/main.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vsan/shvsan.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_pim_interface/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "63e5ef2ff7dfbb786b21f77d0e047b16a5af1477901433189032c59f0d2e4988", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vsan/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_interface/tests/common/sanity.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vsan/shvsanmem.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "acc020ce7729ff57e637de9f3cd1f3aae98af404b208386a852c6c804d0006fd", + "chksum_sha256": "91b604b4bdd22922dfbfb776dc40a760428806a2f845e8c9e76d42beef14bbb8", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlan", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlan/show_vlan_brief.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c60b1775765492c72f6cf744aa56574aeea9b6c57ac19c974ebc73146cf4920a", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tasks/nxapi.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlan/agg_show_vlan_brief.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "a6ad270b50167f7b13c3e7f40f83ebc812ceb7ef7d3455c0ce7b404ede9d6238", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tasks/main.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlan/config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "4cd4cba4fba8bd0ceca02c0cea325b38c65d82a1b01633f59776902dfc00010c", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tasks/cli.yaml", + "name": "tests/unit/modules/network/nxos/fixtures/nxos_vlan/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tasks/platform", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_bgp_templates.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9ef2f97c111f9f0a6155a7353fde97cf4cbea592f715578a4df20893bad2e7ff", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tasks/platform/n7k", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_ntp_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "21b73c3764e98cb997bfd28ed8b5ce52bd4b3fa3f499feab3802ca37e5de012f", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tasks/platform/n7k/cleanup.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_ospfv2.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6fe5dccac28d950d4f93db2d5dd8d2d53f974b51a0c07a9371165a7fd9b20585", + "chksum_sha256": "fae6c56a4916171573a12ad3ab0071c82488062af9e6562078262a50c699b83f", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tasks/platform/n7k/setup.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_lldp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1f41e716a6ee3d52141e15b1cf8d8a62a6656066f9761e5438f18b03b64148ba", + "chksum_sha256": "d61028deb5268fdf63e8cfa7bcfa10f99738fb475e42f31911e3e264360eda34", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_nxapi.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c79a89af6839dbb8a41461dd0c68ff33e88b2d8ed3447f3b4fc7fd1be0419394", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/meta/main.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_hostname.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "0c65ec8fcd4ddd139ae9947a00ec54a04c2c4da5a5376b0d106d903c2f37a9a1", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_telemetry.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d5a38ca859e81c05061d9ee2f6cceefe3beccaa0587eb427a040be3c1e7e00f3", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/defaults/main.yaml", + "name": "tests/unit/modules/network/nxos/nxos_module.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "0d1a4eadc6d91ab91db07ea6ac3a5576e417f1339c1520079de065451b87fd3c", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_feature.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "62fc7da4353d2dd07ee8ec9822b06cd244ef12c93c65a7e53b12b9f57105a7b2", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_vlans.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "320bd35df7abc52ebbb1a9cbb5286dcaed02a736d1051666fe5adcdf1a57a043", "format": 1 }, { - "name": "tests/integration/targets/nxos_overlay_global/tests/common/sanity.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_pim_interface.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "10d3d02705dac2e31ab7424914f1dc74d20c5cf799141c26ac2e47ec2c68e1b4", + "chksum_sha256": "caa9723150e6b388c6ac57ac58e581317fe3b31757c2da99e00b1695d362358a", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_vpc.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fd868cf29e78bcc57d8d983ff6fcd4bbfcd1d0e34c63ab99737878827ec83d7c", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_devicealias.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "213ce495ad35b863cf252fa9bf4362db85fa8f2ab2916dfa76da754661d37e4d", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/tasks/nxapi.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "e983acf04cb96f85df2b16c5ad63601cb4b87de6e74f5003751d4090e5350ced", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/tasks/main.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_route_maps.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "4ac86722ca4d5b62b0d586b4df8c59a207c76932b7b0596003de9722359d7872", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/tasks/cli.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_vxlan_vtep_vni.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "eb233dc0fead25086cf7310ea386b8e51b17bf00468ab2a1dbb08f44a1aa03b7", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_zone_zoneset.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f746132b73f02acee61de5e52f37e03ee6591a3410d6ec01948416009d36e441", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/meta/main.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_evpn_vni.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "71aa392dfc446e9f3fe0af4c32cba761151a0bae41be4831d6b560e332b2bea9", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_bgp_address_family.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b94c2ad86ce7c380e6080a791526f868016e43350612dfd321a92964c8f9a04a", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/defaults/main.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_banner.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "491dacb2d554279466c694b6c0266fcc0dc9be308b3bfe338cb1312ea0f2488c", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_hsrp.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cd0ecfc4be320078a8b5b73873598f3311e9d5b5848092a1b24b41029dde5dff", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_vpc_interface.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d6e27d691e0dc50b4659403bb76593fef84cfa193d36933dd299a1e486525fe0", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_community/tests/common/sanity.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_hsrp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a31444a04409e8b5f9d58864e5405ec3ded7ec744e6e731b3ca0d22ec1a6ee0", + "chksum_sha256": "c9bd24f31dec735e5b7f5862c3e9cd48d692b6b528dcfa0114830aedcad227e5", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_ospfv3.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2759b15fdeec5305cbf7fb599142511bd89e5af0c772b3739c39c28880a49e1b", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tasks/nxapi.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_fc_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "280d285e1a9b531b25d8b880d3a032933d7135004c4658b7f1eb4872c60cc666", + "chksum_sha256": "320e6449e95a55c156623eaaeeb69f81a2c66c66ec1d8a5c06702040595ec95e", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tasks/main.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_pim_rp_address.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc2e669d7f6ccc6f6bd958fc52376105ef28a808ec084c11f2dfcecf1471760a", + "chksum_sha256": "aba5914ef5c9e367924aaafd1b555e2200d2f6c0aeaad5d5a2170880bd8f2cdf", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tasks/cli.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_lacp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c57c3ff656bb8daf9febb3c7a7bff934b952d1ccb83604d93e23ccfc3ea88724", + "chksum_sha256": "8b284eb5232ddef43ad1619acb13d73a7c48f20d736372b212a4d7352bd1e420", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_bgp_neighbor_address_family.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f23808fbf9f008c689f4e1c02b7916bd261d6118037deb6fa58977cf805cee8f", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/meta/main.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_prefix_lists.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "123c5209374533c41d593eba1f82b63089145ea660be4c913f197a43a434c342", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_ping.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3fd816ad49427c17166246df05ec36c188e3caead4e04285d11815d31daa9999", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/defaults/main.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_vxlan_vtep.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "92d1ef64dfcf0ea45c5294814d45a84bebce3070c429a57bda7f8f428a82f44b", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_l3_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9dd8c9037bd8ec303989a242280805dd82718f3a12b91f8ea34d323c819137a8", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_bgp_global.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "df17a538471e85b869a2d0fb40789d01afdf232e7dd781977d34d1e062120268", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common/remove_config.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_vsan.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6b36b668815324ab75f641e80f9341c4f7b4f264585d07409b01704c5f8a018d", + "chksum_sha256": "8af4c5d2ddc4255350bdeea291e5661e3b5f07f5fd6cb755c9151cd8751394c5", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common/populate_config.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ea179f0b4974165f1ad36daff838b34a663eb136543c6a908df7b8fe73027eaa", + "chksum_sha256": "2d93cfe3962b0a2c9ba309e973bf3db9087727c2459fa64f1c2fe0c4dfe61627", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common/parsed.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_ospf_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c6e2f1a0b9c9d9dc2c33b7906490f5acde968592b9257f095b4cfc38eee3dd9", + "chksum_sha256": "19c4359cb20e2df0f649d97f3207a5861ebcdc6a2430db3ff94019ba14a38c73", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common/gathered.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_command.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c6126ef877c72fdb6e19f6499e4c3ac4219a5fb4cde44f4529306aac3fd7966", + "chksum_sha256": "d2a3122d72313abb8ad6da5ba19c9070e95def315019bcc16cbc8ff835428411", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common/merged.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc2db360c49a4f960de158645c43115dec175da832363eeaba86a8ea97d1e62b", + "chksum_sha256": "1e084a512bff94fcf880a610ec5dd779c64ad7a3feea58bbc10e141e5eaf282c", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common/replaced.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_system.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b9ce3eb07fb30eb390fc555830b61b4118c485523bf85538a805feb06ea0fb0", + "chksum_sha256": "a7ea6f26526b9e4ead960a1c161b83de2581ca9d8a90d95925340e2fa8e17c8b", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common/deleted.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_pim.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14f12dadd4d09d23feee07007209b1eae18bc9c013a50f79ed39ae022e652226", + "chksum_sha256": "7e108bcc18c5b82ce1cb4cd46d8996147683f30a2f18d2a9eab8367dddb07bb1", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common/rtt.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_logging_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4912e31a951706d32e6682e65095ad1794df0cdedeeeec3d5e9ba139e14a0409", + "chksum_sha256": "569405484ee944ef07a45c205f8588b8a00e4b626f64ad52c2da5f13d1d599b3", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common/overridden.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_bfd_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e261e0e1a8b1778739d5bb1c17c75a378186c5c2efd72a351d604e0d7560318", + "chksum_sha256": "642bb2c06d13b8c2354bd9e46c01bef3beccde28fdbe5efa8af16cef2dc2a21f", "format": 1 }, { - "name": "tests/integration/targets/nxos_acls/tests/common/rendered.yml", + "name": "tests/unit/modules/network/nxos/test_nxos_vrf_af.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aa791c7d2f4a1989dd888e3880d230146cee3a448116cb224c31066a7f7573fe", + "chksum_sha256": "25bca3233974b76c3830c4d3b603c73dcb0032036a1752e0804c8cbc473a9973", "format": 1 }, { - "name": "tests/integration/targets/nxos_user", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_config.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f1acec58b3eaf968e8273380ab7d9170e37605cf1a1b5f66e08e568bf7d94e04", "format": 1 }, { - "name": "tests/integration/targets/nxos_user/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/network/nxos/test_nxos_acl_interfaces.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6c9f9ef53093b66901ca6deaacd5cb8eeb43f20bf80782d5ce721a57290a7288", "format": 1 }, { - "name": "tests/integration/targets/nxos_user/tasks/nxapi.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_static_routes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "319d8c2d4417de66f5a808ab30acbe1e9edf6cbe6d9c3a26c78f891031d2a233", "format": 1 }, { - "name": "tests/integration/targets/nxos_user/tasks/main.yaml", + "name": "tests/unit/modules/network/nxos/test_nxos_evpn_global.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "7cb868c9311b9810788e13862c9b74c809e19a9f9b57ad9e46ff4124fef884dd", "format": 1 }, { - "name": "tests/integration/targets/nxos_user/tasks/cli.yaml", + "name": "tests/unit/modules/network/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_user/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_user/meta/main.yaml", + "name": "tests/unit/modules/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_user/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_user/defaults/main.yaml", + "name": "tests/unit/modules/utils.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "414c272e9a403bb6009460ec9502c5acfaa9c80b2159c742f6cb2e225938be3e", "format": 1 }, { - "name": "tests/integration/targets/nxos_user/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/modules/conftest.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "354440d86f684a9641f329807a687fe71fc66ab901207f7a166ecfa648935488", "format": 1 }, { - "name": "tests/integration/targets/nxos_user/tests/common", + "name": "tests/unit/mock", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_user/tests/common/auth.yaml", + "name": "tests/unit/mock/loader.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "db7a57ed2e804cae9aea360123df898848cc2e772fcab84d843aac01ca0b6b61", + "chksum_sha256": "2343d1f644250d4b616f0bf0a826fdee8fe306243d8412d44dd0e033352b262b", "format": 1 }, { - "name": "tests/integration/targets/nxos_user/tests/common/sanity.yaml", + "name": "tests/unit/mock/path.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd39b32f02401670bfda98c14839d0da9c76ae8446c151dc7f10131c9531ded6", + "chksum_sha256": "5561a16a302e55ea79227591afefc3a93f33001fc80155dd29b068b90502a446", "format": 1 }, { - "name": "tests/integration/targets/nxos_user/tests/common/basic.yaml", + "name": "tests/unit/mock/vault_helper.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba9e801ff2ad1ae02085f83753b4f2e51565888a0fa5822ea0f671ee8a54229f", + "chksum_sha256": "3bf7834d18bd34473d0f4b898253177229a131f14364874efba584ff985e4a41", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/mock/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/unit/mock/yaml_helper.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fc4f4d5d2968ced8e3a04653354945d720e7c6369aad67ba7724c5981c82b6ea", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management/tasks/nxapi.yaml", + "name": "tests/unit/mock/procenv.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "3ff983479d7aa4b90efe73337f723c14224edabcdfde4efe49f24cd905f45f1a", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management/tasks/main.yaml", + "name": "tests/unit/__init__.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management/tasks/cli.yaml", + "name": "tests/unit/requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "49ba996dc4735c3463e9af561344346dfae14bcc1a68096ce78364b377f0df1f", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management/meta", + "name": "tests/integration", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_gir_profile_management/defaults", + "name": "tests/integration/labs", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management/defaults/main.yaml", + "name": "tests/integration/labs/single.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "fe76aae4b59ac2c628191394f5cfce79e8564ecb72be6157e14f32c7e8a97093", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/network-integration.requirements.txt", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "234d0353684f5a41c84eabb03e13539abf602dc0de061a90e129618976b3c106", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/__init__.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir_profile_management/tests/common/sanity.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d0237be40a79468b006b7bc99f59a3b8b9227b61b780adcd94fef59ea697e6fb", + "name": "tests/integration/targets", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp", + "name": "tests/integration/targets/nxos_vlans", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/tasks", + "name": "tests/integration/targets/nxos_vlans/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_vlans/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/tasks/main.yaml", + "name": "tests/integration/targets/nxos_vlans/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_vlans/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/meta", + "name": "tests/integration/targets/nxos_vlans/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/meta/main.yml", + "name": "tests/integration/targets/nxos_vlans/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "9d00aff551522b3a0a61d5ba2b38944de36985bd3353dc67987d76d650ccbea3", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/defaults", + "name": "tests/integration/targets/nxos_vlans/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/defaults/main.yaml", + "name": "tests/integration/targets/nxos_vlans/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/tests", + "name": "tests/integration/targets/nxos_vlans/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/tests/common", + "name": "tests/integration/targets/nxos_vlans/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_vlans/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_vlans/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e73dcd5a6b36e1b9d5a9dccbe433f93ed19375686c161e0045ca92ccf2ca7053", + "chksum_sha256": "fd3723c027909807b1d6ef73222d5bfc96f98c680a9f86f3e89c0366bdd22116", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global", + "name": "tests/integration/targets/nxos_vlans/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tasks", + "name": "tests/integration/targets/nxos_vlans/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_vlans/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "fe16be9cd5316c7526ea489bad81d693f40c2f2351c01f60a4074802f208164e", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tasks/main.yaml", + "name": "tests/integration/targets/nxos_vlans/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2396a1bb62aa2d673208deb59766a787971d061630b8467afa525b7fdcb2e95e", + "chksum_sha256": "6f9623efb3904d185246e618c1cb0726553a5556941e5c2e91b7c9025de0e89c", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_vlans/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_ntp_global/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "e2964f468cfe2c92dbee0504a71845636d76ff4e079dd07ad7f8656cba328221", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/meta/main.yml", + "name": "tests/integration/targets/nxos_vlans/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "1f1efb47f41f82d4be94cca66acf388791ed71b63f1f3897f769f7e4110f1be6", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_vlans/tests/common/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c70b2b7642402aeef4772a4a8cc7b7abde208bfedd65fbdcf95231b2ab5a74db", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/defaults/main.yaml", + "name": "tests/integration/targets/nxos_vlans/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "9d0b9b581e3e45b412907eecbc4ba5ad1632595e8cb58f397365287ce091bee0", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_vlans/tests/common/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "65b9276bee903c86af57ed5a6afee1d84461bf6c7bf3a3cf95aa8369e0c7df57", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_vlans/tests/common/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "87888ec93930b5630192fd9f60d931700a43910cfe6a3d092b04099ac88eb612", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_vlans/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a828ee760fb0dfc1ce2906e7498216901248da978df3b7a90ce842c1041a157", + "chksum_sha256": "69cfb989d7be0b980e8fc3eb9d33154c66e2cde5df1a9f8b17b1ea0894879212", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_vlans/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e4c2d740371ba62f8ce9a298147acad6ef15cb6b851a8ea32e7682934e5c4294", + "chksum_sha256": "5745013bf8f6e23f513cea1bb8878e4ca80ba61a331a5a5d2a7097673b786ed2", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_vlans/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "060aecc4cf5c2f2c7d5785001728b97f6913dd3900aa2dcb0c37436509d9d92e", + "chksum_sha256": "0fef283f3a139da74d869920dfc1b12b127b20e505c060d30b893d457ea980bc", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f836d5207479f29e09d0669ff7c58dd23bde729eda06dce4649cdc3e60be53a9", + "name": "tests/integration/targets/nxos_vxlan_vtep", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "159d739b15a17d8f62cbb4c9dfcd2fa3b7ede51f02fa6e9ac2bde196643b60fd", + "name": "tests/integration/targets/nxos_vxlan_vtep/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1581f91ffd8c1c23bb4676eab5c8b75109777725856083ae7e8f3f2e0993b3be", + "chksum_sha256": "1e03994e82f05167e558b19e20c435e80ed92b6ff4f62f71fb93ed9082d30f94", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08e70b7bf07e9f6621e1389be04c654a23a2f975aa49fc4aabc7ecb593bc5cfa", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/fixtures", + "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/platform", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f7771e974db6ccc58fcb0a69ff17e00e208d57c09d96c7b8dfe8f5ecae8c879b", + "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/platform/n7k", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/platform/n7k/cleanup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6b602368f7b9b4aba2e9a3e88b73abf107d658eb335fe4ce1a4cd4c0dca3a4c6", + "chksum_sha256": "6fe5dccac28d950d4f93db2d5dd8d2d53f974b51a0c07a9371165a7fd9b20585", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/platform/n7k/setup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9bcba4c729094da821fbbcce077fce21c817d1f560df1dc97ede6c6ff9cc4565", + "chksum_sha256": "b569f1de86c96331c196b935a58a716b5314f80ebd5b9130aeaa56f44c45f047", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb766ac5e824552d743eb36cfc738ad9abd7985d945bdea3d22a0d9130f839ca", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/vars", + "name": "tests/integration/targets/nxos_vxlan_vtep/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_global/vars/main.yml", + "name": "tests/integration/targets/nxos_vxlan_vtep/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c37457ec8af62c1519304e787a4e2ca6be4c156f8cf7bc2293106f38aaa2957", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_user", + "name": "tests/integration/targets/nxos_vxlan_vtep/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_user/tasks", + "name": "tests/integration/targets/nxos_vxlan_vtep/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_vxlan_vtep/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_user/tasks/nxapi.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_snmp_user/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_snmp_user/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_snmp_user/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_snmp_user/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_snmp_user/defaults", + "name": "tests/integration/targets/nxos_vxlan_vtep/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_user/defaults/main.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_snmp_user/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_snmp_user/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "6f5876cdb7e7636f06c87e462e6002cd2694520079c83f7103450520ff14b3b9", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_user/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep/tests/common/multisite.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc18bce3cf7f8a257784f7d4e432ef00b535bfe73b057d661756f364bcc9d176", + "chksum_sha256": "6e9df57ea06843b691dc030437dd9190193ddb70664dd0254133417e3a8b5cdc", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp", + "name": "tests/integration/targets/nxos_vrf", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/tasks", + "name": "tests/integration/targets/nxos_vrf/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_vrf/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/tasks/main.yaml", + "name": "tests/integration/targets/nxos_vrf/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_vrf/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/meta", + "name": "tests/integration/targets/nxos_vrf/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/meta/main.yml", + "name": "tests/integration/targets/nxos_vrf/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/defaults", + "name": "tests/integration/targets/nxos_vrf/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/defaults/main.yaml", + "name": "tests/integration/targets/nxos_vrf/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/tests", + "name": "tests/integration/targets/nxos_vrf/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/tests/common", + "name": "tests/integration/targets/nxos_vrf/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_vrf/tests/common/intent.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3f3aa30512b55460b5e6c82887f66d7642c56b86c7eabd5801148a945ce2ef4", + "chksum_sha256": "b49015c20a19ae1f270a3b5e69d370744549a23915fb03c23f6e84ad40f8ef74", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces", + "name": "tests/integration/targets/nxos_vrf/tests/common/sanity.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b8fb2d6249a8d9311ec67a31c87ad94a8184c7351dbf190d833bb1d7bafd4e7a", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_banner", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tasks", + "name": "tests/integration/targets/nxos_banner/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_banner/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/nxos_banner/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0ff0c24a2fb4a8aa58a6356c5029065acb6cf1aba1e14add135ff69c8d1387b", + "chksum_sha256": "c35d2ac52b14846e9fb2bba91ef7ba5f946b1cd2e47ed10c0b30941d6f9de766", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_banner/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/meta", + "name": "tests/integration/targets/nxos_banner/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/meta/main.yml", + "name": "tests/integration/targets/nxos_banner/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/defaults", + "name": "tests/integration/targets/nxos_banner/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/nxos_banner/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests", + "name": "tests/integration/targets/nxos_banner/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common", + "name": "tests/integration/targets/nxos_banner/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_banner/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3644170fb7b4322fa4d272cd5d5e351480018b485a065fa7131fb3f6f5e2f353", + "chksum_sha256": "dcccaebec31acf1f9adfe71c2e5067fcb6c1416a7c63b077490beedfff6078ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c58134a7c574f9d19d3012c238b2be0d4983d6d856a11e9f6ee089c3df5ec6b4", + "name": "tests/integration/targets/nxos_snmp_location", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6c1ffa21ffa7a57ae8edbb0a72820f4ec4e7947ba1ee5a1548473e81efec8724", + "name": "tests/integration/targets/nxos_snmp_location/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_snmp_location/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2a0ff901006be504934a514a2f337a699091eef58ab871fb32e426af1d6f6fa", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/rtt.yaml", + "name": "tests/integration/targets/nxos_snmp_location/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "148ed76eb41828c2417439c0b443097a6f2f9d1fa88a4abad48bd8e62de30c4e", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_snmp_location/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6d84fa1c22c5e2d37b017a18ed59903fab43314717b4d632a46200d745318c0", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aeb7c65908e1aee314df87a9afe8c2f4dc1e1b21e41ca8a03f2991597dfd0685", + "name": "tests/integration/targets/nxos_snmp_location/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_snmp_location/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b9322c7dd05de65b972eb0bb02c699c4368fc68bb97dd155a05ed98dd304448f", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9e1b2b7044a678c22cccca3dcc5c677fccf40a509764b7ecf5c8dfeecf4781d8", + "name": "tests/integration/targets/nxos_snmp_location/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_snmp_location/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c30f97c6ae729fd7b3d88a3e7b6671c761ea07061ead87487979c013835b99c", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f018dcb8d9a42d8930b0d10f62ed931546d66f2998aa42ce95f655d299dbb35b", + "name": "tests/integration/targets/nxos_snmp_location/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/vars", + "name": "tests/integration/targets/nxos_snmp_location/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l2_interfaces/vars/main.yml", + "name": "tests/integration/targets/nxos_snmp_location/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "80f38875da077b4094678a1b0d5fa1dbb55a586037c541d4daec3b3b8adca944", + "chksum_sha256": "3e00a1c43687d39e22e8835b039f398d7bdebbcc45399d8cd01d6ca7d4ef6e96", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface", + "name": "tests/integration/targets/nxos_pim_interface", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/tasks", + "name": "tests/integration/targets/nxos_pim_interface/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_pim_interface/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/tasks/main.yaml", + "name": "tests/integration/targets/nxos_pim_interface/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_pim_interface/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8d37308cf2225418b5fab604f2b171a1aafbaa84be0c933a48ec0f153d7119ad", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/meta", + "name": "tests/integration/targets/nxos_pim_interface/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/meta/main.yml", + "name": "tests/integration/targets/nxos_pim_interface/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/defaults", + "name": "tests/integration/targets/nxos_pim_interface/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/defaults/main.yaml", + "name": "tests/integration/targets/nxos_pim_interface/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/tests", + "name": "tests/integration/targets/nxos_pim_interface/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/tests/common", + "name": "tests/integration/targets/nxos_pim_interface/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc_interface/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_pim_interface/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "03b61d6df7de21547cead303ca85a6e4139660eb2df5e5e2af81ddfefc206951", + "chksum_sha256": "acc020ce7729ff57e637de9f3cd1f3aae98af404b208386a852c6c804d0006fd", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options", + "name": "tests/integration/targets/nxos_ospf_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/tasks", + "name": "tests/integration/targets/nxos_ospf_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_ospf_interfaces/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/tasks/main.yaml", + "name": "tests/integration/targets/nxos_ospf_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "e9eff3b2082e2a94e384711077fcb0a67b0410a72a0d7425367798c7fe1c4c75", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_ospf_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/meta", + "name": "tests/integration/targets/nxos_ospf_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/meta/main.yml", + "name": "tests/integration/targets/nxos_ospf_interfaces/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/defaults", + "name": "tests/integration/targets/nxos_ospf_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/defaults/main.yaml", + "name": "tests/integration/targets/nxos_ospf_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/tests", + "name": "tests/integration/targets/nxos_ospf_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospf_interfaces/vars/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "254903ea468078a13337c27e4ffbfe0aad84710a36cdfeca8027eba5a16b48bf", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_options/tests/common/sanity.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "21d676594b169612943330f80f0fc7f0caafca537c991d9671fee07e9639a30d", + "name": "tests/integration/targets/nxos_ospf_interfaces/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp", + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/tasks", + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "77f5af82eeb76922d66d564b1b3b713644b5154cd160ed32686613453f6ffb08", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/tasks/main.yaml", + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "aa4d4d9ae4687f27e044a7c2ba6c6ffe31491031d9cfb724c69a54e4a1248b2e", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "6563a046c325a1872e9c20c3a80658c02bc684d828e1d8c0dbfbfb23ede1da1c", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3e19f34c70b0982c9c03cc96e3fcf57b88c084597eae9036b3e4c6bbd0860dc1", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/meta/main.yml", + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "22709a3fdba9d6c94de7e53132bf6178989f0ea494f7779069913fc918ffa131", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/_setup.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5153443ed073b0cc035110ac96d297361e22abe390c84014d0a7dbc83ede74e4", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/defaults/main.yaml", + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "f4d88bbce44a9ca14508aebf3a495f3ced56b859aa74951b92922d613d0addbd", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b76239c8dec85299b177fa8a11a790932f64db53e155a64222321eff524af8b7", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "772abaa4b30e45bb3a3e0b168b9b50f62e75e5db9d1ee54915707631af8bc3a9", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrrp/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7766c42cc22f1bb7cc7fa396978f2db1df0d1c744e3241f371f55912f3cd610", + "chksum_sha256": "b880b29ecb1b59489b0d82bfaf1ebecc35e47cc4ae7d860d616a0e1c4c17b8f6", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces", + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "df5bdd37b5f9ceac0c9cba9185dfd3c1c3d13d839447eca07daca2717b7261f0", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/_populate_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "947100dd1e56c9ebd17cb32e1caa66f7c5a540d038dd36f4d0482271627ffa10", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bfd_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tasks", + "name": "tests/integration/targets/nxos_bfd_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e9eff3b2082e2a94e384711077fcb0a67b0410a72a0d7425367798c7fe1c4c75", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/meta", + "name": "tests/integration/targets/nxos_bfd_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/meta/main.yml", + "name": "tests/integration/targets/nxos_bfd_interfaces/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/defaults", + "name": "tests/integration/targets/nxos_bfd_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests", + "name": "tests/integration/targets/nxos_bfd_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common", + "name": "tests/integration/targets/nxos_bfd_interfaces/vars/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ab74ba6b07626a0723ca4ba193159ba14bc7011f11acd94ca9b5f13f817def19", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bfd_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b76239c8dec85299b177fa8a11a790932f64db53e155a64222321eff524af8b7", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3e19f34c70b0982c9c03cc96e3fcf57b88c084597eae9036b3e4c6bbd0860dc1", + "chksum_sha256": "c7ce5887a89b7e2b67eb2b4bae794a1e0a77c77c2c98c1fbd123bca9ecbf78f3", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "772abaa4b30e45bb3a3e0b168b9b50f62e75e5db9d1ee54915707631af8bc3a9", + "chksum_sha256": "b7125a5bf2a88b3a35ff6aa0d06f3afd1474431c753306f1390613c7892f8217", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b880b29ecb1b59489b0d82bfaf1ebecc35e47cc4ae7d860d616a0e1c4c17b8f6", + "chksum_sha256": "1ef608de6174de4a28060255b4f85b5c00beb4bf2c8c4083a85d4132fe06341f", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6563a046c325a1872e9c20c3a80658c02bc684d828e1d8c0dbfbfb23ede1da1c", + "chksum_sha256": "57b05a37ab33678d00ceac9fa16256aa5ce862265fb330cf2045a6f06bd40331", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f4d88bbce44a9ca14508aebf3a495f3ced56b859aa74951b92922d613d0addbd", + "chksum_sha256": "903605fdce930f7ab623ddda18bc721d07632ae35cede2608f93d0178fffff86", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "947100dd1e56c9ebd17cb32e1caa66f7c5a540d038dd36f4d0482271627ffa10", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "35032ab6b2376156d9cc4386e0c3ae950aeea92146c89106e92963e5d9f30abd", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/fixtures/parsed.cfg", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "77f5af82eeb76922d66d564b1b3b713644b5154cd160ed32686613453f6ffb08", + "chksum_sha256": "e8b8f05c67f53717f791d5fa39768a09589083927c1b288181a9a2b28d3f19fd", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/_setup.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5153443ed073b0cc035110ac96d297361e22abe390c84014d0a7dbc83ede74e4", + "chksum_sha256": "a07b5658b8543fad6adbc03cc3dedf24b925d6c15ab96cba887e4057adde9af4", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "22709a3fdba9d6c94de7e53132bf6178989f0ea494f7779069913fc918ffa131", + "chksum_sha256": "879575bd8531da7b1f7752bc36e8b1d92d654dadebf3ac9e372c71ead2cd75d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aa4d4d9ae4687f27e044a7c2ba6c6ffe31491031d9cfb724c69a54e4a1248b2e", + "chksum_sha256": "febb1078f232f6b64f4600db4e81e08b293f9c1b5959937b92458ea3228ac8ce", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/tests/common/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "df5bdd37b5f9ceac0c9cba9185dfd3c1c3d13d839447eca07daca2717b7261f0", + "name": "tests/integration/targets/nxos_install_os", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/vars", + "name": "tests/integration/targets/nxos_install_os/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospf_interfaces/vars/main.yml", + "name": "tests/integration/targets/nxos_install_os/tasks/httpapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "254903ea468078a13337c27e4ffbfe0aad84710a36cdfeca8027eba5a16b48bf", + "chksum_sha256": "1c9ccfa8d43479520eb4cffae188c452027a694dd86a02bd92d31b5843301ad5", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact", + "name": "tests/integration/targets/nxos_install_os/tasks/upgrade", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/install_os.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d774b3f202b5780184d96cdb5ac41b3db3540d09f575f0c8b0840a3509fd75bb", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/delete_files.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "f770f6c4e52488ddd7b0c1dd5c61ef6f7f2dfb329cbae4337e0845567fa3e113", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/tasks/main.yaml", + "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/clear_persistent_sockets.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "2fcf3f5178da21851bf3cd61610f645b242d841bb553acc94fa88c003c8849e5", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/main_os_install.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "bc3281050236443452b55b83c4c3f32be752eb802c09c730e36e06ee7ef7ca31", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/install_with_kick.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bf39d3606053aeface47d66b776a0f8ed281c130cf0258ac09e8a0a759076df4", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/meta/main.yml", + "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/enable_scp_server.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "2f94537521756c0171b570da8d8012aa47441ed01f2085c5e0c4ce1c80d6dbf3", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/copy_kick_system_images.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "71f8a18402f8b4c95d4bdcb1f4fc6542ce6b9671ea246c44fe9acac70bbd562d", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/defaults/main.yaml", + "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/install_system.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "d7225266ebf0be4737420a6d63a5cd3c77d3b6cfde7bd0f1c7eded1ebfad70b7", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/tests", + "name": "tests/integration/targets/nxos_install_os/tasks/network_cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "29b863033e05757e739075e995a668f9bcc014a0e214ac894ffa9af68bd781ce", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_install_os/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5a0047c8f02776d1bffe8d2ced68ea4c0f823708554f48419af32b1b7172a1a9", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_install_os/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/tests/common", + "name": "tests/integration/targets/nxos_install_os/meta/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "efb275d54a7c21fd007e1d1c8b10b65d148a9121af425a4e7fbd60abacd23fc8", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_install_os/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_contact/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_install_os/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21c997106ed806dbad5a3cdba01f5e201161020b6498a5d92ac003b702fa579a", + "chksum_sha256": "a79b77c93a1982c2682c177681bfcef5f3fb3421e3ef10be452fc81dc3ce8871", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry", + "name": "tests/integration/targets/nxos_install_os/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tasks", + "name": "tests/integration/targets/nxos_install_os/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n7k_helsinki.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "c023ec2f8677adcd41bd418bb5e35d3c82dc0636d9d41c45a2074b32891214be", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tasks/main.yaml", + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n5k_730_N11.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4fe8ec88364fed45512b5f8e5687038986edd9b03ab1962afa6476aed1ab2f5a", + "chksum_sha256": "744e3327618fd03cced8667aa2dee9cd691c358777ecb1dc741abf3c8dc18484", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n7k_atherton.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "f72c407c1bedf043f2a763f9db8de4c28cb40cd3f55a99180c0b54f46bc9910c", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n9k_greensboro.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7a09f37097e9dbedf717f83715339eb5397073ac3909bfd0cae6f874d3cd6342", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/meta/main.yml", + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n3172_u61a.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "147279cb89618d50352ab1e86d4e939a3f3e0594cf28aec862eb867e1bdfc307", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n9k_hamilton.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "669ba59d9d909f0d42d6e69ae0ef3e6e1d4c33995a4658761f0b2884113cc041", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/defaults/main.yaml", + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n35_greensboro.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "bf8414d8d1327c0db9056739e1b39b673abe37e939356efd1ef96ade985ccffc", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n3172_u63a.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c37931cb7c45570fe30f100fb278e26b7b94b7848d59ad8b6dbdda0670534452", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n3172_u62a.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9ee1eb9e5b4f1fea2c930c8a7c48eaf4708576b9af88c29f280f3dabcec163fb", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n35_62a88.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d231b07bd5ab608ddebbdbbdbbcbed5e4648ac7ad05dfbbf1df4e2a21c063389", + "chksum_sha256": "c041886e29ede3a58d17f0e6d281d5dd458095369130bed0e617ffb200824743", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n5k_733_N11.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0f66a09ea372c1fa2c05027c0a2097da33a0912daf4355ff6cab34a77e057acd", + "chksum_sha256": "7efa46e2021391e0fc9114f1b132861cd3614b7ec0064425b46ed876c81ea0f1", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n3172_greensboro.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1ac88fec698b51b1f358987e65b5793cd9488ea085606963409a7b9d9b2b4cc", + "chksum_sha256": "f26347411b88b126bce20f80dca17f5726cc830996a1d8bd6119b73647bea681", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tests/common/fixtures", + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n9k_greensboro_force.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "13e87f23b456e285da0593775bfe2b876d167922ce61a4ba47a668cb0b0d82bb", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ee3909a9cbc7c9f42f3b146f122a61bdc2adada843b80ee111fe024dfa5c0d33", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_hsrp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tests/common/fixtures/new_server.crt", + "name": "tests/integration/targets/nxos_hsrp/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_hsrp/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d761bf530e78d0752a7d9f05dfd5084e106245c7cecac49ca75c0c76ba495fc1", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tests/common/fixtures/local_server.crt", + "name": "tests/integration/targets/nxos_hsrp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29437b8420b999138ca0947aef901533fd9affbc7ae98a39b13fb6bfa0ae29cd", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tests/common/fixtures/server.crt", + "name": "tests/integration/targets/nxos_hsrp/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9248b8354ba01bd1fecb1d24494a6098ee9547fa34a9d8840068abbb9a80fd92", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_hsrp/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_hsrp/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "00736c9321f59eb87d3655075f655cf2244ba30caed17b3175c3f0171c94bd9f", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/vars", + "name": "tests/integration/targets/nxos_hsrp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/vars/main.yaml", + "name": "tests/integration/targets/nxos_hsrp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "90ee74a6d8158f5b1a5e92b16e0e044a5fae636e2742931b542355cb71ed2da4", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/templates", + "name": "tests/integration/targets/nxos_hsrp/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_telemetry/templates/populate_config.cfg", + "name": "tests/integration/targets/nxos_hsrp/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_hsrp/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "160c96e0f5f10f0cd536d1fcd93fad3b60a8eac159a64755ac8617a702f032b7", + "chksum_sha256": "a9c0076bb37472ad1bcf0815ed5845032be77683ffc6e967f2577c29cc28f8a8", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global", + "name": "tests/integration/targets/nxos_igmp_interface", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tasks", + "name": "tests/integration/targets/nxos_igmp_interface/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_igmp_interface/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tasks/main.yaml", + "name": "tests/integration/targets/nxos_igmp_interface/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05625917ea950a0b177ebb25c692ba215e247b2f17a15309a86430a5871f5672", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_igmp_interface/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/meta", + "name": "tests/integration/targets/nxos_igmp_interface/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/meta/main.yml", + "name": "tests/integration/targets/nxos_igmp_interface/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/defaults", + "name": "tests/integration/targets/nxos_igmp_interface/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/defaults/main.yaml", + "name": "tests/integration/targets/nxos_igmp_interface/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests", + "name": "tests/integration/targets/nxos_igmp_interface/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common", + "name": "tests/integration/targets/nxos_igmp_interface/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_igmp_interface/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c07047642c717ad5e564697143a11e7cc93a18376d91ee56dc5f44f3d19e22b5", + "chksum_sha256": "3f1f412736c7af33d14c2be45d461f6f96778bc221e6abdabdc579247c32d72d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bf494eb0d9629da4381465012ca762ab8ec270ac5b9270f7b2206f6e50eb2df6", + "name": "tests/integration/targets/nxos_vpc_interface", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d96baf5dc0a51ac1a75147a0591b62dd0d0429b6f48ed375f6e41e73d43a21ed", + "name": "tests/integration/targets/nxos_vpc_interface/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_vpc_interface/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b605ca79e5cc2cdb7f664f1aec94711594f2f485adfc760cbcea01b01e2b25f9", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/replaced_af.yaml", + "name": "tests/integration/targets/nxos_vpc_interface/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf31728c79fcf0b446ffd43fe431bc399513af80a6e363931a9f16fc611bf921", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_vpc_interface/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6dc32ce625064b12bbb4bf361b4b9a56df6792af52c16d6bcda508de05bea6f", + "chksum_sha256": "8d37308cf2225418b5fab604f2b171a1aafbaa84be0c933a48ec0f153d7119ad", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "35205173a9b4c2cdbf46f89706c24e10a7db1671892f25e7598957b6cd5424c2", + "name": "tests/integration/targets/nxos_vpc_interface/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_vpc_interface/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "acd7172ee28b6a88b6f7a8a95548988e2c6ed27804288daec18676481280cb08", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/fixtures", + "name": "tests/integration/targets/nxos_vpc_interface/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/fixtures/parsed.cfg", + "name": "tests/integration/targets/nxos_vpc_interface/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52efea9c016168ecd2fcd4012748fdd81f2753c77b4cd322e5628278cf36a227", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "73a38ab49a6c4f73b8e5d6b5ff301846e40a8d55b18fe61d0647b6c54cac5688", + "name": "tests/integration/targets/nxos_vpc_interface/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_vpc_interface/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_vpc_interface/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ad0de011701b4094ceef2432d855f96f3441d92e71e69dcd959cb05e86ba9ef", + "chksum_sha256": "03b61d6df7de21547cead303ca85a6e4139660eb2df5e5e2af81ddfefc206951", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/purged.yaml", + "name": "tests/integration/targets/nxos_prefix_lists", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_prefix_lists/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_prefix_lists/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43b3e83056042eb41ac0a74dc11eca0c07bec178548807f56d79e5d211f75360", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff3eb25121425c6e970238566923eca969ba8f67f60e6fa8ef5c1516ca5757bd", + "chksum_sha256": "2396a1bb62aa2d673208deb59766a787971d061630b8467afa525b7fdcb2e95e", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/tests/common/deleted_af.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef14541859231625e08fe2b53fbf4b8f6e64bcea02d4bb987038b915725abeab", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/vars", + "name": "tests/integration/targets/nxos_prefix_lists/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_global/vars/main.yml", + "name": "tests/integration/targets/nxos_prefix_lists/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5664e0d1a4c541d53f188ff988aafdf4f1802b97ff08c51fc128574ae38ce63b", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi", + "name": "tests/integration/targets/nxos_prefix_lists/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_nxapi/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7022927c86a437ced8d1f9058b25af83150ab1d87223183b1c61bbf4c0d6523f", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "name": "tests/integration/targets/nxos_prefix_lists/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "f869515b8a1ec55c8346c13f87eff1b4bef627722f02ba89f143fec41ea52254", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n7k", + "name": "tests/integration/targets/nxos_prefix_lists/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n7k/assert_changes_https.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d826b7762b3ab39ad7d294ca171272d1ff3213c35f8040c3657228f259d331d5", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n7k/assert_changes_https_http.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/.DS_Store", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97089a108cc1eac9afae028c6da9bf6f7017afcfc3f1a85776cfe6af31f2c6af", + "chksum_sha256": "af891bb95ebcc39dfd38131bf64fba6eb7bb8e84f59a428b6af5477588fbc6b6", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n7k/assert_changes_http.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "35222b27a54a701db0042dd5fb6069d48d9e27a70821a1707a4aad0d19bc227f", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n7k/assert_changes_https_http_ports.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/.DS_Store", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d5a7bc39789b15cf95dd49af7ab1636f3a4589a2be3ee5ca341dbb4414eb95b", + "chksum_sha256": "5b8c3589c79b71429938a827331899d13ac16c156374f8c45ec59068bd2d2060", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n5k", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n5k/assert_changes_https.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4f99598e0507cfb4e0e625a4075deabb91c5de5e1c0e5531846b9467a6faeaa9", + "chksum_sha256": "f7f1e53d17acf3059197aa476e1715028d571930c8cff8eabada2af3da2e7819", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n5k/assert_changes_https_http.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "79ee713da7a48ad0b493f6e07690138be3eb4d04d890126aec488e2242e7a442", + "chksum_sha256": "53a49d08552e563da400b6c13475d9e2a020cc039eee9985b1c5a3e930fb3843", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n5k/assert_changes_http.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ed763ee2de2c730ea2783225dc132f5c28f22ea272213a36b9b3bb4471492e08", + "chksum_sha256": "b63842b6c47d71229bd8ad567bce61e119a9da6f44fb987d22a5348d9b67f1e7", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n5k/assert_changes_https_http_ports.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3cef9d277e717f6956a9d5136862c72616d866eb04d8f8c0da44c0777739c92c", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/default", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "8c7dfc255e4fdc2e873e375b7b4a24b1098f63ebc6f80b18ddaf4bb4e62a9a46", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/default/assert_changes_https.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bfae052c7df36024a59df89f314dc7e03019ad1649f4132cb34bb2a8f50fe903", + "chksum_sha256": "7bf73d5bf1f98884b2c8dedfcdc762af1c6542276fc649a04bf360fe10400cff", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/default/assert_changes_https_http.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b055af4a4779d412640cee585ef493e52c3937782e095218164d2719d5223d29", + "chksum_sha256": "56599df6259a9ed56f2794f1171dba7cd811995b228ee29610d679201d7094f0", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/default/assert_changes_http.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "db4865169c3dc97c5ca5e24083550b243b685cfaeaaba16333b1f55754dd265a", + "chksum_sha256": "b94ddd8f6e3aef1be0b00d88c934c971a436d3595b760e10dd388b6dacfac7d3", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tasks/platform/default/assert_changes_https_http_ports.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "04e8b8ae8842f40c777282e979ea824c7c886f3e8ae1d9e2710ff466d1fc2ae0", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_nxapi/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "c10395ec2b03209c79681dd09690cb615195b8adaae1cdfa3fabc0fd68ef0565", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/meta/main.yml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "56b14e2fd373b2211c65f09454a4c39137bb1f1a06ad96f007e377d8b2b51851", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "742244e5eb090968dbbab6b3bce1d5d52404f476371439bf2404e4467534b488", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/defaults/main.yaml", + "name": "tests/integration/targets/nxos_prefix_lists/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "2233813d83a2cf367f99e9348cfb36ea295efcebe61d310a4580abbab8836d5c", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tests", + "name": "tests/integration/targets/prepare_nxos_tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tests/cli", + "name": "tests/integration/targets/prepare_nxos_tests/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tests/cli/nxapi_ssl.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dae84b45affca730b7c9158216bf18dc9ab9c92bbce4701b6ba881f192ae47f4", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_nxapi/tests/cli/enable.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "abdd34478d7db89533c9d3d8cc0fb2f26a5324ab85212086aa1fecc220e7d1c8", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_nxapi/tests/cli/configure.yaml", + "name": "tests/integration/targets/prepare_nxos_tests/tasks/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b4853e02af108065809baebdb1f8e957bc48184f9a24e3510826d28f734d17a6", + "chksum_sha256": "8d49ed36175f83090c361ca918f66c751d9a55d3e57ed4097366dda3f04434ff", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tests/cli/disable.yaml", + "name": "tests/integration/targets/prepare_nxos_tests/tasks/prepare.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "94889efb465f8b55120a28becc23705cd11dc1bc9aebc91204105ba9f8207302", + "chksum_sha256": "6dc1745aa3d09766233e4522d935898ecfdf07caf0b7d2a3ab7e20e40bbdc4a5", "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tests/nxapi", + "name": "tests/integration/targets/prepare_nxos_tests/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_nxapi/tests/nxapi/badtransport.yaml", + "name": "tests/integration/targets/prepare_nxos_tests/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28a2dfdf7ba13f8dd757c8d9095797a0b91437b5bfd9d9c1c8bfe65508e15901", + "chksum_sha256": "851860fe2ed1258710d7fcf89ac5b7d8c3c87755e89ca56fdd79bea022eb2b92", "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot", + "name": "tests/integration/targets/nxos_rollback", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/tasks", + "name": "tests/integration/targets/nxos_rollback/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_rollback/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b93ca9bd41e9b2ddb1e47c5782c7104ad85b67441154a82ac8954fdaebc62cfc", + "chksum_sha256": "1e03994e82f05167e558b19e20c435e80ed92b6ff4f62f71fb93ed9082d30f94", "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/tasks/main.yaml", + "name": "tests/integration/targets/nxos_rollback/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0789afb380e4ee3da221b8e5904d1fc0309acaaf7afce7e63c9ba4c75c34ef57", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_rollback/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/meta", + "name": "tests/integration/targets/nxos_rollback/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/meta/main.yml", + "name": "tests/integration/targets/nxos_rollback/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/defaults", + "name": "tests/integration/targets/nxos_rollback/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/defaults/main.yaml", + "name": "tests/integration/targets/nxos_rollback/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/tests", + "name": "tests/integration/targets/nxos_rollback/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/tests/common", + "name": "tests/integration/targets/nxos_rollback/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_reboot/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_rollback/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b4c67bb49d21e284b5a0589f01582abe664f16d3361279b26463e6db76fd2425", + "chksum_sha256": "394570f3e6f1edf503b6782dd89ffa589499a778fc5336c8c610b01d473a7bb8", "format": 1 }, { @@ -8093,1851 +8058,1431 @@ "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/cli", + "name": "tests/integration/targets/nxos_system/tests/nxapi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/cli/set_domain_name.yaml", + "name": "tests/integration/targets/nxos_system/tests/nxapi/set_domain_name.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fa3289fe04fe5f8a8259ca69cee34e575e690589e3c4b5a1e8ade6a724c81246", + "chksum_sha256": "c3c9fe4f41326a05c53fb03a14ab15d9aca59b0cd5276ca5e28b7c7b7e24e1a5", "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/cli/set_name_servers.yaml", + "name": "tests/integration/targets/nxos_system/tests/nxapi/set_domain_list.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "634ccd651c5a3aff45209b99a311b488422098e96df88ca31e1f1f6e5fcc0e2f", + "chksum_sha256": "4f58661081e4b16a1b96f55d176abaa163d8eeb2d530a96420da6d15de4bb0ac", "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/cli/set_domain_list.yaml", + "name": "tests/integration/targets/nxos_system/tests/nxapi/set_name_servers.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "494d4bd1f0afc278a5422adec3684980a21807274f3887cc64743335104fc95f", + "chksum_sha256": "bbee414220275ff9a13a61bb40c3f4aa127cf63ebb07221abf01f8995b22b252", "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/common", + "name": "tests/integration/targets/nxos_system/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_system/tests/cli/set_domain_name.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e76a24280e763ab2423dbd4062e39dd0c4b54131b361582bc4de92183c9fe32f", + "chksum_sha256": "fa3289fe04fe5f8a8259ca69cee34e575e690589e3c4b5a1e8ade6a724c81246", "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/common/set_hostname.yaml", + "name": "tests/integration/targets/nxos_system/tests/cli/set_domain_list.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1f80d47b8482b052d64571ffd74d3e08219c8180e0bdfd38785cbdcb80b4dc01", + "chksum_sha256": "494d4bd1f0afc278a5422adec3684980a21807274f3887cc64743335104fc95f", "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/nxapi", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_system/tests/cli/set_name_servers.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "634ccd651c5a3aff45209b99a311b488422098e96df88ca31e1f1f6e5fcc0e2f", "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/nxapi/set_domain_name.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c3c9fe4f41326a05c53fb03a14ab15d9aca59b0cd5276ca5e28b7c7b7e24e1a5", + "name": "tests/integration/targets/nxos_system/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/nxapi/set_name_servers.yaml", + "name": "tests/integration/targets/nxos_system/tests/common/set_hostname.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bbee414220275ff9a13a61bb40c3f4aa127cf63ebb07221abf01f8995b22b252", + "chksum_sha256": "1f80d47b8482b052d64571ffd74d3e08219c8180e0bdfd38785cbdcb80b4dc01", "format": 1 }, { - "name": "tests/integration/targets/nxos_system/tests/nxapi/set_domain_list.yaml", + "name": "tests/integration/targets/nxos_system/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4f58661081e4b16a1b96f55d176abaa163d8eeb2d530a96420da6d15de4bb0ac", + "chksum_sha256": "e76a24280e763ab2423dbd4062e39dd0c4b54131b361582bc4de92183c9fe32f", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces", + "name": "tests/integration/targets/nxos_feature", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tasks", + "name": "tests/integration/targets/nxos_feature/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_feature/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/nxos_feature/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64ca5b4de950cd0d788bdd92389f7741e663d949ee6b0e343f1038c573564b64", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_feature/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/meta", + "name": "tests/integration/targets/nxos_feature/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/meta/main.yml", + "name": "tests/integration/targets/nxos_feature/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/defaults", + "name": "tests/integration/targets/nxos_feature/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/nxos_feature/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests", + "name": "tests/integration/targets/nxos_feature/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common", + "name": "tests/integration/targets/nxos_feature/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_feature/tests/common/invalid.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a639b04de3b8a2a70660b4034c291526f9e1f4bee9e24e4e543bd719a4f65a50", + "chksum_sha256": "9876fc00630984bf3f7c6a0ce6e7a75b67d4c2dc198fe91c2d4dcaef40fec816", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_feature/tests/common/configure.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d5ba532156bd9771e2ec35bb085d404ed049b88e1da827ab9eb6d4dd38a3c871", + "chksum_sha256": "89d6028b9ede5f5589b6786b029044d9cdf739f164d0a593ecacb564588acfe5", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3f875bd8877a898338a0402b34179ad17f45b84d1623c72741490f52913eb064", + "name": "tests/integration/targets/nxos_vrf_interface", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c5a2d4d2fa3245673307a06eb29fd3b751fad50fde2dac24f84aaff5498a5af7", + "name": "tests/integration/targets/nxos_vrf_interface/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/rtt.yaml", + "name": "tests/integration/targets/nxos_vrf_interface/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0eb7659a55ab72845d72bf76bcac9618bf84c8d5d55c6fa8f04ff9c15c68a92a", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_vrf_interface/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49898e976fb440f5b1ebc404e489b6e2511049c950c8c0d8fe75e251dc5c3671", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_vrf_interface/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52f0f66116a7b07a9bfd39bcc2cdabc5a2db68ed24d92751f3f53f08332f0ed0", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "eb7918401f281cb2d25ccebc214ac1fd9ae10975f3ca4f77f56a53f3cc485a40", + "name": "tests/integration/targets/nxos_vrf_interface/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_vrf_interface/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8d1e0d8e50dd46dc84c73912990ffca760b0f5e1a8ad8ab2f10a90bce902369", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e26569250511575d31ea2338e2abede7fda11240bd583ac7896adccb24abd7f2", + "name": "tests/integration/targets/nxos_vrf_interface/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/purged.yaml", + "name": "tests/integration/targets/nxos_vrf_interface/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "832b01df3053b44b5e69f7b1e62fede8df0291af913f7b4abd1d4545439ef718", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/tests/common/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "454396b9f57fd4895a1d8063b565bde8a053291bc6f6e5f934397c75e99ac6cb", + "name": "tests/integration/targets/nxos_vrf_interface/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/vars", + "name": "tests/integration/targets/nxos_vrf_interface/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_interfaces/vars/main.yml", + "name": "tests/integration/targets/nxos_vrf_interface/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7aa68e2e8b3bb1d6b4258ed279670b1a8e5fc5e6a63b446eab511c3963db1c1", + "chksum_sha256": "7f97e455b1bd40d8c37f4c473ba8a86d18cb742022dface71269898bcf9d6594", "format": 1 }, { - "name": "tests/integration/targets/prepare_nxos_tests", + "name": "tests/integration/targets/nxos_bgp_address_family", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_nxos_tests/tasks", + "name": "tests/integration/targets/nxos_bgp_address_family/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/prepare_nxos_tests/tasks/main.yml", + "name": "tests/integration/targets/nxos_bgp_address_family/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8d49ed36175f83090c361ca918f66c751d9a55d3e57ed4097366dda3f04434ff", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/prepare_nxos_tests/tasks/prepare.yml", + "name": "tests/integration/targets/nxos_bgp_address_family/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6dc1745aa3d09766233e4522d935898ecfdf07caf0b7d2a3ab7e20e40bbdc4a5", - "format": 1 - }, - { - "name": "tests/integration/targets/prepare_nxos_tests/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "918e266fd84500fc8a9d7958437789683bd47b7875371afaf4941b60f4594bc7", "format": 1 }, { - "name": "tests/integration/targets/prepare_nxos_tests/meta/main.yaml", + "name": "tests/integration/targets/nxos_bgp_address_family/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "851860fe2ed1258710d7fcf89ac5b7d8c3c87755e89ca56fdd79bea022eb2b92", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_aaa_server_host", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/tasks", + "name": "tests/integration/targets/nxos_bgp_address_family/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_bgp_address_family/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "name": "tests/integration/targets/nxos_bgp_address_family/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_bgp_address_family/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/meta", + "name": "tests/integration/targets/nxos_bgp_address_family/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/meta/main.yml", + "name": "tests/integration/targets/nxos_bgp_address_family/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "528513c35a708d559281b5758e5c998565f110acf10803504b3cdbf2accf1988", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/defaults", + "name": "tests/integration/targets/nxos_bgp_address_family/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/defaults/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_aaa_server_host/tests", + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/tests/common", + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/tests/common/tacacs.yaml", + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b669c11c0bee9b899cb3075b446411bac7b4fd7c79396e5add683a2d5ab8b725", + "chksum_sha256": "f6189829f4b10872e4553b8c55db04c742cca9c7598d067ddb3eea05e0ab2f0d", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server_host/tests/common/radius.yaml", + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "10dec61711d8e2e9660491a3ac36bda92ef57264b44ce2fafd5c0512b2ecfd13", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_udld_interface", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_udld_interface/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "29d4c709454554edeef9e3a0e394a93ff71200d5ae09e04d855d8edcedc24549", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld_interface/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "a6f21fe892ff7e532f40e0d7ecb6bba83f26bb1765ac4177b453d85f896dc633", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld_interface/tasks/main.yaml", + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "e76deb0ccd6d015af64ec4b54fc1da88ccf401b0aa373bda8d4cfabd23b9b1d9", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld_interface/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_udld_interface/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "0a2cbefd9d104a0f9e0370a13ed7e87feb1e74175d922f33d786e604e775a498", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld_interface/meta/main.yml", + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "ba2591fcb1bd54b023d7d45818463cb4d7efb6c7a918133129505ab24d3c9b7d", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld_interface/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c07047642c717ad5e564697143a11e7cc93a18376d91ee56dc5f44f3d19e22b5", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld_interface/defaults/main.yaml", + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "0aefe84d03b67ec239027816ac3522c7b7cfabac56bd979c781c74cab4b01955", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld_interface/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fed0782bb5669d310ba18f8a49c51be3b1c8b16b0951f388e2280ed4a1769b50", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld_interface/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7121942f388ee7ab8d2484101d1a980b1d666be25f8388c6f00438f36a99736d", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld_interface/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3cd8d7eab5171ab6ad59ea7fd737a7de66bff01398491e83f7d3904da0c5e451", + "chksum_sha256": "4ad5b3d3c16b81ea4fcf40639099f5191577136f0cf3ff4970ed630d8248ec66", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address", + "name": "tests/integration/targets/nxos_lacp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/tasks", + "name": "tests/integration/targets/nxos_lacp_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/tasks/main.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "c0ff0c24a2fb4a8aa58a6356c5029065acb6cf1aba1e14add135ff69c8d1387b", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/meta", + "name": "tests/integration/targets/nxos_lacp_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/meta/main.yml", + "name": "tests/integration/targets/nxos_lacp_interfaces/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/defaults", + "name": "tests/integration/targets/nxos_lacp_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/defaults/main.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/tests", + "name": "tests/integration/targets/nxos_lacp_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/tests/common", + "name": "tests/integration/targets/nxos_lacp_interfaces/vars/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "adb8824233c88430d3737a53e2cf1a939138f4f56b1aee31f730895793eb72b2", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_lacp_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim_rp_address/tests/common/configure.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5860ed215f27147987c62a8541f96530427cfadc64b6ce13e849a6785275c8ca", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/tasks/nxapi.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1e03994e82f05167e558b19e20c435e80ed92b6ff4f62f71fb93ed9082d30f94", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/tasks/cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/defaults/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_domain/tests/common/sanity.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d5ce98107789e4105c99fef3d305b6b7099cf14b564000fe960cc6861772e803", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/network_cli.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "29b863033e05757e739075e995a668f9bcc014a0e214ac894ffa9af68bd781ce", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5a0047c8f02776d1bffe8d2ced68ea4c0f823708554f48419af32b1b7172a1a9", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/upgrade", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/main_os_install.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bc3281050236443452b55b83c4c3f32be752eb802c09c730e36e06ee7ef7ca31", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/install_os.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d774b3f202b5780184d96cdb5ac41b3db3540d09f575f0c8b0840a3509fd75bb", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/copy_kick_system_images.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "71f8a18402f8b4c95d4bdcb1f4fc6542ce6b9671ea246c44fe9acac70bbd562d", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/enable_scp_server.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2f94537521756c0171b570da8d8012aa47441ed01f2085c5e0c4ce1c80d6dbf3", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/delete_files.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f770f6c4e52488ddd7b0c1dd5c61ef6f7f2dfb329cbae4337e0845567fa3e113", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/install_with_kick.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bf39d3606053aeface47d66b776a0f8ed281c130cf0258ac09e8a0a759076df4", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/install_system.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d7225266ebf0be4737420a6d63a5cd3c77d3b6cfde7bd0f1c7eded1ebfad70b7", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/upgrade/clear_persistent_sockets.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2fcf3f5178da21851bf3cd61610f645b242d841bb553acc94fa88c003c8849e5", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tasks/httpapi.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1c9ccfa8d43479520eb4cffae188c452027a694dd86a02bd92d31b5843301ad5", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "efb275d54a7c21fd007e1d1c8b10b65d148a9121af425a4e7fbd60abacd23fc8", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/defaults/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a79b77c93a1982c2682c177681bfcef5f3fb3421e3ef10be452fc81dc3ce8871", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n3172_greensboro.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f26347411b88b126bce20f80dca17f5726cc830996a1d8bd6119b73647bea681", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n9k_greensboro.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7a09f37097e9dbedf717f83715339eb5397073ac3909bfd0cae6f874d3cd6342", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n7k_atherton.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f72c407c1bedf043f2a763f9db8de4c28cb40cd3f55a99180c0b54f46bc9910c", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n5k_730_N11.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "744e3327618fd03cced8667aa2dee9cd691c358777ecb1dc741abf3c8dc18484", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n3172_u63a.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c37931cb7c45570fe30f100fb278e26b7b94b7848d59ad8b6dbdda0670534452", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n9k_hamilton.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "669ba59d9d909f0d42d6e69ae0ef3e6e1d4c33995a4658761f0b2884113cc041", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n35_greensboro.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bf8414d8d1327c0db9056739e1b39b673abe37e939356efd1ef96ade985ccffc", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n9k_greensboro_force.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "13e87f23b456e285da0593775bfe2b876d167922ce61a4ba47a668cb0b0d82bb", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ee3909a9cbc7c9f42f3b146f122a61bdc2adada843b80ee111fe024dfa5c0d33", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n35_62a88.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c041886e29ede3a58d17f0e6d281d5dd458095369130bed0e617ffb200824743", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n7k_helsinki.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c023ec2f8677adcd41bd418bb5e35d3c82dc0636d9d41c45a2074b32891214be", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n3172_u61a.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "147279cb89618d50352ab1e86d4e939a3f3e0594cf28aec862eb867e1bdfc307", + "chksum_sha256": "3e5be532a772bae7c777ccff5a0bd7873f6d67fd9cfc19ee1148d34381a7e6a7", "format": 1 }, { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n3172_u62a.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ee1eb9e5b4f1fea2c930c8a7c48eaf4708576b9af88c29f280f3dabcec163fb", + "chksum_sha256": "7619a726b4e64d1bd47dadee8ec75a16d3b2bdc44b6d82d82bd56e38ada9c86b", "format": 1 }, { - "name": "tests/integration/targets/nxos_install_os/tests/common/upgrade_n5k_733_N11.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7efa46e2021391e0fc9114f1b132861cd3614b7ec0064425b46ed876c81ea0f1", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_aaa_server", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_aaa_server/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "62ca1f227ad278d7c4554e39d7368212b7004426b9c43bcc2bf1456f27e6ab98", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "7fba7cbbd3ce552b4dbe95b0929f2264f20fca017fd8d49dcbfcf704234fee03", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server/tasks/main.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "0f9f2f61c2ed959758be49bd3a688b41c8a536d857d83e57cded8dbf1b1a72b2", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_aaa_server/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "5ae69e8c5e516df2c81671c0360b711f53a426f7e2a4b1f7a24b422257f304a4", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server/meta/main.yml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_aaa_server/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "ea101ba2a00ebe731b075245fdac99f96d8536a8dbd4b1f3f41aa0bf3863713e", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server/defaults/main.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_aaa_server/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_aaa_server/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "c290a62babd394680c978ea09017b67507be0351b51e46c746a874320362e8ec", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server/tests/common/tacacs.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "309cf43dacad631085bfede9a52ee2e7bdb4763488463bfb96dde11184bbe0fc", + "chksum_sha256": "d3e63a62df68b89bd619c1bd5632735df0c735ed4fa2cd9201bd1ba31faf87e7", "format": 1 }, { - "name": "tests/integration/targets/nxos_aaa_server/tests/common/radius.yaml", + "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08fe50e81078371eff5d9482f9b7721eb6fd1288ccc88f11b8b42f94270df4ef", + "chksum_sha256": "d8f3f3ddd194db7f9b22519fac0e45a4c3529b3beaf85c2f15780daaa1cac4a0", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth", + "name": "tests/integration/targets/nxos_vrf_af", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/tasks", + "name": "tests/integration/targets/nxos_vrf_af/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_vrf_af/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/tasks/main.yaml", + "name": "tests/integration/targets/nxos_vrf_af/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_vrf_af/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "8d37308cf2225418b5fab604f2b171a1aafbaa84be0c933a48ec0f153d7119ad", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/meta", + "name": "tests/integration/targets/nxos_vrf_af/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/meta/main.yml", + "name": "tests/integration/targets/nxos_vrf_af/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/defaults", + "name": "tests/integration/targets/nxos_vrf_af/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/defaults/main.yaml", + "name": "tests/integration/targets/nxos_vrf_af/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/tests", + "name": "tests/integration/targets/nxos_vrf_af/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/tests/common", + "name": "tests/integration/targets/nxos_vrf_af/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ntp_auth/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_vrf_af/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8e17189f259b91c17e7264d272ac181275b6b550180c1703b6c97e7dd4ed5b46", + "chksum_sha256": "df6d2b3a3d7a67ce3759464bf144b6a71d61afa348cfda6faea7707ab93acf21", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces", + "name": "tests/integration/targets/nxos_snmp_user", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tasks", + "name": "tests/integration/targets/nxos_snmp_user/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_snmp_user/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/nxos_snmp_user/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0ff0c24a2fb4a8aa58a6356c5029065acb6cf1aba1e14add135ff69c8d1387b", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_snmp_user/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/meta", + "name": "tests/integration/targets/nxos_snmp_user/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/meta/main.yml", + "name": "tests/integration/targets/nxos_snmp_user/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/defaults", + "name": "tests/integration/targets/nxos_snmp_user/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/nxos_snmp_user/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests", + "name": "tests/integration/targets/nxos_snmp_user/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common", + "name": "tests/integration/targets/nxos_snmp_user/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5ae69e8c5e516df2c81671c0360b711f53a426f7e2a4b1f7a24b422257f304a4", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "62ca1f227ad278d7c4554e39d7368212b7004426b9c43bcc2bf1456f27e6ab98", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ea101ba2a00ebe731b075245fdac99f96d8536a8dbd4b1f3f41aa0bf3863713e", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c290a62babd394680c978ea09017b67507be0351b51e46c746a874320362e8ec", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_snmp_user/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7619a726b4e64d1bd47dadee8ec75a16d3b2bdc44b6d82d82bd56e38ada9c86b", + "chksum_sha256": "cc18bce3cf7f8a257784f7d4e432ef00b535bfe73b057d661756f364bcc9d176", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0f9f2f61c2ed959758be49bd3a688b41c8a536d857d83e57cded8dbf1b1a72b2", + "name": "tests/integration/targets/nxos_evpn_vni", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d8f3f3ddd194db7f9b22519fac0e45a4c3529b3beaf85c2f15780daaa1cac4a0", + "name": "tests/integration/targets/nxos_evpn_vni/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_evpn_vni/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fba7cbbd3ce552b4dbe95b0929f2264f20fca017fd8d49dcbfcf704234fee03", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_evpn_vni/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3e5be532a772bae7c777ccff5a0bd7873f6d67fd9cfc19ee1148d34381a7e6a7", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_evpn_vni/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3e63a62df68b89bd619c1bd5632735df0c735ed4fa2cd9201bd1ba31faf87e7", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/vars", + "name": "tests/integration/targets/nxos_evpn_vni/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp_interfaces/vars/main.yml", + "name": "tests/integration/targets/nxos_evpn_vni/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adb8824233c88430d3737a53e2cf1a939138f4f56b1aee31f730895793eb72b2", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_lag_interfaces", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tasks", + "name": "tests/integration/targets/nxos_evpn_vni/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tasks/nxapi.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_lag_interfaces/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b9647339f89f9eeca01a09cd4f31da21e0c0c2f10793ea3ea06c24fd8664046e", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_lag_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_evpn_vni/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/meta", + "name": "tests/integration/targets/nxos_evpn_vni/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_lag_interfaces/defaults", + "name": "tests/integration/targets/nxos_evpn_vni/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/nxos_evpn_vni/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "feb636a1cf337d091e427267dc9639d6fd2a5a481a9fd73cc830618990dc12af", "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tests", + "name": "tests/integration/targets/nxos_vtp_version", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common", + "name": "tests/integration/targets/nxos_vtp_version/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d6daa4d3b2cb43c7b62b7606b80b4f212348ecb1e28a516d16ac90e02f459266", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4af7dc65128b02d59c3c12d5f94cfc4a77c266e867b79b172fc6425c871f9ffd", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_vtp_version/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e4441e52874693cf2caa332a4639c23ad59350a6eda4e9c5109a9792a306447", + "chksum_sha256": "1e03994e82f05167e558b19e20c435e80ed92b6ff4f62f71fb93ed9082d30f94", "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_vtp_version/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96cae582141397682d092a6b5d6de9651b6203157e891342063c439ffb130a4d", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_vtp_version/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "53c3cd45c91dd6078cf71ea7a9973d65069a61eaef47c49a51c7b66355970a63", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "96e1c7636b178b2ae705ac0d7dd2ea67a4d4c1aaf29122900549bde0da43b4de", + "name": "tests/integration/targets/nxos_vtp_version/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_vtp_version/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76ea0558de38d30dd8813738f9d92fba9867c7d37fcb2a104acaaf5aeebb12af", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "08e830f9373a4a360949e7c56cf2c374dad94a559adbde314f3b66daa642a0c8", + "name": "tests/integration/targets/nxos_vtp_version/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_vtp_version/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c10b8ab6302c0df3b5d8c99d1f67a9d92b80b518250c11e650dde96bc8f6b886", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6eb88f454c810cee9cf1be9fc56eb6a574516fc49bddc50e81f329dc98cfb9eb", + "name": "tests/integration/targets/nxos_vtp_version/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/vars", + "name": "tests/integration/targets/nxos_vtp_version/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lag_interfaces/vars/main.yml", + "name": "tests/integration/targets/nxos_vtp_version/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05455a29f1db6e4d3602a83b356d9d7353037b1ef0627d2d2943b43520af76e6", + "chksum_sha256": "e33039720ba0e6ccc73fe5d38aaa4c2d1284afbb89058f6fe98c1a09d2a30638", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_af", + "name": "tests/integration/targets/nxos_ospfv2", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_af/tasks", + "name": "tests/integration/targets/nxos_ospfv2/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_af/tasks/nxapi.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vrf_af/tasks/main.yaml", + "name": "tests/integration/targets/nxos_ospfv2/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_af/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_ospfv2/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8d37308cf2225418b5fab604f2b171a1aafbaa84be0c933a48ec0f153d7119ad", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vrf_af/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "7826463ba77fb2f0f2bb32a0e02ce314ce3a06762e189598970cc26dd17828b1", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_af/meta/main.yml", + "name": "tests/integration/targets/nxos_ospfv2/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_af/defaults", + "name": "tests/integration/targets/nxos_ospfv2/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_af/defaults/main.yaml", + "name": "tests/integration/targets/nxos_ospfv2/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_af/tests", + "name": "tests/integration/targets/nxos_ospfv2/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_af/tests/common", + "name": "tests/integration/targets/nxos_ospfv2/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_ospfv2/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_af/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_ospfv2/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "df6d2b3a3d7a67ce3759464bf144b6a71d61afa348cfda6faea7707ab93acf21", + "chksum_sha256": "61311d9ddd2174a10efead34de8526412e4c4d438600cf5a3ff852ec8692c4f6", "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset", + "name": "tests/integration/targets/nxos_ospfv2/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/tasks", + "name": "tests/integration/targets/nxos_ospfv2/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f47853340600c1c9b76ed00695079b203ae45896e40acfac2f48e28f2ad98b40", + "name": "tests/integration/targets/nxos_ospfv2/tests/common/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_ospfv2/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "4ad11ae9e094b6bc2d4286b05967979551104857b314aa8af9afee18cdec2d4a", "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospfv2/tests/common/parsed.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b1738278980bd3d3426805bcd85053668078a6b992627d9119043bc29161ea8e", "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/meta/main.yml", + "name": "tests/integration/targets/nxos_ospfv2/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", + "chksum_sha256": "ddfff25fc88c57f108a7ed89d11d6df5c2233b27eac626512dc63709325fcf85", "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospfv2/tests/common/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "69ef5f767607840c90b3cb9b80ca6eae206df8ec8a48b850dc47adbcf4b11aa5", "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/defaults/main.yaml", + "name": "tests/integration/targets/nxos_ospfv2/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "7a00b8609854d6a88cc33f870793ec8972cd5d81ae8dcfed33fbbca19938ce69", "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospfv2/tests/common/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "de58bef72adb70191cc8d212367d3332359130dbaf399807962787d1df375915", "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospfv2/tests/common/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c5bb202379b75e7aaffb216dd2e42b234acf1ab4fc0679f470fc01c67b309b27", "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_ospfv2/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "781a480d71c224fb90d67eba3072492ff3f2d263df13ec8c735cabec41956751", + "chksum_sha256": "b8b689385d369d30980492e63bb16f13719d27452d738494899f85539130b2b5", "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospfv2/tests/common/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "77ed312700fb0471e6e108949f8b983d6c418f0187b84b569551ce3c8205ce0c", "format": 1 }, { - "name": "tests/integration/targets/nxos_zone_zoneset/vars/main.yml", + "name": "tests/integration/targets/nxos_ospfv2/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97b10ee26b05c01b328d79887c41479bd2bf559184fb1df4af53645db6e109ba", + "chksum_sha256": "0a3077084e8ed39aae3bc10055bbff711e7d40af65e514c7ecd99bffaad96bfc", "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy", + "name": "tests/integration/targets/nxos_bfd_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tasks", + "name": "tests/integration/targets/nxos_bfd_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_bfd_global/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tasks/main.yaml", + "name": "tests/integration/targets/nxos_bfd_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6bf1e5e97ebdee9d3da5227017b650cf6de337ae6ce68cee739acf39a32ec81", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_bfd_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/meta", + "name": "tests/integration/targets/nxos_bfd_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/meta/main.yml", + "name": "tests/integration/targets/nxos_bfd_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/defaults", + "name": "tests/integration/targets/nxos_bfd_global/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/defaults/main.yaml", + "name": "tests/integration/targets/nxos_bfd_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tests", + "name": "tests/integration/targets/nxos_bfd_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tests/cli", + "name": "tests/integration/targets/nxos_bfd_global/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tests/cli/input_validation.yaml", + "name": "tests/integration/targets/nxos_bfd_global/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "86642c6a7b15cbac85986a618de3eea6d741cb9819a4b7896570ab07e6033a8c", + "chksum_sha256": "302caab98adbe8644dc6652426b6e9300fc4d8fbc1a479ee7aeaf54d6a23da59", "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tests/cli/negative.yaml", + "name": "tests/integration/targets/nxos_l2_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_l2_interfaces/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_l2_interfaces/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a918d9c6433c61aea340e1c0c94ef62d409893bfe7fd1858386da4422c5e208", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tests/cli/sanity.yaml", + "name": "tests/integration/targets/nxos_l2_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "021893730c6fa627193f1b0189476630b88aef49449b7b7e2b0516acc288231d", + "chksum_sha256": "c0ff0c24a2fb4a8aa58a6356c5029065acb6cf1aba1e14add135ff69c8d1387b", "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tests/nxapi", + "name": "tests/integration/targets/nxos_l2_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_l2_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/tests/nxapi/badtransport.yaml", + "name": "tests/integration/targets/nxos_l2_interfaces/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21427f41984508b9839c2f35a72d67fd2cf22fcd68d619118a5b5515d2268668", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/fixtures", + "name": "tests/integration/targets/nxos_l2_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_file_copy/fixtures/data.cfg", + "name": "tests/integration/targets/nxos_l2_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef43c9adc8aeec6910b4373ba0d9fbf28048ed53ec631ab9fd6fa8ad00a8a3a0", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global", + "name": "tests/integration/targets/nxos_l2_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/tasks", + "name": "tests/integration/targets/nxos_l2_interfaces/vars/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "80f38875da077b4094678a1b0d5fa1dbb55a586037c541d4daec3b3b8adca944", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_l2_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "3c30f97c6ae729fd7b3d88a3e7b6671c761ea07061ead87487979c013835b99c", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/tasks/main.yaml", + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "b6d84fa1c22c5e2d37b017a18ed59903fab43314717b4d632a46200d745318c0", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "c58134a7c574f9d19d3012c238b2be0d4983d6d856a11e9f6ee089c3df5ec6b4", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9e1b2b7044a678c22cccca3dcc5c677fccf40a509764b7ecf5c8dfeecf4781d8", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/meta/main.yml", + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "aeb7c65908e1aee314df87a9afe8c2f4dc1e1b21e41ca8a03f2991597dfd0685", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3644170fb7b4322fa4d272cd5d5e351480018b485a065fa7131fb3f6f5e2f353", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/defaults/main.yaml", + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "148ed76eb41828c2417439c0b443097a6f2f9d1fa88a4abad48bd8e62de30c4e", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6c1ffa21ffa7a57ae8edbb0a72820f4ec4e7947ba1ee5a1548473e81efec8724", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a2a0ff901006be504934a514a2f337a699091eef58ab871fb32e426af1d6f6fa", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_global/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9190f2d0dae47c3b29ebe68f89ec9e3b88f0af56af489b15624cf99c86415d9f", + "chksum_sha256": "f018dcb8d9a42d8930b0d10f62ed931546d66f2998aa42ce95f655d299dbb35b", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni", + "name": "tests/integration/targets/nxos_l2_interfaces/tests/common/_populate_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b9322c7dd05de65b972eb0bb02c699c4368fc68bb97dd155a05ed98dd304448f", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_snapshot", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tasks", + "name": "tests/integration/targets/nxos_snapshot/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_snapshot/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6fa74ca9eef193774b0257522c64344fa2c8851398dc0acd94e161192cc0015d", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tasks/main.yaml", + "name": "tests/integration/targets/nxos_snapshot/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_snapshot/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/meta", + "name": "tests/integration/targets/nxos_snapshot/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/meta/main.yml", + "name": "tests/integration/targets/nxos_snapshot/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/defaults", + "name": "tests/integration/targets/nxos_snapshot/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/defaults/main.yaml", + "name": "tests/integration/targets/nxos_snapshot/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tests", + "name": "tests/integration/targets/nxos_snapshot/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tests/common", + "name": "tests/integration/targets/nxos_snapshot/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tests/common/sanity.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "81ba6bdc57dba2f0adc0b293862db415cb6aea44ae3793cbb0c755ea01c073a9", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tests/common/multisite.yaml", + "name": "tests/integration/targets/nxos_snapshot/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7127fe8481d55865ca7043a159fb4c4a6e02423899c7143bbb548aff0f3728e4", + "chksum_sha256": "171022870f501d3dcb8c73978ee34038cb5e65c32786bbabc9f638c9ae04be4d", "format": 1 }, { @@ -10011,66 +9556,66 @@ "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/cli", + "name": "tests/integration/targets/nxos_command/tests/nxapi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/cli/contains.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ac46a36b0b073fcb691e33c0602443a2bef31fac538dd68d2c9d78edce98f1d4", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_command/tests/cli/sanity.yaml", + "name": "tests/integration/targets/nxos_command/tests/nxapi/contains.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "41b22e35084ef1e82fe5fbe12cb7eec0591d256af60a6acdea4c26138a4b4b97", + "chksum_sha256": "5e366cc4b346ae49a4b6ffc53630caa1c99a8e85cd28c8adaf7b1bf4cdc0cf9c", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/cli/cli_command.yaml", + "name": "tests/integration/targets/nxos_command/tests/nxapi/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8dc21d11e5f13aacc82d1a8872ad62b00551edff6284a36a02eea970b73a9d2", + "chksum_sha256": "54d18e3242c76aa88bc82a7a916bbdb6beff7ce3b5b70a651a821cf6c7942e79", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/common", + "name": "tests/integration/targets/nxos_command/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/common/lessthan.yaml", + "name": "tests/integration/targets/nxos_command/tests/cli/contains.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb9067d3cfdd75f94ac2748f0742c1c61717a3798292cba7042c806fc0488fb3", + "chksum_sha256": "ac46a36b0b073fcb691e33c0602443a2bef31fac538dd68d2c9d78edce98f1d4", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/common/invalid.yaml", + "name": "tests/integration/targets/nxos_command/tests/cli/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8d3206de3a49dfbf253bca6957a915f6fb10c3f0411f102de10841ff6094d90", + "chksum_sha256": "41b22e35084ef1e82fe5fbe12cb7eec0591d256af60a6acdea4c26138a4b4b97", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/common/greaterthanorequal.yaml", + "name": "tests/integration/targets/nxos_command/tests/cli/cli_command.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6f816b5c0dcbe205f7d8e6f1a773d71276fcb9874a1c4b8a0d10e4804632301", + "chksum_sha256": "c8dc21d11e5f13aacc82d1a8872ad62b00551edff6284a36a02eea970b73a9d2", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/common/equal.yaml", + "name": "tests/integration/targets/nxos_command/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_command/tests/common/output.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "78ffc32b0c96adc09c9321e1d12fbb5c91908419e857e25e4a4ac7839cc0610c", + "chksum_sha256": "afc13fd26c10d41c29bd89f7b874d6c06a2636cbb434069506a9f30cb9da907a", "format": 1 }, { @@ -10081,38 +9626,38 @@ "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/common/lessthanorequal.yaml", + "name": "tests/integration/targets/nxos_command/tests/common/lessthan.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c90dcce9d2d647a50d1c9db4248293535b7d75352ecffd152e877ab13940787", + "chksum_sha256": "eb9067d3cfdd75f94ac2748f0742c1c61717a3798292cba7042c806fc0488fb3", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/common/output.yaml", + "name": "tests/integration/targets/nxos_command/tests/common/equal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afc13fd26c10d41c29bd89f7b874d6c06a2636cbb434069506a9f30cb9da907a", + "chksum_sha256": "78ffc32b0c96adc09c9321e1d12fbb5c91908419e857e25e4a4ac7839cc0610c", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/common/greaterthan.yaml", + "name": "tests/integration/targets/nxos_command/tests/common/greaterthanorequal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3dde04a006eb5b001ed0f80589e92b4fdaa9a939dd4ae904cd63af915bd938f5", + "chksum_sha256": "d6f816b5c0dcbe205f7d8e6f1a773d71276fcb9874a1c4b8a0d10e4804632301", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/common/timeout.yaml", + "name": "tests/integration/targets/nxos_command/tests/common/invalid.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c859bb27d5fc01d07c00c6ce3125c74666663ccd7a9b08d9cf1a1b7385115f0e", + "chksum_sha256": "f8d3206de3a49dfbf253bca6957a915f6fb10c3f0411f102de10841ff6094d90", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/common/notequal.yaml", + "name": "tests/integration/targets/nxos_command/tests/common/greaterthan.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b12ffe1eb63e9b2854d5c509145508207bb471df7e881218c014a7fab0f41bb5", + "chksum_sha256": "3dde04a006eb5b001ed0f80589e92b4fdaa9a939dd4ae904cd63af915bd938f5", "format": 1 }, { @@ -10123,6793 +9668,6856 @@ "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/nxapi", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_command/tests/common/timeout.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c859bb27d5fc01d07c00c6ce3125c74666663ccd7a9b08d9cf1a1b7385115f0e", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/nxapi/contains.yaml", + "name": "tests/integration/targets/nxos_command/tests/common/lessthanorequal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5e366cc4b346ae49a4b6ffc53630caa1c99a8e85cd28c8adaf7b1bf4cdc0cf9c", + "chksum_sha256": "5c90dcce9d2d647a50d1c9db4248293535b7d75352ecffd152e877ab13940787", "format": 1 }, { - "name": "tests/integration/targets/nxos_command/tests/nxapi/sanity.yaml", + "name": "tests/integration/targets/nxos_command/tests/common/notequal.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54d18e3242c76aa88bc82a7a916bbdb6beff7ce3b5b70a651a821cf6c7942e79", + "chksum_sha256": "b12ffe1eb63e9b2854d5c509145508207bb471df7e881218c014a7fab0f41bb5", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global", + "name": "tests/integration/targets/nxos_vtp_domain", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tasks", + "name": "tests/integration/targets/nxos_vtp_domain/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_vtp_domain/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "280d285e1a9b531b25d8b880d3a032933d7135004c4658b7f1eb4872c60cc666", + "chksum_sha256": "1e03994e82f05167e558b19e20c435e80ed92b6ff4f62f71fb93ed9082d30f94", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tasks/main.yaml", + "name": "tests/integration/targets/nxos_vtp_domain/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_vtp_domain/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe84894e2a9ff992a755f52f856ff23c23dd249fb9fe14dc4f264cd1a6070e12", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/meta", + "name": "tests/integration/targets/nxos_vtp_domain/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/meta/main.yml", + "name": "tests/integration/targets/nxos_vtp_domain/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/defaults", + "name": "tests/integration/targets/nxos_vtp_domain/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/defaults/main.yaml", + "name": "tests/integration/targets/nxos_vtp_domain/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests", + "name": "tests/integration/targets/nxos_vtp_domain/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests/common", + "name": "tests/integration/targets/nxos_vtp_domain/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests/common/parsed.yml", + "name": "tests/integration/targets/nxos_vtp_domain/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ca1cd52e0c16bb7a97f9e1aa4eb9c49600b25854f35a93b0bcfeaf3ead1e7c07", + "chksum_sha256": "d5ce98107789e4105c99fef3d305b6b7099cf14b564000fe960cc6861772e803", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests/common/_remove_config.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "339639545338297ee483c8e1370eeefc88356fceb240523dbbc6d8c237444982", + "name": "tests/integration/targets/nxos_udld_interface", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests/common/gathered.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e5f9f21d8529dd8144e8259391a04642355d3f3c9063db5a27472a5180d6b7dd", + "name": "tests/integration/targets/nxos_udld_interface/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests/common/merged.yml", + "name": "tests/integration/targets/nxos_udld_interface/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e82eb173fbdc3209c167bc096bf1665240e72b24a34f75c19ec1a3b7c5d4c8d1", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests/common/replaced.yml", + "name": "tests/integration/targets/nxos_udld_interface/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a62a8ac1f40b48c56dbd06eb543897331236925608b859a758f1c91037f17455", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests/common/deleted.yml", + "name": "tests/integration/targets/nxos_udld_interface/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ffe0021fbc8bd39a7990267dc791d78f2571f3285efd5fd1244c68159ffca98f", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests/common/overridden.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8aeec5521c22e513a4e736c9b51461285abce953173508ae28fb02ecef95952a", + "name": "tests/integration/targets/nxos_udld_interface/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests/common/_populate_config.yml", + "name": "tests/integration/targets/nxos_udld_interface/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7bacd3b7cb077dc6895ecf350711c1bf39e18739a361f6cf514e9dd4d6355f3", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/tests/common/rendered.yml", + "name": "tests/integration/targets/nxos_udld_interface/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_udld_interface/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "18c1848ef28d20fffd52045955b5a54ca72aea45d5c2ff9060d8856aeeb7162a", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/vars", + "name": "tests/integration/targets/nxos_udld_interface/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_global/vars/main.yml", + "name": "tests/integration/targets/nxos_udld_interface/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_udld_interface/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac136582618b2844cd5bb84e0aaf52f6b4e7a6ea581a0fa0ec5466e9c9c3bd68", + "chksum_sha256": "3cd8d7eab5171ab6ad59ea7fd737a7de66bff01398491e83f7d3904da0c5e451", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global", + "name": "tests/integration/targets/nxos_aaa_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/tasks", + "name": "tests/integration/targets/nxos_aaa_server/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_aaa_server/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/tasks/main.yaml", + "name": "tests/integration/targets/nxos_aaa_server/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_aaa_server/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/meta", + "name": "tests/integration/targets/nxos_aaa_server/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/meta/main.yml", + "name": "tests/integration/targets/nxos_aaa_server/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/defaults", + "name": "tests/integration/targets/nxos_aaa_server/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/defaults/main.yaml", + "name": "tests/integration/targets/nxos_aaa_server/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/tests", + "name": "tests/integration/targets/nxos_aaa_server/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/tests/common", + "name": "tests/integration/targets/nxos_aaa_server/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_global/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_aaa_server/tests/common/tacacs.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "302caab98adbe8644dc6652426b6e9300fc4d8fbc1a479ee7aeaf54d6a23da59", + "chksum_sha256": "309cf43dacad631085bfede9a52ee2e7bdb4763488463bfb96dde11184bbe0fc", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global", + "name": "tests/integration/targets/nxos_aaa_server/tests/common/radius.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "08fe50e81078371eff5d9482f9b7721eb6fd1288ccc88f11b8b42f94270df4ef", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_l3_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tasks", + "name": "tests/integration/targets/nxos_l3_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tasks/main.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2396a1bb62aa2d673208deb59766a787971d061630b8467afa525b7fdcb2e95e", + "chksum_sha256": "2418a2ada8700c06969324411c9be328b4d4ad913c6eb93fb824dff96900ff8f", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_l3_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_l3_interfaces/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/meta", + "name": "tests/integration/targets/nxos_l3_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/meta/main.yml", + "name": "tests/integration/targets/nxos_l3_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/defaults", + "name": "tests/integration/targets/nxos_l3_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/defaults/main.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "24e5a4f2e7330b185775678aa68b4645786e83617b90d5a32fb4ff4b77b345ad", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests", + "name": "tests/integration/targets/nxos_l3_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "619954ad3ae24e83760fb7b9f09daaf010f96020056398fe49a04001326f72c8", + "chksum_sha256": "5e2abf21e437435b96d94e3a1c900ac1284a39092f3b0b1d19e8d5d7544a8424", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "926b1b20a7babe989cc2f1b3e34a16d08368817d3ef38d6903650a294a42cc3a", + "chksum_sha256": "e7555ee3d0322003861d6c2d810ec490027b8d792e8800c7e9a46fab869b1c92", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c13b226487605fb6b6c73406c97a1972ed4c1995825124cb426d64eaac1a2ec", + "chksum_sha256": "1676a953c0e740cc280155ea76e6368fd5628556cdc0acae19e1834b40721681", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1658713d71b118aec3c1e27ae2d2453c239d56b32e3c6d816f5187796b40c7c", + "chksum_sha256": "ef91b776e8c9627a55cc9759549aaa7482e0f7da4385079443b8e8f1d8d40b8c", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/multisite.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82ec13620a0c096e01a22d68b13c59798667ca68d3ddbbc1be802ff3f415a562", + "chksum_sha256": "b0b3ebe6d2d7db422ec1a046818ce06ddf83ef9f32a9178691d732b0824b4da1", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "04822e2f3237fcae131842012a520b5fde51c1fd4b381ab86aa055d7c076f867", + "chksum_sha256": "c670083adeabaa18419eea52a2297aeea81b1a5635718b95aebf3d1955f78385", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dd0584d7e6d6a3aa5942acda6002b2e13a2bd64d59ee04dc5122274268676cc8", + "chksum_sha256": "9dbc4efa7c9e6843b987aa6286ba0de836129c75b66249ab846fee2012fc2394", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/rtt.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d660e4e5717467104076599f04b44aca40bbe45b79eb5e5554cb1ff390feb405", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/fixtures/parsed.cfg", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3a97c562338de257e93908f409c770a5439d362fcddcdb8d939dc7ff2e7002c6", + "chksum_sha256": "4c8ea6a0bd93a5ae1092362c88b1eb6ed13a086968841b5d68654677741714dc", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dadff9821e586c3a062c7ac4b2936903359a8fc4b2f4cceeb466f558c82b52d1", + "chksum_sha256": "858bc39fea4f9cedff070a248b5119124852eeb9237388ef833c414510dbf24c", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d952ab3ac507f65ff98eb58e380db0abe1583198f653d77beaa4e384929ad698", + "chksum_sha256": "f274f91771b34f2246ee4fa58bae6acd7fafb0ea1f1efb04ffb362cfd1678de3", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b4a5f8a10bd86d7609cb6688523bc611e052260c4a06bf9cf202f33eee40a1f5", + "chksum_sha256": "3a640fd87c6717d5876b64797f7d0092fd6673272fc5a674bde3cf5ed78e8b79", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/vars", + "name": "tests/integration/targets/nxos_overlay_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging_global/vars/main.yml", + "name": "tests/integration/targets/nxos_overlay_global/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_overlay_global/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15f80d89c3629bea0c669753c52136268f11e94a83ba6e69411fc96ab8449457", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc", + "name": "tests/integration/targets/nxos_overlay_global/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_overlay_global/tasks/platform", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/tasks", + "name": "tests/integration/targets/nxos_overlay_global/tasks/platform/n7k", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_overlay_global/tasks/platform/n7k/cleanup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "6fe5dccac28d950d4f93db2d5dd8d2d53f974b51a0c07a9371165a7fd9b20585", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/tasks/main.yaml", + "name": "tests/integration/targets/nxos_overlay_global/tasks/platform/n7k/setup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "1f41e716a6ee3d52141e15b1cf8d8a62a6656066f9761e5438f18b03b64148ba", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_overlay_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/meta", + "name": "tests/integration/targets/nxos_overlay_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/meta/main.yml", + "name": "tests/integration/targets/nxos_overlay_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/defaults", + "name": "tests/integration/targets/nxos_overlay_global/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/defaults/main.yaml", + "name": "tests/integration/targets/nxos_overlay_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/tests", + "name": "tests/integration/targets/nxos_overlay_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/tests/common", + "name": "tests/integration/targets/nxos_overlay_global/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vpc/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_overlay_global/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2df57c902caed23947093482590483584784db8850c51e6efe545b314895eaed", + "chksum_sha256": "10d3d02705dac2e31ab7424914f1dc74d20c5cf799141c26ac2e47ec2c68e1b4", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp", + "name": "tests/integration/targets/nxos_bgp_global", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tasks", + "name": "tests/integration/targets/nxos_bgp_global/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tasks/main.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0ff0c24a2fb4a8aa58a6356c5029065acb6cf1aba1e14add135ff69c8d1387b", + "chksum_sha256": "05625917ea950a0b177ebb25c692ba215e247b2f17a15309a86430a5871f5672", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/meta", + "name": "tests/integration/targets/nxos_bgp_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/meta/main.yml", + "name": "tests/integration/targets/nxos_bgp_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/defaults", + "name": "tests/integration/targets/nxos_bgp_global/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/defaults/main.yaml", + "name": "tests/integration/targets/nxos_bgp_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests", + "name": "tests/integration/targets/nxos_bgp_global/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common", + "name": "tests/integration/targets/nxos_bgp_global/vars/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5664e0d1a4c541d53f188ff988aafdf4f1802b97ff08c51fc128574ae38ce63b", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_global/tests/common/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_global/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c963e6f41c7e38e88e7f37dd8025ee75cd3970358d2568dc84a25bf0833c221", + "chksum_sha256": "52efea9c016168ecd2fcd4012748fdd81f2753c77b4cd322e5628278cf36a227", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5e8603749c8d553899ed39b13b3acd136e23d7bd3b09098fc55d615557712b8e", + "chksum_sha256": "5ad0de011701b4094ceef2432d855f96f3441d92e71e69dcd959cb05e86ba9ef", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc7919875ac197ca437f1f27d4ace434975e7b0ebc59f0b9e76779b7c13300bd", + "chksum_sha256": "35205173a9b4c2cdbf46f89706c24e10a7db1671892f25e7598957b6cd5424c2", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d05b5fe9f03352e3b8f7827b2dcf181df0e3c72fe956593e4da447c9d4f8869c", + "chksum_sha256": "bf494eb0d9629da4381465012ca762ab8ec270ac5b9270f7b2206f6e50eb2df6", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7f405af0ba053d9e613e791943bc8133e6dbf994db877e876b7dbfcfead68cb", + "chksum_sha256": "73a38ab49a6c4f73b8e5d6b5ff301846e40a8d55b18fe61d0647b6c54cac5688", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6245af2941f9a747ea7774bdad73686d4d453173680ea526ab20b52dba2f283", + "chksum_sha256": "e6dc32ce625064b12bbb4bf361b4b9a56df6792af52c16d6bcda508de05bea6f", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/deleted_af.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a10bac016859ecead883b3a70c3eb13f70718ad9cdd2796b92294bb73bbee29d", + "chksum_sha256": "ef14541859231625e08fe2b53fbf4b8f6e64bcea02d4bb987038b915725abeab", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "546c7e8f53d5167a0c5fb320ccd6b5e7db098829ce47de467b2e20856dd402c2", + "chksum_sha256": "c07047642c717ad5e564697143a11e7cc93a18376d91ee56dc5f44f3d19e22b5", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e18104dcb23f633ded1a694fa4ecbf1df4e14a09620d260473341a8920698a", + "chksum_sha256": "d96baf5dc0a51ac1a75147a0591b62dd0d0429b6f48ed375f6e41e73d43a21ed", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b9a08d012138636068569151cf4f74205676ea00cc6fccdc2e2627447110156c", + "chksum_sha256": "b605ca79e5cc2cdb7f664f1aec94711594f2f485adfc760cbcea01b01e2b25f9", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_bgp_global/tests/common/replaced_af.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bf31728c79fcf0b446ffd43fe431bc399513af80a6e363931a9f16fc611bf921", "format": 1 }, { - "name": "tests/integration/targets/nxos_lacp/vars/main.yml", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d990ef6f460be1be57ee33ce95b7fd66d05175e93e1e2716cce708d420a5d466", + "chksum_sha256": "ff3eb25121425c6e970238566923eca969ba8f67f60e6fa8ef5c1516ca5757bd", "format": 1 }, { - "name": "tests/integration/targets/nxos_banner", + "name": "tests/integration/targets/nxos_bgp_global/tests/common/purged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "43b3e83056042eb41ac0a74dc11eca0c07bec178548807f56d79e5d211f75360", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_global/tests/common/_populate_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "acd7172ee28b6a88b6f7a8a95548988e2c6ed27804288daec18676481280cb08", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_file_copy", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/tasks", + "name": "tests/integration/targets/nxos_file_copy/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_file_copy/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c35d2ac52b14846e9fb2bba91ef7ba5f946b1cd2e47ed10c0b30941d6f9de766", + "name": "tests/integration/targets/nxos_file_copy/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f6bf1e5e97ebdee9d3da5227017b650cf6de337ae6ce68cee739acf39a32ec81", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_file_copy/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_file_copy/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_file_copy/fixtures/data.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "ef43c9adc8aeec6910b4373ba0d9fbf28048ed53ec631ab9fd6fa8ad00a8a3a0", "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/meta", + "name": "tests/integration/targets/nxos_file_copy/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/meta/main.yaml", + "name": "tests/integration/targets/nxos_file_copy/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/defaults", + "name": "tests/integration/targets/nxos_file_copy/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/defaults/main.yaml", + "name": "tests/integration/targets/nxos_file_copy/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/tests", + "name": "tests/integration/targets/nxos_file_copy/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/tests/common", + "name": "tests/integration/targets/nxos_file_copy/tests/nxapi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_banner/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_file_copy/tests/nxapi/badtransport.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dcccaebec31acf1f9adfe71c2e5067fcb6c1416a7c63b077490beedfff6078ca", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_version", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "21427f41984508b9839c2f35a72d67fd2cf22fcd68d619118a5b5515d2268668", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_version/tasks", + "name": "tests/integration/targets/nxos_file_copy/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_version/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_file_copy/tests/cli/negative.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e03994e82f05167e558b19e20c435e80ed92b6ff4f62f71fb93ed9082d30f94", + "chksum_sha256": "0a918d9c6433c61aea340e1c0c94ef62d409893bfe7fd1858386da4422c5e208", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_version/tasks/main.yaml", + "name": "tests/integration/targets/nxos_file_copy/tests/cli/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "25a997ce10f97d08a348b04eb8e123dd4b6b7a6aaa035e5f2c45ef99f985f94c", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_version/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_file_copy/tests/cli/input_validation.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "86642c6a7b15cbac85986a618de3eea6d741cb9819a4b7896570ab07e6033a8c", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_version/meta", + "name": "tests/integration/targets/nxos_ospfv3", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_version/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_version/defaults", + "name": "tests/integration/targets/nxos_ospfv3/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_version/defaults/main.yaml", + "name": "tests/integration/targets/nxos_ospfv3/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vtp_version/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_version/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospfv3/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dd759468c5cc871fb7737ff3d8d736515fc4a391944ba48e311bd8e9cf4015bf", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_version/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_ospfv3/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e33039720ba0e6ccc73fe5d38aaa4c2d1284afbb89058f6fe98c1a09d2a30638", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts", + "name": "tests/integration/targets/nxos_ospfv3/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tasks", + "name": "tests/integration/targets/nxos_ospfv3/meta/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_ospfv3/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_ospfv3/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "name": "tests/integration/targets/nxos_ospfv3/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_ospfv3/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "a58f6902557b2603f0814004741aba525b7a0950e5a11aa66b37c4955c16f39e", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/meta", + "name": "tests/integration/targets/nxos_ospfv3/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "name": "tests/integration/targets/nxos_ospfv3/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/defaults", + "name": "tests/integration/targets/nxos_ospfv3/tests/common/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/defaults/main.yaml", + "name": "tests/integration/targets/nxos_ospfv3/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "98780d78ffa7990bb331aa22eb22a241c513c360e240824d45a7bf1de5be2ecc", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospfv3/tests/common/parsed.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1668f415528b25d80c75d0b7d1429ad1f2998999e48a9c1103c194437b8d53c6", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospfv3/tests/common/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3351bbfbf0d6d47b6d974a6520e49d2c2e37fe82c909425bc2b35fbd2a1c3619", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tests/common/not_hardware.yaml", + "name": "tests/integration/targets/nxos_ospfv3/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "933c388db57e0042a75290223a48d69efad1e524bce14f28f64694d34e3475e3", + "chksum_sha256": "dd6501583c6d35a54f84e67f7a3c089c3d327af513f2843227d760ec81b09f26", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tests/common/default_facts.yaml", + "name": "tests/integration/targets/nxos_ospfv3/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08c3680a5a839d8e3b53515643f3773bb1d25de670124063d41ff3e0a7fd2713", + "chksum_sha256": "c47c9c8159c406510ed5c37a849752430af675f5f74b2dee2d4361c5a4647ada", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tests/common/invalid_subset.yaml", + "name": "tests/integration/targets/nxos_ospfv3/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7ef14aa0d9ae451bba34e5fb2952f2034793f826a441cd042b03c34e0d78422", + "chksum_sha256": "d97a097d36258f90bedf8acd4609bba2c4840b38c56f3cd6517e9fc394600f61", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tests/common/all_facts.yaml", + "name": "tests/integration/targets/nxos_ospfv3/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f737c75bd85a50361bfb755799335e3bf0044448e43308c6f4c3f9186a80b65f", + "chksum_sha256": "6e1cddebab71b07ac4b62257a57ee91bb813c2d2a627f21fd1ddc848c5c71242", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_ospfv3/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f15ccd5a6a25f5358288fb8ddb955a1b024c33c0d1f04df3811e03aabe460c32", + "chksum_sha256": "52b75fde8bd0aeae9fa656b94f228d66f550904e311166923cfbd6ad3504ec3b", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ospfv3/tests/common/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fbe1d547c87e7fce94633ac9d2659cf83c9f705225abd47e025752589adf5206", "format": 1 }, { - "name": "tests/integration/targets/nxos_facts/vars/main.yml", + "name": "tests/integration/targets/nxos_ospfv3/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "90b4146d19a8448ba711a28645cf964f8251d544bf1de77f552e08a1e60a9914", + "chksum_sha256": "fdb04181004019fce7d2aa47598c99683fa0c17efda91a40679e647ae1080926", "format": 1 }, { - "name": "tests/integration/targets/nxos_feature", + "name": "tests/integration/targets/nxos_ospfv3/tests/common/_populate_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cef0853f045225f3cfd3ac7b2362e20d12372005f8a175b973e60fa22c30e3b0", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_vxlan_vtep_vni", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/tasks", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "6fa74ca9eef193774b0257522c64344fa2c8851398dc0acd94e161192cc0015d", "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/tasks/main.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/meta", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/meta/main.yml", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/defaults", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/defaults/main.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/tests", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/tests/common", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/tests/common/invalid.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9876fc00630984bf3f7c6a0ce6e7a75b67d4c2dc198fe91c2d4dcaef40fec816", + "chksum_sha256": "81ba6bdc57dba2f0adc0b293862db415cb6aea44ae3793cbb0c755ea01c073a9", "format": 1 }, { - "name": "tests/integration/targets/nxos_feature/tests/common/configure.yaml", + "name": "tests/integration/targets/nxos_vxlan_vtep_vni/tests/common/multisite.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "89d6028b9ede5f5589b6786b029044d9cdf739f164d0a593ecacb564588acfe5", + "chksum_sha256": "7127fe8481d55865ca7043a159fb4c4a6e02423899c7143bbb548aff0f3728e4", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni", + "name": "tests/integration/targets/nxos_pim_rp_address", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/tasks", + "name": "tests/integration/targets/nxos_pim_rp_address/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_pim_rp_address/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/tasks/main.yaml", + "name": "tests/integration/targets/nxos_pim_rp_address/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_pim_rp_address/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/meta", + "name": "tests/integration/targets/nxos_pim_rp_address/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/meta/main.yml", + "name": "tests/integration/targets/nxos_pim_rp_address/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/defaults", + "name": "tests/integration/targets/nxos_pim_rp_address/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/defaults/main.yaml", + "name": "tests/integration/targets/nxos_pim_rp_address/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/tests", + "name": "tests/integration/targets/nxos_pim_rp_address/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/tests/common", + "name": "tests/integration/targets/nxos_pim_rp_address/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_evpn_vni/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_pim_rp_address/tests/common/configure.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "feb636a1cf337d091e427267dc9639d6fd2a5a481a9fd73cc830618990dc12af", + "chksum_sha256": "5860ed215f27147987c62a8541f96530427cfadc64b6ce13e849a6785275c8ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2", + "name": "tests/integration/targets/nxos_rpm", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tasks", + "name": "tests/integration/targets/nxos_rpm/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_rpm/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "1e03994e82f05167e558b19e20c435e80ed92b6ff4f62f71fb93ed9082d30f94", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tasks/main.yaml", + "name": "tests/integration/targets/nxos_rpm/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7826463ba77fb2f0f2bb32a0e02ce314ce3a06762e189598970cc26dd17828b1", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_rpm/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/meta", + "name": "tests/integration/targets/nxos_rpm/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/meta/main.yml", + "name": "tests/integration/targets/nxos_rpm/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/defaults", + "name": "tests/integration/targets/nxos_rpm/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/defaults/main.yaml", + "name": "tests/integration/targets/nxos_rpm/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests", + "name": "tests/integration/targets/nxos_rpm/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common", + "name": "tests/integration/targets/nxos_rpm/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_rpm/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c5bb202379b75e7aaffb216dd2e42b234acf1ab4fc0679f470fc01c67b309b27", + "chksum_sha256": "70447866be2605ad11b7abd82e4ae0000992bbdb0d143e90b86c0b4905ba1d19", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "69ef5f767607840c90b3cb9b80ca6eae206df8ec8a48b850dc47adbcf4b11aa5", + "name": "tests/integration/targets/nxos_gir", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b8b689385d369d30980492e63bb16f13719d27452d738494899f85539130b2b5", + "name": "tests/integration/targets/nxos_gir/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_gir/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ddfff25fc88c57f108a7ed89d11d6df5c2233b27eac626512dc63709325fcf85", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_gir/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de58bef72adb70191cc8d212367d3332359130dbaf399807962787d1df375915", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_gir/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a3077084e8ed39aae3bc10055bbff711e7d40af65e514c7ecd99bffaad96bfc", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/fixtures", + "name": "tests/integration/targets/nxos_gir/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/fixtures/parsed.cfg", + "name": "tests/integration/targets/nxos_gir/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4ad11ae9e094b6bc2d4286b05967979551104857b314aa8af9afee18cdec2d4a", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7a00b8609854d6a88cc33f870793ec8972cd5d81ae8dcfed33fbbca19938ce69", + "name": "tests/integration/targets/nxos_gir/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_gir/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1738278980bd3d3426805bcd85053668078a6b992627d9119043bc29161ea8e", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/tests/common/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "77ed312700fb0471e6e108949f8b983d6c418f0187b84b569551ce3c8205ce0c", + "name": "tests/integration/targets/nxos_gir/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/vars", + "name": "tests/integration/targets/nxos_gir/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv2/vars/main.yml", + "name": "tests/integration/targets/nxos_gir/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61311d9ddd2174a10efead34de8526412e4c4d438600cf5a3ff852ec8692c4f6", + "chksum_sha256": "13582ac62b7614778bc62c5a6f93a36a920e8664812b73a2b0903af35c2fe1da", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3", + "name": "tests/integration/targets/nxos_igmp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tasks", + "name": "tests/integration/targets/nxos_igmp/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_igmp/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tasks/main.yaml", + "name": "tests/integration/targets/nxos_igmp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dd759468c5cc871fb7737ff3d8d736515fc4a391944ba48e311bd8e9cf4015bf", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_igmp/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/meta", + "name": "tests/integration/targets/nxos_igmp/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/meta/main.yml", + "name": "tests/integration/targets/nxos_igmp/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/defaults", + "name": "tests/integration/targets/nxos_igmp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/defaults/main.yaml", + "name": "tests/integration/targets/nxos_igmp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests", + "name": "tests/integration/targets/nxos_igmp/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common", + "name": "tests/integration/targets/nxos_igmp/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6e1cddebab71b07ac4b62257a57ee91bb813c2d2a627f21fd1ddc848c5c71242", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_igmp/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dd6501583c6d35a54f84e67f7a3c089c3d327af513f2843227d760ec81b09f26", + "chksum_sha256": "e3f3aa30512b55460b5e6c82887f66d7642c56b86c7eabd5801148a945ce2ef4", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "52b75fde8bd0aeae9fa656b94f228d66f550904e311166923cfbd6ad3504ec3b", + "name": "tests/integration/targets/nxos_ntp_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fbe1d547c87e7fce94633ac9d2659cf83c9f705225abd47e025752589adf5206", + "name": "tests/integration/targets/nxos_ntp_global/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_ntp_global/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3351bbfbf0d6d47b6d974a6520e49d2c2e37fe82c909425bc2b35fbd2a1c3619", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_ntp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d97a097d36258f90bedf8acd4609bba2c4840b38c56f3cd6517e9fc394600f61", + "chksum_sha256": "2396a1bb62aa2d673208deb59766a787971d061630b8467afa525b7fdcb2e95e", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_ntp_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cef0853f045225f3cfd3ac7b2362e20d12372005f8a175b973e60fa22c30e3b0", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/fixtures", + "name": "tests/integration/targets/nxos_ntp_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "98780d78ffa7990bb331aa22eb22a241c513c360e240824d45a7bf1de5be2ecc", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_ntp_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c47c9c8159c406510ed5c37a849752430af675f5f74b2dee2d4361c5a4647ada", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1668f415528b25d80c75d0b7d1429ad1f2998999e48a9c1103c194437b8d53c6", + "name": "tests/integration/targets/nxos_ntp_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_ntp_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fdb04181004019fce7d2aa47598c99683fa0c17efda91a40679e647ae1080926", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/vars", + "name": "tests/integration/targets/nxos_ntp_global/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_ospfv3/vars/main.yml", + "name": "tests/integration/targets/nxos_ntp_global/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a58f6902557b2603f0814004741aba525b7a0950e5a11aa66b37c4955c16f39e", + "chksum_sha256": "2c37457ec8af62c1519304e787a4e2ca6be4c156f8cf7bc2293106f38aaa2957", "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm", + "name": "tests/integration/targets/nxos_ntp_global/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/tasks", + "name": "tests/integration/targets/nxos_ntp_global/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_ntp_global/tests/common/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_ntp_global/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e03994e82f05167e558b19e20c435e80ed92b6ff4f62f71fb93ed9082d30f94", + "chksum_sha256": "f7771e974db6ccc58fcb0a69ff17e00e208d57c09d96c7b8dfe8f5ecae8c879b", "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/tasks/main.yaml", + "name": "tests/integration/targets/nxos_ntp_global/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "9bcba4c729094da821fbbcce077fce21c817d1f560df1dc97ede6c6ff9cc4565", "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_ntp_global/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "159d739b15a17d8f62cbb4c9dfcd2fa3b7ede51f02fa6e9ac2bde196643b60fd", "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ntp_global/tests/common/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e4c2d740371ba62f8ce9a298147acad6ef15cb6b851a8ea32e7682934e5c4294", "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/meta/main.yml", + "name": "tests/integration/targets/nxos_ntp_global/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "6b602368f7b9b4aba2e9a3e88b73abf107d658eb335fe4ce1a4cd4c0dca3a4c6", "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ntp_global/tests/common/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1581f91ffd8c1c23bb4676eab5c8b75109777725856083ae7e8f3f2e0993b3be", "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/defaults/main.yaml", + "name": "tests/integration/targets/nxos_ntp_global/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "2a828ee760fb0dfc1ce2906e7498216901248da978df3b7a90ce842c1041a157", "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ntp_global/tests/common/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "060aecc4cf5c2f2c7d5785001728b97f6913dd3900aa2dcb0c37436509d9d92e", "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_ntp_global/tests/common/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f836d5207479f29e09d0669ff7c58dd23bde729eda06dce4649cdc3e60be53a9", "format": 1 }, { - "name": "tests/integration/targets/nxos_rpm/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_ntp_global/tests/common/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "eb766ac5e824552d743eb36cfc738ad9abd7985d945bdea3d22a0d9130f839ca", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_ntp_global/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "70447866be2605ad11b7abd82e4ae0000992bbdb0d143e90b86c0b4905ba1d19", + "chksum_sha256": "08e70b7bf07e9f6621e1389be04c654a23a2f975aa49fc4aabc7ecb593bc5cfa", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server", + "name": "tests/integration/targets/nxos_vrrp", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tasks", + "name": "tests/integration/targets/nxos_vrrp/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_vrrp/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tasks/main.yaml", + "name": "tests/integration/targets/nxos_vrrp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc2a3a8f315668c3a0a94a40753f7fd1e7eec342b781bbef50ce0f8d3c4abae2", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_vrrp/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/meta", + "name": "tests/integration/targets/nxos_vrrp/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/meta/main.yml", + "name": "tests/integration/targets/nxos_vrrp/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/defaults", + "name": "tests/integration/targets/nxos_vrrp/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/defaults/main.yaml", + "name": "tests/integration/targets/nxos_vrrp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests", + "name": "tests/integration/targets/nxos_vrrp/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common", + "name": "tests/integration/targets/nxos_vrrp/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_vrrp/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5e57172ca560cf57a5a6cda0d4427ef723ff0c2041494801839810d37f2dc448", + "chksum_sha256": "a7766c42cc22f1bb7cc7fa396978f2db1df0d1c744e3241f371f55912f3cd610", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "98bd39c65fc6a311ba043b2cb6e5fb636bf75e1cd4976826739b8a81f1a4a6fc", + "name": "tests/integration/targets/nxos_lacp", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "870e84431b7485f0d29bb5431284baf0098b3a2dc4c33433007de1b970ed5b6f", + "name": "tests/integration/targets/nxos_lacp/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_lacp/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8669a63ac0d96789d4722d662bf1568b86c5433817147820023d2b323b2c14e", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_lacp/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fd565877939a79d2e7d7d25da2c520c9ea6d42572d5d4fc8110716dff0f961a", + "chksum_sha256": "c0ff0c24a2fb4a8aa58a6356c5029065acb6cf1aba1e14add135ff69c8d1387b", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_lacp/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af12998368091442ef220d6e85760264d3d8b49b44ab62a34598479e622d6d61", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/fixtures", + "name": "tests/integration/targets/nxos_lacp/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "68295fddd79719b8ad7b74adc76ea194066abae9bd717b24c71eacb7d4b20f8e", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/_setup.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "5153443ed073b0cc035110ac96d297361e22abe390c84014d0a7dbc83ede74e4", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_lacp/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6e477bd3b8bdcdbdb4a581d99fc15745c21c823d54c364ea2b1a1fbfb43958d", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0a2278a138afa16699d2018af1c1e1e616a0898336bf1632352195a4d2be36ec", + "name": "tests/integration/targets/nxos_lacp/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_lacp/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84c00378264bacd0d235c0b7a80ebf88d754fb93b1e85b00047fac028b29275c", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/vars", + "name": "tests/integration/targets/nxos_lacp/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_server/vars/main.yml", + "name": "tests/integration/targets/nxos_lacp/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8668c98a492f96e42640c00cc5b31c0b73f071b7a61dac9e872c31602833ade2", + "chksum_sha256": "d990ef6f460be1be57ee33ce95b7fd66d05175e93e1e2716cce708d420a5d466", "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback", + "name": "tests/integration/targets/nxos_lacp/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/tasks", + "name": "tests/integration/targets/nxos_lacp/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_lacp/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e03994e82f05167e558b19e20c435e80ed92b6ff4f62f71fb93ed9082d30f94", + "chksum_sha256": "82e18104dcb23f633ded1a694fa4ecbf1df4e14a09620d260473341a8920698a", "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/tasks/main.yaml", + "name": "tests/integration/targets/nxos_lacp/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "d7f405af0ba053d9e613e791943bc8133e6dbf994db877e876b7dbfcfead68cb", "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_lacp/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "5e8603749c8d553899ed39b13b3acd136e23d7bd3b09098fc55d615557712b8e", "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_lacp/tests/common/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "546c7e8f53d5167a0c5fb320ccd6b5e7db098829ce47de467b2e20856dd402c2", "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/meta/main.yml", + "name": "tests/integration/targets/nxos_lacp/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "c6245af2941f9a747ea7774bdad73686d4d453173680ea526ab20b52dba2f283", "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_lacp/tests/common/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6c963e6f41c7e38e88e7f37dd8025ee75cd3970358d2568dc84a25bf0833c221", "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/defaults/main.yaml", + "name": "tests/integration/targets/nxos_lacp/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "dc7919875ac197ca437f1f27d4ace434975e7b0ebc59f0b9e76779b7c13300bd", "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_lacp/tests/common/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d05b5fe9f03352e3b8f7827b2dcf181df0e3c72fe956593e4da447c9d4f8869c", "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_lacp/tests/common/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b9a08d012138636068569151cf4f74205676ea00cc6fccdc2e2627447110156c", "format": 1 }, { - "name": "tests/integration/targets/nxos_rollback/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_lacp/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "394570f3e6f1edf503b6782dd89ffa589499a778fc5336c8c610b01d473a7bb8", + "chksum_sha256": "a10bac016859ecead883b3a70c3eb13f70718ad9cdd2796b92294bb73bbee29d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan", + "name": "tests/integration/targets/nxos_igmp_snooping", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan/tasks", + "name": "tests/integration/targets/nxos_igmp_snooping/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan/tasks/main.yaml", + "name": "tests/integration/targets/nxos_igmp_snooping/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f47853340600c1c9b76ed00695079b203ae45896e40acfac2f48e28f2ad98b40", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_igmp_snooping/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_igmp_snooping/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan/meta", + "name": "tests/integration/targets/nxos_igmp_snooping/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan/meta/main.yml", + "name": "tests/integration/targets/nxos_igmp_snooping/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan/defaults", + "name": "tests/integration/targets/nxos_igmp_snooping/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan/defaults/main.yaml", + "name": "tests/integration/targets/nxos_igmp_snooping/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vsan/tests/common", + "name": "tests/integration/targets/nxos_igmp_snooping/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan/tests/common/sanity.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "cb88ac95adfc25626d2c81d7dc7d45341c006ac0490dda44c675101938ec4bcc", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vsan/vars", + "name": "tests/integration/targets/nxos_igmp_snooping/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vsan/vars/main.yml", + "name": "tests/integration/targets/nxos_igmp_snooping/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97b10ee26b05c01b328d79887c41479bd2bf559184fb1df4af53645db6e109ba", + "chksum_sha256": "a4a73bc840e125f41372313d58b550980ef7c1642f87ba9bb8ee85d8d026ff42", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists", + "name": "tests/integration/targets/nxos_gir_profile_management", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tasks", + "name": "tests/integration/targets/nxos_gir_profile_management/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_gir_profile_management/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tasks/main.yaml", + "name": "tests/integration/targets/nxos_gir_profile_management/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2396a1bb62aa2d673208deb59766a787971d061630b8467afa525b7fdcb2e95e", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_gir_profile_management/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/meta", + "name": "tests/integration/targets/nxos_gir_profile_management/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/meta/main.yml", + "name": "tests/integration/targets/nxos_gir_profile_management/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/defaults", + "name": "tests/integration/targets/nxos_gir_profile_management/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/defaults/main.yaml", + "name": "tests/integration/targets/nxos_gir_profile_management/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_prefix_lists/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common", + "name": "tests/integration/targets/nxos_gir_profile_management/tests", "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b94ddd8f6e3aef1be0b00d88c934c971a436d3595b760e10dd388b6dacfac7d3", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8c7dfc255e4fdc2e873e375b7b4a24b1098f63ebc6f80b18ddaf4bb4e62a9a46", + "name": "tests/integration/targets/nxos_gir_profile_management/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_gir_profile_management/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c10395ec2b03209c79681dd09690cb615195b8adaae1cdfa3fabc0fd68ef0565", + "chksum_sha256": "d0237be40a79468b006b7bc99f59a3b8b9227b61b780adcd94fef59ea697e6fb", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "56b14e2fd373b2211c65f09454a4c39137bb1f1a06ad96f007e377d8b2b51851", + "name": "tests/integration/targets/nxos_vpc", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b63842b6c47d71229bd8ad567bce61e119a9da6f44fb987d22a5348d9b67f1e7", + "name": "tests/integration/targets/nxos_vpc/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_vpc/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "56599df6259a9ed56f2794f1171dba7cd811995b228ee29610d679201d7094f0", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/.DS_Store", + "name": "tests/integration/targets/nxos_vpc/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5b8c3589c79b71429938a827331899d13ac16c156374f8c45ec59068bd2d2060", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_vpc/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2233813d83a2cf367f99e9348cfb36ea295efcebe61d310a4580abbab8836d5c", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/fixtures", + "name": "tests/integration/targets/nxos_vpc/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f7f1e53d17acf3059197aa476e1715028d571930c8cff8eabada2af3da2e7819", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_vpc/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7bf73d5bf1f98884b2c8dedfcdc762af1c6542276fc649a04bf360fe10400cff", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "53a49d08552e563da400b6c13475d9e2a020cc039eee9985b1c5a3e930fb3843", + "name": "tests/integration/targets/nxos_vpc/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_vpc/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "742244e5eb090968dbbab6b3bce1d5d52404f476371439bf2404e4467534b488", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/tests/.DS_Store", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "af891bb95ebcc39dfd38131bf64fba6eb7bb8e84f59a428b6af5477588fbc6b6", + "name": "tests/integration/targets/nxos_vpc/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/vars", + "name": "tests/integration/targets/nxos_vpc/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_prefix_lists/vars/main.yml", + "name": "tests/integration/targets/nxos_vpc/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f869515b8a1ec55c8346c13f87eff1b4bef627722f02ba89f143fec41ea52254", + "chksum_sha256": "2df57c902caed23947093482590483584784db8850c51e6efe545b314895eaed", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces", + "name": "tests/integration/targets/nxos_vtp_password", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tasks", + "name": "tests/integration/targets/nxos_vtp_password/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_vtp_password/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/nxos_vtp_password/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_vtp_password/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/meta", + "name": "tests/integration/targets/nxos_vtp_password/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/meta/main.yml", + "name": "tests/integration/targets/nxos_vtp_password/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/defaults", + "name": "tests/integration/targets/nxos_vtp_password/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/nxos_vtp_password/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests", + "name": "tests/integration/targets/nxos_vtp_password/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common", + "name": "tests/integration/targets/nxos_vtp_password/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_vtp_password/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ce89afffb71cc896f467a3e32919ab4a8fdcd5ea07a9175ecd7db9a7ae6f77cb", + "chksum_sha256": "3146095b01817bec07dd315c90e066bd664e16b5438d62d337a7ebfc0c48884e", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6e9f0e87988c4ded07d518b67a5118d9d6894e2fab2c86c9cd90ffcf5f56beab", + "name": "tests/integration/targets/nxos_lldp_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0ef96315e1d8b08e76b5d905207c1d85c0ddea43e8efa07b54896132e7d772e1", + "name": "tests/integration/targets/nxos_lldp_interfaces/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1ff8909b5732150a58ea8fafa7e0f20c447a8bd7e6be23fa0d7cc5655b75510", + "chksum_sha256": "280d285e1a9b531b25d8b880d3a032933d7135004c4658b7f1eb4872c60cc666", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "da6b8a879ff9188026a3b1aa01b53289a7517026aff1a7d1954d1bdaead6dec0", + "chksum_sha256": "c0ff0c24a2fb4a8aa58a6356c5029065acb6cf1aba1e14add135ff69c8d1387b", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45a5f0f9979ffcd5b7ef73f95de39a4c6ad35b3f7f05a61b7f6770eb17166dcb", + "chksum_sha256": "c57c3ff656bb8daf9febb3c7a7bff934b952d1ccb83604d93e23ccfc3ea88724", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/_populate_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a313ec546dfda89fa9e4dbd468fa0940164b42c0ebce4e544f9c6eddf9c76e63", + "name": "tests/integration/targets/nxos_lldp_interfaces/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1c4df45348332e927abe784ea39438ab014af521a169cc07ca76ff6d8d7c52d", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/parsed.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9db583ddb82a512ca231ffb3a5ba6c672aa653ec28834c17328fd56190b4a558", + "name": "tests/integration/targets/nxos_lldp_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4f2c908e56c100ed364248792037843ebe703124cb856054bba1a7904494edd3", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/vars", + "name": "tests/integration/targets/nxos_lldp_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp_interfaces/vars/main.yml", + "name": "tests/integration/targets/nxos_lldp_interfaces/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a06be45c7fcb5fbb624b33983db74636889ef05ed32ce0f3ba56485272e3db09", + "chksum_sha256": "823ad4608bc4788ff160348fe4e6be75f267c9f2a55bf2043875eb2d76084f39", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname", + "name": "tests/integration/targets/nxos_lldp_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tasks", + "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/overridden.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "b4403fc48624d3990b76b682c8b17543e81f43f152f1afe573bdde1722248ea1", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tasks/main.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c100293cbf1e43e53f2ff874e3e1079621ae414e404db0078a26044ececac0b1", + "chksum_sha256": "23d20e20e06201967d2847f91f879c7741ac48c9e08bc1b9b3f63ef8c111ad29", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/rendered.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_hostname/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "05a26c146d796dee090a8d9931d7f38b5cf3ea87682c7f50f73597a6cff1a4cb", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/meta/main.yml", + "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_hostname/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "303bc0ba56d6f13d152987aaf4b6953d88e4461e8958c7db467d52d247a63dce", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/defaults/main.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/gathered.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "d559bcc46e44d101f2fa43a97d785b4476d6053486294e513a7cafbaf67b6bae", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/merged.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2399f3e2619a3b82bcf30be4b9a2be7c660d0f53450d25a46b87fd8ee4abb25b", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/replaced.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2c101fa94fc443f0335f4fb75c440dc5c0fe47363d3463d0eccc2c340b39e6cf", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/deleted.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c610838a6fa946c2237c8292c07b688a1ba7e8096a2d35d75f12f0b58866ed7", + "chksum_sha256": "8695d048ec2623b31a194a213ef80da6add19468e0f90a4ca97d5b8257979529", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/parsed.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ce390e649cf85c4eddff7df5c0d545f57e389bb36774ae580dadafec45cf2a1b", + "chksum_sha256": "e63afbeefadaaf0dcc22637aaeebfc27980cb517c68aabda8338c05976255320", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/gathered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0b28a51b56bc716da4598490f3cb3302329f0113eb3ab32fa9a860223eae43f6", + "name": "tests/integration/targets/nxos_evpn_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c48e9bf3dac84165ae9953b7ad26ecec061cc599fd5cc78290d048b36119ce19", + "name": "tests/integration/targets/nxos_evpn_global/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_evpn_global/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b2db6ef6d129f976a7c1dd3d1543020bba577d399fa4e780311e9942d0e39a21", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_evpn_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c76970334ac8f7dea1c52d4a2e9785b43fe9754ed2cece81e49036d8efce6507", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_evpn_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55288117a1ba1770a3e0bcac6e550c318807316ce84c65e536ba34cc449f62b0", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/fixtures", + "name": "tests/integration/targets/nxos_evpn_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/fixtures/parsed.cfg", + "name": "tests/integration/targets/nxos_evpn_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6cd019ca4bbc9dc9a7657ccbc89a52a8505890bda564813765bc2bb004ef3814", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/replaced.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8564938ffbfc1d998d5ce080e9bc6cb612cf2aeefa19ac79bf9bf6f895800a2e", + "name": "tests/integration/targets/nxos_evpn_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_evpn_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "292e2e1750dcd0b5114b4c1b2f8fe93125754fa76c1869f64f87e6055da6338f", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/tests/common/rendered.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6e0e085de3251f1846bf350484b27a639383cf70f82effdb6d8aa0b73f105c60", + "name": "tests/integration/targets/nxos_evpn_global/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/vars", + "name": "tests/integration/targets/nxos_evpn_global/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hostname/vars/main.yml", + "name": "tests/integration/targets/nxos_evpn_global/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "372a997c3a0ce9aa7b42746d99a75295a66504416d94fd1b0c545e58717a6a9d", + "chksum_sha256": "9190f2d0dae47c3b29ebe68f89ec9e3b88f0af56af489b15624cf99c86415d9f", "format": 1 }, { - "name": "tests/integration/targets/nxos_config", + "name": "tests/integration/targets/nxos_bgp_templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tasks", + "name": "tests/integration/targets/nxos_bgp_templates/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tasks/main.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a069f9e3d9d905e5a1d7e2b316e284944bc38cddc390470831451fb4672fbde2", + "chksum_sha256": "918e266fd84500fc8a9d7958437789683bd47b7875371afaf4941b60f4594bc7", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tasks/cli_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "244797b68a9ec0f73b3fecca59e21469c0bc8126f36a5b7ffe2fe20ebdf22f19", + "name": "tests/integration/targets/nxos_bgp_templates/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tasks/redirection.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4f04d0bc1463bb36c212620e786d8ce8d18681fd03f641c1a37351b6d0dfac8", + "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/meta", + "name": "tests/integration/targets/nxos_bgp_templates/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/meta/main.yml", + "name": "tests/integration/targets/nxos_bgp_templates/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/defaults", + "name": "tests/integration/targets/nxos_bgp_templates/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/defaults/main.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "320a4fb71862d3232cd18205318c3a960d55b06bb1fd7fa7afd49ff122c04605", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests", + "name": "tests/integration/targets/nxos_bgp_templates/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli/toplevel_before.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "da70c4dcf111e0de17abc736ab6b4cfef245ca202d235dd1d9e611b40bbab8b2", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_config/tests/cli/toplevel_after.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7792c748c17cf012bd7462753459725b9b2d4e8418a3edb3f4f76eb84f8b5914", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli/diff.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d890138033f9812260dfd304fb4888d77e0c78b71f0afb2f8f97ce71f11a2491", + "chksum_sha256": "e921d4fa370873c1b237ba6b3ee2d3c0a70520b08f5097e960152137a57ed123", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli/sublevel_strict.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "057bf9a3f64bb1abb24a5dc5a530553401a32850185af62cb278c85228ac6465", + "chksum_sha256": "a1ffab53eece71058929fba7b157214cd3aeea388b6bf8aae94e146b03e5eb25", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli/multilevel.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b91edced261b04cd778d86a702fd71159bcb7e37050b2b59d66f5fbd0485ca6e", + "chksum_sha256": "09f60138ddf3d5c8a6782f9f5f937091c37a58ea72c0304384034becdf946850", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli/replace_block.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0eef2496cf4af6b50d6274c1b6ef30dbe7955e60ab6695c4cc0660ee5e8a51e", + "chksum_sha256": "425c2ab3097932fcb46a43b4d5b8bcaeed500348e760e77a5b6f1d4e4fca9eea", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli/sublevel_exact.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b755c791e3a1b329e7da5896f70e10b01bdc5237bbe2e80316a4515d6f8d8bd8", + "chksum_sha256": "d307cdaf9d9ecb2c711093d4f9879deb595a843ed2d17b6ae1036d918b22cf2f", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli/sublevel.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "937eb38ce64f2eaaab0f4c8f86a336d6fa022a96d75e285baaf7c85f45fb0b09", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_config/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "1197072828ecfc518dd9ac00389c239db31f18e8d566fbe5a37fd80ff479f104", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/common/src_match_none.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f485a516ee779d29f9c4bef94249e47c885743481d409fedaad14bd49ecbafe0", + "chksum_sha256": "c07047642c717ad5e564697143a11e7cc93a18376d91ee56dc5f44f3d19e22b5", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/common/sublevel_block.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45748bd39c32ff0675cebcff8ed674384c0fcbd51797f2110edfbef816394801", + "chksum_sha256": "2326d2afd434fadf9b8d2ef427e3918e6a5947eb39d58c4fc1988df599c58510", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/common/toplevel_nonidempotent.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "48fbcde0f38c5b06062ccb0f93d50a5b7a7554edf66ee7ed4779d9d4ce524ac1", + "chksum_sha256": "37be696dfcec49e17974100e3ea8181b391da9cdad82f8667aa2f5df0ff8aaca", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/common/toplevel.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2bc1969eeb4a97775fd72dd6e5109d499c24cf5735c2c54bf75dcf7d49690bea", + "chksum_sha256": "56e1c2649908ef81810457cc96bc917c530d7096e907b516389ef7cdbe3c9ba3", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_bgp_templates/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55efec005b7a96d5dbd8739cfce99c359f047d1aacbee36ad6bc04bcf8283f26", + "chksum_sha256": "0f7753a98712bcde737fce34f1a0af8d5a655bba229b306685e5ae6f8c26257d", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/common/src_basic.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "eccd369dee1af74d2b9f2888107f438904ae0c58705d800ad95e913965991608", + "name": "tests/integration/targets/nxos_pim", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/common/defaults.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "db431603f9429be57048a8789d1f0af71d6cdae47a26878a608c082768a1244d", + "name": "tests/integration/targets/nxos_pim/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/common/backup.yaml", + "name": "tests/integration/targets/nxos_pim/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "098fa1e9566ae02a5c089a7ab7a235ce53f1bc78b431e01595556f623f718c82", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/common/src_invalid.yaml", + "name": "tests/integration/targets/nxos_pim/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "000c3c67b80eab4be77858bbb29844ec788342c63d8570c1db6166ca5a9539b5", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/common/save.yaml", + "name": "tests/integration/targets/nxos_pim/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc462c07044762a41b8eddbe29be65aa51e6d6cea05d1e0630555e8cb4a9e446", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_config/tests/redirection", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/redirection/cli", + "name": "tests/integration/targets/nxos_pim/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/redirection/cli/shortname.yaml", + "name": "tests/integration/targets/nxos_pim/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "00bb1bd085c826013b04f4eaf7f74ff0de45ec8330aa386f4cd0263d468df9f1", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/nxapi", + "name": "tests/integration/targets/nxos_pim/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/nxapi/toplevel_before.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1d150adeed3e6e02c3adc3871d29b6a153d504ab7a861cd401b02c480008ba5b", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_config/tests/nxapi/toplevel_after.yaml", + "name": "tests/integration/targets/nxos_pim/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b8ad2836c7ec7360561cb0f4319bbe95feae70b134c5dac9deb2ba18a17638e", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/nxapi/sublevel_strict.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "acaded71377fcc8c8b288d527caf6fc777c8d0f50079c8b409d1007f821cc9d3", + "name": "tests/integration/targets/nxos_pim/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/nxapi/multilevel.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ff4c8dc408f5b4296300c4d7d983fcbdf19ee303fc95fe44ddb3d72a8b2aa08e", + "name": "tests/integration/targets/nxos_pim/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/nxapi/sublevel_exact.yaml", + "name": "tests/integration/targets/nxos_pim/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "694ab236d9c21462b423d507666dfe90caceca03e8a2f8fa3759f9f51b6d06e0", + "chksum_sha256": "ab1efb1a3ca7cc688042b32d2d0660eeb0e25ff2bb2c833e9bcdeab5d6a1e0a0", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/nxapi/sublevel.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dc08a002e9e00d36590098bfe308ca825954a3e43755650cb5809684512433cb", + "name": "tests/integration/targets/nxos_smoke", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli_config", + "name": "tests/integration/targets/nxos_smoke/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli_config/cli_exact_match.yaml", + "name": "tests/integration/targets/nxos_smoke/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5eb01810e15ac6b6941a7b9b79ca5ca3be016f16ee7f534eea9be0115fb53a46", + "chksum_sha256": "7277ec56762ca20a3617b1da87631d8dde35556a4c004e7c82974e49fab50d92", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli_config/cli_strict_match.yaml", + "name": "tests/integration/targets/nxos_smoke/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6329b5bab571f5218aeff32c54936052c2188466f842b4364d80dc9c6d800450", + "chksum_sha256": "849f2a2746300bf950bfe382b3f2b80990bbee773cbdbd2d1e2a897a9ed1e261", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli_config/cli_backup.yaml", + "name": "tests/integration/targets/nxos_smoke/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "02aa5aa3478284c141cb3741eb86bf919a560bc25b5a911f453e05ce25737bd7", + "chksum_sha256": "62a31764ef528947cdefe8eb150e20bdaba422d40bac12a3609948ca1575cf8f", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli_config/cli_block_replace.yaml", + "name": "tests/integration/targets/nxos_smoke/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_smoke/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9058efd9127aa10094d23e72b8d7b8e0426d2707a113d7be2d539c15a1b9d229", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/tests/cli_config/cli_basic.yaml", + "name": "tests/integration/targets/nxos_smoke/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_smoke/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b3703086ba8415b259a2c8353dc03d9295173092ba3dc15170ae9718b10626e", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates", + "name": "tests/integration/targets/nxos_smoke/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic", + "name": "tests/integration/targets/nxos_smoke/tests/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic/configstrict1.j2", + "name": "tests/integration/targets/nxos_smoke/tests/cli/misc_tests.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "da30d9c2fbe9c9473f957d26568b2cb42baa620e261efbce7d604535ec532cf5", + "chksum_sha256": "dedfb27511bd8fde863a0aa430bdd23272cd766d0c23694764d01852c9586073", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic/setupexact.j2", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b358f8f54eb293ce2eac2ead8f8bc2e3aae7383c2981c9c192530d6bcbff3d6f", + "name": "tests/integration/targets/nxos_smoke/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic/setupstrict.j2", + "name": "tests/integration/targets/nxos_smoke/tests/common/common_utils.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b358f8f54eb293ce2eac2ead8f8bc2e3aae7383c2981c9c192530d6bcbff3d6f", + "chksum_sha256": "a60e645271b0b349228daf7eac3948d5651a32abd8cb578005202d4c1ed80236", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic/acl_config.j2", + "name": "tests/integration/targets/nxos_smoke/tests/common/common_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8cfadc33b5527be5bd82a279cbcc769a882135ce815cb6d42177cb51d325e4e", + "chksum_sha256": "dea32a9f41f8c2367181bfb2fc2821e4304e393ac781dd02e19d6cb01c6273ae", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic/intended_running_config", + "name": "tests/integration/targets/nxos_smoke/tests/common/caching.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b478553dd335d5085c847219eae58a8daac0902372a5e8fbbd133da3850332b2", + "chksum_sha256": "2db51e2d9c925d2773d4bcf45ee241c75cc02547793d07cad590f1d9657eb36c", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic/base_running_config", + "name": "tests/integration/targets/nxos_smoke/tests/common/misc_tests.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85528fb2bdea51956f0b6d9a7cb07c7bc75e498553f9b5301b904db35ed0f929", + "chksum_sha256": "ca259adfd9eabd17072e03cae98011aa82cf2e1b6d8fc88fb0ada2ebaca18d7a", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic/configblock.j2", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f8cfadc33b5527be5bd82a279cbcc769a882135ce815cb6d42177cb51d325e4e", + "name": "tests/integration/targets/nxos_user", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic/configexact1.j2", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f8cfadc33b5527be5bd82a279cbcc769a882135ce815cb6d42177cb51d325e4e", + "name": "tests/integration/targets/nxos_user/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic/configexact2.j2", + "name": "tests/integration/targets/nxos_user/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5884db197b0f69276768f1f6e5e8b4214ead32869dab90d76fae353425a4b28", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/basic/config.j2", + "name": "tests/integration/targets/nxos_user/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d62440fb734cd4db3dd623ab8e77214ff7f82e44c7dfca249b20dcd83d83a9af", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/config.js", + "name": "tests/integration/targets/nxos_user/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6d65e4fbe26ecfdf18d8eba2eac04aecfdd65e59e6b6db1c2aa2d29ed5a5847", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/defaults", + "name": "tests/integration/targets/nxos_user/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/defaults/test.j2", + "name": "tests/integration/targets/nxos_user/meta/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "356d51cb39cbc26b408ca0b3aeacc83634ee2f6e061811a3a8fafb63955ffa4d", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_config/templates/defaults/config.j2", + "name": "tests/integration/targets/nxos_user/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_user/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "522484a8eb35e809c1ebd645a73ca12f02b09c6cf237f1db1ed577088c149c51", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces", + "name": "tests/integration/targets/nxos_user/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tasks", + "name": "tests/integration/targets/nxos_user/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_user/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "bd39b32f02401670bfda98c14839d0da9c76ae8446c151dc7f10131c9531ded6", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/nxos_user/tests/common/basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "ba9e801ff2ad1ae02085f83753b4f2e51565888a0fa5822ea0f671ee8a54229f", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_user/tests/common/auth.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "db7a57ed2e804cae9aea360123df898848cc2e772fcab84d843aac01ca0b6b61", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/meta", + "name": "tests/integration/targets/nxos_facts", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/meta/main.yml", + "name": "tests/integration/targets/nxos_facts/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_facts/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_facts/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/nxos_facts/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests", + "name": "tests/integration/targets/nxos_facts/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common", + "name": "tests/integration/targets/nxos_facts/meta/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_facts/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_facts/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "35032ab6b2376156d9cc4386e0c3ae950aeea92146c89106e92963e5d9f30abd", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1ef608de6174de4a28060255b4f85b5c00beb4bf2c8c4083a85d4132fe06341f", + "name": "tests/integration/targets/nxos_facts/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_facts/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e8b8f05c67f53717f791d5fa39768a09589083927c1b288181a9a2b28d3f19fd", + "chksum_sha256": "90b4146d19a8448ba711a28645cf964f8251d544bf1de77f552e08a1e60a9914", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/empty_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a07b5658b8543fad6adbc03cc3dedf24b925d6c15ab96cba887e4057adde9af4", + "name": "tests/integration/targets/nxos_facts/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "b7125a5bf2a88b3a35ff6aa0d06f3afd1474431c753306f1390613c7892f8217", + "name": "tests/integration/targets/nxos_facts/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_facts/tests/common/invalid_subset.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "903605fdce930f7ab623ddda18bc721d07632ae35cede2608f93d0178fffff86", + "chksum_sha256": "d7ef14aa0d9ae451bba34e5fb2952f2034793f826a441cd042b03c34e0d78422", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_facts/tests/common/default_facts.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "febb1078f232f6b64f4600db4e81e08b293f9c1b5959937b92458ea3228ac8ce", + "chksum_sha256": "08c3680a5a839d8e3b53515643f3773bb1d25de670124063d41ff3e0a7fd2713", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_facts/tests/common/not_hardware.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "57b05a37ab33678d00ceac9fa16256aa5ce862265fb330cf2045a6f06bd40331", + "chksum_sha256": "933c388db57e0042a75290223a48d69efad1e524bce14f28f64694d34e3475e3", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_facts/tests/common/all_facts.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7ce5887a89b7e2b67eb2b4bae794a1e0a77c77c2c98c1fbd123bca9ecbf78f3", + "chksum_sha256": "f737c75bd85a50361bfb755799335e3bf0044448e43308c6f4c3f9186a80b65f", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_facts/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "879575bd8531da7b1f7752bc36e8b1d92d654dadebf3ac9e372c71ead2cd75d0", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bfd_interfaces/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "f15ccd5a6a25f5358288fb8ddb955a1b024c33c0d1f04df3811e03aabe460c32", "format": 1 }, { - "name": "tests/integration/targets/nxos_bfd_interfaces/vars/main.yml", + "name": "tests/integration/targets/nxos_facts/tests/common/interface_facts.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab74ba6b07626a0723ca4ba193159ba14bc7011f11acd94ca9b5f13f817def19", + "chksum_sha256": "5c7fa4749d973f3993d84e4ae324dfefa8a62167452abcbdd66de1cb668fdba0", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep", + "name": "tests/integration/targets/nxos_udld", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tasks", + "name": "tests/integration/targets/nxos_udld/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_udld/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e03994e82f05167e558b19e20c435e80ed92b6ff4f62f71fb93ed9082d30f94", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/main.yaml", + "name": "tests/integration/targets/nxos_udld/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_udld/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/platform", + "name": "tests/integration/targets/nxos_udld/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/platform/n7k", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_udld/meta/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/platform/n7k/cleanup.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6fe5dccac28d950d4f93db2d5dd8d2d53f974b51a0c07a9371165a7fd9b20585", + "name": "tests/integration/targets/nxos_udld/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tasks/platform/n7k/setup.yaml", + "name": "tests/integration/targets/nxos_udld/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b569f1de86c96331c196b935a58a716b5314f80ebd5b9130aeaa56f44c45f047", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/meta", + "name": "tests/integration/targets/nxos_udld/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vxlan_vtep/defaults", + "name": "tests/integration/targets/nxos_udld/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/defaults/main.yaml", + "name": "tests/integration/targets/nxos_udld/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "327f500b5a3e5f79399f7a93e74613eec32ee87f52ea77b89af0bb84862a89d2", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tests", + "name": "tests/integration/targets/nxos_nxapi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tests/common", + "name": "tests/integration/targets/nxos_nxapi/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_nxapi/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6f5876cdb7e7636f06c87e462e6002cd2694520079c83f7103450520ff14b3b9", + "chksum_sha256": "7022927c86a437ced8d1f9058b25af83150ab1d87223183b1c61bbf4c0d6523f", "format": 1 }, { - "name": "tests/integration/targets/nxos_vxlan_vtep/tests/common/multisite.yaml", + "name": "tests/integration/targets/nxos_nxapi/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6e9df57ea06843b691dc030437dd9190193ddb70664dd0254133417e3a8b5cdc", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_udld/tasks", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n5k", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_udld/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n5k/assert_changes_https.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "4f99598e0507cfb4e0e625a4075deabb91c5de5e1c0e5531846b9467a6faeaa9", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld/tasks/main.yaml", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n5k/assert_changes_https_http.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "79ee713da7a48ad0b493f6e07690138be3eb4d04d890126aec488e2242e7a442", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n5k/assert_changes_https_http_ports.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_udld/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "3cef9d277e717f6956a9d5136862c72616d866eb04d8f8c0da44c0777739c92c", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld/meta/main.yml", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n5k/assert_changes_http.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "ed763ee2de2c730ea2783225dc132f5c28f22ea272213a36b9b3bb4471492e08", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld/defaults", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/default", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_udld/defaults/main.yaml", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/default/assert_changes_https.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "bfae052c7df36024a59df89f314dc7e03019ad1649f4132cb34bb2a8f50fe903", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/default/assert_changes_https_http.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b055af4a4779d412640cee585ef493e52c3937782e095218164d2719d5223d29", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/default/assert_changes_https_http_ports.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "04e8b8ae8842f40c777282e979ea824c7c886f3e8ae1d9e2710ff466d1fc2ae0", "format": 1 }, { - "name": "tests/integration/targets/nxos_udld/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/default/assert_changes_http.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "327f500b5a3e5f79399f7a93e74613eec32ee87f52ea77b89af0bb84862a89d2", + "chksum_sha256": "db4865169c3dc97c5ca5e24083550b243b685cfaeaaba16333b1f55754dd265a", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n7k", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n7k/assert_changes_https.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d826b7762b3ab39ad7d294ca171272d1ff3213c35f8040c3657228f259d331d5", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n7k/assert_changes_https_http.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "97089a108cc1eac9afae028c6da9bf6f7017afcfc3f1a85776cfe6af31f2c6af", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n7k/assert_changes_https_http_ports.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2418a2ada8700c06969324411c9be328b4d4ad913c6eb93fb824dff96900ff8f", + "chksum_sha256": "5d5a7bc39789b15cf95dd49af7ab1636f3a4589a2be3ee5ca341dbb4414eb95b", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_nxapi/tasks/platform/n7k/assert_changes_http.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "35222b27a54a701db0042dd5fb6069d48d9e27a70821a1707a4aad0d19bc227f", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/meta", + "name": "tests/integration/targets/nxos_nxapi/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_nxapi/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/meta/main.yml", + "name": "tests/integration/targets/nxos_nxapi/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/defaults", + "name": "tests/integration/targets/nxos_nxapi/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/nxos_nxapi/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests", + "name": "tests/integration/targets/nxos_nxapi/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common", + "name": "tests/integration/targets/nxos_nxapi/tests/nxapi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_nxapi/tests/nxapi/badtransport.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9dbc4efa7c9e6843b987aa6286ba0de836129c75b66249ab846fee2012fc2394", + "chksum_sha256": "28a2dfdf7ba13f8dd757c8d9095797a0b91437b5bfd9d9c1c8bfe65508e15901", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1676a953c0e740cc280155ea76e6368fd5628556cdc0acae19e1834b40721681", + "name": "tests/integration/targets/nxos_nxapi/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_nxapi/tests/cli/nxapi_ssl.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c8ea6a0bd93a5ae1092362c88b1eb6ed13a086968841b5d68654677741714dc", + "chksum_sha256": "dae84b45affca730b7c9158216bf18dc9ab9c92bbce4701b6ba881f192ae47f4", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_nxapi/tests/cli/disable.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "858bc39fea4f9cedff070a248b5119124852eeb9237388ef833c414510dbf24c", + "chksum_sha256": "94889efb465f8b55120a28becc23705cd11dc1bc9aebc91204105ba9f8207302", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/rtt.yaml", + "name": "tests/integration/targets/nxos_nxapi/tests/cli/configure.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d660e4e5717467104076599f04b44aca40bbe45b79eb5e5554cb1ff390feb405", + "chksum_sha256": "b4853e02af108065809baebdb1f8e957bc48184f9a24e3510826d28f734d17a6", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_nxapi/tests/cli/enable.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7555ee3d0322003861d6c2d810ec490027b8d792e8800c7e9a46fab869b1c92", + "chksum_sha256": "abdd34478d7db89533c9d3d8cc0fb2f26a5324ab85212086aa1fecc220e7d1c8", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c670083adeabaa18419eea52a2297aeea81b1a5635718b95aebf3d1955f78385", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/multisite.yaml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b0b3ebe6d2d7db422ec1a046818ce06ddf83ef9f32a9178691d732b0824b4da1", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3a640fd87c6717d5876b64797f7d0092fd6673272fc5a674bde3cf5ed78e8b79", + "chksum_sha256": "0defcb7ce6f353926624c2c3e045b403af33c34a6bc1c49b08e71ec602cd21f2", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef91b776e8c9627a55cc9759549aaa7482e0f7da4385079443b8e8f1d8d40b8c", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5e2abf21e437435b96d94e3a1c900ac1284a39092f3b0b1d19e8d5d7544a8424", + "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f274f91771b34f2246ee4fa58bae6acd7fafb0ea1f1efb04ffb362cfd1678de3", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/vars", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_l3_interfaces/vars/main.yml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24e5a4f2e7330b185775678aa68b4645786e83617b90d5a32fb4ff4b77b345ad", + "chksum_sha256": "c9c20222a6eea75718e72f0e12a439d0f2a36eee5fc85db00a855c0ca4a72f99", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tasks", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "280d285e1a9b531b25d8b880d3a032933d7135004c4658b7f1eb4872c60cc666", + "chksum_sha256": "b2a00e0d2590a7c6caff9c7d3d3df8eddf7a04bcb142a5900735574cf7d7ba14", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0ff0c24a2fb4a8aa58a6356c5029065acb6cf1aba1e14add135ff69c8d1387b", + "chksum_sha256": "40d8f8cfc0bfd8a2d5da53d9e61f2d398e4ed50e2cc17915359ba02b980d16d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c57c3ff656bb8daf9febb3c7a7bff934b952d1ccb83604d93e23ccfc3ea88724", + "chksum_sha256": "ebe2088087a911826370430ed7e8029bee349d39be051ef9ce89f96ebb2d4118", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/deleted.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dc0718832154ed173f9ada21e4072a3f3c7fc9202d9a83e0b18c26d72991702e", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/meta/main.yml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "bc402cfd6f07870283877fcd9c3158fdef7f756c7ea88c1aeebdd73629628a00", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/overridden.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9c296bdd111a832466197719e7d3a6da9215aaaa0ab6aeca20b16e5284c61b52", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c07047642c717ad5e564697143a11e7cc93a18376d91ee56dc5f44f3d19e22b5", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "367b5c49d11893b14160cf94e6675588ac07bf0ee93574f6a1e9a9d4c6df70d9", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ed006b0b9dbb7b7c16264d7c9304040f7ddf7104c0aef4d084dd0380d81c0f0d", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a8055703f881f09873f851f1e0c212ac66aa662b744b5cc81a6bd07a7e854643", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "047f1c0feea67e71c51f1eed5b1434e093a7b9f98494aa230acea01f7b68a91b", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests", + "name": "tests/integration/targets/nxos_snmp_host", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common", + "name": "tests/integration/targets/nxos_snmp_host/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/remove_config.yaml", + "name": "tests/integration/targets/nxos_snmp_host/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "303bc0ba56d6f13d152987aaf4b6953d88e4461e8958c7db467d52d247a63dce", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/parsed.yml", + "name": "tests/integration/targets/nxos_snmp_host/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e63afbeefadaaf0dcc22637aaeebfc27980cb517c68aabda8338c05976255320", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/gathered.yml", + "name": "tests/integration/targets/nxos_snmp_host/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d559bcc46e44d101f2fa43a97d785b4476d6053486294e513a7cafbaf67b6bae", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/merged.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2399f3e2619a3b82bcf30be4b9a2be7c660d0f53450d25a46b87fd8ee4abb25b", + "name": "tests/integration/targets/nxos_snmp_host/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/replaced.yml", + "name": "tests/integration/targets/nxos_snmp_host/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c101fa94fc443f0335f4fb75c440dc5c0fe47363d3463d0eccc2c340b39e6cf", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/deleted.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "8695d048ec2623b31a194a213ef80da6add19468e0f90a4ca97d5b8257979529", + "name": "tests/integration/targets/nxos_snmp_host/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/rtt.yml", + "name": "tests/integration/targets/nxos_snmp_host/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "23d20e20e06201967d2847f91f879c7741ac48c9e08bc1b9b3f63ef8c111ad29", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/overridden.yml", + "name": "tests/integration/targets/nxos_snmp_host/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_snmp_host/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_snmp_host/tests/common/sanity_snmp_v3_trap.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b4403fc48624d3990b76b682c8b17543e81f43f152f1afe573bdde1722248ea1", + "chksum_sha256": "1e10b5c9c01f39edff0f76171c81720d458aca5775d0f5f97f20bd2e6c21f57f", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/tests/common/rendered.yml", + "name": "tests/integration/targets/nxos_snmp_host/tests/common/sanity_snmp_v2_inform.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05a26c146d796dee090a8d9931d7f38b5cf3ea87682c7f50f73597a6cff1a4cb", + "chksum_sha256": "54b2c813dda14d97a1eef23c8a3b3ff2bdc194b60ec4cf15d7f6e0068802afa5", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_snmp_host/tests/common/sanity_snmp_v3_inform.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0156bedc287881d6d9d767fd9720c5821708b9ad3c9c217c5c4b1df0a72a6891", "format": 1 }, { - "name": "tests/integration/targets/nxos_lldp_interfaces/vars/main.yml", + "name": "tests/integration/targets/nxos_snmp_host/tests/common/sanity_snmp_v1_trap.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "823ad4608bc4788ff160348fe4e6be75f267c9f2a55bf2043875eb2d76084f39", + "chksum_sha256": "aa6a8b70ec63534db6d01bad4ccb22de07cf1d7c0c65b148a02474964d1a4e72", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf", + "name": "tests/integration/targets/nxos_aaa_server_host", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/tasks", + "name": "tests/integration/targets/nxos_aaa_server_host/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_aaa_server_host/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/tasks/main.yaml", + "name": "tests/integration/targets/nxos_aaa_server_host/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_aaa_server_host/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/meta", + "name": "tests/integration/targets/nxos_aaa_server_host/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/meta/main.yml", + "name": "tests/integration/targets/nxos_aaa_server_host/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/defaults", + "name": "tests/integration/targets/nxos_aaa_server_host/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/defaults/main.yaml", + "name": "tests/integration/targets/nxos_aaa_server_host/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/tests", + "name": "tests/integration/targets/nxos_aaa_server_host/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/tests/common", + "name": "tests/integration/targets/nxos_aaa_server_host/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/tests/common/intent.yaml", + "name": "tests/integration/targets/nxos_aaa_server_host/tests/common/tacacs.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b49015c20a19ae1f270a3b5e69d370744549a23915fb03c23f6e84ad40f8ef74", + "chksum_sha256": "b669c11c0bee9b899cb3075b446411bac7b4fd7c79396e5add683a2d5ab8b725", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_aaa_server_host/tests/common/radius.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b8fb2d6249a8d9311ec67a31c87ad94a8184c7351dbf190d833bb1d7bafd4e7a", + "chksum_sha256": "10dec61711d8e2e9660491a3ac36bda92ef57264b44ce2fafd5c0512b2ecfd13", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp", + "name": "tests/integration/targets/nxos_hsrp_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp/tasks", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp/tasks/main.yaml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp/meta", + "name": "tests/integration/targets/nxos_hsrp_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp/meta/main.yml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp/defaults", + "name": "tests/integration/targets/nxos_hsrp_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp/defaults/main.yaml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_hsrp/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp/tests/common", + "name": "tests/integration/targets/nxos_hsrp_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_hsrp/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a9c0076bb37472ad1bcf0815ed5845032be77683ffc6e967f2577c29cc28f8a8", + "chksum_sha256": "a06be45c7fcb5fbb624b33983db74636889ef05ed32ce0f3ba56485272e3db09", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/tasks", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "9db583ddb82a512ca231ffb3a5ba6c672aa653ec28834c17328fd56190b4a558", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/tasks/main.yaml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "da6b8a879ff9188026a3b1aa01b53289a7517026aff1a7d1954d1bdaead6dec0", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "6e9f0e87988c4ded07d518b67a5118d9d6894e2fab2c86c9cd90ffcf5f56beab", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d1c4df45348332e927abe784ea39438ab014af521a169cc07ca76ff6d8d7c52d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/meta/main.yml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "45a5f0f9979ffcd5b7ef73f95de39a4c6ad35b3f7f05a61b7f6770eb17166dcb", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ce89afffb71cc896f467a3e32919ab4a8fdcd5ea07a9175ecd7db9a7ae6f77cb", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/defaults/main.yaml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "0ef96315e1d8b08e76b5d905207c1d85c0ddea43e8efa07b54896132e7d772e1", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/empty_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d1ff8909b5732150a58ea8fafa7e0f20c447a8bd7e6be23fa0d7cc5655b75510", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4f2c908e56c100ed364248792037843ebe703124cb856054bba1a7904494edd3", "format": 1 }, { - "name": "tests/integration/targets/nxos_vtp_password/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_hsrp_interfaces/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3146095b01817bec07dd315c90e066bd664e16b5438d62d337a7ebfc0c48884e", + "chksum_sha256": "a313ec546dfda89fa9e4dbd468fa0940164b42c0ebce4e544f9c6eddf9c76e63", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family", + "name": "tests/integration/targets/nxos_snmp_server", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tasks", + "name": "tests/integration/targets/nxos_snmp_server/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tasks/main.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0defcb7ce6f353926624c2c3e045b403af33c34a6bc1c49b08e71ec602cd21f2", + "chksum_sha256": "dc2a3a8f315668c3a0a94a40753f7fd1e7eec342b781bbef50ce0f8d3c4abae2", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/meta", + "name": "tests/integration/targets/nxos_snmp_server/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/meta/main.yml", + "name": "tests/integration/targets/nxos_snmp_server/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/defaults", + "name": "tests/integration/targets/nxos_snmp_server/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/defaults/main.yaml", + "name": "tests/integration/targets/nxos_snmp_server/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests", + "name": "tests/integration/targets/nxos_snmp_server/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common", + "name": "tests/integration/targets/nxos_snmp_server/vars/main.yml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8668c98a492f96e42640c00cc5b31c0b73f071b7a61dac9e872c31602833ade2", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_snmp_server/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c07047642c717ad5e564697143a11e7cc93a18376d91ee56dc5f44f3d19e22b5", + "name": "tests/integration/targets/nxos_snmp_server/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dc0718832154ed173f9ada21e4072a3f3c7fc9202d9a83e0b18c26d72991702e", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "367b5c49d11893b14160cf94e6675588ac07bf0ee93574f6a1e9a9d4c6df70d9", + "chksum_sha256": "68295fddd79719b8ad7b74adc76ea194066abae9bd717b24c71eacb7d4b20f8e", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ed006b0b9dbb7b7c16264d7c9304040f7ddf7104c0aef4d084dd0380d81c0f0d", + "chksum_sha256": "0a2278a138afa16699d2018af1c1e1e616a0898336bf1632352195a4d2be36ec", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ebe2088087a911826370430ed7e8029bee349d39be051ef9ce89f96ebb2d4118", + "chksum_sha256": "f8669a63ac0d96789d4722d662bf1568b86c5433817147820023d2b323b2c14e", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c296bdd111a832466197719e7d3a6da9215aaaa0ab6aeca20b16e5284c61b52", + "chksum_sha256": "f6e477bd3b8bdcdbdb4a581d99fc15745c21c823d54c364ea2b1a1fbfb43958d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/_setup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "047f1c0feea67e71c51f1eed5b1434e093a7b9f98494aa230acea01f7b68a91b", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "5153443ed073b0cc035110ac96d297361e22abe390c84014d0a7dbc83ede74e4", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/fixtures/parsed.cfg", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b2a00e0d2590a7c6caff9c7d3d3df8eddf7a04bcb142a5900735574cf7d7ba14", + "chksum_sha256": "7fd565877939a79d2e7d7d25da2c520c9ea6d42572d5d4fc8110716dff0f961a", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc402cfd6f07870283877fcd9c3158fdef7f756c7ea88c1aeebdd73629628a00", + "chksum_sha256": "5e57172ca560cf57a5a6cda0d4427ef723ff0c2041494801839810d37f2dc448", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "40d8f8cfc0bfd8a2d5da53d9e61f2d398e4ed50e2cc17915359ba02b980d16d0", + "chksum_sha256": "98bd39c65fc6a311ba043b2cb6e5fb636bf75e1cd4976826739b8a81f1a4a6fc", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a8055703f881f09873f851f1e0c212ac66aa662b744b5cc81a6bd07a7e854643", + "chksum_sha256": "870e84431b7485f0d29bb5431284baf0098b3a2dc4c33433007de1b970ed5b6f", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_snmp_server/tests/common/rendered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "84c00378264bacd0d235c0b7a80ebf88d754fb93b1e85b00047fac028b29275c", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_neighbor_address_family/vars/main.yml", + "name": "tests/integration/targets/nxos_snmp_server/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9c20222a6eea75718e72f0e12a439d0f2a36eee5fc85db00a855c0ca4a72f99", + "chksum_sha256": "af12998368091442ef220d6e85760264d3d8b49b44ab62a34598479e622d6d61", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging", + "name": "tests/integration/targets/nxos_telemetry", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/tasks", + "name": "tests/integration/targets/nxos_telemetry/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_telemetry/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/tasks/main.yaml", + "name": "tests/integration/targets/nxos_telemetry/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2fa4212775c84d75c443b3960aebf6341b09e5224e4faa7487fd1665c531cfed", + "chksum_sha256": "4fe8ec88364fed45512b5f8e5687038986edd9b03ab1962afa6476aed1ab2f5a", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_telemetry/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/meta", + "name": "tests/integration/targets/nxos_telemetry/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/meta/main.yaml", + "name": "tests/integration/targets/nxos_telemetry/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/defaults", + "name": "tests/integration/targets/nxos_telemetry/templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/defaults/main.yaml", + "name": "tests/integration/targets/nxos_telemetry/templates/populate_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "160c96e0f5f10f0cd536d1fcd93fad3b60a8eac159a64755ac8617a702f032b7", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/tests", + "name": "tests/integration/targets/nxos_telemetry/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/tests/common", + "name": "tests/integration/targets/nxos_telemetry/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_telemetry/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/tests/common/basic.yaml", + "name": "tests/integration/targets/nxos_telemetry/vars/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cffb79e3d12eafda145406aeabd6a8b977e70c5eaf2357b1ea7e9f961f0d8efa", + "chksum_sha256": "90ee74a6d8158f5b1a5e92b16e0e044a5fae636e2742931b542355cb71ed2da4", "format": 1 }, { - "name": "tests/integration/targets/nxos_logging/tests/common/purge.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "73306e68b9cf6de77d4ae5c21bef31324fa909718a1aa43c35e1d99dfa07ce1f", + "name": "tests/integration/targets/nxos_telemetry/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_gir", + "name": "tests/integration/targets/nxos_telemetry/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/tasks", + "name": "tests/integration/targets/nxos_telemetry/tests/common/fixtures", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_telemetry/tests/common/fixtures/new_server.crt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "d761bf530e78d0752a7d9f05dfd5084e106245c7cecac49ca75c0c76ba495fc1", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/tasks/main.yaml", + "name": "tests/integration/targets/nxos_telemetry/tests/common/fixtures/server.crt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "9248b8354ba01bd1fecb1d24494a6098ee9547fa34a9d8840068abbb9a80fd92", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_telemetry/tests/common/fixtures/local_server.crt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "29437b8420b999138ca0947aef901533fd9affbc7ae98a39b13fb6bfa0ae29cd", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_telemetry/tests/common/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b1ac88fec698b51b1f358987e65b5793cd9488ea085606963409a7b9d9b2b4cc", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/meta/main.yml", + "name": "tests/integration/targets/nxos_telemetry/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "d231b07bd5ab608ddebbdbbdbbcbed5e4648ac7ad05dfbbf1df4e2a21c063389", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_telemetry/tests/common/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "00736c9321f59eb87d3655075f655cf2244ba30caed17b3175c3f0171c94bd9f", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/defaults/main.yaml", + "name": "tests/integration/targets/nxos_telemetry/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "0f66a09ea372c1fa2c05027c0a2097da33a0912daf4355ff6cab34a77e057acd", "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/tests", + "name": "tests/integration/targets/nxos_static_routes", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/tests/common", + "name": "tests/integration/targets/nxos_static_routes/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_gir/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_static_routes/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13582ac62b7614778bc62c5a6f93a36a920e8664812b73a2b0903af35c2fe1da", + "chksum_sha256": "40fe4fe85031868241ac9845115f925a1c7be1ad8c4f932f4896fdaad51da36c", "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_static_routes/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2eacf5012e1fb8a88bd7663844178dc5f6b617535d4bc2ddf0037ce474a33b1e", "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/tasks", + "name": "tests/integration/targets/nxos_static_routes/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/tasks/nxapi.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7277ec56762ca20a3617b1da87631d8dde35556a4c004e7c82974e49fab50d92", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_smoke/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "849f2a2746300bf950bfe382b3f2b80990bbee773cbdbd2d1e2a897a9ed1e261", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_smoke/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_static_routes/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "62a31764ef528947cdefe8eb150e20bdaba422d40bac12a3609948ca1575cf8f", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/meta", + "name": "tests/integration/targets/nxos_static_routes/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/meta/main.yml", + "name": "tests/integration/targets/nxos_static_routes/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/defaults", + "name": "tests/integration/targets/nxos_static_routes/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/defaults/main.yaml", + "name": "tests/integration/targets/nxos_static_routes/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", + "chksum_sha256": "3eda3cf170b296ca5e5f4996c8b03c030d87a4e3e6197f7770e2b14e739e4ab3", "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/tests", + "name": "tests/integration/targets/nxos_static_routes/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/tests/cli", + "name": "tests/integration/targets/nxos_static_routes/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/tests/cli/misc_tests.yaml", + "name": "tests/integration/targets/nxos_static_routes/tests/common/overridden.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dedfb27511bd8fde863a0aa430bdd23272cd766d0c23694764d01852c9586073", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_smoke/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "ff14829c4bb5758e9c2bcce36a6a134e5fd2d02af7586147e25ce45f5d3c6197", "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/tests/common/common_utils.yaml", + "name": "tests/integration/targets/nxos_static_routes/tests/common/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a60e645271b0b349228daf7eac3948d5651a32abd8cb578005202d4c1ed80236", + "chksum_sha256": "ac26dd65c91afd1fd0e3734c2d3b9c361904f6af8fed0fbce8ee7746c96b64bf", "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/tests/common/misc_tests.yaml", + "name": "tests/integration/targets/nxos_static_routes/tests/common/rendered.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ca259adfd9eabd17072e03cae98011aa82cf2e1b6d8fc88fb0ada2ebaca18d7a", + "chksum_sha256": "b9734f5468d080e059ad191471f78497c2ce42fa6d87de56f9f2e273bc0d8e28", "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/tests/common/common_config.yaml", + "name": "tests/integration/targets/nxos_static_routes/tests/common/gathered.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dea32a9f41f8c2367181bfb2fc2821e4304e393ac781dd02e19d6cb01c6273ae", + "chksum_sha256": "f58a5e229e9cb4a2cd367d9bd3d36dfc7b8a03598bd35d77c19ea701e70b8976", "format": 1 }, { - "name": "tests/integration/targets/nxos_smoke/tests/common/caching.yaml", + "name": "tests/integration/targets/nxos_static_routes/tests/common/merged.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2db51e2d9c925d2773d4bcf45ee241c75cc02547793d07cad590f1d9657eb36c", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bgp_templates", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bgp_templates/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "d8a7a44814c334c50589139d3473b014a953fda361f2d88075fe1538f65a580e", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_static_routes/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "244c13d831c6419ec7e7a46e3e00e82fc1be5a476e5204561deae0efce659d93", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tasks/main.yaml", + "name": "tests/integration/targets/nxos_static_routes/tests/common/replaced.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "918e266fd84500fc8a9d7958437789683bd47b7875371afaf4941b60f4594bc7", + "chksum_sha256": "5c23e4c252c1cd1583fd56550d8d702f0b09b867eb03c50886e83f3c24197690", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_static_routes/tests/common/deleted.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bgp_templates/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "10271b66076c4d1659a13c85ae4ba02c903ba2eb771ba8a2e31f0910c46de739", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/meta/main.yml", + "name": "tests/integration/targets/nxos_static_routes/tests/common/parsed.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bgp_templates/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "4a2cd09da60d6b0bc0904e3f313e959fc3efbba7979d14309764e11aaefab96d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/defaults/main.yaml", + "name": "tests/integration/targets/nxos_static_routes/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "d486bec06fd92b15f491fc77298d00447520a955e2dbf3d84a5a739d1a2703c2", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests", + "name": "tests/integration/targets/nxos_config", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common", + "name": "tests/integration/targets/nxos_config/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_config/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c07047642c717ad5e564697143a11e7cc93a18376d91ee56dc5f44f3d19e22b5", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_config/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "425c2ab3097932fcb46a43b4d5b8bcaeed500348e760e77a5b6f1d4e4fca9eea", + "chksum_sha256": "a069f9e3d9d905e5a1d7e2b316e284944bc38cddc390470831451fb4672fbde2", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_config/tasks/redirection.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2326d2afd434fadf9b8d2ef427e3918e6a5947eb39d58c4fc1988df599c58510", + "chksum_sha256": "a4f04d0bc1463bb36c212620e786d8ce8d18681fd03f641c1a37351b6d0dfac8", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_config/tasks/cli_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37be696dfcec49e17974100e3ea8181b391da9cdad82f8667aa2f5df0ff8aaca", + "chksum_sha256": "244797b68a9ec0f73b3fecca59e21469c0bc8126f36a5b7ffe2fe20ebdf22f19", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_config/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09f60138ddf3d5c8a6782f9f5f937091c37a58ea72c0304384034becdf946850", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/overridden.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1197072828ecfc518dd9ac00389c239db31f18e8d566fbe5a37fd80ff479f104", + "name": "tests/integration/targets/nxos_config/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_config/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0f7753a98712bcde737fce34f1a0af8d5a655bba229b306685e5ae6f8c26257d", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/fixtures", + "name": "tests/integration/targets/nxos_config/templates", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/fixtures/parsed.cfg", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e921d4fa370873c1b237ba6b3ee2d3c0a70520b08f5097e960152137a57ed123", + "name": "tests/integration/targets/nxos_config/templates/basic", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_config/templates/basic/acl_config.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d307cdaf9d9ecb2c711093d4f9879deb595a843ed2d17b6ae1036d918b22cf2f", + "chksum_sha256": "f8cfadc33b5527be5bd82a279cbcc769a882135ce815cb6d42177cb51d325e4e", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_config/templates/basic/base_running_config", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a1ffab53eece71058929fba7b157214cd3aeea388b6bf8aae94e146b03e5eb25", + "chksum_sha256": "85528fb2bdea51956f0b6d9a7cb07c7bc75e498553f9b5301b904db35ed0f929", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_config/templates/basic/intended_running_config", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "56e1c2649908ef81810457cc96bc917c530d7096e907b516389ef7cdbe3c9ba3", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bgp_templates/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "b478553dd335d5085c847219eae58a8daac0902372a5e8fbbd133da3850332b2", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_templates/vars/main.yml", + "name": "tests/integration/targets/nxos_config/templates/basic/configstrict1.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "320a4fb71862d3232cd18205318c3a960d55b06bb1fd7fa7afd49ff122c04605", + "chksum_sha256": "da30d9c2fbe9c9473f957d26568b2cb42baa620e261efbce7d604535ec532cf5", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/templates/basic/setupstrict.j2", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b358f8f54eb293ce2eac2ead8f8bc2e3aae7383c2981c9c192530d6bcbff3d6f", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/templates/basic/config.j2", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d62440fb734cd4db3dd623ab8e77214ff7f82e44c7dfca249b20dcd83d83a9af", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_config/templates/basic/setupexact.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "b358f8f54eb293ce2eac2ead8f8bc2e3aae7383c2981c9c192530d6bcbff3d6f", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/tasks/main.yaml", + "name": "tests/integration/targets/nxos_config/templates/basic/configexact2.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "b5884db197b0f69276768f1f6e5e8b4214ead32869dab90d76fae353425a4b28", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_config/templates/basic/configblock.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "f8cfadc33b5527be5bd82a279cbcc769a882135ce815cb6d42177cb51d325e4e", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/templates/basic/configexact1.j2", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f8cfadc33b5527be5bd82a279cbcc769a882135ce815cb6d42177cb51d325e4e", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/meta/main.yml", + "name": "tests/integration/targets/nxos_config/templates/config.js", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "c6d65e4fbe26ecfdf18d8eba2eac04aecfdd65e59e6b6db1c2aa2d29ed5a5847", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/defaults", + "name": "tests/integration/targets/nxos_config/templates/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/defaults/main.yaml", + "name": "tests/integration/targets/nxos_config/templates/defaults/test.j2", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "356d51cb39cbc26b408ca0b3aeacc83634ee2f6e061811a3a8fafb63955ffa4d", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/templates/defaults/config.j2", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "522484a8eb35e809c1ebd645a73ca12f02b09c6cf237f1db1ed577088c149c51", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/tests/common", + "name": "tests/integration/targets/nxos_config/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_snooping/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_config/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4a73bc840e125f41372313d58b550980ef7c1642f87ba9bb8ee85d8d026ff42", + "chksum_sha256": "665288590cd4226da42511817f09ccdfc92df36c9621583cd2c82919af295c5a", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps", + "name": "tests/integration/targets/nxos_config/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tasks", + "name": "tests/integration/targets/nxos_config/tests/cli_config", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_config/tests/cli_config/cli_basic.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "7b3703086ba8415b259a2c8353dc03d9295173092ba3dc15170ae9718b10626e", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tasks/main.yaml", + "name": "tests/integration/targets/nxos_config/tests/cli_config/cli_exact_match.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2396a1bb62aa2d673208deb59766a787971d061630b8467afa525b7fdcb2e95e", + "chksum_sha256": "5eb01810e15ac6b6941a7b9b79ca5ca3be016f16ee7f534eea9be0115fb53a46", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_config/tests/cli_config/cli_backup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "02aa5aa3478284c141cb3741eb86bf919a560bc25b5a911f453e05ce25737bd7", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/tests/cli_config/cli_strict_match.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6329b5bab571f5218aeff32c54936052c2188466f842b4364d80dc9c6d800450", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/meta/main.yml", + "name": "tests/integration/targets/nxos_config/tests/cli_config/cli_block_replace.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "9058efd9127aa10094d23e72b8d7b8e0426d2707a113d7be2d539c15a1b9d229", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/defaults", + "name": "tests/integration/targets/nxos_config/tests/nxapi", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/defaults/main.yaml", + "name": "tests/integration/targets/nxos_config/tests/nxapi/sublevel_strict.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_route_maps/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "acaded71377fcc8c8b288d527caf6fc777c8d0f50079c8b409d1007f821cc9d3", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/tests/nxapi/sublevel.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "dc08a002e9e00d36590098bfe308ca825954a3e43755650cb5809684512433cb", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_config/tests/nxapi/toplevel_after.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cdf825a17b7761cfbd225079ec5d366f4584e7f97111e0af086884f87fda0fde", + "chksum_sha256": "7b8ad2836c7ec7360561cb0f4319bbe95feae70b134c5dac9deb2ba18a17638e", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_config/tests/nxapi/multilevel.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c276d4c6888f077b84280f79606acb632995c8f1bf32e8c1c0bcb9c02055ee76", + "chksum_sha256": "ff4c8dc408f5b4296300c4d7d983fcbdf19ee303fc95fe44ddb3d72a8b2aa08e", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_config/tests/nxapi/sublevel_exact.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "562a6817ca710cc4c1b6c4babb9b7bca97334312e19d963f8df83a98b7e94512", + "chksum_sha256": "694ab236d9c21462b423d507666dfe90caceca03e8a2f8fa3759f9f51b6d06e0", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_config/tests/nxapi/toplevel_before.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff60a5603326c1ae214cbac1f9411495c0cab6360f7880234d1b2e3be1a2ffbb", + "chksum_sha256": "1d150adeed3e6e02c3adc3871d29b6a153d504ab7a861cd401b02c480008ba5b", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/merged.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "3b2a9d97ae8aa59ee542363b43e7051f5d8492e4f45ba0db862a9d071e1ef820", + "name": "tests/integration/targets/nxos_config/tests/cli", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_config/tests/cli/sublevel_strict.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d8ea6575a0570f9ce32c1d3211f075ee42f56a4ba2d87115c6fccd3409b6b5d0", + "chksum_sha256": "057bf9a3f64bb1abb24a5dc5a530553401a32850185af62cb278c85228ac6465", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_config/tests/cli/diff.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "036af452cc03bdec84720356e6c7013b4f39c2a6800e1f8303120d785b2955e7", + "chksum_sha256": "d890138033f9812260dfd304fb4888d77e0c78b71f0afb2f8f97ce71f11a2491", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/tests/cli/sublevel.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "937eb38ce64f2eaaab0f4c8f86a336d6fa022a96d75e285baaf7c85f45fb0b09", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/fixtures/parsed.cfg", + "name": "tests/integration/targets/nxos_config/tests/cli/toplevel_after.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09e1c1e0b37433d900624319d7037eb3672c94053d18f87f22552dceeec1dc96", + "chksum_sha256": "7792c748c17cf012bd7462753459725b9b2d4e8418a3edb3f4f76eb84f8b5914", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/_setup.yaml", + "name": "tests/integration/targets/nxos_config/tests/cli/replace_block.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5153443ed073b0cc035110ac96d297361e22abe390c84014d0a7dbc83ede74e4", + "chksum_sha256": "e0eef2496cf4af6b50d6274c1b6ef30dbe7955e60ab6695c4cc0660ee5e8a51e", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_config/tests/cli/multilevel.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "56653dab75b72e7a40ed1dbff928b5fd2dedf7651dcf2155747903b1a64803e4", + "chksum_sha256": "b91edced261b04cd778d86a702fd71159bcb7e37050b2b59d66f5fbd0485ca6e", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_config/tests/cli/sublevel_exact.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab508eea7234bac851c3c482330fa0c4afb0e8bd2af87d91901c230754d9779d", + "chksum_sha256": "b755c791e3a1b329e7da5896f70e10b01bdc5237bbe2e80316a4515d6f8d8bd8", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_config/tests/cli/toplevel_before.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e59d332194a4bb9ce27f445771203088b05b31a191b59d0e9e049deb72552a8", + "chksum_sha256": "da70c4dcf111e0de17abc736ab6b4cfef245ca202d235dd1d9e611b40bbab8b2", "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/vars", + "name": "tests/integration/targets/nxos_config/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_route_maps/vars/main.yml", + "name": "tests/integration/targets/nxos_config/tests/common/src_invalid.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e01454e13b8195b24273afb60288d0cb4a32a1ca4e7f1fff3bfea0fd2610f18", + "chksum_sha256": "000c3c67b80eab4be77858bbb29844ec788342c63d8570c1db6166ca5a9539b5", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/tests/common/src_basic.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "eccd369dee1af74d2b9f2888107f438904ae0c58705d800ad95e913965991608", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/tests/common/save.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bc462c07044762a41b8eddbe29be65aa51e6d6cea05d1e0630555e8cb4a9e446", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_config/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "55efec005b7a96d5dbd8739cfce99c359f047d1aacbee36ad6bc04bcf8283f26", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/tasks/main.yaml", + "name": "tests/integration/targets/nxos_config/tests/common/toplevel_nonidempotent.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "48fbcde0f38c5b06062ccb0f93d50a5b7a7554edf66ee7ed4779d9d4ce524ac1", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_config/tests/common/backup.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "098fa1e9566ae02a5c089a7ab7a235ce53f1bc78b431e01595556f623f718c82", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/tests/common/toplevel.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2bc1969eeb4a97775fd72dd6e5109d499c24cf5735c2c54bf75dcf7d49690bea", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/meta/main.yml", + "name": "tests/integration/targets/nxos_config/tests/common/defaults.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "db431603f9429be57048a8789d1f0af71d6cdae47a26878a608c082768a1244d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_config/tests/common/sublevel_block.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "45748bd39c32ff0675cebcff8ed674384c0fcbd51797f2110edfbef816394801", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/defaults/main.yaml", + "name": "tests/integration/targets/nxos_config/tests/common/src_match_none.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "f485a516ee779d29f9c4bef94249e47c885743481d409fedaad14bd49ecbafe0", "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/tests", + "name": "tests/integration/targets/nxos_config/tests/redirection", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/tests/common", + "name": "tests/integration/targets/nxos_config/tests/redirection/cli", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vrf_interface/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_config/tests/redirection/cli/shortname.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f97e455b1bd40d8c37f4c473ba8a86d18cb742022dface71269898bcf9d6594", + "chksum_sha256": "00bb1bd085c826013b04f4eaf7f74ff0de45ec8330aa386f4cd0263d468df9f1", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location", + "name": "tests/integration/targets/nxos_route_maps", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location/tasks", + "name": "tests/integration/targets/nxos_route_maps/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_route_maps/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location/tasks/main.yaml", + "name": "tests/integration/targets/nxos_route_maps/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "2396a1bb62aa2d673208deb59766a787971d061630b8467afa525b7fdcb2e95e", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_route_maps/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location/meta", + "name": "tests/integration/targets/nxos_route_maps/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location/meta/main.yml", + "name": "tests/integration/targets/nxos_route_maps/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location/defaults", + "name": "tests/integration/targets/nxos_route_maps/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location/defaults/main.yaml", + "name": "tests/integration/targets/nxos_route_maps/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_snmp_location/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location/tests/common", + "name": "tests/integration/targets/nxos_route_maps/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_location/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_route_maps/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3e00a1c43687d39e22e8835b039f398d7bdebbcc45399d8cd01d6ca7d4ef6e96", + "chksum_sha256": "2e01454e13b8195b24273afb60288d0cb4a32a1ca4e7f1fff3bfea0fd2610f18", "format": 1 }, { - "name": "tests/integration/targets/nxos_devicealias", + "name": "tests/integration/targets/nxos_route_maps/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_devicealias/tasks", + "name": "tests/integration/targets/nxos_route_maps/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_devicealias/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f47853340600c1c9b76ed00695079b203ae45896e40acfac2f48e28f2ad98b40", + "name": "tests/integration/targets/nxos_route_maps/tests/common/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_devicealias/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_route_maps/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_devicealias/meta", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "09e1c1e0b37433d900624319d7037eb3672c94053d18f87f22552dceeec1dc96", "format": 1 }, { - "name": "tests/integration/targets/nxos_devicealias/meta/main.yml", + "name": "tests/integration/targets/nxos_route_maps/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", + "chksum_sha256": "ab508eea7234bac851c3c482330fa0c4afb0e8bd2af87d91901c230754d9779d", "format": 1 }, { - "name": "tests/integration/targets/nxos_devicealias/defaults", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_route_maps/tests/common/merged.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3b2a9d97ae8aa59ee542363b43e7051f5d8492e4f45ba0db862a9d071e1ef820", "format": 1 }, { - "name": "tests/integration/targets/nxos_devicealias/defaults/main.yaml", + "name": "tests/integration/targets/nxos_route_maps/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "c276d4c6888f077b84280f79606acb632995c8f1bf32e8c1c0bcb9c02055ee76", "format": 1 }, { - "name": "tests/integration/targets/nxos_devicealias/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_route_maps/tests/common/replaced.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "56653dab75b72e7a40ed1dbff928b5fd2dedf7651dcf2155747903b1a64803e4", "format": 1 }, { - "name": "tests/integration/targets/nxos_devicealias/tests/common", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_route_maps/tests/common/_setup.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5153443ed073b0cc035110ac96d297361e22abe390c84014d0a7dbc83ede74e4", "format": 1 }, { - "name": "tests/integration/targets/nxos_devicealias/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_route_maps/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a93b103d12183553437c6808898ac57aa27e80ef5d1547e496e4ce5d5039baa9", + "chksum_sha256": "d8ea6575a0570f9ce32c1d3211f075ee42f56a4ba2d87115c6fccd3409b6b5d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_route_maps/tests/common/_remove_config.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "cdf825a17b7761cfbd225079ec5d366f4584e7f97111e0af086884f87fda0fde", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_route_maps/tests/common/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "562a6817ca710cc4c1b6c4babb9b7bca97334312e19d963f8df83a98b7e94512", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_route_maps/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "ff60a5603326c1ae214cbac1f9411495c0cab6360f7880234d1b2e3be1a2ffbb", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface/tasks/main.yaml", + "name": "tests/integration/targets/nxos_route_maps/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "chksum_sha256": "4e59d332194a4bb9ce27f445771203088b05b31a191b59d0e9e049deb72552a8", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_route_maps/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "036af452cc03bdec84720356e6c7013b4f39c2a6800e1f8303120d785b2955e7", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface/meta", + "name": "tests/integration/targets/nxos_zone_zoneset", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_igmp_interface/defaults", + "name": "tests/integration/targets/nxos_zone_zoneset/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface/defaults/main.yaml", + "name": "tests/integration/targets/nxos_zone_zoneset/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "f47853340600c1c9b76ed00695079b203ae45896e40acfac2f48e28f2ad98b40", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface/tests", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_zone_zoneset/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface/tests/common", + "name": "tests/integration/targets/nxos_zone_zoneset/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_igmp_interface/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_zone_zoneset/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3f1f412736c7af33d14c2be45d461f6f96778bc221e6abdabdc579247c32d72d", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_pim", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim/tasks", + "name": "tests/integration/targets/nxos_zone_zoneset/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_zone_zoneset/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "name": "tests/integration/targets/nxos_zone_zoneset/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_zone_zoneset/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "chksum_sha256": "97b10ee26b05c01b328d79887c41479bd2bf559184fb1df4af53645db6e109ba", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim/meta", + "name": "tests/integration/targets/nxos_zone_zoneset/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim/meta/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_pim/defaults", + "name": "tests/integration/targets/nxos_zone_zoneset/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim/defaults/main.yaml", + "name": "tests/integration/targets/nxos_zone_zoneset/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "781a480d71c224fb90d67eba3072492ff3f2d263df13ec8c735cabec41956751", "format": 1 }, { - "name": "tests/integration/targets/nxos_pim/tests", + "name": "tests/integration/targets/nxos_acl_interfaces", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim/tests/common", + "name": "tests/integration/targets/nxos_acl_interfaces/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_pim/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab1efb1a3ca7cc688042b32d2d0660eeb0e25ff2bb2c833e9bcdeab5d6a1e0a0", + "chksum_sha256": "280d285e1a9b531b25d8b880d3a032933d7135004c4658b7f1eb4872c60cc666", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_acl_interfaces/tasks/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7be6dc51b2f6fb5601e0d7f3498991d34f0910206fe6ed537217c8eba86a3cf5", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tasks", + "name": "tests/integration/targets/nxos_acl_interfaces/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c57c3ff656bb8daf9febb3c7a7bff934b952d1ccb83604d93e23ccfc3ea88724", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_acl_interfaces/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tasks/main.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", + "name": "tests/integration/targets/nxos_acl_interfaces/templates", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/templates/populate_config.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "6dd477232ff3b52e84f25f81712afb11874700566d9c52d923c012ad1d770cf0", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/meta", + "name": "tests/integration/targets/nxos_acl_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/meta/main.yml", + "name": "tests/integration/targets/nxos_acl_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec4fa30fc4a7b9e002d1c7b3932286ace72ba36e4f532e2cc79f49d07e0794c3", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/defaults", + "name": "tests/integration/targets/nxos_acl_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/defaults/main.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "6a97fa118eda919bd0c4d9b45fbacbb04ef221e6d264073eda5612e7b57228c9", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests", + "name": "tests/integration/targets/nxos_acl_interfaces/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/_remove_config.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/populate_acl.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d0b9b581e3e45b412907eecbc4ba5ad1632595e8cb58f397365287ce091bee0", + "chksum_sha256": "d44542c7c93f7edcef7326941f254a969cc90fca962286a98a576a1979064cd0", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/deleted.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/overridden.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2964f468cfe2c92dbee0504a71845636d76ff4e079dd07ad7f8656cba328221", + "chksum_sha256": "603d8a6ba49dd33261b0c7a152e55df28f2c3e10f09e9ec0f3eebde8d6c5c7ad", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/empty_config.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "87888ec93930b5630192fd9f60d931700a43910cfe6a3d092b04099ac88eb612", + "chksum_sha256": "46c8e8809399bcd1bdfe1242e346ac1c340668e32fdbfcba0cfe6a4ad9ff6f4d", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "69cfb989d7be0b980e8fc3eb9d33154c66e2cde5df1a9f8b17b1ea0894879212", + "chksum_sha256": "832178be08db3abba5b2d95b0c57c79f8a4d5b132f1f01f9dfe786c2a3b5cb31", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/rtt.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/rendered.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65b9276bee903c86af57ed5a6afee1d84461bf6c7bf3a3cf95aa8369e0c7df57", + "chksum_sha256": "9ab726e93c94df77ac9671e7dfa0b8c89104ea4333e25b56f04830f9bda81942", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6f9623efb3904d185246e618c1cb0726553a5556941e5c2e91b7c9025de0e89c", + "chksum_sha256": "4b97c05adf25534f7d6e4ac7a67e541969eb7e1060b6360f956c5dcae418e5f7", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/gathered.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c70b2b7642402aeef4772a4a8cc7b7abde208bfedd65fbdcf95231b2ab5a74db", + "chksum_sha256": "698995afdf69835fb4ba540353a3e4f213d7954d21073c0cc754b1787cd05231", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/merged.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0fef283f3a139da74d869920dfc1b12b127b20e505c060d30b893d457ea980bc", + "chksum_sha256": "8eae4ac211ea7861be4677520f4962046223747c3f400208cad64b245998d0df", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/replaced.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1f1efb47f41f82d4be94cca66acf388791ed71b63f1f3897f769f7e4110f1be6", + "chksum_sha256": "155aa10a15be7eea0049eb7035993970089c76ee53bcd152999c6055e8586aa1", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/deleted.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe16be9cd5316c7526ea489bad81d693f40c2f2351c01f60a4074802f208164e", + "chksum_sha256": "3c80a977c86fd76c2bbf06ab9878e383170afc5cba3f336e2d4f8ca2de3500fa", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/parsed.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5745013bf8f6e23f513cea1bb8878e4ca80ba61a331a5a5d2a7097673b786ed2", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_vlans/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "ac628812931497d1846e45df02f6c9fc4ba4b8d61fba9a559793b8b217e08484", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/fixtures/parsed.cfg", + "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d00aff551522b3a0a61d5ba2b38944de36985bd3353dc67987d76d650ccbea3", + "chksum_sha256": "ff18091eda8eab8839ce8b146409c956a16da2af0d78204879e2a0d844835c46", "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/vars", + "name": "tests/integration/targets/nxos_hostname", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_vlans/vars/main.yml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "fd3723c027909807b1d6ef73222d5bfc96f98c680a9f86f3e89c0366bdd22116", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_acl_interfaces", + "name": "tests/integration/targets/nxos_hostname/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tasks", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_hostname/tasks/nxapi.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_hostname/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "280d285e1a9b531b25d8b880d3a032933d7135004c4658b7f1eb4872c60cc666", + "chksum_sha256": "c100293cbf1e43e53f2ff874e3e1079621ae414e404db0078a26044ececac0b1", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tasks/main.yaml", + "name": "tests/integration/targets/nxos_hostname/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7be6dc51b2f6fb5601e0d7f3498991d34f0910206fe6ed537217c8eba86a3cf5", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_hostname/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_hostname/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c57c3ff656bb8daf9febb3c7a7bff934b952d1ccb83604d93e23ccfc3ea88724", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/meta", + "name": "tests/integration/targets/nxos_hostname/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/meta/main.yml", + "name": "tests/integration/targets/nxos_hostname/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/defaults", + "name": "tests/integration/targets/nxos_hostname/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/defaults/main.yaml", + "name": "tests/integration/targets/nxos_hostname/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", + "chksum_sha256": "372a997c3a0ce9aa7b42746d99a75295a66504416d94fd1b0c545e58717a6a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests", + "name": "tests/integration/targets/nxos_hostname/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common", + "name": "tests/integration/targets/nxos_hostname/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/remove_config.yaml", + "name": "tests/integration/targets/nxos_hostname/tests/common/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_hostname/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a810ecec7ad98918852e116b1723828e387fe649b66384bcce7ac7eeda9a3c3", + "chksum_sha256": "6cd019ca4bbc9dc9a7657ccbc89a52a8505890bda564813765bc2bb004ef3814", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/populate_config.yaml", + "name": "tests/integration/targets/nxos_hostname/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff18091eda8eab8839ce8b146409c956a16da2af0d78204879e2a0d844835c46", + "chksum_sha256": "292e2e1750dcd0b5114b4c1b2f8fe93125754fa76c1869f64f87e6055da6338f", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/parsed.yml", + "name": "tests/integration/targets/nxos_hostname/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac628812931497d1846e45df02f6c9fc4ba4b8d61fba9a559793b8b217e08484", + "chksum_sha256": "b2db6ef6d129f976a7c1dd3d1543020bba577d399fa4e780311e9942d0e39a21", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/empty_config.yml", + "name": "tests/integration/targets/nxos_hostname/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "46c8e8809399bcd1bdfe1242e346ac1c340668e32fdbfcba0cfe6a4ad9ff6f4d", + "chksum_sha256": "ce390e649cf85c4eddff7df5c0d545f57e389bb36774ae580dadafec45cf2a1b", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/gathered.yml", + "name": "tests/integration/targets/nxos_hostname/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "698995afdf69835fb4ba540353a3e4f213d7954d21073c0cc754b1787cd05231", + "chksum_sha256": "8564938ffbfc1d998d5ce080e9bc6cb612cf2aeefa19ac79bf9bf6f895800a2e", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/merged.yml", + "name": "tests/integration/targets/nxos_hostname/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8eae4ac211ea7861be4677520f4962046223747c3f400208cad64b245998d0df", + "chksum_sha256": "c76970334ac8f7dea1c52d4a2e9785b43fe9754ed2cece81e49036d8efce6507", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/replaced.yml", + "name": "tests/integration/targets/nxos_hostname/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "155aa10a15be7eea0049eb7035993970089c76ee53bcd152999c6055e8586aa1", + "chksum_sha256": "3c610838a6fa946c2237c8292c07b688a1ba7e8096a2d35d75f12f0b58866ed7", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/populate_acl.yaml", + "name": "tests/integration/targets/nxos_hostname/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d44542c7c93f7edcef7326941f254a969cc90fca962286a98a576a1979064cd0", + "chksum_sha256": "0b28a51b56bc716da4598490f3cb3302329f0113eb3ab32fa9a860223eae43f6", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/deleted.yml", + "name": "tests/integration/targets/nxos_hostname/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c80a977c86fd76c2bbf06ab9878e383170afc5cba3f336e2d4f8ca2de3500fa", + "chksum_sha256": "c48e9bf3dac84165ae9953b7ad26ecec061cc599fd5cc78290d048b36119ce19", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/rtt.yml", + "name": "tests/integration/targets/nxos_hostname/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96d777b4974044947557f7ae5f9400640b0376086e15759c8dd8befb6a65d4b2", + "chksum_sha256": "6e0e085de3251f1846bf350484b27a639383cf70f82effdb6d8aa0b73f105c60", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/overridden.yml", + "name": "tests/integration/targets/nxos_hostname/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "603d8a6ba49dd33261b0c7a152e55df28f2c3e10f09e9ec0f3eebde8d6c5c7ad", + "chksum_sha256": "55288117a1ba1770a3e0bcac6e550c318807316ce84c65e536ba34cc449f62b0", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/tests/common/rendered.yml", + "name": "tests/integration/targets/nxos_devicealias", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_devicealias/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_devicealias/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ab726e93c94df77ac9671e7dfa0b8c89104ea4333e25b56f04830f9bda81942", + "chksum_sha256": "f47853340600c1c9b76ed00695079b203ae45896e40acfac2f48e28f2ad98b40", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/vars", + "name": "tests/integration/targets/nxos_devicealias/tasks/cli.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_devicealias/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/vars/main.yml", + "name": "tests/integration/targets/nxos_devicealias/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a97fa118eda919bd0c4d9b45fbacbb04ef221e6d264073eda5612e7b57228c9", + "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/templates", + "name": "tests/integration/targets/nxos_devicealias/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_acl_interfaces/templates/populate_config.cfg", + "name": "tests/integration/targets/nxos_devicealias/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6dd477232ff3b52e84f25f81712afb11874700566d9c52d923c012ad1d770cf0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family", + "name": "tests/integration/targets/nxos_devicealias/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_devicealias/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_devicealias/tests/common/sanity.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a93b103d12183553437c6808898ac57aa27e80ef5d1547e496e4ce5d5039baa9", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_acls", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tasks", + "name": "tests/integration/targets/nxos_acls/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_acls/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", + "chksum_sha256": "280d285e1a9b531b25d8b880d3a032933d7135004c4658b7f1eb4872c60cc666", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tasks/main.yaml", + "name": "tests/integration/targets/nxos_acls/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "918e266fd84500fc8a9d7958437789683bd47b7875371afaf4941b60f4594bc7", + "chksum_sha256": "dc2e669d7f6ccc6f6bd958fc52376105ef28a808ec084c11f2dfcecf1471760a", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_acls/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", + "chksum_sha256": "c57c3ff656bb8daf9febb3c7a7bff934b952d1ccb83604d93e23ccfc3ea88724", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/meta", + "name": "tests/integration/targets/nxos_acls/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/meta/main.yml", + "name": "tests/integration/targets/nxos_acls/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/defaults", + "name": "tests/integration/targets/nxos_acls/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/defaults/main.yaml", + "name": "tests/integration/targets/nxos_acls/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests", + "name": "tests/integration/targets/nxos_acls/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common", + "name": "tests/integration/targets/nxos_acls/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/_remove_config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c07047642c717ad5e564697143a11e7cc93a18376d91ee56dc5f44f3d19e22b5", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/deleted.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e76deb0ccd6d015af64ec4b54fc1da88ccf401b0aa373bda8d4cfabd23b9b1d9", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/gathered.yaml", + "name": "tests/integration/targets/nxos_acls/tests/common/overridden.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0aefe84d03b67ec239027816ac3522c7b7cfabac56bd979c781c74cab4b01955", + "chksum_sha256": "9e261e0e1a8b1778739d5bb1c17c75a378186c5c2efd72a351d604e0d7560318", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/empty_config.yaml", + "name": "tests/integration/targets/nxos_acls/tests/common/rtt.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fed0782bb5669d310ba18f8a49c51be3b1c8b16b0951f388e2280ed4a1769b50", + "chksum_sha256": "4912e31a951706d32e6682e65095ad1794df0cdedeeeec3d5e9ba139e14a0409", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/merged.yaml", + "name": "tests/integration/targets/nxos_acls/tests/common/rendered.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a6f21fe892ff7e532f40e0d7ecb6bba83f26bb1765ac4177b453d85f896dc633", + "chksum_sha256": "aa791c7d2f4a1989dd888e3880d230146cee3a448116cb224c31066a7f7573fe", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/overridden.yaml", + "name": "tests/integration/targets/nxos_acls/tests/common/remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba2591fcb1bd54b023d7d45818463cb4d7efb6c7a918133129505ab24d3c9b7d", + "chksum_sha256": "6b36b668815324ab75f641e80f9341c4f7b4f264585d07409b01704c5f8a018d", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/_populate_config.yaml", + "name": "tests/integration/targets/nxos_acls/tests/common/gathered.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4ad5b3d3c16b81ea4fcf40639099f5191577136f0cf3ff4970ed630d8248ec66", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/fixtures", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "8c6126ef877c72fdb6e19f6499e4c3ac4219a5fb4cde44f4529306aac3fd7966", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/fixtures/parsed.cfg", + "name": "tests/integration/targets/nxos_acls/tests/common/merged.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6189829f4b10872e4553b8c55db04c742cca9c7598d067ddb3eea05e0ab2f0d", + "chksum_sha256": "fc2db360c49a4f960de158645c43115dec175da832363eeaba86a8ea97d1e62b", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/replaced.yaml", + "name": "tests/integration/targets/nxos_acls/tests/common/replaced.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a2cbefd9d104a0f9e0370a13ed7e87feb1e74175d922f33d786e604e775a498", + "chksum_sha256": "2b9ce3eb07fb30eb390fc555830b61b4118c485523bf85538a805feb06ea0fb0", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/parsed.yaml", + "name": "tests/integration/targets/nxos_acls/tests/common/deleted.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29d4c709454554edeef9e3a0e394a93ff71200d5ae09e04d855d8edcedc24549", + "chksum_sha256": "14f12dadd4d09d23feee07007209b1eae18bc9c013a50f79ed39ae022e652226", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/tests/common/rendered.yaml", + "name": "tests/integration/targets/nxos_acls/tests/common/parsed.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7121942f388ee7ab8d2484101d1a980b1d666be25f8388c6f00438f36a99736d", - "format": 1 - }, - { - "name": "tests/integration/targets/nxos_bgp_address_family/vars", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "9c6e2f1a0b9c9d9dc2c33b7906490f5acde968592b9257f095b4cfc38eee3dd9", "format": 1 }, { - "name": "tests/integration/targets/nxos_bgp_address_family/vars/main.yml", + "name": "tests/integration/targets/nxos_acls/tests/common/populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "528513c35a708d559281b5758e5c998565f110acf10803504b3cdbf2accf1988", + "chksum_sha256": "ea179f0b4974165f1ad36daff838b34a663eb136543c6a908df7b8fe73027eaa", "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot", + "name": "tests/integration/targets/nxos_snmp_contact", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/tasks", + "name": "tests/integration/targets/nxos_snmp_contact/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_snmp_contact/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/tasks/main.yaml", + "name": "tests/integration/targets/nxos_snmp_contact/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_snmp_contact/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/meta", + "name": "tests/integration/targets/nxos_snmp_contact/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/meta/main.yml", + "name": "tests/integration/targets/nxos_snmp_contact/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/defaults", + "name": "tests/integration/targets/nxos_snmp_contact/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/defaults/main.yaml", + "name": "tests/integration/targets/nxos_snmp_contact/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/tests", + "name": "tests/integration/targets/nxos_snmp_contact/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/tests/common", + "name": "tests/integration/targets/nxos_snmp_contact/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snapshot/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_snmp_contact/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "171022870f501d3dcb8c73978ee34038cb5e65c32786bbabc9f638c9ae04be4d", + "chksum_sha256": "21c997106ed806dbad5a3cdba01f5e201161020b6498a5d92ac003b702fa579a", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps", + "name": "tests/integration/targets/nxos_reboot", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/tasks", + "name": "tests/integration/targets/nxos_reboot/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_reboot/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", + "chksum_sha256": "b93ca9bd41e9b2ddb1e47c5782c7104ad85b67441154a82ac8954fdaebc62cfc", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/tasks/main.yaml", + "name": "tests/integration/targets/nxos_reboot/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", + "chksum_sha256": "0789afb380e4ee3da221b8e5904d1fc0309acaaf7afce7e63c9ba4c75c34ef57", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_reboot/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/meta", + "name": "tests/integration/targets/nxos_reboot/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/meta/main.yml", + "name": "tests/integration/targets/nxos_reboot/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/defaults", + "name": "tests/integration/targets/nxos_reboot/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/defaults/main.yaml", + "name": "tests/integration/targets/nxos_reboot/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/tests", + "name": "tests/integration/targets/nxos_reboot/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/tests/common", + "name": "tests/integration/targets/nxos_reboot/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_traps/tests/common/sanity.yaml", + "name": "tests/integration/targets/nxos_reboot/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05f0dab9e4ec9f1e7c2800b2027b212b293b7f81a6a5a5645ded7d94b353e09f", + "chksum_sha256": "b4c67bb49d21e284b5a0589f01582abe664f16d3361279b26463e6db76fd2425", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host", + "name": "tests/integration/targets/nxos_snmp_traps", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/tasks", + "name": "tests/integration/targets/nxos_snmp_traps/tasks", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/tasks/nxapi.yaml", + "name": "tests/integration/targets/nxos_snmp_traps/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/tasks/main.yaml", + "name": "tests/integration/targets/nxos_snmp_traps/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/tasks/cli.yaml", + "name": "tests/integration/targets/nxos_snmp_traps/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/meta", + "name": "tests/integration/targets/nxos_snmp_traps/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/meta/main.yml", + "name": "tests/integration/targets/nxos_snmp_traps/meta/main.yml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/defaults", + "name": "tests/integration/targets/nxos_snmp_traps/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/defaults/main.yaml", + "name": "tests/integration/targets/nxos_snmp_traps/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/tests", + "name": "tests/integration/targets/nxos_snmp_traps/tests", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/tests/common", + "name": "tests/integration/targets/nxos_snmp_traps/tests/common", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/tests/common/sanity_snmp_v2_inform.yaml", + "name": "tests/integration/targets/nxos_snmp_traps/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54b2c813dda14d97a1eef23c8a3b3ff2bdc194b60ec4cf15d7f6e0068802afa5", + "chksum_sha256": "05f0dab9e4ec9f1e7c2800b2027b212b293b7f81a6a5a5645ded7d94b353e09f", "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/tests/common/sanity_snmp_v3_trap.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1e10b5c9c01f39edff0f76171c81720d458aca5775d0f5f97f20bd2e6c21f57f", + "name": "tests/integration/targets/nxos_logging_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/tests/common/sanity_snmp_v1_trap.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "aa6a8b70ec63534db6d01bad4ccb22de07cf1d7c0c65b148a02474964d1a4e72", + "name": "tests/integration/targets/nxos_logging_global/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tests/integration/targets/nxos_snmp_host/tests/common/sanity_snmp_v3_inform.yaml", + "name": "tests/integration/targets/nxos_logging_global/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0156bedc287881d6d9d767fd9720c5821708b9ad3c9c217c5c4b1df0a72a6891", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "tests/integration/target-prefixes.network", + "name": "tests/integration/targets/nxos_logging_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1d281d4e38e720eeeee03bdd1df2429947e358ec15ab276b0b29765d99953d63", + "chksum_sha256": "2396a1bb62aa2d673208deb59766a787971d061630b8467afa525b7fdcb2e95e", "format": 1 }, { - "name": "tests/.gitignore", + "name": "tests/integration/targets/nxos_logging_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "docs", + "name": "tests/integration/targets/nxos_logging_global/meta", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vrf_af_module.rst", + "name": "tests/integration/targets/nxos_logging_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "505afd306e1f21c5940397a50a876c3a2413e197d166db33f9196dfc1b9cb677", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_user_module.rst", + "name": "tests/integration/targets/nxos_logging_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_logging_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d655e1b47fea4edf25adb1fdd20fa7191ef114caaa31d5ce1c2b9edf46b1c63c", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_pim_rp_address_module.rst", + "name": "tests/integration/targets/nxos_logging_global/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_logging_global/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "94630c630affe8dedd940b41d0fcdab02712ade527964334956ca5698280d13d", + "chksum_sha256": "15f80d89c3629bea0c669753c52136268f11e94a83ba6e69411fc96ab8449457", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_logging_global/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_logging_global/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_logging_global/tests/common/fixtures", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_system_module.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/fixtures/parsed.cfg", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c8e2849fa4d54b78f6e1d87d2ce57d052b37b75b8ac2739b62ad111e326b617", + "chksum_sha256": "3a97c562338de257e93908f409c770a5439d362fcddcdb8d939dc7ff2e7002c6", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_ntp_options_module.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "adeee3c976eeaec6027d4327f520832708c6ecdffabfd321a854c8b6b821e07b", + "chksum_sha256": "d952ab3ac507f65ff98eb58e380db0abe1583198f653d77beaa4e384929ad698", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_evpn_global_module.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "993ea85ff1bf02311f55646f0c5dcadc2d216a2819b7902f43470a645d1b90d7", + "chksum_sha256": "82ec13620a0c096e01a22d68b13c59798667ca68d3ddbbc1be802ff3f415a562", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_aaa_server_module.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae7d06f89fb79b0ff5b7dbb41b289db70e8c602a08c1baac5b059adc72775665", + "chksum_sha256": "926b1b20a7babe989cc2f1b3e34a16d08368817d3ef38d6903650a294a42cc3a", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_config_module.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c973074149659b0f0130eaf0a7339a039cd5d496f13cfbb4e51c59d0af957096", + "chksum_sha256": "dadff9821e586c3a062c7ac4b2936903359a8fc4b2f4cceeb466f558c82b52d1", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_aaa_server_host_module.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e8d1dc8303a82ca59e70c37d6852f8dd1ba6b002e896a9f4f2182148a6944ef7", + "chksum_sha256": "04822e2f3237fcae131842012a520b5fde51c1fd4b381ab86aa055d7c076f867", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_pim_interface_module.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b7fa1c8e28a128af94059b3d66e3e40c97e7d748a858ff74e77a0e313641c3ff", + "chksum_sha256": "619954ad3ae24e83760fb7b9f09daaf010f96020056398fe49a04001326f72c8", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_fc_interfaces_module.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cd8685843982e7d823622c7c11bbb1fa2bc89409a7759f943a649c39540841d6", + "chksum_sha256": "7c13b226487605fb6b6c73406c97a1972ed4c1995825124cb426d64eaac1a2ec", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_httpapi.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb7f6fd0b46ad4b478746f0518b8d443e541f44ba8d77f999a42a760671ea015", + "chksum_sha256": "b1658713d71b118aec3c1e27ae2d2453c239d56b32e3c6d816f5187796b40c7c", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_overlay_global_module.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8362ed52554894dd979a332e946ede7fa0834c17d8980a08a282320a2a18391", + "chksum_sha256": "b4a5f8a10bd86d7609cb6688523bc611e052260c4a06bf9cf202f33eee40a1f5", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_lacp_module.rst", + "name": "tests/integration/targets/nxos_logging_global/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf3920fe2dbbd42f322d4a0f4dd23c875d01f6a5545dbc648ae5ae3aa62320de", + "chksum_sha256": "dd0584d7e6d6a3aa5942acda6002b2e13a2bd64d59ee04dc5122274268676cc8", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_ntp_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7a21e1c58d9ce02be1cfa7699138e3008ec4bef1aacbd137d142b22caafc7af0", + "name": "tests/integration/targets/nxos_lldp_global", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vrrp_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "26a52da59610c540242b40091c3fc689cf5b1672a4f36084202ebba38f5589e0", + "name": "tests/integration/targets/nxos_lldp_global/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_gir_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2969b2a880bc98f5272720086059bc55d861fc1ce00c8854c75aa061ba3aa8bf", + "chksum_sha256": "280d285e1a9b531b25d8b880d3a032933d7135004c4658b7f1eb4872c60cc666", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_bgp_global_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b21cb51d17f350ce70cf1731fca38c9a502e4b0b35c275a0214c976b9c0ce2c9", + "chksum_sha256": "a4138a366efebe8659a4237d00d38110163d05b728a38c3514dce547a6d16a9d", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_file_copy_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c38e717848ddfc093b17245d08c45e6beda5d7b1c263453ef0a43171d5008f47", + "chksum_sha256": "fe84894e2a9ff992a755f52f856ff23c23dd249fb9fe14dc4f264cd1a6070e12", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_l2_interfaces_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "0f0b13631588f0c4e04951537a83c446d484cc89ea73b5f3cb7472518f9524ef", + "name": "tests/integration/targets/nxos_lldp_global/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vtp_domain_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "18a52103976ba1d930a98e0e7fa45de34d95a86ca222e59b0ffc9629585cdf6a", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_nxapi_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7e1d3a6d1f0ab8c170068321f77ab36c1161892773c9efa90dfff711664bfdb3", + "name": "tests/integration/targets/nxos_lldp_global/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_ospfv2_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "302ee60d5fd7f5ab60ba47c4e55e45c094002dfd3203119bef8fcd7a2a030d3d", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_telemetry_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "2461b4210c818c4300ebd11916a38e830c129d01b644c205846e90a3e1e470c9", + "name": "tests/integration/targets/nxos_lldp_global/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_lldp_interfaces_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d351b81a44cbdf2e64c1c745af9cdd81b1a6ed89bc5b1e5d960b199a818c23c0", + "chksum_sha256": "ac136582618b2844cd5bb84e0aaf52f6b4e7a6ea581a0fa0ec5466e9c9c3bd68", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_snmp_community_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "273905bc36e919c6f348d146018b77d4b028457714b0f3b4b2fad6a078680fe7", + "name": "tests/integration/targets/nxos_lldp_global/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_igmp_interface_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1e6eb10d1c630069ea01a42ae07b033d7c7b5aa72fa3a758a74805dc59b6688a", + "name": "tests/integration/targets/nxos_lldp_global/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vtp_password_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tests/common/overridden.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aba8c49ea83acf4e1ad8de779ebc06e21940537ce459b53bcfbdabdf72dacd06", + "chksum_sha256": "8aeec5521c22e513a4e736c9b51461285abce953173508ae28fb02ecef95952a", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_snmp_user_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tests/common/rendered.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ebfbf6a1bdda73a9f3e5943dc33bbb38d636865ab213c2e79501baca180a6ef", + "chksum_sha256": "18c1848ef28d20fffd52045955b5a54ca72aea45d5c2ff9060d8856aeeb7162a", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_evpn_vni_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tests/common/gathered.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7ab07a1a0137a0b43f2fee0160fff6af516646ec848a811a1a46e012c00cefbb", + "chksum_sha256": "e5f9f21d8529dd8144e8259391a04642355d3f3c9063db5a27472a5180d6b7dd", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_ping_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tests/common/merged.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "74122faa018ba84c3628abadef990f3888d58a72897d4b56ec41882348a12141", + "chksum_sha256": "e82eb173fbdc3209c167bc096bf1665240e72b24a34f75c19ec1a3b7c5d4c8d1", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_snmp_server_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tests/common/_remove_config.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2dfc1bc683bd7bd38223bf73283e1680999597e4bbef9f73a3a93f829e1e9bce", + "chksum_sha256": "339639545338297ee483c8e1370eeefc88356fceb240523dbbc6d8c237444982", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_hsrp_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tests/common/replaced.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "41fd5b3b6c57a33c8ce81d03798b35d598496b89d13327c18dfe27dedaf99ae4", + "chksum_sha256": "a62a8ac1f40b48c56dbd06eb543897331236925608b859a758f1c91037f17455", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_snmp_contact_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tests/common/deleted.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cbb715723ead144ae09062bf77f7f4a73e4a5035a81a7ecec925b00410e8579b", + "chksum_sha256": "ffe0021fbc8bd39a7990267dc791d78f2571f3285efd5fd1244c68159ffca98f", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_facts_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tests/common/parsed.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd70b6a7af989f66c15280934d332c07b93afcc7b1e106ea41ff3157ccd66f7f", + "chksum_sha256": "ca1cd52e0c16bb7a97f9e1aa4eb9c49600b25854f35a93b0bcfeaf3ead1e7c07", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_install_os_module.rst", + "name": "tests/integration/targets/nxos_lldp_global/tests/common/_populate_config.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "60aba080258dbcb6a750738a28130c662db2bdb378f5a9301974d1b35eb559a0", + "chksum_sha256": "c7bacd3b7cb077dc6895ecf350711c1bf39e18739a361f6cf514e9dd4d6355f3", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_snapshot_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a0e3fad000d677b7f24bf64090f02742004a9cf100306a97f51aff9594fe8d9f", + "name": "tests/integration/targets/nxos_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_igmp_snooping_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a31b9e7cac6c66069bc1b9a46fbf4f3e778fec3cdbdb55f4b6d672abeaf7d795", + "name": "tests/integration/targets/nxos_interfaces/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_ospf_interfaces_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14b703fc053e0bb1480660ba83c421a75d064f6ccc5b036d614cd9fb260045a0", + "chksum_sha256": "adcabdbc005b34ef70ef70c9a7a3b0bfc9b94ff93d2f3ea18bf1f19fbc2d2201", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_igmp_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f12f1c5cb360aa1634964c6343e14141cfce7fc49e37e0062c2957b20459399", + "chksum_sha256": "64ca5b4de950cd0d788bdd92389f7741e663d949ee6b0e343f1038c573564b64", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_bgp_address_family_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6110c639e4f6c1ecbf4b26eae3c5cee417711f047ef02b28ac30a6d802fd5152", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vrf_interface_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "64296c4de9145ceec2a49e4f09b2573fd163bbe33247b395769cb6833cdd16ba", + "name": "tests/integration/targets/nxos_interfaces/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vpc_interface_module.rst", + "name": "tests/integration/targets/nxos_interfaces/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "941e607951f2fe1347329a6f68d9303ff04fcebedfd0792fe5ab181625e120d3", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "docs/__init__.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "name": "tests/integration/targets/nxos_interfaces/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_static_routes_module.rst", + "name": "tests/integration/targets/nxos_interfaces/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "321573507ba209d6e730e742919ab4a4dd106bb60fbc63e34cf974b9868890b5", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vlans_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "92873fb2eb3e2513027457a149812b55bcdb3bc05a488ff1eb448a97fcc45be0", + "name": "tests/integration/targets/nxos_interfaces/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_rpm_module.rst", + "name": "tests/integration/targets/nxos_interfaces/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e928284ecee7ed27ef75a660db2e02900d8de4cf0d255bfd31a819f4e2abe036", + "chksum_sha256": "c7aa68e2e8b3bb1d6b4258ed279670b1a8e5fc5e6a63b446eab511c3963db1c1", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_lldp_global_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "6994ab2f365796541f268d6d3051e4a192e2b911495e12342d6d3cad12016f2b", + "name": "tests/integration/targets/nxos_interfaces/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_gir_profile_management_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_interfaces/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a61bb74ddc282c53b69e51c4b4cbad0edbe362819e4bc3e823fb2dc892052418", + "chksum_sha256": "e26569250511575d31ea2338e2abede7fda11240bd583ac7896adccb24abd7f2", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_acl_interfaces_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "274afa56a270c6d4b216af200a3bde7d6b964f281fe641ef4e5b0eeacb27c844", + "chksum_sha256": "49898e976fb440f5b1ebc404e489b6e2511049c950c8c0d8fe75e251dc5c3671", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_interfaces_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ccbb66492488e26ebf3982743505a0b9fadaa7c6a63adf3d93190064d6419669", + "chksum_sha256": "d5ba532156bd9771e2ec35bb085d404ed049b88e1da827ab9eb6d4dd38a3c871", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_snmp_location_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "321530eb77aa27eecab0eb6090a189eee7b9a7431cc94750c1f0f38718058d4d", + "chksum_sha256": "c8d1e0d8e50dd46dc84c73912990ffca760b0f5e1a8ad8ab2f10a90bce902369", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_devicealias_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4b7ad5d619f577089e5a87b5b628c6c869bd4adf86eb8e8c547b491154361dc6", + "chksum_sha256": "52f0f66116a7b07a9bfd39bcc2cdabc5a2db68ed24d92751f3f53f08332f0ed0", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_udld_interface_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7786920d50729a8a8a73a20bcd0d4296af8095f52590076177511dc0c696dda5", + "chksum_sha256": "a639b04de3b8a2a70660b4034c291526f9e1f4bee9e24e4e543bd719a4f65a50", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vpc_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/rtt.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0aeb5a090773bcf219cb3ab181424bde284e9669ccc3ace93175b739fec4f81a", + "chksum_sha256": "0eb7659a55ab72845d72bf76bcac9618bf84c8d5d55c6fa8f04ff9c15c68a92a", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_hostname_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/gathered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2cc61e3ea5053c4ee1bb14f41a85e67e4790010b7142e21bb72fcc88a5e715aa", + "chksum_sha256": "3f875bd8877a898338a0402b34179ad17f45b84d1623c72741490f52913eb064", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_acls_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a87f6ac4c6d930a3561852c685ea70e75e34f7653b1cfbade26432a94e2b736", + "chksum_sha256": "c5a2d4d2fa3245673307a06eb29fd3b751fad50fde2dac24f84aaff5498a5af7", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_l3_interfaces_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a3839881ddd3679d82e6376c6aab14f88f57d9b2b626414e90c1845d02f2e6df", + "chksum_sha256": "454396b9f57fd4895a1d8063b565bde8a053291bc6f6e5f934397c75e99ac6cb", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_netconf.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/purged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "da11bd9904bba75e1ca0484cf6ddc0ebcd0a2ffc12b1e9132d60f8a0bc54705c", + "chksum_sha256": "832b01df3053b44b5e69f7b1e62fede8df0291af913f7b4abd1d4545439ef718", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_logging_global_module.rst", + "name": "tests/integration/targets/nxos_interfaces/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "727f844d56c2eef418f10b022c0295ade96365f73b0654b00b5b586b42dfcf44", + "chksum_sha256": "eb7918401f281cb2d25ccebc214ac1fd9ae10975f3ca4f77f56a53f3cc485a40", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_snmp_traps_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "25326502a9e485b1bfe99093b316af67686f797fb8ce8d972c9ae914d8e9da27", + "name": "tests/integration/targets/nxos_snmp_community", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_logging_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "d43af63274e03108055551c1ddf7127fe3bf869db5fd5b73bcf3e0b95bcbaea0", + "name": "tests/integration/targets/nxos_snmp_community/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_bgp_neighbor_address_family_module.rst", + "name": "tests/integration/targets/nxos_snmp_community/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3931a7ccbc77cb049c8d06798076797b250d4fb3b2ad60da12b799b62cf01285", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_pim_module.rst", + "name": "tests/integration/targets/nxos_snmp_community/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f974bc3ca8293d0e60b7dd26ef3babfc02003702ea5632feee97fbba59fc59a0", + "chksum_sha256": "bb83a5490c188c20d9a8632bdb13043146a87d5dfc555cd2e389ee30885bf7ca", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_command_module.rst", + "name": "tests/integration/targets/nxos_snmp_community/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ceaf1d413d6a78bb8b3611ff936316cd03c6e6bbef6b99d95e9998695f9f3a85", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vsan_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "dfa3dd3cb1bb3c94e13e1d85c9df1221bd9dace01ad337346126ccca7808680a", + "name": "tests/integration/targets/nxos_snmp_community/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vxlan_vtep_module.rst", + "name": "tests/integration/targets/nxos_snmp_community/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "920cbc7cf6b2d9736bbeacbf6751674c6b8985af13183432f027070235ed745e", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_banner_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "f33242bd0d3b632cb5e97dc9ce3e6a9029060e204c87a3554aff1ed36a7d19f0", + "name": "tests/integration/targets/nxos_snmp_community/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_bfd_global_module.rst", + "name": "tests/integration/targets/nxos_snmp_community/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ff1d376f71be1de3dc5e97bfae1ea331e92430adb9e31b61e6fdde8da710538", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_bgp_templates_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "00bb83305a1e55e1fa99e7008ff4131123f6702514a66409c524e6ca1374c00e", + "name": "tests/integration/targets/nxos_snmp_community/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_ospfv3_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "ecb974bec3af1412bb18f229492198eaf19c2de8102d65176de90d2f2810566c", + "name": "tests/integration/targets/nxos_snmp_community/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_bfd_interfaces_module.rst", + "name": "tests/integration/targets/nxos_snmp_community/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "17874cc21b8abc82fc53aace972f6d49833e45d5c1a2cc672ebe97c5c98c2102", + "chksum_sha256": "7a31444a04409e8b5f9d58864e5405ec3ded7ec744e6e731b3ca0d22ec1a6ee0", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_rollback_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "04cf041066c5d09e1a5317b7cb7cc1eb2504f0d1faeb9a28d3d59f3ae98c783f", + "name": "tests/integration/targets/nxos_vsan", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_reboot_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "194778e502ec450e673e2562baf84d459a9d844c3c3f281cd6ed2f2bc2618087", + "name": "tests/integration/targets/nxos_vsan/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_hsrp_interfaces_module.rst", + "name": "tests/integration/targets/nxos_vsan/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "717413f42fcf927466b00bb8a1e38f17e5e7391794b8a7431edf822a7a71da9d", + "chksum_sha256": "f47853340600c1c9b76ed00695079b203ae45896e40acfac2f48e28f2ad98b40", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_zone_zoneset_module.rst", + "name": "tests/integration/targets/nxos_vsan/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7e6e8c9e520a4ae76c3532b010ea67997a01a555775c112b89d094d129999c3b", + "chksum_sha256": "44ac0ca4032d1756f572a45038a7dfbf52c9ba9762815aa3a900b7c425036120", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_cliconf.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "546fc754b81109404a33285c90c3bba565b1a2529e00b7284609b62bb25b4d8b", + "name": "tests/integration/targets/nxos_vsan/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_feature_module.rst", + "name": "tests/integration/targets/nxos_vsan/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e31d99494f87afad1ecdce42d483a32e523e8e978f42b1955de1f3b0033bcf80", + "chksum_sha256": "f52d711103d50a437830c6fbcd04fb4bab49a0f82f6d26d1c791c6e8488dd090", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vrf_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9e68ccbcf499b55feecf2b3c6b57f4b79b6dae43fd2671946ae3a65cd16d5ad6", + "name": "tests/integration/targets/nxos_vsan/defaults", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_lag_interfaces_module.rst", + "name": "tests/integration/targets/nxos_vsan/defaults/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ef2ea1a3291066c3f7260b2247a47058a65afae30226465b6b6be9994617789", + "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_ntp_global_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "4fce862cb2f944fdb7438e8c9796fc1138b700a4acfc3654181d589bfaa170cb", + "name": "tests/integration/targets/nxos_vsan/vars", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_prefix_lists_module.rst", + "name": "tests/integration/targets/nxos_vsan/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e411c76a91d77aac63c31c51864f7247f91fb48226b134bbb1b2cbc29029bfa3", + "chksum_sha256": "97b10ee26b05c01b328d79887c41479bd2bf559184fb1df4af53645db6e109ba", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_route_maps_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "501f2b75dfc0dbbe3054ebcdfad739b3a8ba8f4c367e8d22baabe987addea62c", + "name": "tests/integration/targets/nxos_vsan/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_udld_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "26d0773b5cbd658f39b2c08b9949e45ae5aa8a94405c4f1ef9ed0708c682c4a3", + "name": "tests/integration/targets/nxos_vsan/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_lacp_interfaces_module.rst", + "name": "tests/integration/targets/nxos_vsan/tests/common/sanity.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "34e04733378368d79deb4513e17315978468b0180b5e9c1d2e4ac863ba3ad1b1", + "chksum_sha256": "cb88ac95adfc25626d2c81d7dc7d45341c006ac0490dda44c675101938ec4bcc", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vxlan_vtep_vni_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "7aebad3ad5c1c53036df468c782c366a17fea865b15a189f99aff17c171e464b", + "name": "tests/integration/targets/nxos_lag_interfaces", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_vtp_version_module.rst", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "c27cc4c99dbad288216a917b46c9949f1cc2ed72a4268e79ef61e708d6a1edff", + "name": "tests/integration/targets/nxos_lag_interfaces/tasks", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "docs/cisco.nxos.nxos_snmp_host_module.rst", + "name": "tests/integration/targets/nxos_lag_interfaces/tasks/nxapi.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "738d6be19ec9aea9158035e6f1a2302d3484500ee9b3148e2d01628bf2f9fcdc", + "chksum_sha256": "228491b275c71b123f5bbb1dbac0093d55bd77f2a291bec15d452b489ef1674d", "format": 1 }, { - "name": "docs/cisco.nxos.nxos_ntp_auth_module.rst", + "name": "tests/integration/targets/nxos_lag_interfaces/tasks/main.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fade0c737ea69c03d4075d1ed2a53eed91225b511d5c18e8b36ce965cd53f724", + "chksum_sha256": "b9647339f89f9eeca01a09cd4f31da21e0c0c2f10793ea3ea06c24fd8664046e", "format": 1 }, { - "name": ".isort.cfg", + "name": "tests/integration/targets/nxos_lag_interfaces/tasks/cli.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3fc5fcc23727e7c5b9f1a7035303990229f796a171a84e21051dd1d242b90c52", + "chksum_sha256": "82e7cf4c490409760e85c9516e174b27c8d67fb419e829353d94c4d022016245", "format": 1 }, { - "name": "pyproject.toml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1cb6a45dfa2625123890b93ad7fdc156b063c16e8ae6dba11511a1d1986b0fcc", + "name": "tests/integration/targets/nxos_lag_interfaces/meta", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "bindep.txt", + "name": "tests/integration/targets/nxos_lag_interfaces/meta/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f0e2709e0a523d84f824ccfb6883f62e9d27f70bd7a38be0d18506223ccfe60e", + "chksum_sha256": "306ef26bd70b58285bef6b50a83c64b26b9077181c6823ef20ac63252373d5de", "format": 1 }, { - "name": "changelogs", + "name": "tests/integration/targets/nxos_lag_interfaces/defaults", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "changelogs/fragments", + "name": "tests/integration/targets/nxos_lag_interfaces/defaults/main.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7d754db246e92eda93bade9b741e09afdc7c5ba2754a4ea5d874f92a479b65d0", + "format": 1 + }, + { + "name": "tests/integration/targets/nxos_lag_interfaces/vars", "ftype": "dir", "chksum_type": null, "chksum_sha256": null, "format": 1 }, { - "name": "changelogs/fragments/.keep", + "name": "tests/integration/targets/nxos_lag_interfaces/vars/main.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "chksum_sha256": "05455a29f1db6e4d3602a83b356d9d7353037b1ef0627d2d2943b43520af76e6", "format": 1 }, { - "name": "changelogs/config.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "54c802c2ade537e8b71ba45d10c73a422778a62aab0093bc6805c75ab8c7f448", + "name": "tests/integration/targets/nxos_lag_interfaces/tests", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "changelogs/changelog.yaml", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "bd41980acf38b47c9690052ff587311d4130c6f8180315df9540e1060d14c8e9", + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, "format": 1 }, { - "name": "tox.ini", + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/parsed.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "beb3313789623e5570d0871f6115ba563a0d92ea75e8e89cbd9f79045b4fe279", + "chksum_sha256": "c10b8ab6302c0df3b5d8c99d1f67a9d92b80b518250c11e650dde96bc8f6b886", "format": 1 }, { - "name": "CHANGELOG.rst", + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/merged.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4ee70734d5e5b80f6503635de8d1655903b775ccf03679361cbb9cec895fc3f0", + "chksum_sha256": "53c3cd45c91dd6078cf71ea7a9973d65069a61eaef47c49a51c7b66355970a63", "format": 1 }, { - "name": ".gitignore", + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/deleted.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "179a6d0780422c32653a71b9395a3ecb8b3859346ffa3e38ca3c8d90f8063fd2", + "chksum_sha256": "4af7dc65128b02d59c3c12d5f94cfc4a77c266e867b79b172fc6425c871f9ffd", "format": 1 }, { - "name": ".pre-commit-config.yaml", + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/replaced.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0f78200450af191fc02f788182fbe9253661ce2257435654c5806b4482487901", + "chksum_sha256": "08e830f9373a4a360949e7c56cf2c374dad94a559adbde314f3b66daa642a0c8", "format": 1 }, { - "name": ".prettierignore", + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/overridden.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe21cf5ca4606d16ccedb1bccc85ef06771ee697924ca50ecd8ca4c98acce5cc", - "format": 1 - }, - { - "name": ".github", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "chksum_sha256": "96e1c7636b178b2ae705ac0d7dd2ea67a4d4c1aaf29122900549bde0da43b4de", "format": 1 }, { - "name": ".github/dependabot.yml", + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/_remove_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c4d7b4c429faafe0eb46a070eafcd3d8d84d9083b5fe72943d627b5f4ccf0dd8", + "chksum_sha256": "d6daa4d3b2cb43c7b62b7606b80b4f212348ecb1e28a516d16ac90e02f459266", "format": 1 }, { - "name": ".github/workflows", - "ftype": "dir", - "chksum_type": null, - "chksum_sha256": null, + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/gathered.yaml", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2e4441e52874693cf2caa332a4639c23ad59350a6eda4e9c5109a9792a306447", "format": 1 }, { - "name": ".github/workflows/codecoverage.yml", + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/empty_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efd9c5d5eb70165779fc2ad3269b85d618c25a266927d19c47253c0db97ebbf4", + "chksum_sha256": "96cae582141397682d092a6b5d6de9651b6203157e891342063c439ffb130a4d", "format": 1 }, { - "name": ".github/workflows/ack.yml", + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/rendered.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24c6fbafaa69e3e3ee696f2cefa5120794b62cef7e870553dddce8b8af0a127c", + "chksum_sha256": "6eb88f454c810cee9cf1be9fc56eb6a574516fc49bddc50e81f329dc98cfb9eb", "format": 1 }, { - "name": ".github/workflows/release.yml", + "name": "tests/integration/targets/nxos_lag_interfaces/tests/common/_populate_config.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9b7dba505905600bbb9f0d8e9956b7cc20f80edfa742dfdae9395542f417aa1", + "chksum_sha256": "76ea0558de38d30dd8813738f9d92fba9867c7d37fcb2a104acaaf5aeebb12af", "format": 1 }, { - "name": ".github/workflows/push.yml", + "name": "tests/integration/target-prefixes.network", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0c8ecdf1088f9e34c9383c49a18a7c54d08ef378ba29eaa6373b52ee8e8bd522", + "chksum_sha256": "1d281d4e38e720eeeee03bdd1df2429947e358ec15ab276b0b29765d99953d63", "format": 1 }, { - "name": ".github/workflows/tests.yml", + "name": "tests/integration/test_integration.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a363c29cae8f4b799d88470e5cc5546312966f5559f25ffd680611119035dd29", + "chksum_sha256": "a4966cf32b6505b51255468ffa72db6f36b948b07aa5b9ae3313607a93e48988", "format": 1 }, { - "name": ".github/release-drafter.yml", + "name": "tox-ansible.ini", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7cbc785c8661033cd9dd7a60897484fce731cbe3dc124a689fc3e934b1d974fb", + "chksum_sha256": "da802bfc2dc2671ca7caba028e8a635b459b131874041d119b698717333a7a49", "format": 1 } ], diff --git a/ansible_collections/cisco/nxos/MANIFEST.json b/ansible_collections/cisco/nxos/MANIFEST.json index 2f7654ec3..dd68be244 100644 --- a/ansible_collections/cisco/nxos/MANIFEST.json +++ b/ansible_collections/cisco/nxos/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "cisco", "name": "nxos", - "version": "5.3.0", + "version": "8.0.0", "authors": [ "Ansible Network Community (ansible-network)" ], @@ -18,7 +18,7 @@ "license": [], "license_file": "LICENSE", "dependencies": { - "ansible.netcommon": ">=2.6.1" + "ansible.netcommon": ">=6.1.0" }, "repository": "https://github.com/ansible-collections/cisco.nxos", "documentation": null, @@ -29,7 +29,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9600e95767ff5e93775f06e4e23e6eba580715b1e945d26ddb3f8bac0ce16cbe", + "chksum_sha256": "e7c60a9cfda9d9f1ae29b578d7a8f10bf08f80cfb94eb05f7eb016110eaa973d", "format": 1 }, "format": 1 diff --git a/ansible_collections/cisco/nxos/README.md b/ansible_collections/cisco/nxos/README.md index e8ad6e9d9..82ce821c8 100644 --- a/ansible_collections/cisco/nxos/README.md +++ b/ansible_collections/cisco/nxos/README.md @@ -1,7 +1,5 @@ - - # Cisco NX-OS Collection -[![CI](https://zuul-ci.org/gated.svg)](https://dashboard.zuul.ansible.com/t/ansible/project/github.com/ansible-collections/cisco.nxos) +[![CI](https://zuul-ci.org/gated.svg)](https://dashboard.zuul.ansible.com/t/ansible/project/github.com/ansible-collections/cisco.nxos) [![Codecov](https://codecov.io/gh/ansible-collections/cisco.nxos/branch/main/graph/badge.svg)](https://codecov.io/gh/ansible-collections/cisco.nxos) [![CI](https://github.com/ansible-collections/cisco.nxos/actions/workflows/tests.yml/badge.svg?branch=main&event=schedule)](https://github.com/ansible-collections/cisco.nxos/actions/workflows/tests.yml) @@ -15,7 +13,7 @@ The modules with full support for Cisco MDS are tested against NX-OS 8.4(1) on M ## Ansible version compatibility -This collection has been tested against following Ansible versions: **>=2.9.10**. +This collection has been tested against following Ansible versions: **>=2.14.0**. For collections that support Ansible 2.9, please ensure you update your `network_os` to use the fully qualified collection name (for example, `cisco.ios.ios`). @@ -25,7 +23,7 @@ PEP440 is the schema used to describe the versions of Ansible. ### Supported connections -The Cisco NX-OS collection supports ``network_cli`` and ``httpapi`` connections. +The Cisco NX-OS collection supports ``network_cli`` and ``httpapi`` connections. A detailed platform guide can be found [here](https://github.com/ansible-collections/cisco.nxos/blob/main/platform_guide.rst). ## Included content @@ -84,12 +82,8 @@ Name | Description [cisco.nxos.nxos_lag_interfaces](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_lag_interfaces_module.rst)|LAG interfaces resource module [cisco.nxos.nxos_lldp_global](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_lldp_global_module.rst)|LLDP resource module [cisco.nxos.nxos_lldp_interfaces](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_lldp_interfaces_module.rst)|LLDP interfaces resource module -[cisco.nxos.nxos_logging](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_logging_module.rst)|Manage logging on network devices [cisco.nxos.nxos_logging_global](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_logging_global_module.rst)|Logging resource module. -[cisco.nxos.nxos_ntp](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_ntp_module.rst)|Manages core NTP configuration. -[cisco.nxos.nxos_ntp_auth](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_ntp_auth_module.rst)|Manages NTP authentication. [cisco.nxos.nxos_ntp_global](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_ntp_global_module.rst)|NTP Global resource module. -[cisco.nxos.nxos_ntp_options](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_ntp_options_module.rst)|Manages NTP options. [cisco.nxos.nxos_nxapi](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_nxapi_module.rst)|Manage NXAPI configuration on an NXOS device. [cisco.nxos.nxos_ospf_interfaces](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_ospf_interfaces_module.rst)|OSPF Interfaces Resource Module. [cisco.nxos.nxos_ospfv2](https://github.com/ansible-collections/cisco.nxos/blob/main/docs/cisco.nxos.nxos_ospfv2_module.rst)|OSPFv2 resource module diff --git a/ansible_collections/cisco/nxos/changelogs/changelog.yaml b/ansible_collections/cisco/nxos/changelogs/changelog.yaml index 055d17154..c0b40cc7f 100644 --- a/ansible_collections/cisco/nxos/changelogs/changelog.yaml +++ b/ansible_collections/cisco/nxos/changelogs/changelog.yaml @@ -1023,3 +1023,71 @@ releases: - fix_config_module.yaml - trivial.yaml release_date: "2023-11-29" + 6.0.0: + changes: + major_changes: + - Bumping `requires_ansible` to `>=2.14.0`, since previous ansible-core versions + are EoL now. + release_summary: + Starting from this release, the minimum `ansible-core` version + this collection requires is `2.14.0`. The last known version compatible with + ansible-core<2.14 is `v5.3.0`. + fragments: + - prep_300.yaml + - trivial_lint.yaml + release_date: "2023-11-30" + 6.0.1: + changes: + bugfixes: + - Prevents module_defaults from were being incorrectly applied to the platform + action, instead of the concerned module. + - nxos_file_copy - correctly set file_pull_timeout/persistent_command_timeout + value. + fragments: + - file_copy.yaml + - module_defaults.yaml + release_date: "2024-01-30" + 6.0.2: + changes: + bugfixes: + - nxos_interfaces - Correctly enable L3 interfaces on supported N3K platforms + (https://github.com/ansible-collections/cisco.nxos/issues/749). + fragments: + - fix_749.yaml + release_date: "2024-02-06" + 6.0.3: + changes: + bugfixes: + - nxos_acls - Fix parsing of ace entries with range in it. (https://github.com/ansible-collections/cisco.nxos/issues/788) + fragments: + - acls_gather_fix.yml + release_date: "2024-02-14" + 7.0.0: + changes: + major_changes: + - This release removes four previously deprecated modules from this collection. + Please refer to the **Removed Features** section for details. + removed_features: + - The nxos_logging module has been removed with this release. + - The nxos_ntp module has been removed with this release. + - The nxos_ntp_auth module has been removed with this release. + - The nxos_ntp_options module has been removed with this release. + fragments: + - major_700.yaml + release_date: "2024-03-27" + 8.0.0: + changes: + bugfixes: + - nxos_facts - correct parse JSON output when multiple interfaces have IPv6 + address assigned (https://github.com/ansible-collections/cisco.nxos/issues/771). + major_changes: + - Updated the minimum required ansible.netcommon version to 6.1.0 to support the cli_restore module. + minor_changes: + - Add support for cli_restore functionality. + - Please refer the PR to know more about core changes (https://github.com/ansible-collections/ansible.netcommon/pull/618). + The cli_restore module is a part of ansible.netcommon. + fragments: + - add_restore_support.yaml + - fix_771.yaml + - trivial.yaml + release_date: "2024-04-19" diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_acl_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_acl_interfaces_module.rst index 938e0cafe..a2885df02 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_acl_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_acl_interfaces_module.rst @@ -258,28 +258,28 @@ Examples - name: Merge ACL interfaces configuration cisco.nxos.nxos_acl_interfaces: config: - - name: Ethernet1/2 - access_groups: - - afi: ipv6 - acls: - - name: ACL1v6 - direction: in - - - name: Eth1/5 - access_groups: - - afi: ipv4 - acls: - - name: PortACL - direction: in - port: true - - - name: ACL1v4 - direction: out - - - afi: ipv6 - acls: - - name: ACL1v6 - direction: in + - name: Ethernet1/2 + access_groups: + - afi: ipv6 + acls: + - name: ACL1v6 + direction: in + + - name: Eth1/5 + access_groups: + - afi: ipv4 + acls: + - name: PortACL + direction: in + port: true + + - name: ACL1v4 + direction: out + + - afi: ipv6 + acls: + - name: ACL1v6 + direction: in state: merged # After state: @@ -305,20 +305,20 @@ Examples - name: Replace interface configuration with given configuration cisco.nxos.nxos_acl_interfaces: config: - - name: Eth1/5 - access_groups: - - afi: ipv4 - acls: - - name: NewACLv4 - direction: out - - - name: Ethernet1/3 - access_groups: - - afi: ipv6 - acls: - - name: NewACLv6 - direction: in - port: true + - name: Eth1/5 + access_groups: + - afi: ipv4 + acls: + - name: NewACLv4 + direction: out + + - name: Ethernet1/3 + access_groups: + - afi: ipv6 + acls: + - name: NewACLv6 + direction: in + port: true state: replaced # After state: @@ -344,21 +344,21 @@ Examples - name: Override interface configuration with given configuration cisco.nxos.nxos_acl_interfaces: config: - - name: Ethernet1/3 - access_groups: - - afi: ipv4 - acls: - - name: ACL1v4 - direction: out - - - name: PortACL - port: true - direction: in - - afi: ipv6 - acls: - - name: NewACLv6 - direction: in - port: true + - name: Ethernet1/3 + access_groups: + - afi: ipv4 + acls: + - name: ACL1v4 + direction: out + + - name: PortACL + port: true + direction: in + - afi: ipv6 + acls: + - name: NewACLv6 + direction: in + port: true state: overridden # After state: @@ -384,8 +384,8 @@ Examples - name: Delete ACL configuration on interfaces cisco.nxos.nxos_acl_interfaces: config: - - name: Ethernet1/5 - - name: Ethernet1/2 + - name: Ethernet1/5 + - name: Ethernet1/2 state: deleted # After state: @@ -498,28 +498,28 @@ Examples - name: Render required configuration to be pushed to the device cisco.nxos.nxos_acl_interfaces: config: - - name: Ethernet1/2 - access_groups: - - afi: ipv6 - acls: - - name: ACL1v6 - direction: in - - - name: Ethernet1/5 - access_groups: - - afi: ipv4 - acls: - - name: PortACL - direction: in - port: true - - name: ACL1v4 - direction: out - - afi: ipv6 - acls: - - name: ACL1v6 - direction: in + - name: Ethernet1/2 + access_groups: + - afi: ipv6 + acls: + - name: ACL1v6 + direction: in + - name: Ethernet1/5 + access_groups: + - afi: ipv4 + acls: + - name: PortACL + direction: in + port: true + - name: ACL1v4 + direction: out + - afi: ipv6 + acls: + - name: ACL1v6 + direction: in state: rendered + # returns # rendered: # interface Ethernet1/2 diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_acls_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_acls_module.rst index 8a4c23f3d..1b806511d 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_acls_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_acls_module.rst @@ -3140,13 +3140,13 @@ Examples acls: - name: ACL1v6 aces: - - grant: permit - sequence: 10 - source: - any: true - destination: - prefix: 2001:db8:12::/32 - protocol: sctp + - grant: permit + sequence: 10 + source: + any: true + destination: + prefix: 2001:db8:12::/32 + protocol: sctp # Task Output # ----------- @@ -3578,7 +3578,7 @@ Examples - name: Delete all ACLs in given AFI cisco.nxos.nxos_acls: config: - - afi: ipv4 + - afi: ipv4 state: deleted # Task Output @@ -3913,38 +3913,38 @@ Examples - name: Render required configuration to be pushed to the device cisco.nxos.nxos_acls: config: - - afi: ipv4 - acls: - - name: ACL1v4 - aces: - - grant: deny - destination: - address: 192.0.2.64 - wildcard_bits: 0.0.0.255 - source: - any: true - port_protocol: - lt: 55 - protocol: tcp - protocol_options: - tcp: - ack: true - fin: true - sequence: 50 - - - afi: ipv6 - acls: - - name: ACL1v6 - aces: - - grant: permit - sequence: 10 - source: - any: true - destination: - prefix: 2001:db8:12::/32 - protocol: sctp + - afi: ipv4 + acls: + - name: ACL1v4 + aces: + - grant: deny + destination: + address: 192.0.2.64 + wildcard_bits: 0.0.0.255 + source: + any: true + port_protocol: + lt: 55 + protocol: tcp + protocol_options: + tcp: + ack: true + fin: true + sequence: 50 + - afi: ipv6 + acls: + - name: ACL1v6 + aces: + - grant: permit + sequence: 10 + source: + any: true + destination: + prefix: '2001:db8:12::/32' + protocol: sctp state: rendered + # Task Output # ----------- # diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bfd_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bfd_interfaces_module.rst index 17aac421c..975de891c 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bfd_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bfd_interfaces_module.rst @@ -178,12 +178,12 @@ Examples - name: Configure interfaces cisco.nxos.nxos_bfd_interfaces: config: - - name: Ethernet1/1 - bfd: enable - echo: enable - - name: Ethernet1/2 - bfd: disable - echo: disable + - name: Ethernet1/1 + bfd: enable + echo: enable + - name: Ethernet1/2 + bfd: disable + echo: disable state: merged @@ -192,12 +192,12 @@ Examples - name: Configure interfaces cisco.nxos.nxos_bfd_interfaces: config: - - name: Ethernet1/1 - bfd: enable - echo: enable - - name: Ethernet1/2 - bfd: disable - echo: disable + - name: Ethernet1/1 + bfd: enable + echo: enable + - name: Ethernet1/2 + bfd: disable + echo: disable state: overridden @@ -206,12 +206,12 @@ Examples - name: Configure interfaces cisco.nxos.nxos_bfd_interfaces: config: - - name: Ethernet1/1 - bfd: enable - echo: enable - - name: Ethernet1/2 - bfd: disable - echo: disable + - name: Ethernet1/1 + bfd: enable + echo: enable + - name: Ethernet1/2 + bfd: disable + echo: disable state: replaced # Using rendered @@ -219,12 +219,12 @@ Examples - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_bfd_interfaces: config: - - name: Ethernet1/800 - bfd: enable - echo: enable - - name: Ethernet1/801 - bfd: disable - echo: disable + - name: Ethernet1/800 + bfd: enable + echo: enable + - name: Ethernet1/801 + bfd: disable + echo: disable state: rendered # Task Output (redacted) diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_address_family_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_address_family_module.rst index 8378c8439..d16dbee7d 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_address_family_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_address_family_module.rst @@ -1674,11 +1674,11 @@ Examples safi: unicast vrf: site-1 default_information: - originate: True + originate: true aggregate_address: - prefix: 203.0.113.0/24 - as_set: True - summary_only: True + as_set: true + summary_only: true - afi: ipv6 safi: multicast vrf: site-1 @@ -1727,11 +1727,11 @@ Examples # safi: unicast # vrf: site-1 # default_information: - # originate: True + # originate: true # aggregate_address: # - prefix: 203.0.113.0/24 - # as_set: True - # summary_only: True + # as_set: true + # summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 @@ -1797,8 +1797,8 @@ Examples non_critical_delay: 180 aggregate_address: - prefix: 203.0.113.0/24 - as_set: True - summary_only: True + as_set: true + summary_only: true - afi: ipv4 safi: unicast vrf: site-1 @@ -1824,11 +1824,11 @@ Examples # safi: unicast # vrf: site-1 # default_information: - # originate: True + # originate: true # aggregate_address: # - prefix: 203.0.113.0/24 - # as_set: True - # summary_only: True + # as_set: true + # summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 @@ -1865,8 +1865,8 @@ Examples # non_critical_delay: 180 # aggregate_address: # - prefix: 203.0.113.0/24 - # as_set: True - # summary_only: True + # as_set: true + # summary_only: true # # - afi: ipv4 # safi: unicast @@ -1929,8 +1929,8 @@ Examples route_map: rmap1 aggregate_address: - prefix: 203.0.113.0/24 - as_set: True - summary_only: True + as_set: true + summary_only: true - afi: ipv4 safi: unicast vrf: site-1 @@ -1956,11 +1956,11 @@ Examples # safi: unicast # vrf: site-1 # default_information: - # originate: True + # originate: true # aggregate_address: # - prefix: 203.0.113.0/24 - # as_set: True - # summary_only: True + # as_set: true + # summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 @@ -1997,8 +1997,8 @@ Examples # route_map: rmap1 # aggregate_address: # - prefix: 203.0.113.0/24 - # as_set: True - # summary_only: True + # as_set: true + # summary_only: true # - afi: ipv4 # safi: unicast # vrf: site-1 @@ -2066,11 +2066,11 @@ Examples # safi: unicast # vrf: site-1 # default_information: - # originate: True + # originate: true # aggregate_address: # - prefix: 203.0.113.0/24 - # as_set: True - # summary_only: True + # as_set: true + # summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 @@ -2095,11 +2095,11 @@ Examples # safi: unicast # vrf: site-1 # default_information: - # originate: True + # originate: true # aggregate_address: # - prefix: 203.0.113.0/24 - # as_set: True - # summary_only: True + # as_set: true + # summary_only: true # After state: # ------------ @@ -2153,11 +2153,11 @@ Examples # safi: unicast # vrf: site-1 # default_information: - # originate: True + # originate: true # aggregate_address: # - prefix: 203.0.113.0/24 - # as_set: True - # summary_only: True + # as_set: true + # summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 @@ -2207,11 +2207,11 @@ Examples safi: unicast vrf: site-1 default_information: - originate: True + originate: true aggregate_address: - prefix: 203.0.113.0/24 - as_set: True - summary_only: True + as_set: true + summary_only: true - afi: ipv6 safi: multicast vrf: site-1 @@ -2284,11 +2284,11 @@ Examples # safi: unicast # vrf: site-1 # default_information: - # originate: True + # originate: true # aggregate_address: # - prefix: 203.0.113.0/24 - # as_set: True - # summary_only: True + # as_set: true + # summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_global_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_global_module.rst index 1ef0c27b4..19ee2709e 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_global_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_global_module.rst @@ -4630,16 +4630,16 @@ Examples router_id: 192.168.1.1 bestpath: as_path: - multipath_relax: True - compare_neighborid: True - cost_community_ignore: True + multipath_relax: true + compare_neighborid: true + cost_community_ignore: true confederation: identifier: 42 peers: - 65020 - 65030 - 65040 - log_neighbor_changes: True + log_neighbor_changes: true maxas_limit: 20 neighbors: - neighbor_address: 192.168.1.100 @@ -4649,19 +4649,19 @@ Examples remote_as: 65563 description: NBR-1 low_memory: - exempt: True + exempt: true - neighbor_address: 192.168.1.101 remote_as: 65563 password: encryption: 7 key: 12090404011C03162E neighbor_down: - fib_accelerate: True + fib_accelerate: true vrfs: - vrf: site-1 allocate_index: 5000 local_as: 200 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 198.51.100.1 description: site-1-nbr-1 @@ -4674,7 +4674,7 @@ Examples description: site-1-nbr-2 - vrf: site-2 local_as: 300 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 203.0.113.2 description: site-2-nbr-1 @@ -4683,7 +4683,7 @@ Examples key: AF92F4C16A0A0EC5BDF56CF58BC030F6 remote_as: 65568 neighbor_down: - fib_accelerate: True + fib_accelerate: true # Task output: # ------------ @@ -4882,8 +4882,8 @@ Examples as_number: 65563 router_id: 192.168.1.1 bestpath: - compare_neighborid: True - cost_community_ignore: True + compare_neighborid: true + cost_community_ignore: true confederation: identifier: 42 peers: @@ -4899,20 +4899,20 @@ Examples remote_as: 65563 description: NBR-1 low_memory: - exempt: True + exempt: true neighbor_down: - fib_accelerate: True + fib_accelerate: true vrfs: - vrf: site-2 local_as: 300 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 203.0.113.2 password: encryption: 7 key: 12090404011C03162E neighbor_down: - fib_accelerate: True + fib_accelerate: true state: replaced # Task output: @@ -5345,16 +5345,16 @@ Examples router_id: 192.168.1.1 bestpath: as_path: - multipath_relax: True - compare_neighborid: True - cost_community_ignore: True + multipath_relax: true + compare_neighborid: true + cost_community_ignore: true confederation: identifier: 42 peers: - 65020 - 65030 - 65040 - log_neighbor_changes: True + log_neighbor_changes: true maxas_limit: 20 neighbors: - neighbor_address: 192.168.1.100 @@ -5364,19 +5364,19 @@ Examples remote_as: 65563 description: NBR-1 low_memory: - exempt: True + exempt: true - neighbor_address: 192.168.1.101 remote_as: 65563 password: encryption: 7 key: 12090404011C03162E neighbor_down: - fib_accelerate: True + fib_accelerate: true vrfs: - vrf: site-1 allocate_index: 5000 local_as: 200 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 198.51.100.1 description: site-1-nbr-1 @@ -5389,7 +5389,7 @@ Examples description: site-1-nbr-2 - vrf: site-2 local_as: 300 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 203.0.113.2 description: site-1-nbr-1 @@ -5398,7 +5398,7 @@ Examples key: AF92F4C16A0A0EC5BDF56CF58BC030F6 remote_as: 65568 neighbor_down: - fib_accelerate: True + fib_accelerate: true # Task output: # ------------ @@ -5648,7 +5648,7 @@ Examples as_number: 65536 router_id: 198.51.100.2 maxas_limit: 20 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 192.0.2.1 remote_as: 65537 @@ -5692,7 +5692,7 @@ Examples as_number: 65536 router_id: 198.51.100.2 maxas_limit: 20 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 192.0.2.1 remote_as: 65537 @@ -5702,7 +5702,7 @@ Examples vrfs: - vrf: site-2 neighbor_down: - fib_accelerate: True + fib_accelerate: true state: replaced # Task output: diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_neighbor_address_family_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_neighbor_address_family_module.rst index 96e3c5e53..8668a0b9f 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_neighbor_address_family_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_bgp_neighbor_address_family_module.rst @@ -2632,9 +2632,9 @@ Examples address_family: - afi: ipv4 safi: unicast - suppress_inactive: True + suppress_inactive: true next_hop_self: - set: True + set: true - neighbor_address: 203.0.113.2 address_family: - afi: ipv6 @@ -2642,7 +2642,7 @@ Examples - afi: ipv4 safi: multicast send_community: - set: True + set: true # Task output: # ------------ @@ -2708,7 +2708,7 @@ Examples # - afi: ipv4 # safi: multicast # send_community: - # set: True + # set: true # - afi: ipv6 # safi: unicast @@ -2797,7 +2797,7 @@ Examples - afi: ipv4 safi: multicast send_community: - set: True + set: true state: replaced # Task output: @@ -2840,7 +2840,7 @@ Examples # - afi: ipv4 # safi: multicast # send_community: - # set: True + # set: true # - afi: ipv6 # safi: unicast # @@ -2887,7 +2887,7 @@ Examples # - afi: ipv4 # safi: multicast # send_community: - # set: True + # set: true # - afi: ipv6 # safi: unicast @@ -2954,9 +2954,9 @@ Examples address_family: - afi: ipv4 safi: unicast - suppress_inactive: True + suppress_inactive: true next_hop_self: - set: True + set: true state: overridden # Task output: @@ -2999,7 +2999,7 @@ Examples # - afi: ipv4 # safi: multicast # send_community: - # set: True + # set: true # - afi: ipv6 # safi: unicast # @@ -3033,9 +3033,9 @@ Examples # address_family: # - afi: ipv4 # safi: unicast - # suppress_inactive: True + # suppress_inactive: true # next_hop_self: - # set: True + # set: true # After state: # ------------ @@ -3134,7 +3134,7 @@ Examples # - afi: ipv4 # safi: multicast # send_community: - # set: True + # set: true # - afi: ipv6 # safi: unicast # @@ -3175,7 +3175,7 @@ Examples # - afi: ipv4 # safi: multicast # send_community: - # set: True + # set: true # # After state: # ------------ @@ -3267,7 +3267,7 @@ Examples # - afi: ipv4 # safi: multicast # send_community: - # set: True + # set: true # - afi: ipv6 # safi: unicast # @@ -3333,9 +3333,9 @@ Examples address_family: - afi: ipv4 safi: unicast - suppress_inactive: True + suppress_inactive: true next_hop_self: - set: True + set: true - neighbor_address: 203.0.113.2 address_family: - afi: ipv6 @@ -3343,7 +3343,7 @@ Examples - afi: ipv4 safi: multicast send_community: - set: True + set: true state: rendered # Task output: @@ -3441,7 +3441,7 @@ Examples # - afi: ipv4 # safi: multicast # send_community: - # set: True + # set: true # - afi: ipv6 # safi: unicast diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_command_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_command_module.rst index e7fbbc048..4308a6582 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_command_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_command_module.rst @@ -153,31 +153,31 @@ Examples - name: run multiple commands on remote nodes cisco.nxos.nxos_command: commands: - - show version - - show interfaces + - show version + - show interfaces - name: run multiple commands and evaluate the output cisco.nxos.nxos_command: commands: - - show version - - show interfaces + - show version + - show interfaces wait_for: - - result[0] contains Cisco - - result[1] contains loopback0 + - result[0] contains Cisco + - result[1] contains loopback0 - name: run commands and specify the output format cisco.nxos.nxos_command: commands: - - command: show version - output: json + - command: show version + output: json - name: run commands that require answering a prompt cisco.nxos.nxos_command: commands: - - configure terminal - - command: no feature npv - prompt: Do you want to continue - answer: y + - configure terminal + - command: no feature npv + prompt: Do you want to continue + answer: y diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_config_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_config_module.rst index 3d7b0cad1..3ead5ab50 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_config_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_config_module.rst @@ -380,21 +380,21 @@ Examples - cisco.nxos.nxos_config: lines: - - 10 permit ip 192.0.2.1/32 any log - - 20 permit ip 192.0.2.2/32 any log - - 30 permit ip 192.0.2.3/32 any log - - 40 permit ip 192.0.2.4/32 any log - - 50 permit ip 192.0.2.5/32 any log + - 10 permit ip 192.0.2.1/32 any log + - 20 permit ip 192.0.2.2/32 any log + - 30 permit ip 192.0.2.3/32 any log + - 40 permit ip 192.0.2.4/32 any log + - 50 permit ip 192.0.2.5/32 any log parents: ip access-list test before: no ip access-list test match: exact - cisco.nxos.nxos_config: lines: - - 10 permit ip 192.0.2.1/32 any log - - 20 permit ip 192.0.2.2/32 any log - - 30 permit ip 192.0.2.3/32 any log - - 40 permit ip 192.0.2.4/32 any log + - 10 permit ip 192.0.2.1/32 any log + - 20 permit ip 192.0.2.2/32 any log + - 30 permit ip 192.0.2.3/32 any log + - 40 permit ip 192.0.2.4/32 any log parents: ip access-list test before: no ip access-list test replace: block @@ -408,7 +408,7 @@ Examples cisco.nxos.nxos_config: lines: # - shut - - shutdown + - shutdown # parents: int eth1/1 parents: interface Ethernet1/1 diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_devicealias_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_devicealias_module.rst index 9e33f93ea..081c8759f 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_devicealias_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_devicealias_module.rst @@ -212,21 +212,21 @@ Examples - name: Test that device alias module works cisco.nxos.nxos_devicealias: da: - - name: test1_add - pwwn: 56:2:22:11:22:88:11:67 - - name: test2_add - pwwn: 65:22:22:11:22:22:11:d - - name: dev1 - remove: true - - name: dev2 - remove: true + - name: test1_add + pwwn: 56:2:22:11:22:88:11:67 + - name: test2_add + pwwn: 65:22:22:11:22:22:11:d + - name: dev1 + remove: true + - name: dev2 + remove: true distribute: true mode: enhanced rename: - - new_name: bcd - old_name: abc - - new_name: bcd1 - old_name: abc1 + - new_name: bcd + old_name: abc + - new_name: bcd1 + old_name: abc1 diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_evpn_vni_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_evpn_vni_module.rst index 714cd9c20..530a9ff18 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_evpn_vni_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_evpn_vni_module.rst @@ -162,8 +162,8 @@ Examples vni: 6000 route_distinguisher: 60:10 route_target_import: - - 5000:10 - - 4100:100 + - "5000:10" + - "4100:100" route_target_export: auto route_target_both: default diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_facts_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_facts_module.rst index 0e344b470..3ce96abea 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_facts_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_facts_module.rst @@ -113,11 +113,11 @@ Examples - name: Gather only the config and default facts cisco.nxos.nxos_facts: gather_subset: - - config + - config - name: Do not gather hardware facts cisco.nxos.nxos_facts: gather_subset: - - '!hardware' + - '!hardware' - name: Gather legacy and resource facts cisco.nxos.nxos_facts: gather_subset: all @@ -125,10 +125,10 @@ Examples - name: Gather only the interfaces resource facts and no legacy facts cisco.nxos.nxos_facts: gather_subset: - - '!all' - - '!min' + - '!all' + - '!min' gather_network_resources: - - interfaces + - interfaces - name: Gather interfaces resource and minimal legacy facts cisco.nxos.nxos_facts: gather_subset: min diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_fc_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_fc_interfaces_module.rst index eaad900f2..048ddc0f0 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_fc_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_fc_interfaces_module.rst @@ -103,7 +103,7 @@ Parameters -
    Administrative state of the interface. Set the value to true to administratively enable the interface or false to disable it
    +
    Administrative state of the interface. Set the value to true to administratively enable the interface or true to disable it
    @@ -277,8 +277,8 @@ Examples - name: Merge provided configuration with device configuration cisco.nxos.nxos_fc_interfaces: config: - - name: fc18/10 - analytics: fc-scsi + - name: fc18/10 + analytics: fc-scsi state: merged # Task Output @@ -289,7 +289,7 @@ Examples # speed: auto max 16000 # mode: auto # trunk_mode: on - # enabled: False + # enabled: true # description: $ # analytics: fc-nvme # commands: @@ -300,7 +300,7 @@ Examples # speed: auto max 16000 # mode: auto # trunk_mode: on - # enabled: False + # enabled: true # description: $ # analytics: fc-all @@ -335,13 +335,13 @@ Examples - name: Replaces device configuration of listed interfaces with provided configuration cisco.nxos.nxos_fc_interfaces: config: - - name: fc18/12 - speed: auto max 64000 - mode: auto - trunk_mode: on - enabled: True - description: 1 - analytics: fc-scsi + - name: fc18/12 + speed: auto max 64000 + mode: auto + trunk_mode: "on" + enabled: true + description: 1 + analytics: fc-scsi state: replaced # Task Output @@ -352,7 +352,7 @@ Examples # speed: auto max 64000 # mode: auto # trunk_mode: on - # enabled: True + # enabled: true # description: 1 # analytics: fc-all # commands: @@ -364,7 +364,7 @@ Examples # speed: auto max 64000 # mode: auto # trunk_mode: on - # enabled: True + # enabled: true # description: 1 # analytics: fc-scsi @@ -397,7 +397,7 @@ Examples - name: Delete or return interface parameters to default settings cisco.nxos.nxos_fc_interfaces: config: - - name: fc1/2 + - name: fc1/2 state: deleted # Task Output @@ -408,7 +408,7 @@ Examples # speed: 1000 # mode: E # trunk_mode: off - # enabled: True + # enabled: true # commands: # - interface fc1/2 # - no switchport speed 1000 @@ -420,7 +420,7 @@ Examples # speed: auto # mode: auto # trunk_mode: on - # enabled: False + # enabled: true # After state: # ------------ @@ -459,13 +459,13 @@ Examples - name: Replaces device configuration of listed interfaces with provided configuration cisco.nxos.nxos_fc_interfaces: config: - - name: fc18/12 - speed: auto max 64000 - mode: auto - trunk_mode: on - enabled: True - description: 1 - analytics: fc-scsi + - name: fc18/12 + speed: auto max 64000 + mode: auto + trunk_mode: "on" + enabled: true + description: 1 + analytics: fc-scsi state: overridden # Task Output @@ -476,14 +476,14 @@ Examples # speed: auto max 64000 # mode: auto # trunk_mode: on - # enabled: True + # enabled: true # description: 1 # analytics: fc-all # - name: fc18/13 # speed: auto max 64000 # mode: auto # trunk_mode: on - # enabled: True + # enabled: true # description: 1 # analytics: fc-all # commands: @@ -501,14 +501,14 @@ Examples # speed: auto max 64000 # mode: auto # trunk_mode: on - # enabled: True + # enabled: true # description: 1 # analytics: fc-scsi # - name: fc18/13 # speed: auto max 64000 # mode: auto # trunk_mode: on - # enabled: False + # enabled: true # After state: # ------------ @@ -526,29 +526,23 @@ Examples # switchport trunk mode on # shutdown - - - - - - # Using rendered - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_fc_interfaces: config: - - name: fc1/1 - speed: auto - mode: auto - trunk_mode: on - enabled: True - description: This is a sample line - - name: fc1/2 - speed: 1000 - mode: E - trunk_mode: off - enabled: True - state: rendered + - name: fc1/1 + speed: auto + mode: auto + trunk_mode: "on" + enabled: true + description: This is a sample line + - name: fc1/2 + speed: 1000 + mode: E + trunk_mode: "off" + enabled: true + state: rendered # Task Output # ----------- @@ -600,13 +594,13 @@ Examples # speed: auto # mode: auto # trunk_mode: on - # enabled: True + # enabled: true # description: This is a sample line # - name: fc1/2 # speed: 1000 # mode: E # trunk_mode: off - # enabled: True + # enabled: true # Using gathered @@ -639,13 +633,13 @@ Examples # speed: auto # mode: auto # trunk_mode: on - # enabled: True + # enabled: true # description: This is a sample line # - name: fc1/2 # speed: 1000 # mode: E # trunk_mode: off - # enabled: True + # enabled: true diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_gir_profile_management_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_gir_profile_management_module.rst index 98396d508..95d85ae9b 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_gir_profile_management_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_gir_profile_management_module.rst @@ -114,8 +114,8 @@ Examples - cisco.nxos.nxos_gir_profile_management: mode: maintenance commands: - - router eigrp 11 - - isolate + - router eigrp 11 + - isolate # Remove the maintenance-mode profile - cisco.nxos.nxos_gir_profile_management: diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_hsrp_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_hsrp_interfaces_module.rst index 1fd8dcded..163612413 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_hsrp_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_hsrp_interfaces_module.rst @@ -151,8 +151,8 @@ Examples - name: Configure hsrp attributes on interfaces cisco.nxos.nxos_hsrp_interfaces: config: - - name: Ethernet1/1 - - name: Ethernet1/2 + - name: Ethernet1/1 + - name: Ethernet1/2 operation: deleted @@ -161,10 +161,10 @@ Examples - name: Configure hsrp attributes on interfaces cisco.nxos.nxos_hsrp_interfaces: config: - - name: Ethernet1/1 - bfd: enable - - name: Ethernet1/2 - bfd: disable + - name: Ethernet1/1 + bfd: enable + - name: Ethernet1/2 + bfd: disable operation: merged @@ -173,10 +173,10 @@ Examples - name: Configure hsrp attributes on interfaces cisco.nxos.nxos_hsrp_interfaces: config: - - name: Ethernet1/1 - bfd: enable - - name: Ethernet1/2 - bfd: disable + - name: Ethernet1/1 + bfd: enable + - name: Ethernet1/2 + bfd: disable operation: overridden @@ -185,10 +185,10 @@ Examples - name: Configure hsrp attributes on interfaces cisco.nxos.nxos_hsrp_interfaces: config: - - name: Ethernet1/1 - bfd: enable - - name: Ethernet1/2 - bfd: disable + - name: Ethernet1/1 + bfd: enable + - name: Ethernet1/2 + bfd: disable operation: replaced # Using rendered @@ -196,10 +196,10 @@ Examples - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_hsrp_interfaces: config: - - name: Ethernet1/800 - bfd: enable - - name: Ethernet1/801 - bfd: enable + - name: Ethernet1/800 + bfd: enable + - name: Ethernet1/801 + bfd: enable state: rendered # Task Output (redacted) diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_igmp_interface_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_igmp_interface_module.rst index 298d5bc10..80384f85a 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_igmp_interface_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_igmp_interface_module.rst @@ -342,8 +342,8 @@ Examples interface: ethernet1/32 startup_query_interval: 30 oif_ps: - - {prefix: 238.2.2.6} - - {source: 192.168.0.1, prefix: 238.2.2.5} + - {prefix: 238.2.2.6} + - {source: 192.168.0.1, prefix: 238.2.2.5} state: present diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_install_os_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_install_os_module.rst index f10d02f7d..ddd630d01 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_install_os_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_install_os_module.rst @@ -132,9 +132,10 @@ Examples nxos_command: commands: [show version | json] register: output + - assert: that: - - output['stdout'][0]['kickstart_ver_str'] == '7.0(3)I6(1)' + - output['stdout'][0]['kickstart_ver_str'] == '7.0(3)I6(1)' diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_interfaces_module.rst index 9ab81a313..bf9e5d9c9 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_interfaces_module.rst @@ -294,12 +294,12 @@ Examples - name: Merge provided configuration with device configuration cisco.nxos.nxos_interfaces: config: - - name: Ethernet1/1 - description: Configured by Ansible - enabled: true - - name: Ethernet1/2 - description: Configured by Ansible Network - enabled: false + - name: Ethernet1/1 + description: Configured by Ansible + enabled: true + - name: Ethernet1/2 + description: Configured by Ansible Network + enabled: false state: merged # Task Output @@ -358,14 +358,14 @@ Examples - name: Replaces device configuration of listed interfaces with provided configuration cisco.nxos.nxos_interfaces: config: - - name: Ethernet1/1 - description: Configured by Ansible - enabled: true - mtu: 9000 - - name: Ethernet1/2 - description: Configured by Ansible Network - enabled: false - mode: layer2 + - name: Ethernet1/1 + description: Configured by Ansible + enabled: true + mtu: 9000 + - name: Ethernet1/2 + description: Configured by Ansible Network + enabled: false + mode: layer2 state: replaced # Task Output @@ -426,13 +426,13 @@ Examples - name: Override device configuration of all interfaces with provided configuration cisco.nxos.nxos_interfaces: config: - - name: Ethernet1/1 - enabled: true - - name: Ethernet1/2 - description: Configured by Ansible Network - enabled: false - - description: mgmt interface - name: mgmt0 + - name: Ethernet1/1 + enabled: true + - name: Ethernet1/2 + description: Configured by Ansible Network + enabled: false + - description: mgmt interface + name: mgmt0 state: overridden # Task Output @@ -490,7 +490,7 @@ Examples - name: Delete or return interface parameters to default settings cisco.nxos.nxos_interfaces: config: - - name: Ethernet1/2 + - name: Ethernet1/2 state: deleted # Task Output @@ -529,14 +529,14 @@ Examples - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_interfaces: config: - - name: Ethernet1/1 - description: outbound-intf - mode: layer3 - speed: 100 - - name: Ethernet1/2 - mode: layer2 - enabled: true - duplex: full + - name: Ethernet1/1 + description: outbound-intf + mode: layer3 + speed: 100 + - name: Ethernet1/2 + mode: layer2 + enabled: true + duplex: full state: rendered # Task Output diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_l2_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_l2_interfaces_module.rst index 2d2248800..bfad0cf31 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_l2_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_l2_interfaces_module.rst @@ -251,13 +251,13 @@ Examples - name: Merge provided configuration with device configuration cisco.nxos.nxos_l2_interfaces: config: - - name: Ethernet1/1 - trunk: - native_vlan: 10 - allowed_vlans: 2,4,15 - - name: Ethernet1/2 - access: - vlan: 30 + - name: Ethernet1/1 + trunk: + native_vlan: 10 + allowed_vlans: 2,4,15 + - name: Ethernet1/2 + access: + vlan: 30 state: merged # Task Output @@ -316,10 +316,10 @@ Examples - name: Replace device configuration of specified L2 interfaces with provided configuration. cisco.nxos.nxos_l2_interfaces: config: - - name: Ethernet1/1 - trunk: - native_vlan: 20 - allowed_vlans: 5-10, 15 + - name: Ethernet1/1 + trunk: + native_vlan: 20 + allowed_vlans: 5-10, 15 state: replaced # Task Output @@ -382,9 +382,9 @@ Examples - name: Override device configuration with provided configuration. cisco.nxos.nxos_l2_interfaces: config: - - name: Ethernet1/2 - access: - vlan: 30 + - name: Ethernet1/2 + access: + vlan: 30 state: overridden # Task Output @@ -441,8 +441,8 @@ Examples itself). cisco.nxos.nxos_l2_interfaces: config: - - name: Ethernet1/1 - - name: Ethernet1/2 + - name: Ethernet1/1 + - name: Ethernet1/2 state: deleted # Task Output @@ -483,17 +483,17 @@ Examples - name: Render platform specific configuration lines (without connecting to the device) cisco.nxos.nxos_l2_interfaces: config: - - name: Ethernet1/1 - trunk: - native_vlan: 10 - allowed_vlans: 2,4,15 - - name: Ethernet1/2 - access: - vlan: 30 - - name: Ethernet1/3 - trunk: - native_vlan: 20 - allowed_vlans: 5-10, 15 + - name: Ethernet1/1 + trunk: + native_vlan: 10 + allowed_vlans: 2,4,15 + - name: Ethernet1/2 + access: + vlan: 30 + - name: Ethernet1/3 + trunk: + native_vlan: 20 + allowed_vlans: 5-10, 15 state: rendered # Task Output diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_l3_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_l3_interfaces_module.rst index 9241ff2fe..28a56bdf8 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_l3_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_l3_interfaces_module.rst @@ -371,19 +371,19 @@ Examples - name: Merge provided configuration with device configuration. cisco.nxos.nxos_l3_interfaces: config: - - name: Ethernet1/6 - ipv4: - - address: 192.168.1.1/24 - tag: 5 - - address: 10.1.1.1/24 - secondary: true - tag: 10 - ipv6: - - address: fd5d:12c9:2201:2::1/64 - tag: 6 - - name: Ethernet1/7.42 - redirects: false - unreachables: false + - name: Ethernet1/6 + ipv4: + - address: 192.168.1.1/24 + tag: 5 + - address: 10.1.1.1/24 + secondary: true + tag: 10 + ipv6: + - address: fd5d:12c9:2201:2::1/64 + tag: 6 + - name: Ethernet1/7.42 + redirects: false + unreachables: false state: merged # Task Output @@ -470,9 +470,9 @@ Examples - name: Replace device configuration of specified L3 interfaces with provided configuration. cisco.nxos.nxos_l3_interfaces: config: - - name: Ethernet1/6 - ipv4: - - address: 192.168.22.3/24 + - name: Ethernet1/6 + ipv4: + - address: 192.168.22.3/24 state: replaced # Task Output @@ -564,12 +564,12 @@ Examples - name: Override device configuration with provided configuration. cisco.nxos.nxos_l3_interfaces: config: - - ipv4: - - address: dhcp - name: mgmt0 - - name: Ethernet1/6 - ipv4: - - address: 192.168.22.3/24 + - ipv4: + - address: dhcp + name: mgmt0 + - name: Ethernet1/6 + ipv4: + - address: 192.168.22.3/24 state: overridden # Task Output @@ -658,8 +658,8 @@ Examples itself). cisco.nxos.nxos_l3_interfaces: config: - - name: Ethernet1/6 - - name: Ethernet1/2 + - name: Ethernet1/6 + - name: Ethernet1/2 state: deleted # Task Output @@ -709,17 +709,17 @@ Examples - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_l3_interfaces: config: - - name: Ethernet1/800 - ipv4: - - address: 192.168.1.100/24 - tag: 5 - - address: 10.1.1.1/24 - secondary: true - tag: 10 - - name: Ethernet1/800 - ipv6: - - address: fd5d:12c9:2201:2::1/64 - tag: 6 + - name: Ethernet1/800 + ipv4: + - address: 192.168.1.100/24 + tag: 5 + - address: 10.1.1.1/24 + secondary: true + tag: 10 + - name: Ethernet1/800 + ipv6: + - address: fd5d:12c9:2201:2::1/64 + tag: 6 state: rendered # Task Output diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lacp_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lacp_interfaces_module.rst index 63a082c80..76724ede0 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lacp_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lacp_interfaces_module.rst @@ -320,9 +320,9 @@ Examples - name: Merge provided configuration with device configuration. cisco.nxos.nxos_lacp_interfaces: config: - - name: Ethernet1/3 - port_priority: 5 - rate: fast + - name: Ethernet1/3 + port_priority: 5 + rate: fast state: merged # After state: @@ -346,9 +346,9 @@ Examples - name: Replace device lacp interfaces configuration with the given configuration. cisco.nxos.nxos_lacp_interfaces: config: - - name: port-channel11 - links: - min: 4 + - name: port-channel11 + links: + min: 4 state: replaced # After state: @@ -374,9 +374,9 @@ Examples on device with provided configuration. cisco.nxos.nxos_lacp_interfaces: config: - - name: port-channel11 - links: - min: 4 + - name: port-channel11 + links: + min: 4 state: overridden # After state: @@ -409,17 +409,17 @@ Examples - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_lacp_interfaces: config: - - name: Ethernet1/800 - rate: fast - - name: Ethernet1/801 - rate: fast - port_priority: 32 - - name: port-channel10 - links: - max: 15 - min: 2 - convergence: - graceful: true + - name: Ethernet1/800 + rate: fast + - name: Ethernet1/801 + rate: fast + port_priority: 32 + - name: port-channel10 + links: + max: 15 + min: 2 + convergence: + graceful: true state: rendered # Task Output (redacted) diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lag_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lag_interfaces_module.rst index cf2bd9102..7d570dbfc 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lag_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lag_interfaces_module.rst @@ -215,9 +215,9 @@ Examples - name: Merge provided configuration with device configuration. cisco.nxos.nxos_lag_interfaces: config: - - name: port-channel99 - members: - - member: Ethernet1/4 + - name: port-channel99 + members: + - member: Ethernet1/4 state: merged # After state: @@ -239,9 +239,9 @@ Examples with provided configuration. cisco.nxos.nxos_lag_interfaces: config: - - name: port-channel10 - members: - - member: Ethernet1/4 + - name: port-channel10 + members: + - member: Ethernet1/4 state: replaced # After state: @@ -265,10 +265,10 @@ Examples device with provided configuration. cisco.nxos.nxos_lag_interfaces: config: - - name: port-channel20 - members: - - member: Ethernet1/6 - force: true + - name: port-channel20 + members: + - member: Ethernet1/6 + force: true state: overridden # After state: @@ -291,7 +291,7 @@ Examples itself). cisco.nxos.nxos_lag_interfaces: config: - - port-channel: port-channel99 + - port-channel: port-channel99 state: deleted - name: Delete LAG attributes of all the interfaces @@ -309,15 +309,15 @@ Examples - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_lag_interfaces: config: - - name: port-channel10 - members: - - member: Ethernet1/800 - mode: active - - member: Ethernet1/801 - - name: port-channel11 - members: - - member: Ethernet1/802 - mode: passive + - name: port-channel10 + members: + - member: Ethernet1/800 + mode: active + - member: Ethernet1/801 + - name: port-channel11 + members: + - member: Ethernet1/802 + mode: passive state: rendered # Task Output (redacted) diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lldp_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lldp_interfaces_module.rst index 7ae7b9f3e..d634e9aa4 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lldp_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_lldp_interfaces_module.rst @@ -227,12 +227,12 @@ Examples - name: Merge provided configuration with device configuration cisco.nxos.nxos_lldp_interfaces: config: - - name: Ethernet1/4 - receive: false - transmit: true - tlv_set: - management_address: 192.168.122.64 - vlan: 12 + - name: Ethernet1/4 + receive: false + transmit: true + tlv_set: + management_address: 192.168.122.64 + vlan: 12 state: merged # After state: @@ -259,10 +259,10 @@ Examples - name: Replace LLDP configuration on interfaces with given configuration cisco.nxos.nxos_lldp_interfaces: config: - - name: Ethernet1/4 - transmit: false - tlv_set: - vlan: 2 + - name: Ethernet1/4 + transmit: false + tlv_set: + vlan: 2 state: replaced @@ -292,10 +292,10 @@ Examples - name: Override LLDP configuration on all interfaces with given configuration cisco.nxos.nxos_lldp_interfaces: config: - - name: Ethernet1/7 - receive: false - tlv_set: - vlan: 12 + - name: Ethernet1/7 + receive: false + tlv_set: + vlan: 12 state: overridden diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_logging_global_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_logging_global_module.rst index ba49b2331..1cda59a35 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_logging_global_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_logging_global_module.rst @@ -1226,7 +1226,7 @@ Examples facility: local6 use_vrf: default origin_id: - hostname: True + hostname: true # Task output # ------------- @@ -1512,7 +1512,7 @@ Examples facility: local6 use_vrf: default origin_id: - hostname: True + hostname: true # Task Output (redacted) # ----------------------- diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_logging_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_logging_module.rst deleted file mode 100644 index 288b8a3e1..000000000 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_logging_module.rst +++ /dev/null @@ -1,458 +0,0 @@ -.. _cisco.nxos.nxos_logging_module: - - -*********************** -cisco.nxos.nxos_logging -*********************** - -**Manage logging on network devices** - - -Version added: 1.0.0 - -.. contents:: - :local: - :depth: 1 - -DEPRECATED ----------- -:Removed in collection release after 2023-08-01 -:Why: Updated module released with more functionality. -:Alternative: nxos_logging_global - - - -Synopsis --------- -- This module provides declarative management of logging on Cisco NX-OS devices. - - - - -Parameters ----------- - -.. raw:: html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterChoices/DefaultsComments
    -
    - aggregate - -
    - list - / elements=dictionary -
    -
    - -
    List of logging definitions.
    -
    -
    - dest - -
    - string -
    -
    -
      Choices: -
    • console
    • -
    • logfile
    • -
    • module
    • -
    • monitor
    • -
    • server
    • -
    -
    -
    Destination of the logs.
    -
    -
    - dest_level - -
    - integer -
    -
    - -
    Set logging severity levels.
    -

    aliases: level
    -
    -
    - event - -
    - string -
    -
    -
      Choices: -
    • link-enable
    • -
    • link-default
    • -
    • trunk-enable
    • -
    • trunk-default
    • -
    -
    -
    Link/trunk enable/default interface configuration logging
    -
    -
    - facility - -
    - string -
    -
    - -
    Facility name for logging.
    -
    -
    - facility_level - -
    - integer -
    -
    - -
    Set logging severity levels for facility based log messages.
    -
    -
    - facility_link_status - -
    - string -
    -
    -
      Choices: -
    • link-down-notif
    • -
    • link-down-error
    • -
    • link-up-notif
    • -
    • link-up-error
    • -
    -
    -
    Set logging facility ethpm link status. Not idempotent with version 6.0 images.
    -
    -
    - file_size - -
    - integer -
    -
    - -
    Set logfile size
    -
    -
    - interface - -
    - string -
    -
    - -
    Interface to be used while configuring source-interface for logging (e.g., 'Ethernet1/2', 'mgmt0')
    -
    -
    - interface_message - -
    - string -
    -
    -
      Choices: -
    • add-interface-description
    • -
    -
    -
    Add interface description to interface syslogs. Does not work with version 6.0 images using nxapi as a transport.
    -
    -
    - name - -
    - string -
    -
    - -
    If value of dest is logfile it indicates file-name.
    -
    -
    - purge - -
    - boolean -
    -
    -
      Choices: -
    • no ←
    • -
    • yes
    • -
    -
    -
    Remove any switch logging configuration that does not match what has been configured Not supported for ansible_connection local. All nxos_logging tasks must use the same ansible_connection type.
    -
    -
    - remote_server - -
    - string -
    -
    - -
    Hostname or IP Address for remote logging (when dest is 'server').
    -
    -
    - state - -
    - string -
    -
    -
      Choices: -
    • present ←
    • -
    • absent
    • -
    -
    -
    State of the logging configuration.
    -
    -
    - timestamp - -
    - string -
    -
    -
      Choices: -
    • microseconds
    • -
    • milliseconds
    • -
    • seconds
    • -
    -
    -
    Set logging timestamp format
    -
    -
    - use_vrf - -
    - string -
    -
    - -
    VRF to be used while configuring remote logging (when dest is 'server').
    -
    -
    - - -Notes ------ - -.. note:: - - Limited Support for Cisco MDS - - For information on using CLI and NX-API see the :ref:`NXOS Platform Options guide ` - - For more information on using Ansible to manage network devices see the :ref:`Ansible Network Guide ` - - For more information on using Ansible to manage Cisco devices see the `Cisco integration page `_. - - - -Examples --------- - -.. code-block:: yaml - - - name: configure console logging with level - cisco.nxos.nxos_logging: - dest: console - level: 2 - state: present - - name: remove console logging configuration - cisco.nxos.nxos_logging: - dest: console - level: 2 - state: absent - - name: configure file logging with level - cisco.nxos.nxos_logging: - dest: logfile - name: testfile - dest_level: 3 - state: present - - name: Configure logging logfile with size - cisco.nxos.nxos_logging: - dest: logfile - name: testfile - dest_level: 3 - file_size: 16384 - - name: configure facility level logging - cisco.nxos.nxos_logging: - facility: daemon - facility_level: 0 - state: present - - name: remove facility level logging - cisco.nxos.nxos_logging: - facility: daemon - facility_level: 0 - state: absent - - name: Configure Remote Logging - cisco.nxos.nxos_logging: - dest: server - remote_server: test-syslogserver.com - facility: auth - facility_level: 1 - use_vrf: management - state: present - - name: Configure Source Interface for Logging - cisco.nxos.nxos_logging: - interface: mgmt0 - state: present - - name: Purge nxos_logging configuration not managed by this playbook - cisco.nxos.nxos_logging: - purge: true - - name: Configure logging timestamp - cisco.nxos.nxos_logging: - timestamp: milliseconds - state: present - - name: Configure logging facility ethpm link status - cisco.nxos.nxos_logging: - facility: ethpm - facility_link_status: link-up-notif - state: present - - name: Configure logging message ethernet description - cisco.nxos.nxos_logging: - interface_message: add-interface-description - state: present - - name: Configure logging event link enable - cisco.nxos.nxos_logging: - event: link-enable - state: present - - name: Configure logging using aggregate - cisco.nxos.nxos_logging: - aggregate: - - {dest: console, dest_level: 2} - - {dest: logfile, dest_level: 2, name: testfile} - - {facility: daemon, facility_level: 0} - state: present - - - -Return Values -------------- -Common return values are documented `here `_, the following are the fields unique to this module: - -.. raw:: html - - - - - - - - - - - - -
    KeyReturnedDescription
    -
    - commands - -
    - list -
    -
    always -
    The list of configuration mode commands to send to the device
    -
    -
    Sample:
    -
    ['logging console 2', 'logging logfile testfile 3', 'logging level daemon 0']
    -
    -

    - - -Status ------- - - -- This module will be removed in a release after 2023-08-01. *[deprecated]* -- For more information see `DEPRECATED`_. - - -Authors -~~~~~~~ - -- Trishna Guha (@trishnaguha) diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_auth_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_auth_module.rst deleted file mode 100644 index c825cd017..000000000 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_auth_module.rst +++ /dev/null @@ -1,224 +0,0 @@ -.. _cisco.nxos.nxos_ntp_auth_module: - - -************************ -cisco.nxos.nxos_ntp_auth -************************ - -**Manages NTP authentication.** - - -Version added: 1.0.0 - -.. contents:: - :local: - :depth: 1 - -DEPRECATED ----------- -:Removed in collection release after 2024-01-01 -:Why: Updated module released with more functionality. -:Alternative: nxos_ntp_global - - - -Synopsis --------- -- Manages NTP authentication. - - - - -Parameters ----------- - -.. raw:: html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterChoices/DefaultsComments
    -
    - auth_type - -
    - string -
    -
    -
      Choices: -
    • text ←
    • -
    • encrypt
    • -
    -
    -
    Whether the given md5string is in cleartext or has been encrypted. If in cleartext, the device will encrypt it before storing it.
    -
    -
    - authentication - -
    - string -
    -
    -
      Choices: -
    • on
    • -
    • off
    • -
    -
    -
    Turns NTP authentication on or off.
    -
    -
    - key_id - -
    - string -
    -
    - -
    Authentication key identifier (numeric).
    -
    -
    - md5string - -
    - string -
    -
    - -
    MD5 String.
    -
    -
    - state - -
    - string -
    -
    -
      Choices: -
    • present ←
    • -
    • absent
    • -
    -
    -
    Manage the state of the resource.
    -
    -
    - trusted_key - -
    - string -
    -
    -
      Choices: -
    • false ←
    • -
    • true
    • -
    -
    -
    Whether the given key is required to be supplied by a time source for the device to synchronize to the time source.
    -
    -
    - - -Notes ------ - -.. note:: - - Tested against NXOSv 7.3.(0)D1(1) on VIRL - - Limited Support for Cisco MDS - - If ``state=absent``, the module will remove the given key configuration if it exists. - - If ``state=absent`` and ``authentication=on``, authentication will be turned off. - - For information on using CLI and NX-API see the :ref:`NXOS Platform Options guide ` - - For more information on using Ansible to manage network devices see the :ref:`Ansible Network Guide ` - - For more information on using Ansible to manage Cisco devices see the `Cisco integration page `_. - - - -Examples --------- - -.. code-block:: yaml - - # Basic NTP authentication configuration - - cisco.nxos.nxos_ntp_auth: - key_id: 32 - md5string: hello - auth_type: text - - - -Return Values -------------- -Common return values are documented `here `_, the following are the fields unique to this module: - -.. raw:: html - - - - - - - - - - - - -
    KeyReturnedDescription
    -
    - commands - -
    - list -
    -
    always -
    command sent to the device
    -
    -
    Sample:
    -
    ['ntp authentication-key 32 md5 helloWorld 0', 'ntp trusted-key 32']
    -
    -

    - - -Status ------- - - -- This module will be removed in a release after 2024-01-01. *[deprecated]* -- For more information see `DEPRECATED`_. - - -Authors -~~~~~~~ - -- Jason Edelman (@jedelman8) diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_global_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_global_module.rst index 76d81c6a3..b77fc9440 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_global_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_global_module.rst @@ -877,7 +877,7 @@ Examples - access_list: PeerAcl1 serve: - access_list: ServeAcl1 - authenticate: True + authenticate: true authentication_keys: - id: 1001 key: vagwwtKfkv @@ -885,7 +885,7 @@ Examples - id: 1002 key: vagwwtKfkvgthz encryption: 7 - logging: True + logging: true master: stratum: 2 peers: @@ -896,7 +896,7 @@ Examples vrf: default - peer: 192.0.2.2 key_id: 2 - prefer: True + prefer: true vrf: siteA servers: - server: 198.51.100.1 @@ -929,7 +929,7 @@ Examples # - access_list: PeerAcl1 # serve: # - access_list: ServeAcl1 - # authenticate: True + # authenticate: true # authentication_keys: # - id: 1001 # key: vagwwtKfkv @@ -937,7 +937,7 @@ Examples # - id: 1002 # key: vagwwtKfkvgthz # encryption: 7 - # logging: True + # logging: true # master: # stratum: 2 # peers: @@ -948,7 +948,7 @@ Examples # vrf: default # - peer: 192.0.2.2 # key_id: 2 - # prefer: True + # prefer: true # vrf: siteA # servers: # - server: 198.51.100.1 @@ -998,7 +998,7 @@ Examples - access_list: PeerAcl2 serve: - access_list: ServeAcl2 - logging: True + logging: true master: stratum: 2 peers: @@ -1009,7 +1009,7 @@ Examples vrf: default - peer: 192.0.2.5 key_id: 2 - prefer: True + prefer: true vrf: siteA servers: - server: 198.51.100.1 @@ -1025,7 +1025,7 @@ Examples # - access_list: PeerAcl1 # serve: # - access_list: ServeAcl1 - # authenticate: True + # authenticate: true # authentication_keys: # - id: 1001 # key: vagwwtKfkv @@ -1033,7 +1033,7 @@ Examples # - id: 1002 # key: vagwwtKfkvgthz # encryption: 7 - # logging: True + # logging: true # master: # stratum: 2 # peers: @@ -1044,7 +1044,7 @@ Examples # vrf: default # - peer: 192.0.2.2 # key_id: 2 - # prefer: True + # prefer: true # vrf: siteA # servers: # - server: 198.51.100.1 @@ -1072,7 +1072,7 @@ Examples # - access_list: PeerAcl2 # serve: # - access_list: ServeAcl2 - # logging: True + # logging: true # master: # stratum: 2 # peers: @@ -1083,7 +1083,7 @@ Examples # vrf: default # - peer: 192.0.2.5 # key_id: 2 - # prefer: True + # prefer: true # vrf: siteA # servers: # - server: 198.51.100.1 @@ -1119,7 +1119,7 @@ Examples # - access_list: PeerAcl1 # serve: # - access_list: ServeAcl1 - # authenticate: True + # authenticate: true # authentication_keys: # - id: 1001 # key: vagwwtKfkv @@ -1127,7 +1127,7 @@ Examples # - id: 1002 # key: vagwwtKfkvgthz # encryption: 7 - # logging: True + # logging: true # master: # stratum: 2 # peers: @@ -1138,7 +1138,7 @@ Examples # vrf: default # - peer: 192.0.2.2 # key_id: 2 - # prefer: True + # prefer: true # vrf: siteA # servers: # - server: 198.51.100.1 @@ -1178,7 +1178,7 @@ Examples - access_list: PeerAcl1 serve: - access_list: ServeAcl1 - authenticate: True + authenticate: true authentication_keys: - id: 1001 key: vagwwtKfkv @@ -1186,7 +1186,7 @@ Examples - id: 1002 key: vagwwtKfkvgthz encryption: 7 - logging: True + logging: true master: stratum: 2 peers: @@ -1197,7 +1197,7 @@ Examples vrf: default - peer: 192.0.2.2 key_id: 2 - prefer: True + prefer: true vrf: siteA servers: - server: 198.51.100.1 @@ -1252,7 +1252,7 @@ Examples # - access_list: PeerAcl1 # serve: # - access_list: ServeAcl1 - # authenticate: True + # authenticate: true # authentication_keys: # - id: 1001 # key: vagwwtKfkv @@ -1260,7 +1260,7 @@ Examples # - id: 1002 # key: vagwwtKfkvgthz # encryption: 7 - # logging: True + # logging: true # master: # stratum: 2 # peers: @@ -1271,7 +1271,7 @@ Examples # vrf: default # - peer: 192.0.2.2 # key_id: 2 - # prefer: True + # prefer: true # vrf: siteA # servers: # - server: 198.51.100.1 diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_module.rst deleted file mode 100644 index 3fa835a96..000000000 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_module.rst +++ /dev/null @@ -1,314 +0,0 @@ -.. _cisco.nxos.nxos_ntp_module: - - -******************* -cisco.nxos.nxos_ntp -******************* - -**Manages core NTP configuration.** - - -Version added: 1.0.0 - -.. contents:: - :local: - :depth: 1 - -DEPRECATED ----------- -:Removed in collection release after 2024-01-01 -:Why: Updated module released with more functionality. -:Alternative: nxos_ntp_global - - - -Synopsis --------- -- Manages core NTP configuration. - - - - -Parameters ----------- - -.. raw:: html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterChoices/DefaultsComments
    -
    - key_id - -
    - string -
    -
    - -
    Authentication key identifier to use with given NTP server or peer or keyword 'default'.
    -
    -
    - peer - -
    - string -
    -
    - -
    Network address of NTP peer.
    -
    -
    - prefer - -
    - string -
    -
    -
      Choices: -
    • enabled
    • -
    • disabled
    • -
    -
    -
    Makes given NTP server or peer the preferred NTP server or peer for the device.
    -
    -
    - server - -
    - string -
    -
    - -
    Network address of NTP server.
    -
    -
    - source_addr - -
    - string -
    -
    - -
    Local source address from which NTP messages are sent or keyword 'default'.
    -
    -
    - source_int - -
    - string -
    -
    - -
    Local source interface from which NTP messages are sent. Must be fully qualified interface name or keyword 'default'
    -
    -
    - state - -
    - string -
    -
    -
      Choices: -
    • present ←
    • -
    • absent
    • -
    -
    -
    Manage the state of the resource.
    -
    -
    - vrf_name - -
    - string -
    -
    - -
    Makes the device communicate with the given NTP server or peer over a specific VRF or keyword 'default'.
    -
    -
    - - -Notes ------ - -.. note:: - - Limited Support for Cisco MDS - - For information on using CLI and NX-API see the :ref:`NXOS Platform Options guide ` - - For more information on using Ansible to manage network devices see the :ref:`Ansible Network Guide ` - - For more information on using Ansible to manage Cisco devices see the `Cisco integration page `_. - - - -Examples --------- - -.. code-block:: yaml - - # Set NTP Server with parameters - - cisco.nxos.nxos_ntp: - server: 1.2.3.4 - key_id: 32 - prefer: enabled - host: '{{ inventory_hostname }}' - username: '{{ un }}' - password: '{{ pwd }}' - - - -Return Values -------------- -Common return values are documented `here `_, the following are the fields unique to this module: - -.. raw:: html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    KeyReturnedDescription
    -
    - changed - -
    - boolean -
    -
    always -
    check to see if a change was made on the device
    -
    -
    Sample:
    -
    True
    -
    -
    - end_state - -
    - dictionary -
    -
    always -
    k/v pairs of ntp info after module execution
    -
    -
    Sample:
    -
    {'address': '192.0.2.2', 'key_id': '48', 'peer_type': 'server', 'prefer': 'enabled', 'source': '192.0.2.3', 'source_type': 'source'}
    -
    -
    - existing - -
    - dictionary -
    -
    always -
    k/v pairs of existing ntp server/peer
    -
    -
    Sample:
    -
    {'address': '192.0.2.2', 'key_id': '32', 'peer_type': 'server', 'prefer': 'enabled', 'source': 'ethernet2/1', 'source_type': 'source-interface'}
    -
    -
    - proposed - -
    - dictionary -
    -
    always -
    k/v pairs of parameters passed into module
    -
    -
    Sample:
    -
    {'address': '192.0.2.2', 'key_id': '48', 'peer_type': 'server', 'prefer': 'enabled', 'source': '192.0.2.3', 'source_type': 'source'}
    -
    -
    - updates - -
    - list -
    -
    always -
    command sent to the device
    -
    -
    Sample:
    -
    ['ntp server 192.0.2.2 prefer key 48', 'no ntp source-interface ethernet2/1', 'ntp source 192.0.2.3']
    -
    -

    - - -Status ------- - - -- This module will be removed in a release after 2024-01-01. *[deprecated]* -- For more information see `DEPRECATED`_. - - -Authors -~~~~~~~ - -- Jason Edelman (@jedelman8) diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_options_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_options_module.rst deleted file mode 100644 index e99825641..000000000 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ntp_options_module.rst +++ /dev/null @@ -1,192 +0,0 @@ -.. _cisco.nxos.nxos_ntp_options_module: - - -*************************** -cisco.nxos.nxos_ntp_options -*************************** - -**Manages NTP options.** - - -Version added: 1.0.0 - -.. contents:: - :local: - :depth: 1 - -DEPRECATED ----------- -:Removed in collection release after 2024-01-01 -:Why: Updated module released with more functionality. -:Alternative: nxos_ntp_global - - - -Synopsis --------- -- Manages NTP options, e.g. authoritative server and logging. - - - - -Parameters ----------- - -.. raw:: html - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterChoices/DefaultsComments
    -
    - logging - -
    - boolean -
    -
    -
      Choices: -
    • no
    • -
    • yes
    • -
    -
    -
    Sets whether NTP logging is enabled on the device.
    -
    -
    - master - -
    - boolean -
    -
    -
      Choices: -
    • no
    • -
    • yes
    • -
    -
    -
    Sets whether the device is an authoritative NTP server.
    -
    -
    - state - -
    - string -
    -
    -
      Choices: -
    • present ←
    • -
    • absent
    • -
    -
    -
    Manage the state of the resource.
    -
    -
    - stratum - -
    - string -
    -
    - -
    If master=true, an optional stratum can be supplied (1-15). The device default is 8.
    -
    -
    - - -Notes ------ - -.. note:: - - Tested against NXOSv 7.3.(0)D1(1) on VIRL - - Limited Support for Cisco MDS - - When ``state=absent``, master and logging will be set to False and stratum will be removed as well - - For information on using CLI and NX-API see the :ref:`NXOS Platform Options guide ` - - For more information on using Ansible to manage network devices see the :ref:`Ansible Network Guide ` - - For more information on using Ansible to manage Cisco devices see the `Cisco integration page `_. - - - -Examples --------- - -.. code-block:: yaml - - # Basic NTP options configuration - - cisco.nxos.nxos_ntp_options: - master: true - stratum: 12 - logging: false - host: '{{ inventory_hostname }}' - username: '{{ un }}' - password: '{{ pwd }}' - - - -Return Values -------------- -Common return values are documented `here `_, the following are the fields unique to this module: - -.. raw:: html - - - - - - - - - - - - -
    KeyReturnedDescription
    -
    - updates - -
    - list -
    -
    always -
    command sent to the device
    -
    -
    Sample:
    -
    ['no ntp logging', 'ntp master 12']
    -
    -

    - - -Status ------- - - -- This module will be removed in a release after 2024-01-01. *[deprecated]* -- For more information see `DEPRECATED`_. - - -Authors -~~~~~~~ - -- Jason Edelman (@jedelman8) diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospf_interfaces_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospf_interfaces_module.rst index 6dbfbd5f5..ff69b6e71 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospf_interfaces_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospf_interfaces_module.rst @@ -784,46 +784,46 @@ Examples config: - name: Ethernet1/1 address_family: - - afi: ipv4 - processes: - - process_id: "100" - area: - area_id: 1.1.1.1 - secondaries: False - multi_areas: - - 11.11.11.11 - - afi: ipv6 - processes: - - process_id: "200" - area: - area_id: 2.2.2.2 + - afi: ipv4 + processes: + - process_id: '100' + area: + area_id: 1.1.1.1 + secondaries: false multi_areas: - - 21.0.0.0 - - process_id: "300" + - 11.11.11.11 + - afi: ipv6 + processes: + - process_id: '200' + area: + area_id: 2.2.2.2 + multi_areas: + - 21.0.0.0 + - process_id: '300' + multi_areas: + - 50.50.50.50 multi_areas: - - 50.50.50.50 - multi_areas: - - 16.10.10.10 + - 16.10.10.10 - name: Ethernet1/2 address_family: - - afi: ipv4 - authentication: - enable: True - key_chain: test-1 - message_digest_key: - key_id: 10 - encryption: 3 - key: abc01d272be25d29 - cost: 100 - - afi: ipv6 - network: broadcast - shutdown: True + - afi: ipv4 + authentication: + enable: true + key_chain: test-1 + message_digest_key: + key_id: 10 + encryption: 3 + key: abc01d272be25d29 + cost: 100 + - afi: ipv6 + network: broadcast + shutdown: true - name: Ethernet1/3 address_family: - - afi: ipv4 - authentication_key: - encryption: 7 - key: 12090404011C03162E + - afi: ipv4 + authentication_key: + encryption: 7 + key: 12090404011C03162E state: merged # Task output: @@ -947,17 +947,17 @@ Examples - name: Replace OSPF configurations of listed interfaces with provided configurations cisco.nxos.nxos_ospf_interfaces: config: - - name: Ethernet1/1 - address_family: - - afi: ipv4 - processes: - - process_id: "100" - area: - area_id: 1.1.1.1 - secondaries: False - multi_areas: - - 11.11.11.12 - - name: Ethernet1/3 + - name: Ethernet1/1 + address_family: + - afi: ipv4 + processes: + - process_id: "100" + area: + area_id: 1.1.1.1 + secondaries: false + multi_areas: + - 11.11.11.12 + - name: Ethernet1/3 state: replaced # Task output: @@ -1091,16 +1091,16 @@ Examples - name: Override all OSPF interfaces configuration with provided configuration cisco.nxos.nxos_ospf_interfaces: config: - - name: Ethernet1/1 - address_family: - - afi: ipv4 - processes: - - process_id: "100" - area: - area_id: 1.1.1.1 - secondaries: False - multi_areas: - - 11.11.11.12 + - name: Ethernet1/1 + address_family: + - afi: ipv4 + processes: + - process_id: "100" + area: + area_id: 1.1.1.1 + secondaries: false + multi_areas: + - 11.11.11.12 state: overridden # Task output: @@ -1409,53 +1409,56 @@ Examples # Using rendered - - name: Render platform specific configuration lines with state rendered (without connecting to the device) + - name: >- + Render platform specific configuration lines with state rendered (without + connecting to the device) cisco.nxos.nxos_ospf_interfaces: config: - name: Ethernet1/1 address_family: - - afi: ipv4 - processes: - - process_id: "100" - area: - area_id: 1.1.1.1 - secondaries: False - multi_areas: - - 11.11.11.11 - - afi: ipv6 - processes: - - process_id: "200" - area: - area_id: 2.2.2.2 + - afi: ipv4 + processes: + - process_id: '100' + area: + area_id: 1.1.1.1 + secondaries: false multi_areas: - - 21.0.0.0 - - process_id: "300" + - 11.11.11.11 + - afi: ipv6 + processes: + - process_id: '200' + area: + area_id: 2.2.2.2 + multi_areas: + - 21.0.0.0 + - process_id: '300' + multi_areas: + - 50.50.50.50 multi_areas: - - 50.50.50.50 - multi_areas: - - 16.10.10.10 + - 16.10.10.10 - name: Ethernet1/2 address_family: - - afi: ipv4 - authentication: - enable: True - key_chain: test-1 - message_digest_key: - key_id: 10 - encryption: 3 - key: abc01d272be25d29 - cost: 100 - - afi: ipv6 - network: broadcast - shutdown: True + - afi: ipv4 + authentication: + enable: true + key_chain: test-1 + message_digest_key: + key_id: 10 + encryption: 3 + key: abc01d272be25d29 + cost: 100 + - afi: ipv6 + network: broadcast + shutdown: true - name: Ethernet1/3 address_family: - - afi: ipv4 - authentication_key: - encryption: 7 - key: 12090404011C03162E + - afi: ipv4 + authentication_key: + encryption: 7 + key: 12090404011C03162E state: rendered + # Task Output: # ------------ # rendered: diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospfv2_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospfv2_module.rst index bc5613068..2115d34f2 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospfv2_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospfv2_module.rst @@ -4432,56 +4432,56 @@ Examples cisco.nxos.nxos_ospfv2: config: processes: - - process_id: 100 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_1 - direction: in - - route_map: rmap_2 - direction: out - ranges: - - prefix: 198.51.100.64/27 - not_advertise: true - - prefix: 198.51.100.96/27 - cost: 120 - - area_id: 0.0.0.101 - authentication: - message_digest: true - redistribute: - - protocol: eigrp - id: 120 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - redistribute: - - protocol: static - route_map: zone1-static-connect - summary_address: - - prefix: 198.51.100.128/27 - tag: 121 - - prefix: 198.51.100.160/27 + - process_id: 100 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: true - no_summary: true - - area_id: 0.0.0.103 - nssa: - no_summary: true - translate: - type7: - always: true - - vrf: zone2 - auto_cost: - reference_bandwidth: 45 - unit: Gbps + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_1 + direction: in + - route_map: rmap_2 + direction: out + ranges: + - prefix: 198.51.100.64/27 + not_advertise: true + - prefix: 198.51.100.96/27 + cost: 120 + - area_id: 0.0.0.101 + authentication: + message_digest: true + redistribute: + - protocol: eigrp + id: 120 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + redistribute: + - protocol: static + route_map: zone1-static-connect + summary_address: + - prefix: 198.51.100.128/27 + tag: 121 + - prefix: 198.51.100.160/27 + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true + - area_id: 0.0.0.103 + nssa: + no_summary: true + translate: + type7: + always: true + - vrf: zone2 + auto_cost: + reference_bandwidth: 45 + unit: Gbps state: merged # Task output: @@ -4613,43 +4613,46 @@ Examples # vrf zone2 # auto-cost reference-bandwidth 45 Gbps - - name: Replace device configurations of listed OSPF processes with provided configurations + - name: >- + Replace device configurations of listed OSPF processes with provided + configurations cisco.nxos.nxos_ospfv2: config: processes: - - process_id: 102 - router_id: 198.51.100.1 - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_8 - direction: in - ranges: - - prefix: 198.51.100.64/27 - not_advertise: true - - area_id: 0.0.0.101 - stub: - no_summary: true - redistribute: - - protocol: eigrp - id: 130 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - redistribute: - - protocol: bgp - id: 65563 - route_map: zone1-bgp-connect + - process_id: 102 + router_id: 198.51.100.1 areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: true - no_summary: true + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_8 + direction: in + ranges: + - prefix: 198.51.100.64/27 + not_advertise: true + - area_id: 0.0.0.101 + stub: + no_summary: true + redistribute: + - protocol: eigrp + id: 130 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + redistribute: + - protocol: bgp + id: 65563 + route_map: zone1-bgp-connect + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true state: replaced + # Task output: # ------------ # before: @@ -4803,11 +4806,11 @@ Examples cisco.nxos.nxos_ospfv2: config: processes: - - process_id: 104 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - shutdown: true + - process_id: 104 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 + shutdown: true state: overridden # Task output: @@ -4925,7 +4928,7 @@ Examples cisco.nxos.nxos_ospfv2: config: processes: - - process_id: 102 + - process_id: 102 state: deleted # Task output: @@ -5088,62 +5091,65 @@ Examples # Using rendered - - name: Render platform specific configuration lines (without connecting to the device) + - name: >- + Render platform specific configuration lines (without connecting to the + device) cisco.nxos.nxos_ospfv2: config: processes: - - process_id: 100 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_1 - direction: in - - route_map: rmap_2 - direction: out - ranges: - - prefix: 198.51.100.64/27 - not_advertise: true - - prefix: 198.51.100.96/27 - cost: 120 - - area_id: 0.0.0.101 - authentication: - message_digest: true - redistribute: - - protocol: eigrp - id: 120 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - redistribute: - - protocol: static - route_map: zone1-static-connect - summary_address: - - prefix: 198.51.100.128/27 - tag: 121 - - prefix: 198.51.100.160/27 + - process_id: 100 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: true - no_summary: true - - area_id: 0.0.0.103 - nssa: - no_summary: true - translate: - type7: - always: true - - vrf: zone2 - auto_cost: - reference_bandwidth: 45 - unit: Gbps + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_1 + direction: in + - route_map: rmap_2 + direction: out + ranges: + - prefix: 198.51.100.64/27 + not_advertise: true + - prefix: 198.51.100.96/27 + cost: 120 + - area_id: 0.0.0.101 + authentication: + message_digest: true + redistribute: + - protocol: eigrp + id: 120 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + redistribute: + - protocol: static + route_map: zone1-static-connect + summary_address: + - prefix: 198.51.100.128/27 + tag: 121 + - prefix: 198.51.100.160/27 + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true + - area_id: 0.0.0.103 + nssa: + no_summary: true + translate: + type7: + always: true + - vrf: zone2 + auto_cost: + reference_bandwidth: 45 + unit: Gbps state: rendered + # Task output: # ------------ # rendered: diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospfv3_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospfv3_module.rst index 0c4c9efed..8e7c46ef6 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospfv3_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_ospfv3_module.rst @@ -3570,49 +3570,49 @@ Examples cisco.nxos.nxos_ospfv3: config: processes: - - process_id: 100 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - address_family: - afi: ipv6 - safi: unicast - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_1 - direction: in - - route_map: rmap_2 - direction: out - ranges: - - prefix: 2001:db2::/32 - not_advertise: true - - prefix: 2001:db3::/32 - cost: 120 - redistribute: - - protocol: eigrp - id: 120 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: true - no_summary: true - - area_id: 0.0.0.103 - nssa: - no_summary: true - translate: - type7: - always: true - - vrf: zone2 - auto_cost: - reference_bandwidth: 45 - unit: Gbps + - process_id: 100 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 + address_family: + afi: ipv6 + safi: unicast + areas: + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_1 + direction: in + - route_map: rmap_2 + direction: out + ranges: + - prefix: '2001:db2::/32' + not_advertise: true + - prefix: '2001:db3::/32' + cost: 120 + redistribute: + - protocol: eigrp + id: 120 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true + - area_id: 0.0.0.103 + nssa: + no_summary: true + translate: + type7: + always: true + - vrf: zone2 + auto_cost: + reference_bandwidth: 45 + unit: Gbps state: merged # Task output: @@ -3736,33 +3736,33 @@ Examples cisco.nxos.nxos_ospfv3: config: processes: - - process_id: 102 - router_id: 198.51.100.1 - address_family: - afi: ipv6 - safi: unicast - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_8 - direction: in - ranges: - - not_advertise: true - prefix: 2001:db2::/32 - redistribute: - - protocol: eigrp - id: 130 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: True - no_summary: True + - process_id: 102 + router_id: 198.51.100.1 + address_family: + afi: ipv6 + safi: unicast + areas: + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_8 + direction: in + ranges: + - not_advertise: true + prefix: 2001:db2::/32 + redistribute: + - protocol: eigrp + id: 130 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true state: replaced # Task output: @@ -3902,11 +3902,11 @@ Examples cisco.nxos.nxos_ospfv3: config: processes: - - process_id: 104 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - shutdown: true + - process_id: 104 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 + shutdown: true state: overridden # Task output: @@ -4022,7 +4022,7 @@ Examples cisco.nxos.nxos_ospfv3: config: processes: - - process_id: 102 + - process_id: 102 state: deleted # Task output: @@ -4074,7 +4074,7 @@ Examples # vrf: zone2 # # commands: - # - no router ospfv3 102 + # - no router ospfv3 102 # # after: # processes: @@ -4180,49 +4180,49 @@ Examples cisco.nxos.nxos_ospfv3: config: processes: - - process_id: 100 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - address_family: - afi: ipv6 - safi: unicast - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_1 - direction: in - - route_map: rmap_2 - direction: out - ranges: - - prefix: 2001:db2::/32 - not_advertise: true - - prefix: 2001:db3::/32 - cost: 120 - redistribute: - - protocol: eigrp - id: 120 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: true - no_summary: true - - area_id: 0.0.0.103 - nssa: - no_summary: true - translate: - type7: - always: true - - vrf: zone2 - auto_cost: - reference_bandwidth: 45 - unit: Gbps + - process_id: 100 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 + address_family: + afi: ipv6 + safi: unicast + areas: + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_1 + direction: in + - route_map: rmap_2 + direction: out + ranges: + - prefix: 2001:db2::/32 + not_advertise: true + - prefix: 2001:db3::/32 + cost: 120 + redistribute: + - protocol: eigrp + id: 120 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true + - area_id: 0.0.0.103 + nssa: + no_summary: true + translate: + type7: + always: true + - vrf: zone2 + auto_cost: + reference_bandwidth: 45 + unit: Gbps state: rendered # Task output: @@ -4315,7 +4315,7 @@ Examples # router_id: 192.0.100.2 # - process_id: "102" # router_id: 198.54.100.1 - # shutdown: True + # shutdown: true # Using gathered diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_route_maps_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_route_maps_module.rst index 6ced43a16..bcdf6a426 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_route_maps_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_route_maps_module.rst @@ -2957,44 +2957,44 @@ Examples - route_map: rmap3 entries: - - sequence: 10 - description: "*** first stanza ***" - action: permit - set: - ip: - next_hop: - verify_availability: - - address: 3.3.3.3 - track: 1 - - address: 4.4.4.4 - track: 3 + - sequence: 10 + description: "*** first stanza ***" + action: permit + set: + ip: + next_hop: + verify_availability: + - address: 3.3.3.3 + track: 1 + - address: 4.4.4.4 + track: 3 - - sequence: 20 - description: "*** second stanza ***" - action: permit - set: - ip: - next_hop: - address: 6.6.6.6 2.2.2.2 - load_share: true - drop_on_fail: true + - sequence: 20 + description: "*** second stanza ***" + action: permit + set: + ip: + next_hop: + address: 6.6.6.6 2.2.2.2 + load_share: true + drop_on_fail: true - - sequence: 30 - description: "*** third stanza ***" - action: permit - set: - ip: - next_hop: - peer_address: true + - sequence: 30 + description: "*** third stanza ***" + action: permit + set: + ip: + next_hop: + peer_address: true - - sequence: 40 - description: "*** fourth stanza ***" - action: permit - set: - ip: - next_hop: - unchanged: true - redist_unchanged: true + - sequence: 40 + description: "*** fourth stanza ***" + action: permit + set: + ip: + next_hop: + unchanged: true + redist_unchanged: true state: merged # Task output @@ -3259,35 +3259,35 @@ Examples - AllowPrefix1 set: community: - local_as: True + local_as: true - route_map: rmap3 entries: - - sequence: 10 - description: "*** first stanza ***" - action: permit - set: - ip: - next_hop: - verify_availability: - - address: 3.3.3.3 - track: 1 - - sequence: 20 - description: "*** second stanza ***" - action: permit - set: - ip: - next_hop: - peer_address: true - - sequence: 30 - description: "*** third stanza ***" - action: permit - set: - ip: - next_hop: - address: 6.6.6.6 2.2.2.2 - load_share: true - drop_on_fail: true + - sequence: 10 + description: "*** first stanza ***" + action: permit + set: + ip: + next_hop: + verify_availability: + - address: 3.3.3.3 + track: 1 + - sequence: 20 + description: "*** second stanza ***" + action: permit + set: + ip: + next_hop: + peer_address: true + - sequence: 30 + description: "*** third stanza ***" + action: permit + set: + ip: + next_hop: + address: 6.6.6.6 2.2.2.2 + load_share: true + drop_on_fail: true state: replaced # Task output @@ -3446,7 +3446,7 @@ Examples # - AllowPrefix1 # set: # community: - # local_as: True + # local_as: true # # - route_map: rmap2 # entries: @@ -3594,7 +3594,7 @@ Examples - AllowPrefix1 set: community: - local_as: True + local_as: true state: overridden # Task output @@ -3705,7 +3705,7 @@ Examples # - AllowPrefix1 # set: # community: - # local_as: True + # local_as: true # # After state: # ------------ diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_snmp_server_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_snmp_server_module.rst index 1324c39a1..126e16341 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_snmp_server_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_snmp_server_module.rst @@ -3676,18 +3676,18 @@ Examples location: serverroom-1 traps: aaa: - server_state_change: True + server_state_change: true system: - clock_change_notification: True + clock_change_notification: true hosts: - host: 192.0.2.1 - traps: True + traps: true version: '1' community: public - host: 192.0.2.1 source_interface: Ethernet1/1 - host: 192.0.2.2 - informs: True + informs: true version: '3' auth: NMS users: @@ -3697,16 +3697,16 @@ Examples authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true - user: snmp_user_2 group: network-operator authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true priv: privacy_password: '0x5632724fb8ac3699296af26281e1d0f1' - aes_128: True + aes_128: true use_acls: - user: snmp_user_1 ipv4: acl1 @@ -3725,7 +3725,7 @@ Examples # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" - # localized_key: True + # localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" # @@ -3757,9 +3757,9 @@ Examples # location: serverroom-1 # traps: # aaa: - # server_state_change: True + # server_state_change: true # system: - # clock_change_notification: True + # clock_change_notification: true # hosts: # - host: 192.0.2.1 # traps: true @@ -3780,7 +3780,7 @@ Examples # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" - # localized_key: True + # localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" # @@ -3789,7 +3789,7 @@ Examples # authentication: # algorithm: md5 # password: "0x5632724fb8ac3699296af26281e1d0f1" - # localized_key: True + # localized_key: true # # - authentication: # algorithm: md5 @@ -3863,16 +3863,16 @@ Examples location: serverroom-2 traps: aaa: - server_state_change: True + server_state_change: true hosts: - host: 192.0.2.1 - traps: True + traps: true version: '1' community: public - host: 192.0.2.1 source_interface: Ethernet1/1 - host: 192.0.3.2 - informs: True + informs: true version: '3' auth: NMS users: @@ -3882,7 +3882,7 @@ Examples authentication: algorithm: md5 password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" - localized_key: True + localized_key: true priv: privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" @@ -3891,17 +3891,17 @@ Examples authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true - user: snmp_user_2 group: network-operator authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true priv: privacy_password: '0x5632724fb8ac3699296af26281e1d0f1' - aes_128: True + aes_128: true use_acls: - user: snmp_user_1 ipv4: acl1 @@ -3922,9 +3922,9 @@ Examples # location: serverroom-1 # traps: # aaa: - # server_state_change: True + # server_state_change: true # system: - # clock_change_notification: True + # clock_change_notification: true # hosts: # - host: 192.0.2.1 # traps: true @@ -3945,7 +3945,7 @@ Examples # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" - # localized_key: True + # localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" # @@ -3954,7 +3954,7 @@ Examples # authentication: # algorithm: md5 # password: "0x5632724fb8ac3699296af26281e1d0f1" - # localized_key: True + # localized_key: true # # - authentication: # algorithm: md5 @@ -3996,16 +3996,16 @@ Examples # location: serverroom-2 # traps: # aaa: - # server_state_change: True + # server_state_change: true # hosts: # - host: 192.0.2.1 - # traps: True + # traps: true # version: '1' # community: public # - host: 192.0.2.1 # source_interface: Ethernet1/1 # - host: 192.0.3.2 - # informs: True + # informs: true # version: '3' # auth: NMS # users: @@ -4015,7 +4015,7 @@ Examples # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" - # localized_key: True + # localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" # @@ -4024,17 +4024,17 @@ Examples # authentication: # algorithm: md5 # password: '0x5632724fb8ac3699296af26281e1d0f1' - # localized_key: True + # localized_key: true # # - user: snmp_user_2 # group: network-operator # authentication: # algorithm: md5 # password: '0x5632724fb8ac3699296af26281e1d0f1' - # localized_key: True + # localized_key: true # priv: # privacy_password: '0x5632724fb8ac3699296af26281e1d0f1' - # aes_128: True + # aes_128: true # # use_acls: # - user: snmp_user_1 @@ -4100,9 +4100,9 @@ Examples # location: serverroom-1 # traps: # aaa: - # server_state_change: True + # server_state_change: true # system: - # clock_change_notification: True + # clock_change_notification: true # hosts: # - host: 192.0.2.1 # traps: true @@ -4123,7 +4123,7 @@ Examples # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" - # localized_key: True + # localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" # @@ -4132,7 +4132,7 @@ Examples # authentication: # algorithm: md5 # password: "0x5632724fb8ac3699296af26281e1d0f1" - # localized_key: True + # localized_key: true # # - authentication: # algorithm: md5 @@ -4177,7 +4177,7 @@ Examples # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" - # localized_key: True + # localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" @@ -4203,18 +4203,18 @@ Examples location: serverroom-1 traps: aaa: - server_state_change: True + server_state_change: true system: - clock_change_notification: True + clock_change_notification: true hosts: - host: 192.0.2.1 - traps: True + traps: true version: '1' community: public - host: 192.0.2.1 source_interface: Ethernet1/1 - host: 192.0.2.2 - informs: True + informs: true version: '3' auth: NMS users: @@ -4224,16 +4224,16 @@ Examples authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true - user: snmp_user_2 group: network-operator authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true priv: privacy_password: '0x5632724fb8ac3699296af26281e1d0f1' - aes_128: True + aes_128: true use_acls: - user: snmp_user_1 ipv4: acl1 @@ -4300,9 +4300,9 @@ Examples # location: serverroom-1 # traps: # aaa: - # server_state_change: True + # server_state_change: true # system: - # clock_change_notification: True + # clock_change_notification: true # hosts: # - host: 192.0.2.1 # traps: true @@ -4323,7 +4323,7 @@ Examples # authentication: # algorithm: md5 # password: "0x5632724fb8ac3699296af26281e1d0f1" - # localized_key: True + # localized_key: true # # - authentication: # algorithm: md5 diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_static_routes_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_static_routes_module.rst index 264515ecf..0ce8ef2ed 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_static_routes_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_static_routes_module.rst @@ -416,7 +416,7 @@ Examples - name: Delete routes based on VRF cisco.nxos.nxos_static_routes: config: - - vrf: trial_vrf + - vrf: trial_vrf state: deleted # Task Output @@ -496,9 +496,9 @@ Examples - name: Delete routes based on AFI in a VRF cisco.nxos.nxos_static_routes: config: - - vrf: trial_vrf - address_families: - - afi: ipv4 + - vrf: trial_vrf + address_families: + - afi: ipv4 state: deleted # Task Output @@ -580,28 +580,28 @@ Examples - name: Merge new static route configuration cisco.nxos.nxos_static_routes: config: - - vrf: trial_vrf - address_families: - - afi: ipv4 - routes: - - dest: 192.0.2.64/24 - next_hops: - - forward_router_address: 192.0.2.22 - tag: 4 - admin_distance: 2 - - address_families: - - afi: ipv4 - routes: - - dest: 192.0.2.16/24 - next_hops: - - forward_router_address: 192.0.2.24 - route_name: new_route - - afi: ipv6 - routes: - - dest: 2001:db8::/64 - next_hops: - - interface: eth1/3 - forward_router_address: 2001:db8::12 + - vrf: trial_vrf + address_families: + - afi: ipv4 + routes: + - dest: 192.0.2.64/24 + next_hops: + - forward_router_address: 192.0.2.22 + tag: 4 + admin_distance: 2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.0.2.16/24 + next_hops: + - forward_router_address: 192.0.2.24 + route_name: new_route + - afi: ipv6 + routes: + - dest: '2001:db8::/64' + next_hops: + - interface: eth1/3 + forward_router_address: '2001:db8::12' state: merged # Task Output @@ -663,19 +663,19 @@ Examples - name: Overridden existing static route configuration with new configuration cisco.nxos.nxos_static_routes: config: - - vrf: trial_vrf - address_families: - - afi: ipv4 - routes: - - dest: 192.0.2.16/28 - next_hops: - - forward_router_address: 192.0.2.23 - route_name: overridden_route1 - admin_distance: 3 - - forward_router_address: 192.0.2.45 - route_name: overridden_route2 - dest_vrf: destinationVRF - interface: Ethernet1/2 + - vrf: trial_vrf + address_families: + - afi: ipv4 + routes: + - dest: 192.0.2.16/28 + next_hops: + - forward_router_address: 192.0.2.23 + route_name: overridden_route1 + admin_distance: 3 + - forward_router_address: 192.0.2.45 + route_name: overridden_route2 + dest_vrf: destinationVRF + interface: Ethernet1/2 state: overridden # Task Output @@ -752,18 +752,18 @@ Examples - name: Replaced the existing static configuration of a prefix with new configuration cisco.nxos.nxos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 192.0.2.16/28 - next_hops: - - forward_router_address: 192.0.2.23 - route_name: replaced_route1 - admin_distance: 3 - - forward_router_address: 192.0.2.45 - route_name: replaced_route2 - dest_vrf: destinationVRF - interface: Ethernet1/2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.0.2.16/28 + next_hops: + - forward_router_address: 192.0.2.23 + route_name: replaced_route1 + admin_distance: 3 + - forward_router_address: 192.0.2.45 + route_name: replaced_route2 + dest_vrf: destinationVRF + interface: Ethernet1/2 state: replaced # Task Output @@ -882,18 +882,18 @@ Examples - name: Render required configuration to be pushed to the device cisco.nxos.nxos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 192.0.2.48/28 - next_hops: - - forward_router_address: 192.0.2.13 - - afi: ipv6 - routes: - - dest: 2001:db8::/64 - next_hops: - - interface: eth1/3 - forward_router_address: 2001:db8::12 + - address_families: + - afi: ipv4 + routes: + - dest: 192.0.2.48/28 + next_hops: + - forward_router_address: 192.0.2.13 + - afi: ipv6 + routes: + - dest: 2001:db8::/64 + next_hops: + - interface: eth1/3 + forward_router_address: 2001:db8::12 state: rendered # Task Output diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_system_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_system_module.rst index 4c573f51b..630ebbaad 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_system_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_system_module.rst @@ -181,14 +181,14 @@ Examples - name: configure name servers cisco.nxos.nxos_system: name_servers: - - 8.8.8.8 - - 8.8.4.4 + - 8.8.8.8 + - 8.8.4.4 - name: configure name servers with VRF support cisco.nxos.nxos_system: name_servers: - - {server: 8.8.8.8, vrf: mgmt} - - {server: 8.8.4.4, vrf: mgmt} + - {server: 8.8.8.8, vrf: mgmt} + - {server: 8.8.4.4, vrf: mgmt} diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_telemetry_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_telemetry_module.rst index 00dcb28b2..d1394ccf0 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_telemetry_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_telemetry_module.rst @@ -611,41 +611,41 @@ Examples source_interface: Ethernet1/1 vrf: management destination_groups: - - id: 2 - destination: - ip: 192.168.0.2 - port: 50001 - protocol: gRPC - encoding: GPB - - id: 55 - destination: - ip: 192.168.0.55 - port: 60001 - protocol: gRPC - encoding: GPB + - id: 2 + destination: + ip: 192.168.0.2 + port: 50001 + protocol: gRPC + encoding: GPB + - id: 55 + destination: + ip: 192.168.0.55 + port: 60001 + protocol: gRPC + encoding: GPB sensor_groups: - - id: 1 - data_source: NX-API - path: - name: '"show lldp neighbors detail"' - depth: 0 - - id: 55 - data_source: DME - path: - name: sys/ch - depth: unbounded - filter_condition: ne(eqptFt.operSt,"ok") + - id: 1 + data_source: NX-API + path: + name: '"show lldp neighbors detail"' + depth: 0 + - id: 55 + data_source: DME + path: + name: sys/ch + depth: unbounded + filter_condition: ne(eqptFt.operSt,"ok") subscriptions: - - id: 5 - destination_group: 55 - sensor_group: - id: 1 - sample_interval: 1000 - - id: 6 - destination_group: 2 - sensor_group: - id: 55 - sample_interval: 2000 + - id: 5 + destination_group: 55 + sensor_group: + id: 1 + sample_interval: 1000 + - id: 6 + destination_group: 2 + sensor_group: + id: 55 + sample_interval: 2000 state: merged @@ -663,15 +663,15 @@ Examples source_interface: Ethernet1/1 vrf: management destination_groups: - - id: 2 - destination: - ip: 192.168.0.2 - port: 50001 - protocol: gRPC - encoding: GPB + - id: 2 + destination: + ip: 192.168.0.2 + port: 50001 + protocol: gRPC + encoding: GPB subscriptions: - - id: 5 - destination_group: 55 + - id: 5 + destination_group: 55 state: replaced diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_user_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_user_module.rst index bcd44852b..a03a23a03 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_user_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_user_module.rst @@ -340,8 +340,8 @@ Examples - name: set multiple users role cisco.nxos.nxos_user: aggregate: - - name: netop - - name: netend + - name: netop + - name: netend role: network-operator state: present diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vlans_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vlans_module.rst index 1da6615e6..a9dc3f41d 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vlans_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vlans_module.rst @@ -228,10 +228,10 @@ Examples - name: Merge provided configuration with device configuration. cisco.nxos.nxos_vlans: config: - - vlan_id: 5 - name: test-vlan5 - - vlan_id: 10 - enabled: false + - vlan_id: 5 + name: test-vlan5 + - vlan_id: 10 + enabled: false state: merged # After state: @@ -258,11 +258,11 @@ Examples - name: Replace device configuration of specified vlan with provided configuration. cisco.nxos.nxos_vlans: config: - - vlan_id: 5 - name: test-vlan - enabled: false - - vlan_id: 10 - enabled: false + - vlan_id: 5 + name: test-vlan + enabled: false + - vlan_id: 10 + enabled: false state: replaced # After state: @@ -293,10 +293,10 @@ Examples - name: Override device configuration of all vlans with provided configuration. cisco.nxos.nxos_vlans: config: - - vlan_id: 5 - name: test-vlan - - vlan_id: 10 - state: active + - vlan_id: 5 + name: test-vlan + - vlan_id: 10 + state: active state: overridden # After state: @@ -321,8 +321,8 @@ Examples - name: Delete vlans. cisco.nxos.nxos_vlans: config: - - vlan_id: 5 - - vlan_id: 10 + - vlan_id: 5 + - vlan_id: 10 state: deleted # After state: @@ -334,13 +334,13 @@ Examples - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_vlans: config: - - vlan_id: 5 - name: vlan5 - mapped_vni: 100 + - vlan_id: 5 + name: vlan5 + mapped_vni: 100 - - vlan_id: 6 - name: vlan6 - state: suspend + - vlan_id: 6 + name: vlan6 + state: suspend state: rendered # Task Output (redacted) diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vrf_af_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vrf_af_module.rst index a48a43847..236991587 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vrf_af_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vrf_af_module.rst @@ -210,55 +210,50 @@ Examples afi: ipv4 route_target_both_auto_evpn: true state: present - - cisco.nxos.nxos_vrf_af: vrf: ntc afi: ipv4 route_targets: - - rt: 65000:1000 - direction: import - - rt: 65001:1000 - direction: import - + - rt: '65000:1000' + direction: import + - rt: '65001:1000' + direction: import - cisco.nxos.nxos_vrf_af: vrf: ntc afi: ipv4 route_targets: - - rt: 65000:1000 - direction: import - - rt: 65001:1000 - state: absent - + - rt: '65000:1000' + direction: import + - rt: '65001:1000' + state: absent - cisco.nxos.nxos_vrf_af: vrf: ntc afi: ipv4 route_targets: - - rt: 65000:1000 - direction: export - - rt: 65001:1000 - direction: export - + - rt: '65000:1000' + direction: export + - rt: '65001:1000' + direction: export - cisco.nxos.nxos_vrf_af: vrf: ntc afi: ipv4 route_targets: - - rt: 65000:1000 - direction: export - state: absent - + - rt: '65000:1000' + direction: export + state: absent - cisco.nxos.nxos_vrf_af: vrf: ntc afi: ipv4 route_targets: - - rt: 65000:1000 - direction: both - state: present - - rt: 65001:1000 - direction: import - state: present - - rt: 65002:1000 - direction: both - state: absent + - rt: '65000:1000' + direction: both + state: present + - rt: '65001:1000' + direction: import + state: present + - rt: '65002:1000' + direction: both + state: absent diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vrf_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vrf_module.rst index dff7e37cd..6765f78b5 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vrf_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vrf_module.rst @@ -400,48 +400,48 @@ Examples name: ntc description: testing state: present - - name: Aggregate definition of VRFs cisco.nxos.nxos_vrf: aggregate: - - {name: test1, description: Testing, admin_state: down} - - {name: test2, interfaces: Ethernet1/2} - + - name: test1 + description: Testing + admin_state: down + - name: test2 + interfaces: Ethernet1/2 - name: Aggregate definitions of VRFs with Purge cisco.nxos.nxos_vrf: aggregate: - - {name: ntc1, description: purge test1} - - {name: ntc2, description: purge test2} + - name: ntc1 + description: purge test1 + - name: ntc2 + description: purge test2 state: present purge: true - - name: Delete VRFs exist on switch cisco.nxos.nxos_vrf: aggregate: - - {name: ntc1} - - {name: ntc2} + - name: ntc1 + - name: ntc2 state: absent - - name: Assign interfaces to VRF declaratively cisco.nxos.nxos_vrf: name: test1 interfaces: - - Ethernet2/3 - - Ethernet2/5 - + - Ethernet2/3 + - Ethernet2/5 - name: Check interfaces assigned to VRF cisco.nxos.nxos_vrf: name: test1 associated_interfaces: - - Ethernet2/3 - - Ethernet2/5 - - - name: Ensure VRF is tagged with interface Ethernet2/5 only (Removes from Ethernet2/3) + - Ethernet2/3 + - Ethernet2/5 + - name: >- + Ensure VRF is tagged with interface Ethernet2/5 only (Removes from + Ethernet2/3) cisco.nxos.nxos_vrf: name: test1 interfaces: - - Ethernet2/5 - + - Ethernet2/5 - name: Delete VRF cisco.nxos.nxos_vrf: name: ntc diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vsan_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vsan_module.rst index c161f11d8..9baa64c68 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vsan_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_vsan_module.rst @@ -160,25 +160,25 @@ Examples - name: Test that vsan module works cisco.nxos.nxos_vsan: vsan: - - id: 922 - interface: - - fc1/1 - - fc1/2 - - port-channel 1 - name: vsan-SAN-A - remove: false - suspend: false - - id: 923 - interface: - - fc1/11 - - fc1/21 - - port-channel 2 - name: vsan-SAN-B - remove: false - suspend: true - - id: 1923 - name: vsan-SAN-Old - remove: true + - id: 922 + interface: + - fc1/1 + - fc1/2 + - port-channel 1 + name: vsan-SAN-A + remove: false + suspend: false + - id: 923 + interface: + - fc1/11 + - fc1/21 + - port-channel 2 + name: vsan-SAN-B + remove: false + suspend: true + - id: 1923 + name: vsan-SAN-Old + remove: true diff --git a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_zone_zoneset_module.rst b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_zone_zoneset_module.rst index 4d0c320b7..95ef4972a 100644 --- a/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_zone_zoneset_module.rst +++ b/ansible_collections/cisco/nxos/docs/cisco.nxos.nxos_zone_zoneset_module.rst @@ -426,54 +426,54 @@ Examples - name: Test that zone/zoneset module works cisco.nxos.nxos_zone_zoneset: zone_zoneset_details: - - mode: enhanced - vsan: 22 - zone: - - members: - - pwwn: 11:11:11:11:11:11:11:11 - - device_alias: test123 - - pwwn: 61:61:62:62:12:12:12:12 - remove: true - name: zoneA - - members: - - pwwn: 10:11:11:11:11:11:11:11 - - pwwn: 62:62:62:62:21:21:21:21 - name: zoneB - - name: zoneC - remove: true - zoneset: - - action: activate - members: - - name: zoneA - - name: zoneB - - name: zoneC - remove: true - name: zsetname1 - - action: deactivate - name: zsetTestExtra - remove: true - - mode: basic - smart_zoning: true - vsan: 21 - zone: - - members: - - devtype: both - pwwn: 11:11:11:11:11:11:11:11 - - pwwn: 62:62:62:62:12:12:12:12 - - devtype: both - pwwn: 92:62:62:62:12:12:1a:1a - remove: true - name: zone21A - - members: - - pwwn: 10:11:11:11:11:11:11:11 - - pwwn: 62:62:62:62:21:21:21:21 - name: zone21B - zoneset: - - action: activate - members: - - name: zone21A - - name: zone21B - name: zsetname212 + - mode: enhanced + vsan: 22 + zone: + - members: + - pwwn: 31314874576271 + - device_alias: test123 + - pwwn: '61:61:62:62:12:12:12:12' + remove: true + name: zoneA + - members: + - pwwn: 28515514576271 + - pwwn: '62:62:62:62:21:21:21:21' + name: zoneB + - name: zoneC + remove: true + zoneset: + - action: activate + members: + - name: zoneA + - name: zoneB + - name: zoneC + remove: true + name: zsetname1 + - action: deactivate + name: zsetTestExtra + remove: true + - mode: basic + smart_zoning: true + vsan: 21 + zone: + - members: + - devtype: both + pwwn: 31314874576271 + - pwwn: '62:62:62:62:12:12:12:12' + - devtype: both + pwwn: '92:62:62:62:12:12:1a:1a' + remove: true + name: zone21A + - members: + - pwwn: 28515514576271 + - pwwn: '62:62:62:62:21:21:21:21' + name: zone21B + zoneset: + - action: activate + members: + - name: zone21A + - name: zone21B + name: zsetname212 diff --git a/ansible_collections/cisco/nxos/meta/runtime.yml b/ansible_collections/cisco/nxos/meta/runtime.yml index d83b291f1..bd17c140f 100644 --- a/ansible_collections/cisco/nxos/meta/runtime.yml +++ b/ansible_collections/cisco/nxos/meta/runtime.yml @@ -1,331 +1,6 @@ --- -requires_ansible: ">=2.9.10" +requires_ansible: ">=2.14.0" plugin_routing: - action: - nxos_aaa_server: - redirect: cisco.nxos.nxos - aaa_server: - redirect: cisco.nxos.nxos - nxos_aaa_server_host: - redirect: cisco.nxos.nxos - aaa_server_host: - redirect: cisco.nxos.nxos - nxos_acl_interfaces: - redirect: cisco.nxos.nxos - acl_interfaces: - redirect: cisco.nxos.nxos - nxos_acls: - redirect: cisco.nxos.nxos - acls: - redirect: cisco.nxos.nxos - nxos_banner: - redirect: cisco.nxos.nxos - banner: - redirect: cisco.nxos.nxos - nxos_bfd_global: - redirect: cisco.nxos.nxos - bfd_global: - redirect: cisco.nxos.nxos - nxos_bfd_interfaces: - redirect: cisco.nxos.nxos - bfd_interfaces: - redirect: cisco.nxos.nxos - nxos_command: - redirect: cisco.nxos.nxos - command: - redirect: cisco.nxos.nxos - nxos_config: - redirect: cisco.nxos.nxos - config: - redirect: cisco.nxos.nxos - nxos_devicealias: - redirect: cisco.nxos.nxos - devicealias: - redirect: cisco.nxos.nxos - nxos_evpn_global: - redirect: cisco.nxos.nxos - evpn_global: - redirect: cisco.nxos.nxos - nxos_evpn_vni: - redirect: cisco.nxos.nxos - evpn_vni: - redirect: cisco.nxos.nxos - nxos_facts: - redirect: cisco.nxos.nxos - facts: - redirect: cisco.nxos.nxos - nxos_feature: - redirect: cisco.nxos.nxos - feature: - redirect: cisco.nxos.nxos - nxos_gir: - redirect: cisco.nxos.nxos - gir: - redirect: cisco.nxos.nxos - nxos_gir_profile_management: - redirect: cisco.nxos.nxos - gir_profile_management: - redirect: cisco.nxos.nxos - nxos_hostname: - redirect: cisco.nxos.nxos - hostname: - redirect: cisco.nxos.nxos - nxos_hsrp: - redirect: cisco.nxos.nxos - hsrp: - redirect: cisco.nxos.nxos - nxos_hsrp_interfaces: - redirect: cisco.nxos.nxos - hsrp_interfaces: - redirect: cisco.nxos.nxos - nxos_igmp: - redirect: cisco.nxos.nxos - igmp: - redirect: cisco.nxos.nxos - nxos_igmp_interface: - redirect: cisco.nxos.nxos - igmp_interface: - redirect: cisco.nxos.nxos - nxos_igmp_snooping: - redirect: cisco.nxos.nxos - igmp_snooping: - redirect: cisco.nxos.nxos - nxos_install_os: - redirect: cisco.nxos.nxos - install_os: - redirect: cisco.nxos.nxos - nxos_interfaces: - redirect: cisco.nxos.nxos - interfaces: - redirect: cisco.nxos.nxos - nxos_l2_interfaces: - redirect: cisco.nxos.nxos - l2_interfaces: - redirect: cisco.nxos.nxos - nxos_l3_interfaces: - redirect: cisco.nxos.nxos - l3_interfaces: - redirect: cisco.nxos.nxos - nxos_lacp: - redirect: cisco.nxos.nxos - lacp: - redirect: cisco.nxos.nxos - nxos_lacp_interfaces: - redirect: cisco.nxos.nxos - lacp_interfaces: - redirect: cisco.nxos.nxos - nxos_lag_interfaces: - redirect: cisco.nxos.nxos - lag_interfaces: - redirect: cisco.nxos.nxos - nxos_lldp_global: - redirect: cisco.nxos.nxos - lldp_global: - redirect: cisco.nxos.nxos - nxos_lldp_interfaces: - redirect: cisco.nxos.nxos - lldp_interfaces: - redirect: cisco.nxos.nxos - nxos_logging: - redirect: cisco.nxos.nxos - logging: - redirect: cisco.nxos.nxos - nxos_logging_global: - redirect: cisco.nxos.nxos - logging_global: - redirect: cisco.nxos.nxos - nxos_ntp_global: - redirect: cisco.nxos.nxos - ntp_global: - redirect: cisco.nxos.nxos - nxos_ntp: - redirect: cisco.nxos.nxos - ntp: - redirect: cisco.nxos.nxos - nxos_ntp_auth: - redirect: cisco.nxos.nxos - ntp_auth: - redirect: cisco.nxos.nxos - nxos_ntp_options: - redirect: cisco.nxos.nxos - ntp_options: - redirect: cisco.nxos.nxos - nxos_nxapi: - redirect: cisco.nxos.nxos - nxapi: - redirect: cisco.nxos.nxos - nxos_ospf_interfaces: - redirect: cisco.nxos.nxos - ospf_interfaces: - redirect: cisco.nxos.nxos - nxos_bgp_global: - redirect: cisco.nxos.nxos - bgp_global: - redirect: cisco.nxos.nxos - nxos_bgp_address_family: - redirect: cisco.nxos.nxos - bgp_address_family: - redirect: cisco.nxos.nxos - nxos_ospfv2: - redirect: cisco.nxos.nxos - ospfv2: - redirect: cisco.nxos.nxos - nxos_ospfv3: - redirect: cisco.nxos.nxos - ospfv3: - redirect: cisco.nxos.nxos - nxos_overlay_global: - redirect: cisco.nxos.nxos - overlay_global: - redirect: cisco.nxos.nxos - nxos_pim: - redirect: cisco.nxos.nxos - pim: - redirect: cisco.nxos.nxos - nxos_pim_interface: - redirect: cisco.nxos.nxos - pim_interface: - redirect: cisco.nxos.nxos - nxos_pim_rp_address: - redirect: cisco.nxos.nxos - pim_rp_address: - redirect: cisco.nxos.nxos - nxos_ping: - redirect: cisco.nxos.nxos - ping: - redirect: cisco.nxos.nxos - nxos_prefix_lists: - redirect: cisco.nxos.nxos - prefix_lists: - redirect: cisco.nxos.nxos - nxos_reboot: - redirect: cisco.nxos.nxos - reboot: - redirect: cisco.nxos.nxos - nxos_rollback: - redirect: cisco.nxos.nxos - rollback: - redirect: cisco.nxos.nxos - nxos_route_maps: - redirect: cisco.nxos.nxos - route_maps: - redirect: cisco.nxos.nxos - nxos_rpm: - redirect: cisco.nxos.nxos - rpm: - redirect: cisco.nxos.nxos - nxos_snapshot: - redirect: cisco.nxos.nxos - snapshot: - redirect: cisco.nxos.nxos - nxos_snmp_community: - redirect: cisco.nxos.nxos - snmp_community: - redirect: cisco.nxos.nxos - nxos_snmp_contact: - redirect: cisco.nxos.nxos - snmp_contact: - redirect: cisco.nxos.nxos - nxos_snmp_host: - redirect: cisco.nxos.nxos - snmp_host: - redirect: cisco.nxos.nxos - nxos_snmp_location: - redirect: cisco.nxos.nxos - snmp_location: - redirect: cisco.nxos.nxos - nxos_snmp_server: - redirect: cisco.nxos.nxos - snmp_server: - redirect: cisco.nxos.nxos - nxos_snmp_traps: - redirect: cisco.nxos.nxos - snmp_traps: - redirect: cisco.nxos.nxos - nxos_snmp_user: - redirect: cisco.nxos.nxos - snmp_user: - redirect: cisco.nxos.nxos - nxos_static_route: - redirect: cisco.nxos.nxos - static_routes: - redirect: cisco.nxos.nxos - nxos_system: - redirect: cisco.nxos.nxos - system: - redirect: cisco.nxos.nxos - nxos_telemetry: - redirect: cisco.nxos.nxos - telemetry: - redirect: cisco.nxos.nxos - nxos_udld: - redirect: cisco.nxos.nxos - udld: - redirect: cisco.nxos.nxos - nxos_udld_interface: - redirect: cisco.nxos.nxos - udld_interface: - redirect: cisco.nxos.nxos - nxos_user: - redirect: cisco.nxos.nxos - user: - redirect: cisco.nxos.nxos - nxos_vlans: - redirect: cisco.nxos.nxos - vlans: - redirect: cisco.nxos.nxos - nxos_vpc: - redirect: cisco.nxos.nxos - vpc: - redirect: cisco.nxos.nxos - nxos_vpc_interface: - redirect: cisco.nxos.nxos - vpc_interface: - redirect: cisco.nxos.nxos - nxos_vrf: - redirect: cisco.nxos.nxos - vrf: - redirect: cisco.nxos.nxos - nxos_vrf_af: - redirect: cisco.nxos.nxos - vrf_af: - redirect: cisco.nxos.nxos - nxos_vrf_interface: - redirect: cisco.nxos.nxos - vrf_interface: - redirect: cisco.nxos.nxos - nxos_vrrp: - redirect: cisco.nxos.nxos - vrrp: - redirect: cisco.nxos.nxos - nxos_vsan: - redirect: cisco.nxos.nxos - vsan: - redirect: cisco.nxos.nxos - nxos_vtp_domain: - redirect: cisco.nxos.nxos - vtp_domain: - redirect: cisco.nxos.nxos - nxos_vtp_password: - redirect: cisco.nxos.nxos - vtp_password: - redirect: cisco.nxos.nxos - nxos_vtp_version: - redirect: cisco.nxos.nxos - vtp_version: - redirect: cisco.nxos.nxos - nxos_vxlan_vtep: - redirect: cisco.nxos.nxos - vxlan_vtep: - redirect: cisco.nxos.nxos - nxos_vxlan_vtep_vni: - redirect: cisco.nxos.nxos - vxlan_vtep_vni: - redirect: cisco.nxos.nxos - nxos_zone_zoneset: - redirect: cisco.nxos.nxos - zone_zoneset: - redirect: cisco.nxos.nxos modules: aaa_server: redirect: cisco.nxos.nxos_aaa_server @@ -391,46 +66,10 @@ plugin_routing: redirect: cisco.nxos.nxos_lldp_global lldp_interfaces: redirect: cisco.nxos.nxos_lldp_interfaces - logging: - redirect: cisco.nxos.nxos_logging - deprecation: - removal_date: "2023-08-01" - warning_text: See the plugin documentation for more details - nxos_logging: - deprecation: - removal_date: "2023-08-01" - warning_text: See the plugin documentation for more details logging_global: redirect: cisco.nxos.nxos_logging_global ntp_global: redirect: cisco.nxos.nxos_ntp_global - ntp: - redirect: cisco.nxos.nxos_ntp - deprecation: - removal_date: "2024-01-01" - warning_text: See the plugin documentation for more details - nxos_ntp: - deprecation: - removal_date: "2024-01-01" - warning_text: See the plugin documentation for more details - ntp_auth: - redirect: cisco.nxos.nxos_ntp_auth - deprecation: - removal_date: "2024-01-01" - warning_text: See the plugin documentation for more details - nxos_ntp_auth: - deprecation: - removal_date: "2024-01-01" - warning_text: See the plugin documentation for more details - ntp_options: - redirect: cisco.nxos.nxos_ntp_options - deprecation: - removal_date: "2024-01-01" - warning_text: See the plugin documentation for more details - nxos_ntp_options: - deprecation: - removal_date: "2024-01-01" - warning_text: See the plugin documentation for more details nxapi: redirect: cisco.nxos.nxos_nxapi ospf_interfaces: diff --git a/ansible_collections/cisco/nxos/platform_guide.rst b/ansible_collections/cisco/nxos/platform_guide.rst new file mode 100644 index 000000000..ab6035f32 --- /dev/null +++ b/ansible_collections/cisco/nxos/platform_guide.rst @@ -0,0 +1,170 @@ +.. _nxos_platform_options: + +*************************************** +NXOS Platform Options +*************************************** + +The `Cisco NXOS `_ supports multiple connections. This page offers details on how each connection works in Ansible and how to use it. + +.. contents:: + :local: + +Connections available +================================================================================ + +.. table:: + :class: documentation-table + + ==================== ========================================== ========================= + .. CLI NX-API + ==================== ========================================== ========================= + Protocol SSH HTTP(S) + + Credentials uses SSH keys / SSH-agent if present uses HTTPS certificates if + present + accepts ``-u myuser -k`` if using password + + Indirect Access by a bastion (jump host) by a web proxy + + Connection Settings ``ansible_connection:`` ``ansible_connection:`` + ``ansible.netcommon.network_cli`` ``ansible.netcommon.httpapi`` + + Enable Mode supported: use ``ansible_become: true`` not supported by NX-API + with ``ansible_become_method: enable`` + and ``ansible_become_password:`` + + Returned Data Format ``stdout[0].`` ``stdout[0].messages[0].`` + ==================== ========================================== ========================= + + +Using CLI in Ansible +==================== + +Example CLI ``group_vars/nxos.yml`` +----------------------------------- + +.. code-block:: yaml + + ansible_connection: ansible.netcommon.network_cli + ansible_network_os: cisco.nxos.nxos + ansible_user: myuser + ansible_password: !vault... + ansible_become: true + ansible_become_method: enable + ansible_become_password: !vault... + ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q bastion01"' + + +- If you are using SSH keys (including an ssh-agent) you can remove the ``ansible_password`` configuration. +- If you are accessing your host directly (not through a bastion/jump host) you can remove the ``ansible_ssh_common_args`` configuration. +- If you are accessing your host through a bastion/jump host, you cannot include your SSH password in the ``ProxyCommand`` directive. To prevent secrets from leaking out (for example in ``ps`` output), SSH does not support providing passwords through environment variables. + +Note +----- + +When using ``ansible_connection: ansible.netcommon.network_cli``, the ``ansible_user`` must have permissions to execute the ``terminal length 0`` and ``terminal width 511`` commands on the target device. + +Example CLI task +---------------- + +.. code-block:: yaml + + - name: Backup current switch config (nxos) + cisco.nxos.nxos_config: + backup: yes + register: backup_nxos_location + when: ansible_network_os == 'cisco.nxos.nxos' + + + +Using NX-API in Ansible +======================= + +Enabling NX-API +--------------- + +Before you can use NX-API to connect to a switch, you must enable NX-API. To enable NX-API on a new switch through Ansible, use the ``nxos_nxapi`` module through the CLI connection. Set up group_vars/nxos.yml just like in the CLI example above, then run a playbook task like this: + +.. code-block:: yaml + + - name: Enable NX-API + cisco.nxos.nxos_nxapi: + enable_http: yes + enable_https: yes + when: ansible_network_os == 'cisco.nxos.nxos' + +To find out more about the options for enabling HTTP/HTTPS and local http see the :ref:`nxos_nxapi ` module documentation. + +Once NX-API is enabled, change your ``group_vars/nxos.yml`` to use the NX-API connection. + +Example NX-API ``group_vars/nxos.yml`` +-------------------------------------- + +.. code-block:: yaml + + ansible_connection: ansible.netcommon.httpapi + ansible_network_os: cisco.nxos.nxos + ansible_user: myuser + ansible_password: !vault... + proxy_env: + http_proxy: http://proxy.example.com:8080 + +- If you are accessing your host directly (not through a web proxy) you can remove the ``proxy_env`` configuration. +- If you are accessing your host through a web proxy using ``https``, change ``http_proxy`` to ``https_proxy``. + + +Example NX-API task +------------------- + +.. code-block:: yaml + + - name: Backup current switch config (nxos) + cisco.nxos.nxos_config: + backup: yes + register: backup_nxos_location + environment: "{{ proxy_env }}" + when: ansible_network_os == 'cisco.nxos.nxos' + +In this example the ``proxy_env`` variable defined in ``group_vars`` gets passed to the ``environment`` option of the module used in the task. + +Warning +-------- +Never store passwords in plain text. We recommend using SSH keys to authenticate SSH connections. Ansible supports ssh-agent to manage your SSH keys. If you must use passwords to authenticate SSH connections, we recommend encrypting them with Ansible Vault. + +Cisco Nexus platform support matrix +=================================== + +The following platforms and software versions have been certified by Cisco to work with this version of Ansible. + +.. table:: Platform / Software Minimum Requirements + :align: center + + =================== ===================== + Supported Platforms Minimum NX-OS Version + =================== ===================== + Cisco Nexus N3k 7.0(3)I2(5) and later + Cisco Nexus N9k 7.0(3)I2(5) and later + Cisco Nexus N5k 7.3(0)N1(1) and later + Cisco Nexus N6k 7.3(0)N1(1) and later + Cisco Nexus N7k 7.3(0)D1(1) and later + Cisco Nexus MDS 8.4(1) and later (Please see individual module documentation for compatibility) + =================== ===================== + +.. table:: Platform Models + :align: center + + ======== ============================================== + Platform Description + ======== ============================================== + N3k Support includes N30xx, N31xx and N35xx models + N5k Support includes all N5xxx models + N6k Support includes all N6xxx models + N7k Support includes all N7xxx models + N9k Support includes all N9xxx models + MDS Support includes all MDS 9xxx models + ======== ============================================== + +Notes +----- + +`Setting Timeout Option `_ diff --git a/ansible_collections/cisco/nxos/plugins/action/aaa_server.py b/ansible_collections/cisco/nxos/plugins/action/aaa_server.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/aaa_server.py +++ b/ansible_collections/cisco/nxos/plugins/action/aaa_server.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/aaa_server_host.py b/ansible_collections/cisco/nxos/plugins/action/aaa_server_host.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/aaa_server_host.py +++ b/ansible_collections/cisco/nxos/plugins/action/aaa_server_host.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/acl.py b/ansible_collections/cisco/nxos/plugins/action/acl.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/acl.py +++ b/ansible_collections/cisco/nxos/plugins/action/acl.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/acl_interface.py b/ansible_collections/cisco/nxos/plugins/action/acl_interface.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/acl_interface.py +++ b/ansible_collections/cisco/nxos/plugins/action/acl_interface.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/acl_interfaces.py b/ansible_collections/cisco/nxos/plugins/action/acl_interfaces.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/acl_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/action/acl_interfaces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/acls.py b/ansible_collections/cisco/nxos/plugins/action/acls.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/acls.py +++ b/ansible_collections/cisco/nxos/plugins/action/acls.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/banner.py b/ansible_collections/cisco/nxos/plugins/action/banner.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/banner.py +++ b/ansible_collections/cisco/nxos/plugins/action/banner.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/bfd_global.py b/ansible_collections/cisco/nxos/plugins/action/bfd_global.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/bfd_global.py +++ b/ansible_collections/cisco/nxos/plugins/action/bfd_global.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/bfd_interfaces.py b/ansible_collections/cisco/nxos/plugins/action/bfd_interfaces.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/bfd_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/action/bfd_interfaces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/bgp.py b/ansible_collections/cisco/nxos/plugins/action/bgp.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/bgp.py +++ b/ansible_collections/cisco/nxos/plugins/action/bgp.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/bgp_address_family.py b/ansible_collections/cisco/nxos/plugins/action/bgp_address_family.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/bgp_address_family.py +++ b/ansible_collections/cisco/nxos/plugins/action/bgp_address_family.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/bgp_af.py b/ansible_collections/cisco/nxos/plugins/action/bgp_af.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/bgp_af.py +++ b/ansible_collections/cisco/nxos/plugins/action/bgp_af.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/bgp_global.py b/ansible_collections/cisco/nxos/plugins/action/bgp_global.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/bgp_global.py +++ b/ansible_collections/cisco/nxos/plugins/action/bgp_global.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor.py b/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor.py +++ b/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor_address_family.py b/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor_address_family.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor_address_family.py +++ b/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor_address_family.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor_af.py b/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor_af.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor_af.py +++ b/ansible_collections/cisco/nxos/plugins/action/bgp_neighbor_af.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/command.py b/ansible_collections/cisco/nxos/plugins/action/command.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/command.py +++ b/ansible_collections/cisco/nxos/plugins/action/command.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/config.py b/ansible_collections/cisco/nxos/plugins/action/config.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/config.py +++ b/ansible_collections/cisco/nxos/plugins/action/config.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/devicealias.py b/ansible_collections/cisco/nxos/plugins/action/devicealias.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/devicealias.py +++ b/ansible_collections/cisco/nxos/plugins/action/devicealias.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/evpn_global.py b/ansible_collections/cisco/nxos/plugins/action/evpn_global.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/evpn_global.py +++ b/ansible_collections/cisco/nxos/plugins/action/evpn_global.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/evpn_vni.py b/ansible_collections/cisco/nxos/plugins/action/evpn_vni.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/evpn_vni.py +++ b/ansible_collections/cisco/nxos/plugins/action/evpn_vni.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/facts.py b/ansible_collections/cisco/nxos/plugins/action/facts.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/facts.py +++ b/ansible_collections/cisco/nxos/plugins/action/facts.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/feature.py b/ansible_collections/cisco/nxos/plugins/action/feature.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/feature.py +++ b/ansible_collections/cisco/nxos/plugins/action/feature.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/file_copy.py b/ansible_collections/cisco/nxos/plugins/action/file_copy.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/file_copy.py +++ b/ansible_collections/cisco/nxos/plugins/action/file_copy.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/gir.py b/ansible_collections/cisco/nxos/plugins/action/gir.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/gir.py +++ b/ansible_collections/cisco/nxos/plugins/action/gir.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/gir_profile_management.py b/ansible_collections/cisco/nxos/plugins/action/gir_profile_management.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/gir_profile_management.py +++ b/ansible_collections/cisco/nxos/plugins/action/gir_profile_management.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/hostname.py b/ansible_collections/cisco/nxos/plugins/action/hostname.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/hostname.py +++ b/ansible_collections/cisco/nxos/plugins/action/hostname.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/hsrp.py b/ansible_collections/cisco/nxos/plugins/action/hsrp.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/hsrp.py +++ b/ansible_collections/cisco/nxos/plugins/action/hsrp.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/hsrp_interfaces.py b/ansible_collections/cisco/nxos/plugins/action/hsrp_interfaces.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/hsrp_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/action/hsrp_interfaces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/igmp.py b/ansible_collections/cisco/nxos/plugins/action/igmp.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/igmp.py +++ b/ansible_collections/cisco/nxos/plugins/action/igmp.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/igmp_interface.py b/ansible_collections/cisco/nxos/plugins/action/igmp_interface.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/igmp_interface.py +++ b/ansible_collections/cisco/nxos/plugins/action/igmp_interface.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/igmp_snooping.py b/ansible_collections/cisco/nxos/plugins/action/igmp_snooping.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/igmp_snooping.py +++ b/ansible_collections/cisco/nxos/plugins/action/igmp_snooping.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/install_os.py b/ansible_collections/cisco/nxos/plugins/action/install_os.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/install_os.py +++ b/ansible_collections/cisco/nxos/plugins/action/install_os.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/interface.py b/ansible_collections/cisco/nxos/plugins/action/interface.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/interface.py +++ b/ansible_collections/cisco/nxos/plugins/action/interface.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/interface_ospf.py b/ansible_collections/cisco/nxos/plugins/action/interface_ospf.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/interface_ospf.py +++ b/ansible_collections/cisco/nxos/plugins/action/interface_ospf.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/interfaces.py b/ansible_collections/cisco/nxos/plugins/action/interfaces.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/action/interfaces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/l2_interface.py b/ansible_collections/cisco/nxos/plugins/action/l2_interface.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/l2_interface.py +++ b/ansible_collections/cisco/nxos/plugins/action/l2_interface.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/l2_interfaces.py b/ansible_collections/cisco/nxos/plugins/action/l2_interfaces.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/l2_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/action/l2_interfaces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/l3_interface.py b/ansible_collections/cisco/nxos/plugins/action/l3_interface.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/l3_interface.py +++ b/ansible_collections/cisco/nxos/plugins/action/l3_interface.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/l3_interfaces.py b/ansible_collections/cisco/nxos/plugins/action/l3_interfaces.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/l3_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/action/l3_interfaces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/lacp.py b/ansible_collections/cisco/nxos/plugins/action/lacp.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/lacp.py +++ b/ansible_collections/cisco/nxos/plugins/action/lacp.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/lacp_interfaces.py b/ansible_collections/cisco/nxos/plugins/action/lacp_interfaces.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/lacp_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/action/lacp_interfaces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/lag_interfaces.py b/ansible_collections/cisco/nxos/plugins/action/lag_interfaces.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/lag_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/action/lag_interfaces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/linkagg.py b/ansible_collections/cisco/nxos/plugins/action/linkagg.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/linkagg.py +++ b/ansible_collections/cisco/nxos/plugins/action/linkagg.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/lldp.py b/ansible_collections/cisco/nxos/plugins/action/lldp.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/lldp.py +++ b/ansible_collections/cisco/nxos/plugins/action/lldp.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/lldp_global.py b/ansible_collections/cisco/nxos/plugins/action/lldp_global.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/lldp_global.py +++ b/ansible_collections/cisco/nxos/plugins/action/lldp_global.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/lldp_interfaces.py b/ansible_collections/cisco/nxos/plugins/action/lldp_interfaces.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/lldp_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/action/lldp_interfaces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/logging.py b/ansible_collections/cisco/nxos/plugins/action/logging.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/logging.py +++ b/ansible_collections/cisco/nxos/plugins/action/logging.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/logging_global.py b/ansible_collections/cisco/nxos/plugins/action/logging_global.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/logging_global.py +++ b/ansible_collections/cisco/nxos/plugins/action/logging_global.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/ntp.py b/ansible_collections/cisco/nxos/plugins/action/ntp.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/ntp.py +++ b/ansible_collections/cisco/nxos/plugins/action/ntp.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/ntp_auth.py b/ansible_collections/cisco/nxos/plugins/action/ntp_auth.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/ntp_auth.py +++ b/ansible_collections/cisco/nxos/plugins/action/ntp_auth.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/ntp_global.py b/ansible_collections/cisco/nxos/plugins/action/ntp_global.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/ntp_global.py +++ b/ansible_collections/cisco/nxos/plugins/action/ntp_global.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/ntp_options.py b/ansible_collections/cisco/nxos/plugins/action/ntp_options.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/ntp_options.py +++ b/ansible_collections/cisco/nxos/plugins/action/ntp_options.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/nxapi.py b/ansible_collections/cisco/nxos/plugins/action/nxapi.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/nxapi.py +++ b/ansible_collections/cisco/nxos/plugins/action/nxapi.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/nxos.py b/ansible_collections/cisco/nxos/plugins/action/nxos.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/nxos.py +++ b/ansible_collections/cisco/nxos/plugins/action/nxos.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/ospf.py b/ansible_collections/cisco/nxos/plugins/action/ospf.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/ospf.py +++ b/ansible_collections/cisco/nxos/plugins/action/ospf.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/ospf_interfaces.py b/ansible_collections/cisco/nxos/plugins/action/ospf_interfaces.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/ospf_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/action/ospf_interfaces.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/ospf_vrf.py b/ansible_collections/cisco/nxos/plugins/action/ospf_vrf.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/ospf_vrf.py +++ b/ansible_collections/cisco/nxos/plugins/action/ospf_vrf.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/ospfv2.py b/ansible_collections/cisco/nxos/plugins/action/ospfv2.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/ospfv2.py +++ b/ansible_collections/cisco/nxos/plugins/action/ospfv2.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/ospfv3.py b/ansible_collections/cisco/nxos/plugins/action/ospfv3.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/ospfv3.py +++ b/ansible_collections/cisco/nxos/plugins/action/ospfv3.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/overlay_global.py b/ansible_collections/cisco/nxos/plugins/action/overlay_global.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/overlay_global.py +++ b/ansible_collections/cisco/nxos/plugins/action/overlay_global.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/pim.py b/ansible_collections/cisco/nxos/plugins/action/pim.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/pim.py +++ b/ansible_collections/cisco/nxos/plugins/action/pim.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/pim_interface.py b/ansible_collections/cisco/nxos/plugins/action/pim_interface.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/pim_interface.py +++ b/ansible_collections/cisco/nxos/plugins/action/pim_interface.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/pim_rp_address.py b/ansible_collections/cisco/nxos/plugins/action/pim_rp_address.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/pim_rp_address.py +++ b/ansible_collections/cisco/nxos/plugins/action/pim_rp_address.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/ping.py b/ansible_collections/cisco/nxos/plugins/action/ping.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/ping.py +++ b/ansible_collections/cisco/nxos/plugins/action/ping.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/prefix_lists.py b/ansible_collections/cisco/nxos/plugins/action/prefix_lists.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/prefix_lists.py +++ b/ansible_collections/cisco/nxos/plugins/action/prefix_lists.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/reboot.py b/ansible_collections/cisco/nxos/plugins/action/reboot.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/reboot.py +++ b/ansible_collections/cisco/nxos/plugins/action/reboot.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/rollback.py b/ansible_collections/cisco/nxos/plugins/action/rollback.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/rollback.py +++ b/ansible_collections/cisco/nxos/plugins/action/rollback.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/route_maps.py b/ansible_collections/cisco/nxos/plugins/action/route_maps.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/route_maps.py +++ b/ansible_collections/cisco/nxos/plugins/action/route_maps.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/rpm.py b/ansible_collections/cisco/nxos/plugins/action/rpm.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/rpm.py +++ b/ansible_collections/cisco/nxos/plugins/action/rpm.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/smu.py b/ansible_collections/cisco/nxos/plugins/action/smu.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/smu.py +++ b/ansible_collections/cisco/nxos/plugins/action/smu.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/snapshot.py b/ansible_collections/cisco/nxos/plugins/action/snapshot.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/snapshot.py +++ b/ansible_collections/cisco/nxos/plugins/action/snapshot.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/snmp_community.py b/ansible_collections/cisco/nxos/plugins/action/snmp_community.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/snmp_community.py +++ b/ansible_collections/cisco/nxos/plugins/action/snmp_community.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/snmp_contact.py b/ansible_collections/cisco/nxos/plugins/action/snmp_contact.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/snmp_contact.py +++ b/ansible_collections/cisco/nxos/plugins/action/snmp_contact.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/snmp_host.py b/ansible_collections/cisco/nxos/plugins/action/snmp_host.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/snmp_host.py +++ b/ansible_collections/cisco/nxos/plugins/action/snmp_host.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/snmp_location.py b/ansible_collections/cisco/nxos/plugins/action/snmp_location.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/snmp_location.py +++ b/ansible_collections/cisco/nxos/plugins/action/snmp_location.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/snmp_server.py b/ansible_collections/cisco/nxos/plugins/action/snmp_server.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/snmp_server.py +++ b/ansible_collections/cisco/nxos/plugins/action/snmp_server.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/snmp_traps.py b/ansible_collections/cisco/nxos/plugins/action/snmp_traps.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/snmp_traps.py +++ b/ansible_collections/cisco/nxos/plugins/action/snmp_traps.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/snmp_user.py b/ansible_collections/cisco/nxos/plugins/action/snmp_user.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/snmp_user.py +++ b/ansible_collections/cisco/nxos/plugins/action/snmp_user.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/static_route.py b/ansible_collections/cisco/nxos/plugins/action/static_route.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/static_route.py +++ b/ansible_collections/cisco/nxos/plugins/action/static_route.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/static_routes.py b/ansible_collections/cisco/nxos/plugins/action/static_routes.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/static_routes.py +++ b/ansible_collections/cisco/nxos/plugins/action/static_routes.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/system.py b/ansible_collections/cisco/nxos/plugins/action/system.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/system.py +++ b/ansible_collections/cisco/nxos/plugins/action/system.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/telemetry.py b/ansible_collections/cisco/nxos/plugins/action/telemetry.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/telemetry.py +++ b/ansible_collections/cisco/nxos/plugins/action/telemetry.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/udld.py b/ansible_collections/cisco/nxos/plugins/action/udld.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/udld.py +++ b/ansible_collections/cisco/nxos/plugins/action/udld.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/udld_interface.py b/ansible_collections/cisco/nxos/plugins/action/udld_interface.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/udld_interface.py +++ b/ansible_collections/cisco/nxos/plugins/action/udld_interface.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/user.py b/ansible_collections/cisco/nxos/plugins/action/user.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/user.py +++ b/ansible_collections/cisco/nxos/plugins/action/user.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vlan.py b/ansible_collections/cisco/nxos/plugins/action/vlan.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vlan.py +++ b/ansible_collections/cisco/nxos/plugins/action/vlan.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vlans.py b/ansible_collections/cisco/nxos/plugins/action/vlans.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vlans.py +++ b/ansible_collections/cisco/nxos/plugins/action/vlans.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vpc.py b/ansible_collections/cisco/nxos/plugins/action/vpc.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vpc.py +++ b/ansible_collections/cisco/nxos/plugins/action/vpc.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vpc_interface.py b/ansible_collections/cisco/nxos/plugins/action/vpc_interface.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vpc_interface.py +++ b/ansible_collections/cisco/nxos/plugins/action/vpc_interface.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vrf.py b/ansible_collections/cisco/nxos/plugins/action/vrf.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vrf.py +++ b/ansible_collections/cisco/nxos/plugins/action/vrf.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vrf_af.py b/ansible_collections/cisco/nxos/plugins/action/vrf_af.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vrf_af.py +++ b/ansible_collections/cisco/nxos/plugins/action/vrf_af.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vrf_interface.py b/ansible_collections/cisco/nxos/plugins/action/vrf_interface.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vrf_interface.py +++ b/ansible_collections/cisco/nxos/plugins/action/vrf_interface.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vrrp.py b/ansible_collections/cisco/nxos/plugins/action/vrrp.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vrrp.py +++ b/ansible_collections/cisco/nxos/plugins/action/vrrp.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vsan.py b/ansible_collections/cisco/nxos/plugins/action/vsan.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vsan.py +++ b/ansible_collections/cisco/nxos/plugins/action/vsan.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vtp_domain.py b/ansible_collections/cisco/nxos/plugins/action/vtp_domain.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vtp_domain.py +++ b/ansible_collections/cisco/nxos/plugins/action/vtp_domain.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vtp_password.py b/ansible_collections/cisco/nxos/plugins/action/vtp_password.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vtp_password.py +++ b/ansible_collections/cisco/nxos/plugins/action/vtp_password.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vtp_version.py b/ansible_collections/cisco/nxos/plugins/action/vtp_version.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vtp_version.py +++ b/ansible_collections/cisco/nxos/plugins/action/vtp_version.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vxlan_vtep.py b/ansible_collections/cisco/nxos/plugins/action/vxlan_vtep.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vxlan_vtep.py +++ b/ansible_collections/cisco/nxos/plugins/action/vxlan_vtep.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/vxlan_vtep_vni.py b/ansible_collections/cisco/nxos/plugins/action/vxlan_vtep_vni.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/vxlan_vtep_vni.py +++ b/ansible_collections/cisco/nxos/plugins/action/vxlan_vtep_vni.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/action/zone_zoneset.py b/ansible_collections/cisco/nxos/plugins/action/zone_zoneset.py index 3602c4074..e57c08aeb 100644 --- a/ansible_collections/cisco/nxos/plugins/action/zone_zoneset.py +++ b/ansible_collections/cisco/nxos/plugins/action/zone_zoneset.py @@ -21,7 +21,6 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible import constants as C from ansible.module_utils.connection import Connection from ansible.utils.display import Display from ansible_collections.ansible.netcommon.plugins.action.network import ( @@ -48,7 +47,7 @@ class ActionModule(ActionNetworkModule): ): return { "failed": True, - "msg": "Connection httpapi is not valid for '%s' module." % (module_name), + "msg": f"Connection httpapi is not valid for {module_name} module.", } if module_name == "nxos_file_copy": @@ -58,34 +57,43 @@ class ActionModule(ActionNetworkModule): if persistent_connection != "network_cli": return { "failed": True, - "msg": "Connection type must be fully qualified name for network_cli connection type, got %s" + "msg": ( + f"Connection type must be fully qualified name for " + f"network_cli connection type, got {self._play_context.connection}" + ) % self._play_context.connection, } conn = Connection(self._connection.socket_path) + persistent_command_timeout = conn.get_option("persistent_command_timeout") file_pull = self._task.args.get("file_pull", False) - file_pull_timeout = self._task.args.get("file_pull_timeout", 300) + file_pull_timeout = self._task.args.get("file_pull_timeout") connect_ssh_port = self._task.args.get("connect_ssh_port", 22) if file_pull: - conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is explicitly set, use that + if file_pull_timeout: + conn.set_option("persistent_command_timeout", file_pull_timeout) + # if file_pull_timeout is not set and command_timeout < 300s, bump to 300s. + elif persistent_command_timeout < 300: + conn.set_option("persistent_command_timeout", 300) conn.set_option("port", connect_ssh_port) if module_name == "nxos_install_os": connection = self._connection - if connection.transport == "local": - persistent_command_timeout = C.PERSISTENT_COMMAND_TIMEOUT - persistent_connect_timeout = C.PERSISTENT_CONNECT_TIMEOUT - else: - persistent_command_timeout = connection.get_option("persistent_command_timeout") - persistent_connect_timeout = connection.get_option("persistent_connect_timeout") + persistent_command_timeout = connection.get_option( + "persistent_command_timeout", + ) + persistent_connect_timeout = connection.get_option( + "persistent_connect_timeout", + ) display.vvvv( - "PERSISTENT_COMMAND_TIMEOUT is %s" % str(persistent_command_timeout), + f"PERSISTENT_COMMAND_TIMEOUT is {persistent_command_timeout}", self._play_context.remote_addr, ) display.vvvv( - "PERSISTENT_CONNECT_TIMEOUT is %s" % str(persistent_connect_timeout), + f"PERSISTENT_CONNECT_TIMEOUT is %s {persistent_connect_timeout}", self._play_context.remote_addr, ) if persistent_command_timeout < 600 or persistent_connect_timeout < 600: @@ -102,18 +110,19 @@ class ActionModule(ActionNetworkModule): if persistent_connection in ("network_cli", "httpapi"): if module_name == "nxos_gir": conn = Connection(self._connection.socket_path) - persistent_command_timeout = conn.get_option("persistent_command_timeout") + persistent_command_timeout = conn.get_option( + "persistent_command_timeout", + ) gir_timeout = 200 if persistent_command_timeout < gir_timeout: conn.set_option("persistent_command_timeout", gir_timeout) - msg = "timeout value extended to %ss for nxos_gir" % gir_timeout + msg = f"timeout value extended to %ss for nxos_gir {gir_timeout}" display.warning(msg) else: return { "failed": True, - "msg": "Connection type %s is not valid for this module" - % self._play_context.connection, + "msg": f"Connection type {self._play_context.connection} is not valid for this module", } result = super(ActionModule, self).run(task_vars=task_vars) diff --git a/ansible_collections/cisco/nxos/plugins/cliconf/nxos.py b/ansible_collections/cisco/nxos/plugins/cliconf/nxos.py index 4f6393858..3a1ae1c6c 100644 --- a/ansible_collections/cisco/nxos/plugins/cliconf/nxos.py +++ b/ansible_collections/cisco/nxos/plugins/cliconf/nxos.py @@ -134,6 +134,12 @@ class Cliconf(CliconfBase): return self._device_info + def restore(self, filename=None, path=""): + if not filename: + raise ValueError("'file_name' value is required for restore") + cmd = f"configure replace {path}{filename} best-effort" + return self.send_command(cmd) + def get_diff( self, candidate=None, diff --git a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/acl_interfaces/acl_interfaces.py b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/acl_interfaces/acl_interfaces.py index 5bd15062e..dcf4c3b0c 100644 --- a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/acl_interfaces/acl_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/acl_interfaces/acl_interfaces.py @@ -10,6 +10,7 @@ is compared to the provided configuration (as dict) and the command set necessary to bring the current configuration to it's desired end-state is created """ + from __future__ import absolute_import, division, print_function @@ -120,7 +121,7 @@ class Acl_interfaces(ConfigBase): for w in config: if get_interface_type(w["name"]) == "loopback": self._module.fail_json( - msg="This module works with ethernet, management or port-channe", + msg="This module works with ethernet, management or port-channel.", ) w.update({"name": normalize_interface(w["name"])}) want.append(remove_empties(w)) @@ -139,7 +140,9 @@ class Acl_interfaces(ConfigBase): """ if self.state in ("overridden", "merged", "replaced", "rendered") and not want: self._module.fail_json( - msg="value of config parameter must not be empty for state {0}".format(self.state), + msg="value of config parameter must not be empty for state {0}".format( + self.state, + ), ) commands = [] @@ -185,7 +188,11 @@ class Acl_interfaces(ConfigBase): for ag in obj_in_have["access_groups"]: want_afi = [] if want.get("access_groups"): - want_afi = search_obj_in_list(ag["afi"], want["access_groups"], "afi") + want_afi = search_obj_in_list( + ag["afi"], + want["access_groups"], + "afi", + ) if not want_afi: # whatever in have is not in want del_dict["access_groups"].append(ag) @@ -241,7 +248,11 @@ class Acl_interfaces(ConfigBase): ip = "ipv6" if w_afi["afi"] == "ipv4": ip = "ip" - have_afi = search_obj_in_list(w_afi["afi"], have_name["access_groups"], "afi") + have_afi = search_obj_in_list( + w_afi["afi"], + have_name["access_groups"], + "afi", + ) if have_afi: new_acls = [] if deleted: diff --git a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/interfaces/interfaces.py b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/interfaces/interfaces.py index 8bd4f66e7..400f0432f 100644 --- a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/interfaces/interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/interfaces/interfaces.py @@ -470,13 +470,13 @@ class Interfaces(ConfigBase): and enabled/shutdown states. The default values for user-defined-default configurations may be different for legacy platforms. Notes: - - L3 enabled default state is False on N9K,N7K but True for N3K,N6K + - L3 enabled default state is False on N9K,N7K,N3K but True for N5K,N6K - Changing L2-L3 modes may change the default enabled value. - '(no) system default switchport shutdown' only applies to L2 interfaces. Run through the gathered interfaces and tag their default enabled state. """ intf_defs = {} - L3_enabled = True if re.search("N[356]K", self.get_platform()) else False + L3_enabled = True if re.search("N[56]K", self.get_platform()) else False intf_defs = { "sysdefs": { "mode": None, diff --git a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/l2_interfaces/l2_interfaces.py b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/l2_interfaces/l2_interfaces.py index e7d91498f..913f8ecfb 100644 --- a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/l2_interfaces/l2_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/config/l2_interfaces/l2_interfaces.py @@ -146,7 +146,7 @@ class L2_interfaces(ConfigBase): if "trunk" in d and d["trunk"]: if "allowed_vlans" in d["trunk"]: allowed_vlans = vlan_range_to_list(d["trunk"]["allowed_vlans"]) - vlans_list = [str(l) for l in sorted(allowed_vlans)] + vlans_list = [str(line) for line in sorted(allowed_vlans)] d["trunk"]["allowed_vlans"] = ",".join(vlans_list) def set_state(self, want, have): diff --git a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/acl_interfaces/acl_interfaces.py b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/acl_interfaces/acl_interfaces.py index 053b56a91..098c2a471 100644 --- a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/acl_interfaces/acl_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/acl_interfaces/acl_interfaces.py @@ -61,9 +61,9 @@ class Acl_interfacesFacts(object): resources = [] for i in range(len(data)): intf = data[i].split("\n") - for l in range(1, len(intf)): - if not re.search("ip(v6)?( port)? (access-group|traffic-filter)", intf[l]): - intf[l] = "" + for line in range(1, len(intf)): + if not re.search("ip(v6)?( port)? (access-group|traffic-filter)", intf[line]): + intf[line] = "" intf = list(filter(None, intf)) resources.append(intf) diff --git a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/acls/acls.py b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/acls/acls.py index ca086bcf9..2a7366bc2 100644 --- a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/acls/acls.py +++ b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/acls/acls.py @@ -119,11 +119,12 @@ class AclsFacts(object): keywords = ["eq", "lt", "gt", "neq", "range"] if len(ace.split()) and ace.split()[0] in keywords: port_protocol = {} - port_pro = re.search(r"(eq|lt|gt|neq) (\S+)", ace) - if port_pro: - port_protocol.update({port_pro.group(1): port_pro.group(2)}) - ace = re.sub(port_pro.group(1), "", ace, 1) - ace = re.sub(port_pro.group(2), "", ace, 1) + if "range" not in ace.split()[0]: + port_pro = re.search(r"(eq|lt|gt|neq) (\S+)", ace) + if port_pro: + port_protocol.update({port_pro.group(1): port_pro.group(2)}) + ace = re.sub(port_pro.group(1), "", ace, 1) + ace = re.sub(port_pro.group(2), "", ace, 1) else: limit = re.search(r"range\s(?P\S+)\s(?P\S+)", ace) if limit: diff --git a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/legacy/base.py b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/legacy/base.py index 16540a435..a3a453784 100644 --- a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/legacy/base.py +++ b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/legacy/base.py @@ -223,9 +223,13 @@ class Interfaces(FactsBase): ], ) - INTERFACE_IPV4_MAP = frozenset([("eth_ip_addr", "address"), ("eth_ip_mask", "masklen")]) + INTERFACE_IPV4_MAP = frozenset( + [("eth_ip_addr", "address"), ("eth_ip_mask", "masklen")], + ) - INTERFACE_SVI_IPV4_MAP = frozenset([("svi_ip_addr", "address"), ("svi_ip_mask", "masklen")]) + INTERFACE_SVI_IPV4_MAP = frozenset( + [("svi_ip_addr", "address"), ("svi_ip_mask", "masklen")], + ) INTERFACE_IPV6_MAP = frozenset([("addr", "address"), ("prefix", "subnet")]) @@ -268,14 +272,18 @@ class Interfaces(FactsBase): data = self.run("show lldp neighbors", output="json") if data: if isinstance(data, dict): - self.facts["neighbors"].update(self.populate_structured_neighbors_lldp(data)) + self.facts["neighbors"].update( + self.populate_structured_neighbors_lldp(data), + ) else: self.facts["neighbors"].update(self.populate_neighbors(data)) data = self.run("show cdp neighbors detail", output="json") if data: if isinstance(data, dict): - self.facts["neighbors"].update(self.populate_structured_neighbors_cdp(data)) + self.facts["neighbors"].update( + self.populate_structured_neighbors_cdp(data), + ) else: self.facts["neighbors"].update(self.populate_neighbors_cdp(data)) @@ -316,14 +324,17 @@ class Interfaces(FactsBase): if isinstance(data, dict): data = [data] for item in data: - name = item["ROW_intf"]["intf-name"] - intf = self.facts["interfaces"][name] - intf["ipv6"] = self.transform_dict(item, self.INTERFACE_IPV6_MAP) - try: - addr = item["ROW_intf"]["addr"] - except KeyError: - addr = item["ROW_intf"]["TABLE_addr"]["ROW_addr"]["addr"] - self.facts["all_ipv6_addresses"].append(addr) + row_intf = item["ROW_intf"] + if isinstance(row_intf, dict): + row_intf = [row_intf] + for item in row_intf: + intf = self.facts["interfaces"][item["intf-name"]] + intf["ipv6"] = self.transform_dict(item, self.INTERFACE_IPV6_MAP) + try: + addr = item["addr"] + except KeyError: + addr = item["TABLE_addr"]["ROW_addr"]["addr"] + self.facts["all_ipv6_addresses"].append(addr) else: return "" except TypeError: @@ -379,7 +390,9 @@ class Interfaces(FactsBase): match = re.match(r"^(\S+)", line) if match: key = match.group(1) - if not key.startswith("admin") or not key.startswith("IPv6 Interface"): + if not key.startswith("admin") or not key.startswith( + "IPv6 Interface", + ): parsed[key] = line return parsed @@ -781,9 +794,9 @@ class Legacy(FactsBase): match = re.search(r"\d\s*\d*\s*(.+)$", line, re.M) if match: - l = match.group(1).split(" ") + line = match.group(1).split(" ") items = list() - for item in l: + for item in line: if item == "": continue items.append(item.strip()) @@ -799,28 +812,28 @@ class Legacy(FactsBase): def parse_fan_info(self, data): objects = list() - for l in data.splitlines(): - if "-----------------" in l or "Status" in l: + for line in data.splitlines(): + if "-----------------" in line or "Status" in line: continue - line = l.split() - if len(line) > 1: + split_line = line.split() + if len(split_line) > 1: obj = {} - obj["name"] = line[0] - obj["model"] = line[1] - obj["hw_ver"] = line[-2] - obj["status"] = line[-1] + obj["name"] = split_line[0] + obj["model"] = split_line[1] + obj["hw_ver"] = split_line[-2] + obj["status"] = split_line[-1] objects.append(obj) return objects def parse_power_supply_info(self, data): objects = list() - for l in data.splitlines(): - if l == "": + for line in data.splitlines(): + if line == "": break - if l[0].isdigit(): + if line[0].isdigit(): obj = {} - line = l.split() + line = line.split() obj["model"] = line[1] obj["number"] = line[0] obj["status"] = line[-1] diff --git a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/lldp_interfaces/lldp_interfaces.py b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/lldp_interfaces/lldp_interfaces.py index 4cd8b2115..8bc886e4b 100644 --- a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/lldp_interfaces/lldp_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/facts/lldp_interfaces/lldp_interfaces.py @@ -66,9 +66,9 @@ class Lldp_interfacesFacts(object): for i in range(len(data)): intf = data[i].split("\n") - for l in range(1, len(intf)): - if not re.search("lldp", intf[l]): - intf[l] = "" + for line in range(1, len(intf)): + if not re.search("lldp", intf[line]): + intf[line] = "" intf = list(filter(None, intf)) intf = "".join(i for i in intf) resources.append(intf) diff --git a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/rm_templates/ospfv2.py b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/rm_templates/ospfv2.py index c8b518dd6..70fae9e81 100644 --- a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/rm_templates/ospfv2.py +++ b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/rm_templates/ospfv2.py @@ -10,25 +10,6 @@ from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.r ) -def _tmplt_area_range(arange): - command = "area {area} range {range}".format(**arange) - if arange.get("not_advertise") is True: - command += " not-advertise" - if "cost" in arange: - command += " cost {cost}".format(**arange) - return command - - -def _tmplt_default_information(proc): - command = "default-information originate" - if "always" in proc["default_information"] and proc["default_information"]["always"]: - command += " always" - if "route_map" in proc["default_information"]: - command += " route-map" - command += " {default_information[route_map]}".format(**proc) - return command - - def _tmplt_log_adjacency_changes(proc): command = "log-adjacency-changes" if proc.get("log_adjacency_changes").get("detail", False) is True: @@ -151,15 +132,6 @@ def _tmplt_area_ranges(arange): return command -def _tmplt_area_ranges(arange): - command = "area {area_id} range {prefix}".format(**arange) - if arange.get("not_advertise") is True: - command += " not-advertise" - if "cost" in arange: - command += " cost {cost}".format(**arange) - return command - - def _tmplt_summary_address(proc): command = "summary-address {prefix}".format(**proc) if proc.get("tag"): diff --git a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/utils/telemetry/telemetry.py b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/utils/telemetry/telemetry.py index aa540aded..ae58c1631 100644 --- a/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/utils/telemetry/telemetry.py +++ b/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/utils/telemetry/telemetry.py @@ -6,6 +6,7 @@ """ The nxos telemetry utility library """ + from __future__ import absolute_import, division, print_function @@ -61,7 +62,10 @@ def valiate_input(playvals, type, module): msg = "Invalid playbook value: {0}.".format(playvals) msg += " Parameter under is required" module.fail_json(msg=msg) - if playvals.get("destination") and not isinstance(playvals["destination"], dict): + if playvals.get("destination") and not isinstance( + playvals["destination"], + dict, + ): msg = "Invalid playbook value: {0}.".format(playvals) msg += " Parameter under must be a dict" module.fail_json(msg=msg) @@ -209,7 +213,6 @@ def massage_data(have_or_want): massaged["destination_groups"] = {} massaged["sensor_groups"] = {} massaged["subscriptions"] = {} - from pprint import pprint for subgroup in ["destination_groups", "sensor_groups", "subscriptions"]: for item in data.get(subgroup, []): diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_aaa_server_host.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_aaa_server_host.py index d2f84f76d..192b21ab5 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_aaa_server_host.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_aaa_server_host.py @@ -114,7 +114,6 @@ EXAMPLES = """ tacacs_port: 89 host_timeout: 10 address: 5.6.7.8 - """ RETURN = """ @@ -315,7 +314,9 @@ def main(): module.fail_json(msg="tacacs_port can only be used with server_type=tacacs") if (auth_port or acct_port) and server_type != "radius": - module.fail_json(msg="auth_port and acct_port can only be used" "when server_type=radius") + module.fail_json( + msg="auth_port and acct_port can only be used" "when server_type=radius", + ) existing = get_aaa_host_info(module, server_type, address) end_state = existing diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_acl_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_acl_interfaces.py index e61746ff3..654fc71e6 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_acl_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_acl_interfaces.py @@ -116,28 +116,28 @@ EXAMPLES = """ - name: Merge ACL interfaces configuration cisco.nxos.nxos_acl_interfaces: config: - - name: Ethernet1/2 - access_groups: - - afi: ipv6 - acls: - - name: ACL1v6 - direction: in - - - name: Eth1/5 - access_groups: - - afi: ipv4 - acls: - - name: PortACL - direction: in - port: true - - - name: ACL1v4 - direction: out - - - afi: ipv6 - acls: - - name: ACL1v6 - direction: in + - name: Ethernet1/2 + access_groups: + - afi: ipv6 + acls: + - name: ACL1v6 + direction: in + + - name: Eth1/5 + access_groups: + - afi: ipv4 + acls: + - name: PortACL + direction: in + port: true + + - name: ACL1v4 + direction: out + + - afi: ipv6 + acls: + - name: ACL1v6 + direction: in state: merged # After state: @@ -163,20 +163,20 @@ EXAMPLES = """ - name: Replace interface configuration with given configuration cisco.nxos.nxos_acl_interfaces: config: - - name: Eth1/5 - access_groups: - - afi: ipv4 - acls: - - name: NewACLv4 - direction: out - - - name: Ethernet1/3 - access_groups: - - afi: ipv6 - acls: - - name: NewACLv6 - direction: in - port: true + - name: Eth1/5 + access_groups: + - afi: ipv4 + acls: + - name: NewACLv4 + direction: out + + - name: Ethernet1/3 + access_groups: + - afi: ipv6 + acls: + - name: NewACLv6 + direction: in + port: true state: replaced # After state: @@ -202,21 +202,21 @@ EXAMPLES = """ - name: Override interface configuration with given configuration cisco.nxos.nxos_acl_interfaces: config: - - name: Ethernet1/3 - access_groups: - - afi: ipv4 - acls: - - name: ACL1v4 - direction: out - - - name: PortACL - port: true - direction: in - - afi: ipv6 - acls: - - name: NewACLv6 - direction: in - port: true + - name: Ethernet1/3 + access_groups: + - afi: ipv4 + acls: + - name: ACL1v4 + direction: out + + - name: PortACL + port: true + direction: in + - afi: ipv6 + acls: + - name: NewACLv6 + direction: in + port: true state: overridden # After state: @@ -242,8 +242,8 @@ EXAMPLES = """ - name: Delete ACL configuration on interfaces cisco.nxos.nxos_acl_interfaces: config: - - name: Ethernet1/5 - - name: Ethernet1/2 + - name: Ethernet1/5 + - name: Ethernet1/2 state: deleted # After state: @@ -356,28 +356,28 @@ EXAMPLES = """ - name: Render required configuration to be pushed to the device cisco.nxos.nxos_acl_interfaces: config: - - name: Ethernet1/2 - access_groups: - - afi: ipv6 - acls: - - name: ACL1v6 - direction: in - - - name: Ethernet1/5 - access_groups: - - afi: ipv4 - acls: - - name: PortACL - direction: in - port: true - - name: ACL1v4 - direction: out - - afi: ipv6 - acls: - - name: ACL1v6 - direction: in + - name: Ethernet1/2 + access_groups: + - afi: ipv6 + acls: + - name: ACL1v6 + direction: in + - name: Ethernet1/5 + access_groups: + - afi: ipv4 + acls: + - name: PortACL + direction: in + port: true + - name: ACL1v4 + direction: out + - afi: ipv6 + acls: + - name: ACL1v6 + direction: in state: rendered + # returns # rendered: # interface Ethernet1/2 @@ -386,7 +386,6 @@ EXAMPLES = """ # ipv6 traffic-filter ACL1v6 in # ip access-group ACL1v4 out # ip port access-group PortACL in - """ RETURN = """ before: diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_acls.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_acls.py index 133bd3a44..29d610400 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_acls.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_acls.py @@ -536,13 +536,13 @@ EXAMPLES = """ acls: - name: ACL1v6 aces: - - grant: permit - sequence: 10 - source: - any: true - destination: - prefix: 2001:db8:12::/32 - protocol: sctp + - grant: permit + sequence: 10 + source: + any: true + destination: + prefix: 2001:db8:12::/32 + protocol: sctp # Task Output # ----------- @@ -974,7 +974,7 @@ EXAMPLES = """ - name: Delete all ACLs in given AFI cisco.nxos.nxos_acls: config: - - afi: ipv4 + - afi: ipv4 state: deleted # Task Output @@ -1309,38 +1309,38 @@ EXAMPLES = """ - name: Render required configuration to be pushed to the device cisco.nxos.nxos_acls: config: - - afi: ipv4 - acls: - - name: ACL1v4 - aces: - - grant: deny - destination: - address: 192.0.2.64 - wildcard_bits: 0.0.0.255 - source: - any: true - port_protocol: - lt: 55 - protocol: tcp - protocol_options: - tcp: - ack: true - fin: true - sequence: 50 - - - afi: ipv6 - acls: - - name: ACL1v6 - aces: - - grant: permit - sequence: 10 - source: - any: true - destination: - prefix: 2001:db8:12::/32 - protocol: sctp + - afi: ipv4 + acls: + - name: ACL1v4 + aces: + - grant: deny + destination: + address: 192.0.2.64 + wildcard_bits: 0.0.0.255 + source: + any: true + port_protocol: + lt: 55 + protocol: tcp + protocol_options: + tcp: + ack: true + fin: true + sequence: 50 + - afi: ipv6 + acls: + - name: ACL1v6 + aces: + - grant: permit + sequence: 10 + source: + any: true + destination: + prefix: '2001:db8:12::/32' + protocol: sctp state: rendered + # Task Output # ----------- # diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_bfd_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_bfd_interfaces.py index 1790f8e01..3465d95bb 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_bfd_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_bfd_interfaces.py @@ -104,12 +104,12 @@ EXAMPLES = """ - name: Configure interfaces cisco.nxos.nxos_bfd_interfaces: config: - - name: Ethernet1/1 - bfd: enable - echo: enable - - name: Ethernet1/2 - bfd: disable - echo: disable + - name: Ethernet1/1 + bfd: enable + echo: enable + - name: Ethernet1/2 + bfd: disable + echo: disable state: merged @@ -118,12 +118,12 @@ EXAMPLES = """ - name: Configure interfaces cisco.nxos.nxos_bfd_interfaces: config: - - name: Ethernet1/1 - bfd: enable - echo: enable - - name: Ethernet1/2 - bfd: disable - echo: disable + - name: Ethernet1/1 + bfd: enable + echo: enable + - name: Ethernet1/2 + bfd: disable + echo: disable state: overridden @@ -132,12 +132,12 @@ EXAMPLES = """ - name: Configure interfaces cisco.nxos.nxos_bfd_interfaces: config: - - name: Ethernet1/1 - bfd: enable - echo: enable - - name: Ethernet1/2 - bfd: disable - echo: disable + - name: Ethernet1/1 + bfd: enable + echo: enable + - name: Ethernet1/2 + bfd: disable + echo: disable state: replaced # Using rendered @@ -145,12 +145,12 @@ EXAMPLES = """ - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_bfd_interfaces: config: - - name: Ethernet1/800 - bfd: enable - echo: enable - - name: Ethernet1/801 - bfd: disable - echo: disable + - name: Ethernet1/800 + bfd: enable + echo: enable + - name: Ethernet1/801 + bfd: disable + echo: disable state: rendered # Task Output (redacted) diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_address_family.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_address_family.py index ef6e9012c..489b6fa30 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_address_family.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_address_family.py @@ -52,7 +52,7 @@ options: description: Address Family indicator. type: str choices: ["ipv4", "ipv6", "link-state", "vpnv4", "vpnv6", "l2vpn"] - required: True + required: true safi: description: Sub Address Family indicator. type: str @@ -367,11 +367,11 @@ EXAMPLES = """ safi: unicast vrf: site-1 default_information: - originate: True + originate: true aggregate_address: - prefix: 203.0.113.0/24 - as_set: True - summary_only: True + as_set: true + summary_only: true - afi: ipv6 safi: multicast vrf: site-1 @@ -420,11 +420,11 @@ EXAMPLES = """ # safi: unicast # vrf: site-1 # default_information: -# originate: True +# originate: true # aggregate_address: # - prefix: 203.0.113.0/24 -# as_set: True -# summary_only: True +# as_set: true +# summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 @@ -490,8 +490,8 @@ EXAMPLES = """ non_critical_delay: 180 aggregate_address: - prefix: 203.0.113.0/24 - as_set: True - summary_only: True + as_set: true + summary_only: true - afi: ipv4 safi: unicast vrf: site-1 @@ -517,11 +517,11 @@ EXAMPLES = """ # safi: unicast # vrf: site-1 # default_information: -# originate: True +# originate: true # aggregate_address: # - prefix: 203.0.113.0/24 -# as_set: True -# summary_only: True +# as_set: true +# summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 @@ -558,8 +558,8 @@ EXAMPLES = """ # non_critical_delay: 180 # aggregate_address: # - prefix: 203.0.113.0/24 -# as_set: True -# summary_only: True +# as_set: true +# summary_only: true # # - afi: ipv4 # safi: unicast @@ -622,8 +622,8 @@ EXAMPLES = """ route_map: rmap1 aggregate_address: - prefix: 203.0.113.0/24 - as_set: True - summary_only: True + as_set: true + summary_only: true - afi: ipv4 safi: unicast vrf: site-1 @@ -649,11 +649,11 @@ EXAMPLES = """ # safi: unicast # vrf: site-1 # default_information: -# originate: True +# originate: true # aggregate_address: # - prefix: 203.0.113.0/24 -# as_set: True -# summary_only: True +# as_set: true +# summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 @@ -690,8 +690,8 @@ EXAMPLES = """ # route_map: rmap1 # aggregate_address: # - prefix: 203.0.113.0/24 -# as_set: True -# summary_only: True +# as_set: true +# summary_only: true # - afi: ipv4 # safi: unicast # vrf: site-1 @@ -759,11 +759,11 @@ EXAMPLES = """ # safi: unicast # vrf: site-1 # default_information: -# originate: True +# originate: true # aggregate_address: # - prefix: 203.0.113.0/24 -# as_set: True -# summary_only: True +# as_set: true +# summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 @@ -788,11 +788,11 @@ EXAMPLES = """ # safi: unicast # vrf: site-1 # default_information: -# originate: True +# originate: true # aggregate_address: # - prefix: 203.0.113.0/24 -# as_set: True -# summary_only: True +# as_set: true +# summary_only: true # After state: # ------------ @@ -846,11 +846,11 @@ EXAMPLES = """ # safi: unicast # vrf: site-1 # default_information: -# originate: True +# originate: true # aggregate_address: # - prefix: 203.0.113.0/24 -# as_set: True -# summary_only: True +# as_set: true +# summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 @@ -900,11 +900,11 @@ EXAMPLES = """ safi: unicast vrf: site-1 default_information: - originate: True + originate: true aggregate_address: - prefix: 203.0.113.0/24 - as_set: True - summary_only: True + as_set: true + summary_only: true - afi: ipv6 safi: multicast vrf: site-1 @@ -977,11 +977,11 @@ EXAMPLES = """ # safi: unicast # vrf: site-1 # default_information: -# originate: True +# originate: true # aggregate_address: # - prefix: 203.0.113.0/24 -# as_set: True -# summary_only: True +# as_set: true +# summary_only: true # - afi: ipv6 # safi: multicast # vrf: site-1 diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_global.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_global.py index 29e016181..59e7eefd7 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_global.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_global.py @@ -203,7 +203,7 @@ options: neighbor_address: description: IP address/Prefix of the neighbor or interface. type: str - required: True + required: true bfd: description: Bidirectional Fast Detection for the neighbor. type: dict @@ -543,16 +543,16 @@ EXAMPLES = """ router_id: 192.168.1.1 bestpath: as_path: - multipath_relax: True - compare_neighborid: True - cost_community_ignore: True + multipath_relax: true + compare_neighborid: true + cost_community_ignore: true confederation: identifier: 42 peers: - 65020 - 65030 - 65040 - log_neighbor_changes: True + log_neighbor_changes: true maxas_limit: 20 neighbors: - neighbor_address: 192.168.1.100 @@ -562,19 +562,19 @@ EXAMPLES = """ remote_as: 65563 description: NBR-1 low_memory: - exempt: True + exempt: true - neighbor_address: 192.168.1.101 remote_as: 65563 password: encryption: 7 key: 12090404011C03162E neighbor_down: - fib_accelerate: True + fib_accelerate: true vrfs: - vrf: site-1 allocate_index: 5000 local_as: 200 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 198.51.100.1 description: site-1-nbr-1 @@ -587,7 +587,7 @@ EXAMPLES = """ description: site-1-nbr-2 - vrf: site-2 local_as: 300 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 203.0.113.2 description: site-2-nbr-1 @@ -596,7 +596,7 @@ EXAMPLES = """ key: AF92F4C16A0A0EC5BDF56CF58BC030F6 remote_as: 65568 neighbor_down: - fib_accelerate: True + fib_accelerate: true # Task output: # ------------ @@ -795,8 +795,8 @@ EXAMPLES = """ as_number: 65563 router_id: 192.168.1.1 bestpath: - compare_neighborid: True - cost_community_ignore: True + compare_neighborid: true + cost_community_ignore: true confederation: identifier: 42 peers: @@ -812,20 +812,20 @@ EXAMPLES = """ remote_as: 65563 description: NBR-1 low_memory: - exempt: True + exempt: true neighbor_down: - fib_accelerate: True + fib_accelerate: true vrfs: - vrf: site-2 local_as: 300 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 203.0.113.2 password: encryption: 7 key: 12090404011C03162E neighbor_down: - fib_accelerate: True + fib_accelerate: true state: replaced # Task output: @@ -1258,16 +1258,16 @@ EXAMPLES = """ router_id: 192.168.1.1 bestpath: as_path: - multipath_relax: True - compare_neighborid: True - cost_community_ignore: True + multipath_relax: true + compare_neighborid: true + cost_community_ignore: true confederation: identifier: 42 peers: - 65020 - 65030 - 65040 - log_neighbor_changes: True + log_neighbor_changes: true maxas_limit: 20 neighbors: - neighbor_address: 192.168.1.100 @@ -1277,19 +1277,19 @@ EXAMPLES = """ remote_as: 65563 description: NBR-1 low_memory: - exempt: True + exempt: true - neighbor_address: 192.168.1.101 remote_as: 65563 password: encryption: 7 key: 12090404011C03162E neighbor_down: - fib_accelerate: True + fib_accelerate: true vrfs: - vrf: site-1 allocate_index: 5000 local_as: 200 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 198.51.100.1 description: site-1-nbr-1 @@ -1302,7 +1302,7 @@ EXAMPLES = """ description: site-1-nbr-2 - vrf: site-2 local_as: 300 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 203.0.113.2 description: site-1-nbr-1 @@ -1311,7 +1311,7 @@ EXAMPLES = """ key: AF92F4C16A0A0EC5BDF56CF58BC030F6 remote_as: 65568 neighbor_down: - fib_accelerate: True + fib_accelerate: true # Task output: # ------------ @@ -1561,7 +1561,7 @@ EXAMPLES = """ as_number: 65536 router_id: 198.51.100.2 maxas_limit: 20 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 192.0.2.1 remote_as: 65537 @@ -1605,7 +1605,7 @@ EXAMPLES = """ as_number: 65536 router_id: 198.51.100.2 maxas_limit: 20 - log_neighbor_changes: True + log_neighbor_changes: true neighbors: - neighbor_address: 192.0.2.1 remote_as: 65537 @@ -1615,7 +1615,7 @@ EXAMPLES = """ vrfs: - vrf: site-2 neighbor_down: - fib_accelerate: True + fib_accelerate: true state: replaced # Task output: diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_neighbor_address_family.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_neighbor_address_family.py index e2b72ace3..de41a9bf1 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_neighbor_address_family.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_bgp_neighbor_address_family.py @@ -51,7 +51,7 @@ options: neighbor_address: description: IP/IPv6 address of the neighbor. type: str - required: True + required: true address_family: description: BGP Neighbor Address Family related configurations. type: list @@ -61,7 +61,7 @@ options: description: Address Family indicator. type: str choices: ["ipv4", "ipv6", "link-state", "vpnv4", "vpnv6", "l2vpn"] - required: True + required: true safi: description: Sub Address Family indicator. type: str @@ -73,7 +73,7 @@ options: route_map: description: Route-map name. type: str - required: True + required: true exist_map: description: Condition route-map to advertise only when prefix in condition exists. type: str @@ -307,9 +307,9 @@ EXAMPLES = """ address_family: - afi: ipv4 safi: unicast - suppress_inactive: True + suppress_inactive: true next_hop_self: - set: True + set: true - neighbor_address: 203.0.113.2 address_family: - afi: ipv6 @@ -317,7 +317,7 @@ EXAMPLES = """ - afi: ipv4 safi: multicast send_community: - set: True + set: true # Task output: # ------------ @@ -383,7 +383,7 @@ EXAMPLES = """ # - afi: ipv4 # safi: multicast # send_community: -# set: True +# set: true # - afi: ipv6 # safi: unicast @@ -472,7 +472,7 @@ EXAMPLES = """ - afi: ipv4 safi: multicast send_community: - set: True + set: true state: replaced # Task output: @@ -515,7 +515,7 @@ EXAMPLES = """ # - afi: ipv4 # safi: multicast # send_community: -# set: True +# set: true # - afi: ipv6 # safi: unicast # @@ -562,7 +562,7 @@ EXAMPLES = """ # - afi: ipv4 # safi: multicast # send_community: -# set: True +# set: true # - afi: ipv6 # safi: unicast @@ -629,9 +629,9 @@ EXAMPLES = """ address_family: - afi: ipv4 safi: unicast - suppress_inactive: True + suppress_inactive: true next_hop_self: - set: True + set: true state: overridden # Task output: @@ -674,7 +674,7 @@ EXAMPLES = """ # - afi: ipv4 # safi: multicast # send_community: -# set: True +# set: true # - afi: ipv6 # safi: unicast # @@ -708,9 +708,9 @@ EXAMPLES = """ # address_family: # - afi: ipv4 # safi: unicast -# suppress_inactive: True +# suppress_inactive: true # next_hop_self: -# set: True +# set: true # After state: # ------------ @@ -809,7 +809,7 @@ EXAMPLES = """ # - afi: ipv4 # safi: multicast # send_community: -# set: True +# set: true # - afi: ipv6 # safi: unicast # @@ -850,7 +850,7 @@ EXAMPLES = """ # - afi: ipv4 # safi: multicast # send_community: -# set: True +# set: true # # After state: # ------------ @@ -942,7 +942,7 @@ EXAMPLES = """ # - afi: ipv4 # safi: multicast # send_community: -# set: True +# set: true # - afi: ipv6 # safi: unicast # @@ -1008,9 +1008,9 @@ EXAMPLES = """ address_family: - afi: ipv4 safi: unicast - suppress_inactive: True + suppress_inactive: true next_hop_self: - set: True + set: true - neighbor_address: 203.0.113.2 address_family: - afi: ipv6 @@ -1018,7 +1018,7 @@ EXAMPLES = """ - afi: ipv4 safi: multicast send_community: - set: True + set: true state: rendered # Task output: @@ -1116,7 +1116,7 @@ EXAMPLES = """ # - afi: ipv4 # safi: multicast # send_community: -# set: True +# set: true # - afi: ipv6 # safi: unicast """ diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_command.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_command.py index 7febbf8a7..6c3c2c384 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_command.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_command.py @@ -87,32 +87,31 @@ EXAMPLES = """ - name: run multiple commands on remote nodes cisco.nxos.nxos_command: commands: - - show version - - show interfaces + - show version + - show interfaces - name: run multiple commands and evaluate the output cisco.nxos.nxos_command: commands: - - show version - - show interfaces + - show version + - show interfaces wait_for: - - result[0] contains Cisco - - result[1] contains loopback0 + - result[0] contains Cisco + - result[1] contains loopback0 - name: run commands and specify the output format cisco.nxos.nxos_command: commands: - - command: show version - output: json + - command: show version + output: json - name: run commands that require answering a prompt cisco.nxos.nxos_command: commands: - - configure terminal - - command: no feature npv - prompt: Do you want to continue - answer: y - + - configure terminal + - command: no feature npv + prompt: Do you want to continue + answer: y """ RETURN = """ diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_config.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_config.py index 132a62d28..84be30a02 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_config.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_config.py @@ -246,21 +246,21 @@ EXAMPLES = """ - cisco.nxos.nxos_config: lines: - - 10 permit ip 192.0.2.1/32 any log - - 20 permit ip 192.0.2.2/32 any log - - 30 permit ip 192.0.2.3/32 any log - - 40 permit ip 192.0.2.4/32 any log - - 50 permit ip 192.0.2.5/32 any log + - 10 permit ip 192.0.2.1/32 any log + - 20 permit ip 192.0.2.2/32 any log + - 30 permit ip 192.0.2.3/32 any log + - 40 permit ip 192.0.2.4/32 any log + - 50 permit ip 192.0.2.5/32 any log parents: ip access-list test before: no ip access-list test match: exact - cisco.nxos.nxos_config: lines: - - 10 permit ip 192.0.2.1/32 any log - - 20 permit ip 192.0.2.2/32 any log - - 30 permit ip 192.0.2.3/32 any log - - 40 permit ip 192.0.2.4/32 any log + - 10 permit ip 192.0.2.1/32 any log + - 20 permit ip 192.0.2.2/32 any log + - 30 permit ip 192.0.2.3/32 any log + - 40 permit ip 192.0.2.4/32 any log parents: ip access-list test before: no ip access-list test replace: block @@ -274,7 +274,7 @@ EXAMPLES = """ cisco.nxos.nxos_config: lines: # - shut - - shutdown + - shutdown # parents: int eth1/1 parents: interface Ethernet1/1 @@ -407,7 +407,10 @@ def main(): defaults=dict(type="bool", default=False), backup=dict(type="bool", default=False), backup_options=dict(type="dict", options=backup_spec), - save_when=dict(choices=["always", "never", "modified", "changed"], default="never"), + save_when=dict( + choices=["always", "never", "modified", "changed"], + default="never", + ), diff_against=dict(choices=["running", "startup", "intended"]), diff_ignore_lines=dict(type="list", elements="str"), ) @@ -502,10 +505,21 @@ def main(): if module.params["save_when"] == "always": save_config(module, result) elif module.params["save_when"] == "modified": - output = execute_show_commands(module, ["show running-config", "show startup-config"]) + output = execute_show_commands( + module, + ["show running-config", "show startup-config"], + ) - running_config = NetworkConfig(indent=2, contents=output[0], ignore_lines=diff_ignore_lines) - startup_config = NetworkConfig(indent=2, contents=output[1], ignore_lines=diff_ignore_lines) + running_config = NetworkConfig( + indent=2, + contents=output[0], + ignore_lines=diff_ignore_lines, + ) + startup_config = NetworkConfig( + indent=2, + contents=output[1], + ignore_lines=diff_ignore_lines, + ) if running_config.sha1 != startup_config.sha1: save_config(module, result) @@ -520,11 +534,17 @@ def main(): contents = running_config # recreate the object in order to process diff_ignore_lines - running_config = NetworkConfig(indent=2, contents=contents, ignore_lines=diff_ignore_lines) + running_config = NetworkConfig( + indent=2, + contents=contents, + ignore_lines=diff_ignore_lines, + ) if module.params["diff_against"] == "running": if module.check_mode: - module.warn("unable to perform diff against running-config due to check mode") + module.warn( + "unable to perform diff against running-config due to check mode", + ) contents = None else: contents = config.config_text @@ -540,7 +560,11 @@ def main(): contents = module.params["intended_config"] if contents is not None: - base_config = NetworkConfig(indent=2, contents=contents, ignore_lines=diff_ignore_lines) + base_config = NetworkConfig( + indent=2, + contents=contents, + ignore_lines=diff_ignore_lines, + ) if running_config.sha1 != base_config.sha1: before = "" diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_devicealias.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_devicealias.py index 71d4ebb67..1aa4c9d75 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_devicealias.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_devicealias.py @@ -70,23 +70,21 @@ EXAMPLES = """ - name: Test that device alias module works cisco.nxos.nxos_devicealias: da: - - name: test1_add - pwwn: 56:2:22:11:22:88:11:67 - - name: test2_add - pwwn: 65:22:22:11:22:22:11:d - - name: dev1 - remove: true - - name: dev2 - remove: true + - name: test1_add + pwwn: 56:2:22:11:22:88:11:67 + - name: test2_add + pwwn: 65:22:22:11:22:22:11:d + - name: dev1 + remove: true + - name: dev2 + remove: true distribute: true mode: enhanced rename: - - new_name: bcd - old_name: abc - - new_name: bcd1 - old_name: abc1 - - + - new_name: bcd + old_name: abc + - new_name: bcd1 + old_name: abc1 """ RETURN = """ @@ -179,11 +177,15 @@ class showDeviceAliasDatabase(object): return name in self.da_dict.keys() def isPwwnInDaDatabase(self, pwwn): - newpwwn = ":".join(["0" + str(ep) if len(ep) == 1 else ep for ep in pwwn.split(":")]) + newpwwn = ":".join( + ["0" + str(ep) if len(ep) == 1 else ep for ep in pwwn.split(":")], + ) return newpwwn in self.da_dict.values() def isNamePwwnPresentInDatabase(self, name, pwwn): - newpwwn = ":".join(["0" + str(ep) if len(ep) == 1 else ep for ep in pwwn.split(":")]) + newpwwn = ":".join( + ["0" + str(ep) if len(ep) == 1 else ep for ep in pwwn.split(":")], + ) if name in self.da_dict.keys(): if newpwwn == self.da_dict[name]: return True @@ -196,7 +198,9 @@ class showDeviceAliasDatabase(object): return None def getNameByPwwn(self, pwwn): - newpwwn = ":".join(["0" + str(ep) if len(ep) == 1 else ep for ep in pwwn.split(":")]) + newpwwn = ":".join( + ["0" + str(ep) if len(ep) == 1 else ep for ep in pwwn.split(":")], + ) for n, p in self.da_dict.items(): if p == newpwwn: return n @@ -331,7 +335,9 @@ def main(): d = shDAStausObj.getDistribute() m = shDAStausObj.getMode() if shDAStausObj.isLocked(): - module.fail_json(msg="device-alias has acquired lock on the switch. Hence cannot procced.") + module.fail_json( + msg="device-alias has acquired lock on the switch. Hence cannot procced.", + ) # Step 1: Process distribute commands = [] @@ -342,7 +348,9 @@ def main(): # but switch distribute is disabled(false), so set it to # true(enabled) commands.append("device-alias distribute") - messages.append("device-alias distribute changed from disabled to enabled") + messages.append( + "device-alias distribute changed from disabled to enabled", + ) else: messages.append( "device-alias distribute remains unchanged. current distribution mode is enabled", @@ -353,7 +361,9 @@ def main(): # but switch distribute is enabled(true), so set it to # false(disabled) commands.append("no device-alias distribute") - messages.append("device-alias distribute changed from enabled to disabled") + messages.append( + "device-alias distribute changed from enabled to disabled", + ) else: messages.append( "device-alias distribute remains unchanged. current distribution mode is disabled", @@ -379,7 +389,9 @@ def main(): commands.append("no device-alias mode enhanced") messages.append("device-alias mode changed from enhanced to basic") else: - messages.append("device-alias mode remains unchanged. current mode is basic") + messages.append( + "device-alias mode remains unchanged. current mode is basic", + ) else: # playbook has mode as enhanced @@ -388,7 +400,9 @@ def main(): commands.append("device-alias mode enhanced") messages.append("device-alias mode changed from basic to enhanced") else: - messages.append("device-alias mode remains unchanged. current mode is enhanced") + messages.append( + "device-alias mode remains unchanged. current mode is enhanced", + ) if commands: if distribute: diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_evpn_vni.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_evpn_vni.py index d4490bb7b..89771f374 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_evpn_vni.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_evpn_vni.py @@ -89,8 +89,8 @@ EXAMPLES = """ vni: 6000 route_distinguisher: 60:10 route_target_import: - - 5000:10 - - 4100:100 + - "5000:10" + - "4100:100" route_target_export: auto route_target_both: default """ @@ -215,7 +215,9 @@ def state_present(module, existing, proposed): if target == "default": continue if existing: - if target not in existing.get(key.replace("-", "_").replace(" ", "_")): + if target not in existing.get( + key.replace("-", "_").replace(" ", "_"), + ): commands.append("{0} {1}".format(key, target)) else: commands.append("{0} {1}".format(key, target)) diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_facts.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_facts.py index 24e0dad22..77ca123d5 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_facts.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_facts.py @@ -77,11 +77,11 @@ EXAMPLES = """ - name: Gather only the config and default facts cisco.nxos.nxos_facts: gather_subset: - - config + - config - name: Do not gather hardware facts cisco.nxos.nxos_facts: gather_subset: - - '!hardware' + - '!hardware' - name: Gather legacy and resource facts cisco.nxos.nxos_facts: gather_subset: all @@ -89,10 +89,10 @@ EXAMPLES = """ - name: Gather only the interfaces resource facts and no legacy facts cisco.nxos.nxos_facts: gather_subset: - - '!all' - - '!min' + - '!all' + - '!min' gather_network_resources: - - interfaces + - interfaces - name: Gather interfaces resource and minimal legacy facts cisco.nxos.nxos_facts: gather_subset: min diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_fc_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_fc_interfaces.py index b0c58a5e3..a77deffdb 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_fc_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_fc_interfaces.py @@ -50,7 +50,7 @@ options: enabled: description: - Administrative state of the interface. Set the value to C(true) to - administratively enable the interface or C(false) to disable it + administratively enable the interface or C(true) to disable it type: bool speed: description: @@ -131,8 +131,8 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration cisco.nxos.nxos_fc_interfaces: config: - - name: fc18/10 - analytics: fc-scsi + - name: fc18/10 + analytics: fc-scsi state: merged # Task Output @@ -143,7 +143,7 @@ EXAMPLES = """ # speed: auto max 16000 # mode: auto # trunk_mode: on -# enabled: False +# enabled: true # description: $ # analytics: fc-nvme # commands: @@ -154,7 +154,7 @@ EXAMPLES = """ # speed: auto max 16000 # mode: auto # trunk_mode: on -# enabled: False +# enabled: true # description: $ # analytics: fc-all @@ -189,13 +189,13 @@ EXAMPLES = """ - name: Replaces device configuration of listed interfaces with provided configuration cisco.nxos.nxos_fc_interfaces: config: - - name: fc18/12 - speed: auto max 64000 - mode: auto - trunk_mode: on - enabled: True - description: 1 - analytics: fc-scsi + - name: fc18/12 + speed: auto max 64000 + mode: auto + trunk_mode: "on" + enabled: true + description: 1 + analytics: fc-scsi state: replaced # Task Output @@ -206,7 +206,7 @@ EXAMPLES = """ # speed: auto max 64000 # mode: auto # trunk_mode: on -# enabled: True +# enabled: true # description: 1 # analytics: fc-all # commands: @@ -218,7 +218,7 @@ EXAMPLES = """ # speed: auto max 64000 # mode: auto # trunk_mode: on -# enabled: True +# enabled: true # description: 1 # analytics: fc-scsi @@ -251,7 +251,7 @@ EXAMPLES = """ - name: Delete or return interface parameters to default settings cisco.nxos.nxos_fc_interfaces: config: - - name: fc1/2 + - name: fc1/2 state: deleted # Task Output @@ -262,7 +262,7 @@ EXAMPLES = """ # speed: 1000 # mode: E # trunk_mode: off -# enabled: True +# enabled: true # commands: # - interface fc1/2 # - no switchport speed 1000 @@ -274,7 +274,7 @@ EXAMPLES = """ # speed: auto # mode: auto # trunk_mode: on -# enabled: False +# enabled: true # After state: # ------------ @@ -313,13 +313,13 @@ EXAMPLES = """ - name: Replaces device configuration of listed interfaces with provided configuration cisco.nxos.nxos_fc_interfaces: config: - - name: fc18/12 - speed: auto max 64000 - mode: auto - trunk_mode: on - enabled: True - description: 1 - analytics: fc-scsi + - name: fc18/12 + speed: auto max 64000 + mode: auto + trunk_mode: "on" + enabled: true + description: 1 + analytics: fc-scsi state: overridden # Task Output @@ -330,14 +330,14 @@ EXAMPLES = """ # speed: auto max 64000 # mode: auto # trunk_mode: on -# enabled: True +# enabled: true # description: 1 # analytics: fc-all # - name: fc18/13 # speed: auto max 64000 # mode: auto # trunk_mode: on -# enabled: True +# enabled: true # description: 1 # analytics: fc-all # commands: @@ -355,14 +355,14 @@ EXAMPLES = """ # speed: auto max 64000 # mode: auto # trunk_mode: on -# enabled: True +# enabled: true # description: 1 # analytics: fc-scsi # - name: fc18/13 # speed: auto max 64000 # mode: auto # trunk_mode: on -# enabled: False +# enabled: true # After state: # ------------ @@ -380,29 +380,23 @@ EXAMPLES = """ # switchport trunk mode on # shutdown - - - - - - # Using rendered - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_fc_interfaces: config: - - name: fc1/1 - speed: auto - mode: auto - trunk_mode: on - enabled: True - description: This is a sample line - - name: fc1/2 - speed: 1000 - mode: E - trunk_mode: off - enabled: True - state: rendered + - name: fc1/1 + speed: auto + mode: auto + trunk_mode: "on" + enabled: true + description: This is a sample line + - name: fc1/2 + speed: 1000 + mode: E + trunk_mode: "off" + enabled: true + state: rendered # Task Output # ----------- @@ -454,13 +448,13 @@ EXAMPLES = """ # speed: auto # mode: auto # trunk_mode: on -# enabled: True +# enabled: true # description: This is a sample line # - name: fc1/2 # speed: 1000 # mode: E # trunk_mode: off -# enabled: True +# enabled: true # Using gathered @@ -493,17 +487,13 @@ EXAMPLES = """ # speed: auto # mode: auto # trunk_mode: on -# enabled: True +# enabled: true # description: This is a sample line # - name: fc1/2 # speed: 1000 # mode: E # trunk_mode: off -# enabled: True - - - - +# enabled: true """ RETURN = """ diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_gir_profile_management.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_gir_profile_management.py index 84cfc1456..2ddf2ce60 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_gir_profile_management.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_gir_profile_management.py @@ -65,8 +65,8 @@ EXAMPLES = """ - cisco.nxos.nxos_gir_profile_management: mode: maintenance commands: - - router eigrp 11 - - isolate + - router eigrp 11 + - isolate # Remove the maintenance-mode profile - cisco.nxos.nxos_gir_profile_management: diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_hostname.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_hostname.py index 42e45677a..3f141562c 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_hostname.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_hostname.py @@ -146,7 +146,6 @@ EXAMPLES = """ # ----------------------- # parsed: # hostname: NXOSv-9k - """ RETURN = """ diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_hsrp_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_hsrp_interfaces.py index e5ac67376..3e11949dc 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_hsrp_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_hsrp_interfaces.py @@ -88,8 +88,8 @@ EXAMPLES = """ - name: Configure hsrp attributes on interfaces cisco.nxos.nxos_hsrp_interfaces: config: - - name: Ethernet1/1 - - name: Ethernet1/2 + - name: Ethernet1/1 + - name: Ethernet1/2 operation: deleted @@ -98,10 +98,10 @@ EXAMPLES = """ - name: Configure hsrp attributes on interfaces cisco.nxos.nxos_hsrp_interfaces: config: - - name: Ethernet1/1 - bfd: enable - - name: Ethernet1/2 - bfd: disable + - name: Ethernet1/1 + bfd: enable + - name: Ethernet1/2 + bfd: disable operation: merged @@ -110,10 +110,10 @@ EXAMPLES = """ - name: Configure hsrp attributes on interfaces cisco.nxos.nxos_hsrp_interfaces: config: - - name: Ethernet1/1 - bfd: enable - - name: Ethernet1/2 - bfd: disable + - name: Ethernet1/1 + bfd: enable + - name: Ethernet1/2 + bfd: disable operation: overridden @@ -122,10 +122,10 @@ EXAMPLES = """ - name: Configure hsrp attributes on interfaces cisco.nxos.nxos_hsrp_interfaces: config: - - name: Ethernet1/1 - bfd: enable - - name: Ethernet1/2 - bfd: disable + - name: Ethernet1/1 + bfd: enable + - name: Ethernet1/2 + bfd: disable operation: replaced # Using rendered @@ -133,10 +133,10 @@ EXAMPLES = """ - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_hsrp_interfaces: config: - - name: Ethernet1/800 - bfd: enable - - name: Ethernet1/801 - bfd: enable + - name: Ethernet1/800 + bfd: enable + - name: Ethernet1/801 + bfd: enable state: rendered # Task Output (redacted) @@ -199,7 +199,6 @@ EXAMPLES = """ # bfd: enable # - name: Ethernet1/2 # bfd: enable - """ RETURN = """ before: diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_igmp_interface.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_igmp_interface.py index 105dac5e6..66a2a495e 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_igmp_interface.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_igmp_interface.py @@ -154,8 +154,8 @@ EXAMPLES = """ interface: ethernet1/32 startup_query_interval: 30 oif_ps: - - {prefix: 238.2.2.6} - - {source: 192.168.0.1, prefix: 238.2.2.5} + - {prefix: 238.2.2.6} + - {source: 192.168.0.1, prefix: 238.2.2.5} state: present """ RETURN = """ @@ -385,7 +385,9 @@ def config_igmp_interface(delta, existing, existing_oif_prefix_source): if "source" in each.keys(): src = each["source"] if src: - commands.append("no " + CMDS.get("oif_prefix_source").format(pf, src)) + commands.append( + "no " + CMDS.get("oif_prefix_source").format(pf, src), + ) else: commands.append("no " + CMDS.get("oif_prefix").format(pf)) elif key == "oif_routemap": @@ -450,7 +452,11 @@ def config_default_igmp_interface(existing, delta): proposed = get_igmp_interface_defaults() delta = dict(set(proposed.items()).difference(existing.items())) if delta: - command = config_igmp_interface(delta, existing, existing_oif_prefix_source=None) + command = config_igmp_interface( + delta, + existing, + existing_oif_prefix_source=None, + ) if command: for each in command: @@ -463,7 +469,9 @@ def config_remove_oif(existing, existing_oif_prefix_source): commands = [] command = None if existing.get("oif_routemap"): - commands.append("no ip igmp static-oif route-map {0}".format(existing.get("oif_routemap"))) + commands.append( + "no ip igmp static-oif route-map {0}".format(existing.get("oif_routemap")), + ) elif existing_oif_prefix_source: for each in existing_oif_prefix_source: if each.get("prefix") and each.get("source"): diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_install_os.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_install_os.py index 53fe00aac..9b64a8989 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_install_os.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_install_os.py @@ -95,9 +95,10 @@ EXAMPLES = """ nxos_command: commands: [show version | json] register: output + - assert: that: - - output['stdout'][0]['kickstart_ver_str'] == '7.0(3)I6(1)' + - output['stdout'][0]['kickstart_ver_str'] == '7.0(3)I6(1)' """ RETURN = """ @@ -390,7 +391,9 @@ def build_install_cmd_set(issu, image, kick, type, force=True): if kick is None: commands.append("%s nxos %s %s" % (rootcmd, image, issu_cmd)) else: - commands.append("%s %s system %s kickstart %s" % (rootcmd, issu_cmd, image, kick)) + commands.append( + "%s %s system %s kickstart %s" % (rootcmd, issu_cmd, image, kick), + ) return commands diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_interfaces.py index 7884098a7..30045188d 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_interfaces.py @@ -142,12 +142,12 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration cisco.nxos.nxos_interfaces: config: - - name: Ethernet1/1 - description: Configured by Ansible - enabled: true - - name: Ethernet1/2 - description: Configured by Ansible Network - enabled: false + - name: Ethernet1/1 + description: Configured by Ansible + enabled: true + - name: Ethernet1/2 + description: Configured by Ansible Network + enabled: false state: merged # Task Output @@ -206,14 +206,14 @@ EXAMPLES = """ - name: Replaces device configuration of listed interfaces with provided configuration cisco.nxos.nxos_interfaces: config: - - name: Ethernet1/1 - description: Configured by Ansible - enabled: true - mtu: 9000 - - name: Ethernet1/2 - description: Configured by Ansible Network - enabled: false - mode: layer2 + - name: Ethernet1/1 + description: Configured by Ansible + enabled: true + mtu: 9000 + - name: Ethernet1/2 + description: Configured by Ansible Network + enabled: false + mode: layer2 state: replaced # Task Output @@ -274,13 +274,13 @@ EXAMPLES = """ - name: Override device configuration of all interfaces with provided configuration cisco.nxos.nxos_interfaces: config: - - name: Ethernet1/1 - enabled: true - - name: Ethernet1/2 - description: Configured by Ansible Network - enabled: false - - description: mgmt interface - name: mgmt0 + - name: Ethernet1/1 + enabled: true + - name: Ethernet1/2 + description: Configured by Ansible Network + enabled: false + - description: mgmt interface + name: mgmt0 state: overridden # Task Output @@ -338,7 +338,7 @@ EXAMPLES = """ - name: Delete or return interface parameters to default settings cisco.nxos.nxos_interfaces: config: - - name: Ethernet1/2 + - name: Ethernet1/2 state: deleted # Task Output @@ -377,14 +377,14 @@ EXAMPLES = """ - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_interfaces: config: - - name: Ethernet1/1 - description: outbound-intf - mode: layer3 - speed: 100 - - name: Ethernet1/2 - mode: layer2 - enabled: true - duplex: full + - name: Ethernet1/1 + description: outbound-intf + mode: layer3 + speed: 100 + - name: Ethernet1/2 + mode: layer2 + enabled: true + duplex: full state: rendered # Task Output @@ -524,8 +524,6 @@ EXAMPLES = """ # interface port-channel11 # interface Ethernet1/1 # interface Ethernet1/2 - - """ RETURN = """ before: diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_l2_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_l2_interfaces.py index 55149b7bf..c490d65ed 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_l2_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_l2_interfaces.py @@ -130,13 +130,13 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration cisco.nxos.nxos_l2_interfaces: config: - - name: Ethernet1/1 - trunk: - native_vlan: 10 - allowed_vlans: 2,4,15 - - name: Ethernet1/2 - access: - vlan: 30 + - name: Ethernet1/1 + trunk: + native_vlan: 10 + allowed_vlans: 2,4,15 + - name: Ethernet1/2 + access: + vlan: 30 state: merged # Task Output @@ -195,10 +195,10 @@ EXAMPLES = """ - name: Replace device configuration of specified L2 interfaces with provided configuration. cisco.nxos.nxos_l2_interfaces: config: - - name: Ethernet1/1 - trunk: - native_vlan: 20 - allowed_vlans: 5-10, 15 + - name: Ethernet1/1 + trunk: + native_vlan: 20 + allowed_vlans: 5-10, 15 state: replaced # Task Output @@ -261,9 +261,9 @@ EXAMPLES = """ - name: Override device configuration with provided configuration. cisco.nxos.nxos_l2_interfaces: config: - - name: Ethernet1/2 - access: - vlan: 30 + - name: Ethernet1/2 + access: + vlan: 30 state: overridden # Task Output @@ -320,8 +320,8 @@ EXAMPLES = """ itself). cisco.nxos.nxos_l2_interfaces: config: - - name: Ethernet1/1 - - name: Ethernet1/2 + - name: Ethernet1/1 + - name: Ethernet1/2 state: deleted # Task Output @@ -362,17 +362,17 @@ EXAMPLES = """ - name: Render platform specific configuration lines (without connecting to the device) cisco.nxos.nxos_l2_interfaces: config: - - name: Ethernet1/1 - trunk: - native_vlan: 10 - allowed_vlans: 2,4,15 - - name: Ethernet1/2 - access: - vlan: 30 - - name: Ethernet1/3 - trunk: - native_vlan: 20 - allowed_vlans: 5-10, 15 + - name: Ethernet1/1 + trunk: + native_vlan: 10 + allowed_vlans: 2,4,15 + - name: Ethernet1/2 + access: + vlan: 30 + - name: Ethernet1/3 + trunk: + native_vlan: 20 + allowed_vlans: 5-10, 15 state: rendered # Task Output diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_l3_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_l3_interfaces.py index 1b4d821b2..5dc3d05a9 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_l3_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_l3_interfaces.py @@ -159,19 +159,19 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration. cisco.nxos.nxos_l3_interfaces: config: - - name: Ethernet1/6 - ipv4: - - address: 192.168.1.1/24 - tag: 5 - - address: 10.1.1.1/24 - secondary: true - tag: 10 - ipv6: - - address: fd5d:12c9:2201:2::1/64 - tag: 6 - - name: Ethernet1/7.42 - redirects: false - unreachables: false + - name: Ethernet1/6 + ipv4: + - address: 192.168.1.1/24 + tag: 5 + - address: 10.1.1.1/24 + secondary: true + tag: 10 + ipv6: + - address: fd5d:12c9:2201:2::1/64 + tag: 6 + - name: Ethernet1/7.42 + redirects: false + unreachables: false state: merged # Task Output @@ -258,9 +258,9 @@ EXAMPLES = """ - name: Replace device configuration of specified L3 interfaces with provided configuration. cisco.nxos.nxos_l3_interfaces: config: - - name: Ethernet1/6 - ipv4: - - address: 192.168.22.3/24 + - name: Ethernet1/6 + ipv4: + - address: 192.168.22.3/24 state: replaced # Task Output @@ -352,12 +352,12 @@ EXAMPLES = """ - name: Override device configuration with provided configuration. cisco.nxos.nxos_l3_interfaces: config: - - ipv4: - - address: dhcp - name: mgmt0 - - name: Ethernet1/6 - ipv4: - - address: 192.168.22.3/24 + - ipv4: + - address: dhcp + name: mgmt0 + - name: Ethernet1/6 + ipv4: + - address: 192.168.22.3/24 state: overridden # Task Output @@ -446,8 +446,8 @@ EXAMPLES = """ itself). cisco.nxos.nxos_l3_interfaces: config: - - name: Ethernet1/6 - - name: Ethernet1/2 + - name: Ethernet1/6 + - name: Ethernet1/2 state: deleted # Task Output @@ -497,17 +497,17 @@ EXAMPLES = """ - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_l3_interfaces: config: - - name: Ethernet1/800 - ipv4: - - address: 192.168.1.100/24 - tag: 5 - - address: 10.1.1.1/24 - secondary: true - tag: 10 - - name: Ethernet1/800 - ipv6: - - address: fd5d:12c9:2201:2::1/64 - tag: 6 + - name: Ethernet1/800 + ipv4: + - address: 192.168.1.100/24 + tag: 5 + - address: 10.1.1.1/24 + secondary: true + tag: 10 + - name: Ethernet1/800 + ipv6: + - address: fd5d:12c9:2201:2::1/64 + tag: 6 state: rendered # Task Output diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_lacp_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_lacp_interfaces.py index 98e5a6339..d51ea0a71 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_lacp_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_lacp_interfaces.py @@ -143,9 +143,9 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration. cisco.nxos.nxos_lacp_interfaces: config: - - name: Ethernet1/3 - port_priority: 5 - rate: fast + - name: Ethernet1/3 + port_priority: 5 + rate: fast state: merged # After state: @@ -169,9 +169,9 @@ EXAMPLES = """ - name: Replace device lacp interfaces configuration with the given configuration. cisco.nxos.nxos_lacp_interfaces: config: - - name: port-channel11 - links: - min: 4 + - name: port-channel11 + links: + min: 4 state: replaced # After state: @@ -197,9 +197,9 @@ EXAMPLES = """ on device with provided configuration. cisco.nxos.nxos_lacp_interfaces: config: - - name: port-channel11 - links: - min: 4 + - name: port-channel11 + links: + min: 4 state: overridden # After state: @@ -232,17 +232,17 @@ EXAMPLES = """ - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_lacp_interfaces: config: - - name: Ethernet1/800 - rate: fast - - name: Ethernet1/801 - rate: fast - port_priority: 32 - - name: port-channel10 - links: - max: 15 - min: 2 - convergence: - graceful: true + - name: Ethernet1/800 + rate: fast + - name: Ethernet1/801 + rate: fast + port_priority: 32 + - name: port-channel10 + links: + max: 15 + min: 2 + convergence: + graceful: true state: rendered # Task Output (redacted) diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_lag_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_lag_interfaces.py index ce06462ed..8d0fabf7a 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_lag_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_lag_interfaces.py @@ -113,9 +113,9 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration. cisco.nxos.nxos_lag_interfaces: config: - - name: port-channel99 - members: - - member: Ethernet1/4 + - name: port-channel99 + members: + - member: Ethernet1/4 state: merged # After state: @@ -137,9 +137,9 @@ EXAMPLES = """ with provided configuration. cisco.nxos.nxos_lag_interfaces: config: - - name: port-channel10 - members: - - member: Ethernet1/4 + - name: port-channel10 + members: + - member: Ethernet1/4 state: replaced # After state: @@ -163,10 +163,10 @@ EXAMPLES = """ device with provided configuration. cisco.nxos.nxos_lag_interfaces: config: - - name: port-channel20 - members: - - member: Ethernet1/6 - force: true + - name: port-channel20 + members: + - member: Ethernet1/6 + force: true state: overridden # After state: @@ -189,7 +189,7 @@ EXAMPLES = """ itself). cisco.nxos.nxos_lag_interfaces: config: - - port-channel: port-channel99 + - port-channel: port-channel99 state: deleted - name: Delete LAG attributes of all the interfaces @@ -207,15 +207,15 @@ EXAMPLES = """ - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_lag_interfaces: config: - - name: port-channel10 - members: - - member: Ethernet1/800 - mode: active - - member: Ethernet1/801 - - name: port-channel11 - members: - - member: Ethernet1/802 - mode: passive + - name: port-channel10 + members: + - member: Ethernet1/800 + mode: active + - member: Ethernet1/801 + - name: port-channel11 + members: + - member: Ethernet1/802 + mode: passive state: rendered # Task Output (redacted) diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_lldp_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_lldp_interfaces.py index 2006001de..44ac5b09e 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_lldp_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_lldp_interfaces.py @@ -111,12 +111,12 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration cisco.nxos.nxos_lldp_interfaces: config: - - name: Ethernet1/4 - receive: false - transmit: true - tlv_set: - management_address: 192.168.122.64 - vlan: 12 + - name: Ethernet1/4 + receive: false + transmit: true + tlv_set: + management_address: 192.168.122.64 + vlan: 12 state: merged # After state: @@ -143,10 +143,10 @@ EXAMPLES = """ - name: Replace LLDP configuration on interfaces with given configuration cisco.nxos.nxos_lldp_interfaces: config: - - name: Ethernet1/4 - transmit: false - tlv_set: - vlan: 2 + - name: Ethernet1/4 + transmit: false + tlv_set: + vlan: 2 state: replaced @@ -176,10 +176,10 @@ EXAMPLES = """ - name: Override LLDP configuration on all interfaces with given configuration cisco.nxos.nxos_lldp_interfaces: config: - - name: Ethernet1/7 - receive: false - tlv_set: - vlan: 12 + - name: Ethernet1/7 + receive: false + tlv_set: + vlan: 12 state: overridden @@ -209,8 +209,6 @@ EXAMPLES = """ # After state: # ------------ # - - """ RETURN = """ before: diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_logging.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_logging.py deleted file mode 100644 index 7782eb32c..000000000 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_logging.py +++ /dev/null @@ -1,940 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -# Copyright: (c) 2017, Ansible by Red Hat, inc -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - - -DOCUMENTATION = """ -module: nxos_logging -author: Trishna Guha (@trishnaguha) -short_description: Manage logging on network devices -notes: -- Limited Support for Cisco MDS -description: -- This module provides declarative management of logging on Cisco NX-OS devices. -version_added: 1.0.0 -deprecated: - alternative: nxos_logging_global - why: Updated module released with more functionality. - removed_at_date: '2023-08-01' -options: - dest: - description: - - Destination of the logs. - choices: - - console - - logfile - - module - - monitor - - server - type: str - remote_server: - description: - - Hostname or IP Address for remote logging (when dest is 'server'). - type: str - use_vrf: - description: - - VRF to be used while configuring remote logging (when dest is 'server'). - type: str - interface: - description: - - Interface to be used while configuring source-interface for logging (e.g., 'Ethernet1/2', - 'mgmt0') - type: str - name: - description: - - If value of C(dest) is I(logfile) it indicates file-name. - type: str - facility: - description: - - Facility name for logging. - type: str - dest_level: - description: - - Set logging severity levels. - aliases: - - level - type: int - facility_level: - description: - - Set logging severity levels for facility based log messages. - type: int - aggregate: - description: List of logging definitions. - type: list - elements: dict - state: - description: - - State of the logging configuration. - default: present - choices: - - present - - absent - type: str - event: - description: - - Link/trunk enable/default interface configuration logging - choices: - - link-enable - - link-default - - trunk-enable - - trunk-default - type: str - interface_message: - description: - - Add interface description to interface syslogs. Does not work with version 6.0 - images using nxapi as a transport. - choices: - - add-interface-description - type: str - file_size: - description: - - Set logfile size - type: int - facility_link_status: - description: - - Set logging facility ethpm link status. Not idempotent with version 6.0 images. - choices: - - link-down-notif - - link-down-error - - link-up-notif - - link-up-error - type: str - timestamp: - description: - - Set logging timestamp format - choices: - - microseconds - - milliseconds - - seconds - type: str - purge: - description: - - Remove any switch logging configuration that does not match what has been configured - Not supported for ansible_connection local. All nxos_logging tasks must use - the same ansible_connection type. - type: bool - default: false -extends_documentation_fragment: -- cisco.nxos.nxos -""" - -EXAMPLES = """ -- name: configure console logging with level - cisco.nxos.nxos_logging: - dest: console - level: 2 - state: present -- name: remove console logging configuration - cisco.nxos.nxos_logging: - dest: console - level: 2 - state: absent -- name: configure file logging with level - cisco.nxos.nxos_logging: - dest: logfile - name: testfile - dest_level: 3 - state: present -- name: Configure logging logfile with size - cisco.nxos.nxos_logging: - dest: logfile - name: testfile - dest_level: 3 - file_size: 16384 -- name: configure facility level logging - cisco.nxos.nxos_logging: - facility: daemon - facility_level: 0 - state: present -- name: remove facility level logging - cisco.nxos.nxos_logging: - facility: daemon - facility_level: 0 - state: absent -- name: Configure Remote Logging - cisco.nxos.nxos_logging: - dest: server - remote_server: test-syslogserver.com - facility: auth - facility_level: 1 - use_vrf: management - state: present -- name: Configure Source Interface for Logging - cisco.nxos.nxos_logging: - interface: mgmt0 - state: present -- name: Purge nxos_logging configuration not managed by this playbook - cisco.nxos.nxos_logging: - purge: true -- name: Configure logging timestamp - cisco.nxos.nxos_logging: - timestamp: milliseconds - state: present -- name: Configure logging facility ethpm link status - cisco.nxos.nxos_logging: - facility: ethpm - facility_link_status: link-up-notif - state: present -- name: Configure logging message ethernet description - cisco.nxos.nxos_logging: - interface_message: add-interface-description - state: present -- name: Configure logging event link enable - cisco.nxos.nxos_logging: - event: link-enable - state: present -- name: Configure logging using aggregate - cisco.nxos.nxos_logging: - aggregate: - - {dest: console, dest_level: 2} - - {dest: logfile, dest_level: 2, name: testfile} - - {facility: daemon, facility_level: 0} - state: present -""" - -RETURN = """ -commands: - description: The list of configuration mode commands to send to the device - returned: always - type: list - sample: - - logging console 2 - - logging logfile testfile 3 - - logging level daemon 0 -""" - -import copy -import re - -from ansible.module_utils.basic import AnsibleModule - -from ansible_collections.cisco.nxos.plugins.module_utils.network.nxos.nxos import ( - get_config, - load_config, - normalize_interface, - read_module_context, - run_commands, - save_module_context, -) - - -STATIC_CLI = { - "link-enable": "logging event link-status enable", - "link-default": "logging event link-status default", - "trunk-enable": "logging event trunk-status enable", - "trunk-default": "logging event trunk-status default", - "microseconds": "logging timestamp microseconds", - "milliseconds": "logging timestamp milliseconds", - "seconds": "logging timestamp seconds", - "link-up-error": "link-up error", - "link-up-notif": "link-up notif", - "link-down-error": "link-down error", - "link-down-notif": "link-down notif", - "add-interface-description": "logging message interface type ethernet description", -} - -DEFAULT_LOGGING_LEVEL = { - 0: [], - 1: [], - 2: ["pktmgr"], - 3: ["adjmgr", "arp", "icmpv6", "l2rib", "netstack"], - 4: [], - 5: ["mrib", "m6rib"], - 6: [], - 7: [], -} - -DEST_GROUP = ["console", "logfile", "module", "monitor", "server"] - - -def map_obj_to_commands(module, updates): - commands = list() - want, have = updates - - for w in want: - state = w["state"] - del w["state"] - - if state == "absent" and w in have: - if w["facility"] is not None: - if ( - not w["dest"] - and not w["facility_link_status"] - and w["facility"] not in DEFAULT_LOGGING_LEVEL[int(w["facility_level"])] - ): - commands.append( - "no logging level {0} {1}".format(w["facility"], w["facility_level"]), - ) - - if w["facility_link_status"] and w["facility"] in ("ethpm"): - commands.append( - "no logging level {0} {1}".format( - w["facility"], - STATIC_CLI[w["facility_link_status"]], - ), - ) - - if w["name"] is not None: - commands.append("no logging logfile") - - if w["dest"] in ("console", "module", "monitor"): - commands.append("no logging {0}".format(w["dest"])) - - if w["dest"] == "server": - commands.append("no logging server {0}".format(w["remote_server"])) - - if w["interface"]: - commands.append("no logging source-interface") - - if w["event"] and w["event"] in STATIC_CLI: - commands.append("no " + STATIC_CLI[w["event"]]) - - if w["message"] and w["message"] in STATIC_CLI: - commands.append("no " + STATIC_CLI[w["message"]]) - - if w["timestamp"] and w["timestamp"] in STATIC_CLI: - commands.append("no " + STATIC_CLI[w["timestamp"]]) - - if state == "present" and w not in have: - if w["facility"] is None: - if w["dest"]: - if w["dest"] not in ("logfile", "server"): - commands.append("logging {0} {1}".format(w["dest"], w["dest_level"])) - - elif w["dest"] == "logfile": - if w["file_size"]: - commands.append( - "logging logfile {0} {1} size {2}".format( - w["name"], - w["dest_level"], - w["file_size"], - ), - ) - else: - commands.append( - "logging logfile {0} {1}".format(w["name"], w["dest_level"]), - ) - - elif w["dest"] == "server": - if w["facility_level"]: - if w["use_vrf"]: - commands.append( - "logging server {0} {1} use-vrf {2}".format( - w["remote_server"], - w["facility_level"], - w["use_vrf"], - ), - ) - else: - commands.append( - "logging server {0} {1}".format( - w["remote_server"], - w["facility_level"], - ), - ) - - else: - if w["use_vrf"]: - commands.append( - "logging server {0} use-vrf {1}".format( - w["remote_server"], - w["use_vrf"], - ), - ) - else: - commands.append("logging server {0}".format(w["remote_server"])) - - if w["facility"]: - if w["dest"] == "server": - if w["facility_level"]: - if w["use_vrf"]: - commands.append( - "logging server {0} {1} facility {2} use-vrf {3}".format( - w["remote_server"], - w["facility_level"], - w["facility"], - w["use_vrf"], - ), - ) - else: - commands.append( - "logging server {0} {1} facility {2}".format( - w["remote_server"], - w["facility_level"], - w["facility"], - ), - ) - else: - if w["use_vrf"]: - commands.append( - "logging server {0} facility {1} use-vrf {2}".format( - w["remote_server"], - w["facility"], - w["use_vrf"], - ), - ) - else: - commands.append( - "logging server {0} facility {1}".format( - w["remote_server"], - w["facility"], - ), - ) - else: - if w["facility_link_status"]: - commands.append( - "logging level {0} {1}".format( - w["facility"], - STATIC_CLI[w["facility_link_status"]], - ), - ) - else: - if not match_facility_default(module, w["facility"], w["facility_level"]): - commands.append( - "logging level {0} {1}".format(w["facility"], w["facility_level"]), - ) - - if w["interface"]: - commands.append( - "logging source-interface {0} {1}".format(*split_interface(w["interface"])), - ) - - if w["event"] and w["event"] in STATIC_CLI: - commands.append(STATIC_CLI[w["event"]]) - - if w["message"] and w["message"] in STATIC_CLI: - commands.append(STATIC_CLI[w["message"]]) - - if w["timestamp"] and w["timestamp"] in STATIC_CLI: - commands.append(STATIC_CLI[w["timestamp"]]) - - return commands - - -def match_facility_default(module, facility, want_level): - """Check wanted facility to see if it matches current device default""" - - matches_default = False - # Sample output from show logging level command - # Facility Default Severity Current Session Severity - # -------- ---------------- ------------------------ - # bfd 5 5 - # - # 0(emergencies) 1(alerts) 2(critical) - # 3(errors) 4(warnings) 5(notifications) - # 6(information) 7(debugging) - - regexl = r"\S+\s+(\d+)\s+(\d+)" - cmd = { - "command": "show logging level {0}".format(facility), - "output": "text", - } - facility_data = run_commands(module, cmd) - for line in facility_data[0].split("\n"): - mo = re.search(regexl, line) - if mo and int(mo.group(1)) == int(want_level) and int(mo.group(2)) == int(want_level): - matches_default = True - - return matches_default - - -def split_interface(interface): - match = re.search(r"(\D+)(\S*)", interface, re.M) - if match: - return match.group(1), match.group(2) - - -def parse_facility_link_status(line, facility, status): - facility_link_status = None - - if facility is not None: - match = re.search(r"logging level {0} {1} (\S+)".format(facility, status), line, re.M) - if match: - facility_link_status = status + "-" + match.group(1) - - return facility_link_status - - -def parse_event_status(line, event): - status = None - - match = re.search(r"logging event {0} (\S+)".format(event + "-status"), line, re.M) - if match: - state = match.group(1) - if state: - status = state - - return status - - -def parse_event(line): - event = None - - match = re.search(r"logging event (\S+)", line, re.M) - if match: - state = match.group(1) - if state == "link-status": - event = "link" - elif state == "trunk-status": - event = "trunk" - - return event - - -def parse_message(line): - message = None - - match = re.search(r"logging message interface type ethernet description", line, re.M) - if match: - message = "add-interface-description" - - return message - - -def parse_file_size(line, name, level): - file_size = None - - match = re.search(r"logging logfile {0} {1} size (\S+)".format(name, level), line, re.M) - if match: - file_size = match.group(1) - if file_size == "8192" or file_size == "4194304": - file_size = None - - return file_size - - -def parse_timestamp(line): - timestamp = None - - match = re.search(r"logging timestamp (\S+)", line, re.M) - if match: - timestamp = match.group(1) - - return timestamp - - -def parse_name(line, dest): - name = None - - if dest is not None: - if dest == "logfile": - match = re.search(r"logging logfile (\S+)", line, re.M) - if match: - name = match.group(1) - else: - pass - - return name - - -def parse_remote_server(line, dest): - remote_server = None - - if dest and dest == "server": - match = re.search(r"logging server (\S+)", line, re.M) - if match: - remote_server = match.group(1) - - return remote_server - - -def parse_dest_level(line, dest, name): - dest_level = None - - def parse_match(match): - level = None - if match: - if int(match.group(1)) in range(0, 8): - level = match.group(1) - else: - pass - return level - - if dest and dest != "server": - if dest == "logfile": - match = re.search(r"logging logfile {0} (\S+)".format(name), line, re.M) - if match: - dest_level = parse_match(match) - - elif dest == "server": - match = re.search(r"logging server (?:\S+) (\d+)", line, re.M) - if match: - dest_level = parse_match(match) - else: - match = re.search(r"logging {0} (\S+)".format(dest), line, re.M) - if match: - dest_level = parse_match(match) - - return dest_level - - -def parse_facility_level(line, facility, dest): - facility_level = None - - if dest == "server": - match = re.search(r"logging server (?:\S+) (\d+)", line, re.M) - if match: - facility_level = match.group(1) - - elif facility is not None: - match = re.search(r"logging level {0} (\S+)".format(facility), line, re.M) - if match: - facility_level = match.group(1) - - return facility_level - - -def parse_facility(line): - facility = None - - match = re.search( - r"logging server (?:\S+) (?:\d+) (?:\S+) (?:\S+) (?:\S+) (\S+)", - line, - re.M, - ) - if match: - facility = match.group(1) - - return facility - - -def parse_use_vrf(line, dest): - use_vrf = None - - if dest and dest == "server": - match = re.search(r"logging server (?:\S+) (?:\d+) use-vrf (\S+)", line, re.M) - if match: - use_vrf = match.group(1) - - return use_vrf - - -def parse_interface(line): - interface = None - - match = re.search(r"logging source-interface (\S*)", line, re.M) - if match: - interface = match.group(1) - - return interface - - -def map_config_to_obj(module): - obj = [] - - data = get_config(module, flags=[" all | section logging"]) - - for line in data.split("\n"): - if re.search(r"no (\S+)", line, re.M): - state = "absent" - else: - state = "present" - - match = re.search(r"logging (\S+)", line, re.M) - if state == "present" and match: - event_status = None - name = None - dest_level = None - dest = None - facility = None - remote_server = None - facility_link_status = None - file_size = None - facility_level = None - - if match.group(1) in DEST_GROUP: - dest = match.group(1) - - name = parse_name(line, dest) - remote_server = parse_remote_server(line, dest) - dest_level = parse_dest_level(line, dest, name) - - if dest == "server": - facility = parse_facility(line) - - facility_level = parse_facility_level(line, facility, dest) - - if dest == "logfile": - file_size = parse_file_size(line, name, dest_level) - - elif match.group(1) == "level": - match_facility = re.search(r"logging level (\S+)", line, re.M) - facility = match_facility.group(1) - - level = parse_facility_level(line, facility, dest) - if level.isdigit(): - facility_level = level - else: - facility_link_status = parse_facility_link_status(line, facility, level) - - elif match.group(1) == "event" and state == "present": - event = parse_event(line) - if event: - status = parse_event_status(line, event) - if status: - event_status = event + "-" + status - else: - continue - - else: - pass - - obj.append( - { - "dest": dest, - "remote_server": remote_server, - "use_vrf": parse_use_vrf(line, dest), - "name": name, - "facility": facility, - "dest_level": dest_level, - "facility_level": facility_level, - "interface": parse_interface(line), - "facility_link_status": facility_link_status, - "event": event_status, - "file_size": file_size, - "message": parse_message(line), - "timestamp": parse_timestamp(line), - }, - ) - - cmd = [ - { - "command": "show logging | section enabled | section console", - "output": "text", - }, - { - "command": "show logging | section enabled | section monitor", - "output": "text", - }, - ] - - default_data = run_commands(module, cmd) - - for line in default_data: - flag = False - match = re.search( - r"Logging (\w+):(?:\s+) (?:\w+) (?:\W)Severity: (\w+)", - str(line), - re.M, - ) - if match: - if match.group(1) == "console" and match.group(2) == "critical": - dest_level = "2" - flag = True - elif match.group(1) == "monitor" and match.group(2) == "notifications": - dest_level = "5" - flag = True - if flag: - obj.append( - { - "dest": match.group(1), - "remote_server": None, - "name": None, - "facility": None, - "dest_level": dest_level, - "facility_level": None, - "use_vrf": None, - "interface": None, - "facility_link_status": None, - "event": None, - "file_size": None, - "message": None, - "timestamp": None, - }, - ) - - return obj - - -def map_params_to_obj(module): - obj = [] - - if "aggregate" in module.params and module.params["aggregate"]: - args = { - "dest": "", - "remote_server": "", - "use_vrf": "", - "name": "", - "facility": "", - "dest_level": "", - "facility_level": "", - "interface": "", - "facility_link_status": None, - "event": None, - "file_size": None, - "message": None, - "timestamp": None, - } - - for c in module.params["aggregate"]: - d = c.copy() - - for key in args: - if key not in d: - d[key] = None - - if d["dest_level"] is not None: - d["dest_level"] = str(d["dest_level"]) - - if d["facility_level"] is not None: - d["facility_level"] = str(d["facility_level"]) - - if d["interface"]: - d["interface"] = normalize_interface(d["interface"]) - - if "state" not in d: - d["state"] = module.params["state"] - - if d["file_size"]: - d["file_size"] = str(d["file_size"]) - - obj.append(d) - - else: - dest_level = None - facility_level = None - file_size = None - - if module.params["dest_level"] is not None: - dest_level = str(module.params["dest_level"]) - - if module.params["facility_level"] is not None: - facility_level = str(module.params["facility_level"]) - - if module.params["file_size"] is not None: - file_size = str(module.params["file_size"]) - - obj.append( - { - "dest": module.params["dest"], - "remote_server": module.params["remote_server"], - "use_vrf": module.params["use_vrf"], - "name": module.params["name"], - "facility": module.params["facility"], - "dest_level": dest_level, - "facility_level": facility_level, - "interface": normalize_interface(module.params["interface"]), - "state": module.params["state"], - "facility_link_status": module.params["facility_link_status"], - "event": module.params["event"], - "message": module.params["interface_message"], - "file_size": file_size, - "timestamp": module.params["timestamp"], - }, - ) - return obj - - -def merge_wants(wants, want): - if not wants: - wants = list() - - for w in want: - w = copy.copy(w) - state = w["state"] - del w["state"] - - if state == "absent": - if w in wants: - wants.remove(w) - elif w not in wants: - wants.append(w) - - return wants - - -def absent(h): - h["state"] = "absent" - return h - - -def outliers(haves, wants): - wants = list(wants) - return [absent(h) for h in haves if not (h in wants or wants.append(h))] - - -def main(): - """main entry point for module execution""" - argument_spec = dict( - dest=dict(choices=DEST_GROUP), - name=dict(), - facility=dict(), - remote_server=dict(), - use_vrf=dict(), - dest_level=dict(type="int", aliases=["level"]), - facility_level=dict(type="int"), - interface=dict(), - facility_link_status=dict( - choices=[ - "link-down-notif", - "link-down-error", - "link-up-notif", - "link-up-error", - ], - ), - event=dict( - choices=[ - "link-enable", - "link-default", - "trunk-enable", - "trunk-default", - ], - ), - interface_message=dict(choices=["add-interface-description"]), - file_size=dict(type="int"), - timestamp=dict(choices=["microseconds", "milliseconds", "seconds"]), - state=dict(default="present", choices=["present", "absent"]), - aggregate=dict(type="list", elements="dict"), - purge=dict(default=False, type="bool"), - ) - - required_if = [ - ("dest", "logfile", ["name"]), - ("dest", "server", ["remote_server"]), - ] - - module = AnsibleModule( - argument_spec=argument_spec, - required_if=required_if, - supports_check_mode=True, - ) - - warnings = list() - - result = {"changed": False} - if warnings: - result["warnings"] = warnings - - want = map_params_to_obj(module) - merged_wants = merge_wants(read_module_context(module), want) - have = map_config_to_obj(module) - - commands = map_obj_to_commands(module, (want, have)) - result["commands"] = commands - - if commands: - if not module.check_mode: - load_config(module, commands) - result["changed"] = True - - save_module_context(module, merged_wants) - - if module.params.get("purge"): - pcommands = map_obj_to_commands(module, (outliers(have, merged_wants), have)) - if pcommands: - if not module.check_mode: - load_config(module, pcommands) - result["changed"] = True - result["commands"] += pcommands - - module.exit_json(**result) - - -if __name__ == "__main__": - main() diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_logging_global.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_logging_global.py index 1c060b01b..759dee67c 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_logging_global.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_logging_global.py @@ -290,7 +290,7 @@ EXAMPLES = """ facility: local6 use_vrf: default origin_id: - hostname: True + hostname: true # Task output # ------------- @@ -576,7 +576,7 @@ EXAMPLES = """ facility: local6 use_vrf: default origin_id: - hostname: True + hostname: true # Task Output (redacted) # ----------------------- diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp.py deleted file mode 100644 index 046436d47..000000000 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp.py +++ /dev/null @@ -1,446 +0,0 @@ -#!/usr/bin/python -# Copyright: Ansible Project -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - - -DOCUMENTATION = """ -module: nxos_ntp -extends_documentation_fragment: -- cisco.nxos.nxos -short_description: Manages core NTP configuration. -notes: -- Limited Support for Cisco MDS -description: -- Manages core NTP configuration. -version_added: 1.0.0 -deprecated: - alternative: nxos_ntp_global - why: Updated module released with more functionality. - removed_at_date: '2024-01-01' -author: -- Jason Edelman (@jedelman8) -options: - server: - description: - - Network address of NTP server. - type: str - peer: - description: - - Network address of NTP peer. - type: str - key_id: - description: - - Authentication key identifier to use with given NTP server or peer or keyword - 'default'. - type: str - prefer: - description: - - Makes given NTP server or peer the preferred NTP server or peer for the device. - choices: - - enabled - - disabled - type: str - vrf_name: - description: - - Makes the device communicate with the given NTP server or peer over a specific - VRF or keyword 'default'. - type: str - source_addr: - description: - - Local source address from which NTP messages are sent or keyword 'default'. - type: str - source_int: - description: - - Local source interface from which NTP messages are sent. Must be fully qualified - interface name or keyword 'default' - type: str - state: - description: - - Manage the state of the resource. - default: present - choices: - - present - - absent - type: str -""" - -EXAMPLES = """ -# Set NTP Server with parameters -- cisco.nxos.nxos_ntp: - server: 1.2.3.4 - key_id: 32 - prefer: enabled - host: '{{ inventory_hostname }}' - username: '{{ un }}' - password: '{{ pwd }}' -""" - -RETURN = """ -proposed: - description: k/v pairs of parameters passed into module - returned: always - type: dict - sample: {"address": "192.0.2.2", "key_id": "48", - "peer_type": "server", "prefer": "enabled", - "source": "192.0.2.3", "source_type": "source"} -existing: - description: - - k/v pairs of existing ntp server/peer - returned: always - type: dict - sample: {"address": "192.0.2.2", "key_id": "32", - "peer_type": "server", "prefer": "enabled", - "source": "ethernet2/1", "source_type": "source-interface"} -end_state: - description: k/v pairs of ntp info after module execution - returned: always - type: dict - sample: {"address": "192.0.2.2", "key_id": "48", - "peer_type": "server", "prefer": "enabled", - "source": "192.0.2.3", "source_type": "source"} -updates: - description: command sent to the device - returned: always - type: list - sample: ["ntp server 192.0.2.2 prefer key 48", - "no ntp source-interface ethernet2/1", "ntp source 192.0.2.3"] -changed: - description: check to see if a change was made on the device - returned: always - type: bool - sample: true -""" - -import re - -from ansible.module_utils.basic import AnsibleModule - -from ansible_collections.cisco.nxos.plugins.module_utils.network.nxos.nxos import ( - load_config, - run_commands, -) - - -def execute_show_command(command, module, command_type="cli_show"): - if "show run" not in command: - output = "json" - else: - output = "text" - - commands = [{"command": command, "output": output}] - return run_commands(module, commands) - - -def flatten_list(command_lists): - flat_command_list = [] - for command in command_lists: - if isinstance(command, list): - flat_command_list.extend(command) - else: - flat_command_list.append(command) - return flat_command_list - - -def get_ntp_source(module): - source_type = None - source = None - command = "show run | inc ntp.source" - output = execute_show_command(command, module, command_type="cli_show_ascii") - - if output: - try: - if "interface" in output[0]: - source_type = "source-interface" - else: - source_type = "source" - source = output[0].split()[2].lower() - except (AttributeError, IndexError): - source_type = None - source = None - - return source_type, source - - -def get_ntp_peer(module): - command = "show run | inc ntp.(server|peer)" - ntp_peer_list = [] - response = execute_show_command(command, module, command_type="cli_show_ascii") - - if response: - if isinstance(response, list): - ntp = response[0] - else: - ntp = response - if ntp: - ntp_regex = ( - r".*ntp\s(server\s(?P
    \S+)|peer\s(?P\S+))" - r"\s*((?Pprefer)\s*)?(use-vrf\s(?P\S+)\s*)?" - r"(key\s(?P\d+))?.*" - ) - - split_ntp = ntp.splitlines() - for peer_line in split_ntp: - if "access-group" in peer_line: - continue - ntp_peer = {} - try: - peer_address = None - vrf_name = "default" - prefer = None - key_id = None - match_ntp = re.match(ntp_regex, peer_line, re.DOTALL) - group_ntp = match_ntp.groupdict() - - address = group_ntp["address"] - peer_address = group_ntp["peer_address"] - prefer = group_ntp["prefer"] - vrf_name = group_ntp["vrf_name"] - key_id = group_ntp["key_id"] - - if prefer is not None: - prefer = "enabled" - else: - prefer = "disabled" - - if address is not None: - peer_type = "server" - elif peer_address is not None: - peer_type = "peer" - address = peer_address - - args = dict( - peer_type=peer_type, - address=address, - prefer=prefer, - vrf_name=vrf_name, - key_id=key_id, - ) - - ntp_peer = dict((k, v) for k, v in args.items()) - ntp_peer_list.append(ntp_peer) - except AttributeError: - ntp_peer_list = [] - - return ntp_peer_list - - -def get_ntp_existing(address, peer_type, module): - peer_dict = {} - peer_server_list = [] - - peer_list = get_ntp_peer(module) - for peer in peer_list: - if peer["address"] == address: - peer_dict.update(peer) - else: - peer_server_list.append(peer) - - source_type, source = get_ntp_source(module) - - if source_type is not None and source is not None: - peer_dict["source_type"] = source_type - peer_dict["source"] = source - - return (peer_dict, peer_server_list) - - -def set_ntp_server_peer(peer_type, address, prefer, key_id, vrf_name): - command_strings = [] - - if prefer: - command_strings.append(" prefer") - if key_id: - command_strings.append(" key {0}".format(key_id)) - if vrf_name: - command_strings.append(" use-vrf {0}".format(vrf_name)) - - command_strings.insert(0, "ntp {0} {1}".format(peer_type, address)) - - command = "".join(command_strings) - - return command - - -def config_ntp(delta, existing): - if ( - delta.get("address") - or delta.get("peer_type") - or delta.get("vrf_name") - or delta.get("key_id") - or delta.get("prefer") - ): - address = delta.get("address", existing.get("address")) - peer_type = delta.get("peer_type", existing.get("peer_type")) - key_id = delta.get("key_id", existing.get("key_id")) - prefer = delta.get("prefer", existing.get("prefer")) - vrf_name = delta.get("vrf_name", existing.get("vrf_name")) - if delta.get("key_id") == "default": - key_id = None - else: - peer_type = None - prefer = None - - source_type = delta.get("source_type") - source = delta.get("source") - - if prefer: - if prefer == "enabled": - prefer = True - elif prefer == "disabled": - prefer = False - - if source: - source_type = delta.get("source_type", existing.get("source_type")) - - ntp_cmds = [] - if peer_type: - if existing.get("peer_type") and existing.get("address"): - ntp_cmds.append( - "no ntp {0} {1}".format(existing.get("peer_type"), existing.get("address")), - ) - ntp_cmds.append(set_ntp_server_peer(peer_type, address, prefer, key_id, vrf_name)) - if source: - existing_source_type = existing.get("source_type") - existing_source = existing.get("source") - if existing_source_type and source_type != existing_source_type: - ntp_cmds.append("no ntp {0} {1}".format(existing_source_type, existing_source)) - if source == "default": - if existing_source_type and existing_source: - ntp_cmds.append("no ntp {0} {1}".format(existing_source_type, existing_source)) - else: - ntp_cmds.append("ntp {0} {1}".format(source_type, source)) - - return ntp_cmds - - -def main(): - argument_spec = dict( - server=dict(type="str"), - peer=dict(type="str"), - key_id=dict(type="str"), - prefer=dict(type="str", choices=["enabled", "disabled"]), - vrf_name=dict(type="str"), - source_addr=dict(type="str"), - source_int=dict(type="str"), - state=dict(choices=["absent", "present"], default="present"), - ) - - module = AnsibleModule( - argument_spec=argument_spec, - mutually_exclusive=[["server", "peer"], ["source_addr", "source_int"]], - supports_check_mode=True, - ) - - warnings = list() - - server = module.params["server"] or None - peer = module.params["peer"] or None - key_id = module.params["key_id"] - prefer = module.params["prefer"] - vrf_name = module.params["vrf_name"] - source_addr = module.params["source_addr"] - source_int = module.params["source_int"] - state = module.params["state"] - - if source_int is not None: - source_int = source_int.lower() - - if server: - peer_type = "server" - address = server - elif peer: - peer_type = "peer" - address = peer - else: - peer_type = None - address = None - - source_type = None - source = None - if source_addr: - source_type = "source" - source = source_addr - elif source_int: - source_type = "source-interface" - source = source_int - - if key_id or vrf_name or prefer: - if not server and not peer: - module.fail_json(msg="Please supply the server or peer parameter") - - args = dict( - peer_type=peer_type, - address=address, - key_id=key_id, - prefer=prefer, - vrf_name=vrf_name, - source_type=source_type, - source=source, - ) - - proposed = dict((k, v) for k, v in args.items() if v is not None) - - existing, peer_server_list = get_ntp_existing(address, peer_type, module) - - end_state = existing - changed = False - commands = [] - - if state == "present": - delta = dict(set(proposed.items()).difference(existing.items())) - if delta.get("key_id") and delta.get("key_id") == "default": - if not existing.get("key_id"): - delta.pop("key_id") - if delta: - command = config_ntp(delta, existing) - if command: - commands.append(command) - - elif state == "absent": - if existing.get("peer_type") and existing.get("address"): - command = "no ntp {0} {1}".format(existing["peer_type"], existing["address"]) - if command: - commands.append([command]) - - existing_source_type = existing.get("source_type") - existing_source = existing.get("source") - proposed_source_type = proposed.get("source_type") - proposed_source = proposed.get("source") - - if proposed_source_type: - if proposed_source_type == existing_source_type: - if proposed_source == existing_source: - command = "no ntp {0} {1}".format(existing_source_type, existing_source) - if command: - commands.append([command]) - - cmds = flatten_list(commands) - if cmds: - if module.check_mode: - module.exit_json(changed=True, commands=cmds) - else: - changed = True - load_config(module, cmds) - end_state = get_ntp_existing(address, peer_type, module)[0] - if "configure" in cmds: - cmds.pop(0) - - results = {} - results["proposed"] = proposed - results["existing"] = existing - results["updates"] = cmds - results["changed"] = changed - results["warnings"] = warnings - results["end_state"] = end_state - results["peer_server_list"] = peer_server_list - - module.exit_json(**results) - - -if __name__ == "__main__": - main() diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_auth.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_auth.py deleted file mode 100644 index 3e5643812..000000000 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_auth.py +++ /dev/null @@ -1,336 +0,0 @@ -#!/usr/bin/python -# -# 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 . -# -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - - -DOCUMENTATION = """ -module: nxos_ntp_auth -extends_documentation_fragment: -- cisco.nxos.nxos -short_description: Manages NTP authentication. -description: -- Manages NTP authentication. -version_added: 1.0.0 -deprecated: - alternative: nxos_ntp_global - why: Updated module released with more functionality. - removed_at_date: '2024-01-01' -author: -- Jason Edelman (@jedelman8) -notes: -- Tested against NXOSv 7.3.(0)D1(1) on VIRL -- Limited Support for Cisco MDS -- If C(state=absent), the module will remove the given key configuration if it exists. -- If C(state=absent) and C(authentication=on), authentication will be turned off. -options: - key_id: - description: - - Authentication key identifier (numeric). - type: str - md5string: - description: - - MD5 String. - type: str - auth_type: - description: - - Whether the given md5string is in cleartext or has been encrypted. If in cleartext, - the device will encrypt it before storing it. - default: text - choices: - - text - - encrypt - type: str - trusted_key: - description: - - Whether the given key is required to be supplied by a time source for the device - to synchronize to the time source. - choices: - - 'false' - - 'true' - default: 'false' - type: str - authentication: - description: - - Turns NTP authentication on or off. - choices: - - "on" - - "off" - type: str - state: - description: - - Manage the state of the resource. - default: present - choices: - - present - - absent - type: str -""" - -EXAMPLES = """ -# Basic NTP authentication configuration -- cisco.nxos.nxos_ntp_auth: - key_id: 32 - md5string: hello - auth_type: text -""" - -RETURN = """ -commands: - description: command sent to the device - returned: always - type: list - sample: ["ntp authentication-key 32 md5 helloWorld 0", "ntp trusted-key 32"] -""" - - -import re - -from ansible.module_utils.basic import AnsibleModule - -from ansible_collections.cisco.nxos.plugins.module_utils.network.nxos.nxos import ( - load_config, - run_commands, -) - - -def execute_show_command(command, module): - if "show run" not in command: - command = {"command": command, "output": "json"} - else: - command = {"command": command, "output": "text"} - - return run_commands(module, [command]) - - -def flatten_list(command_lists): - flat_command_list = [] - for command in command_lists: - if isinstance(command, list): - flat_command_list.extend(command) - else: - flat_command_list.append(command) - return flat_command_list - - -def get_ntp_auth(module): - command = "show ntp authentication-status" - - body = execute_show_command(command, module)[0] - ntp_auth_str = body["authentication"] - - if "enabled" in ntp_auth_str: - ntp_auth = True - else: - ntp_auth = False - - return ntp_auth - - -def get_ntp_trusted_key(module): - trusted_key_list = [] - command = "show run | inc ntp.trusted-key" - - trusted_key_str = execute_show_command(command, module)[0] - if trusted_key_str: - trusted_keys = trusted_key_str.splitlines() - - else: - trusted_keys = [] - - for line in trusted_keys: - if line: - trusted_key_list.append(str(line.split()[2])) - - return trusted_key_list - - -def get_ntp_auth_key(key_id, module): - authentication_key = {} - command = "show run | inc ntp.authentication-key.{0}".format(key_id) - auth_regex = ( - r".*ntp\sauthentication-key\s(?P\d+)\smd5\s(?P\S+)\s(?P\S+).*" - ) - - body = execute_show_command(command, module)[0] - - try: - match_authentication = re.match(auth_regex, body, re.DOTALL) - group_authentication = match_authentication.groupdict() - authentication_key["key_id"] = group_authentication["key_id"] - authentication_key["md5string"] = group_authentication["md5string"] - if group_authentication["atype"] == "7": - authentication_key["auth_type"] = "encrypt" - else: - authentication_key["auth_type"] = "text" - except (AttributeError, TypeError): - authentication_key = {} - - return authentication_key - - -def get_ntp_auth_info(key_id, module): - auth_info = get_ntp_auth_key(key_id, module) - trusted_key_list = get_ntp_trusted_key(module) - auth_power = get_ntp_auth(module) - - if key_id in trusted_key_list: - auth_info["trusted_key"] = "true" - else: - auth_info["trusted_key"] = "false" - - if auth_power: - auth_info["authentication"] = "on" - else: - auth_info["authentication"] = "off" - - return auth_info - - -def auth_type_to_num(auth_type): - if auth_type == "encrypt": - return "7" - else: - return "0" - - -def set_ntp_auth_key(key_id, md5string, auth_type, trusted_key, authentication): - ntp_auth_cmds = [] - if key_id and md5string: - auth_type_num = auth_type_to_num(auth_type) - ntp_auth_cmds.append( - "ntp authentication-key {0} md5 {1} {2}".format(key_id, md5string, auth_type_num), - ) - - if trusted_key == "true": - ntp_auth_cmds.append("ntp trusted-key {0}".format(key_id)) - elif trusted_key == "false": - ntp_auth_cmds.append("no ntp trusted-key {0}".format(key_id)) - - if authentication == "on": - ntp_auth_cmds.append("ntp authenticate") - elif authentication == "off": - ntp_auth_cmds.append("no ntp authenticate") - - return ntp_auth_cmds - - -def remove_ntp_auth_key(key_id, md5string, auth_type, trusted_key, authentication): - auth_remove_cmds = [] - if key_id: - auth_type_num = auth_type_to_num(auth_type) - auth_remove_cmds.append( - "no ntp authentication-key {0} md5 {1} {2}".format(key_id, md5string, auth_type_num), - ) - - if authentication: - auth_remove_cmds.append("no ntp authenticate") - return auth_remove_cmds - - -def main(): - argument_spec = dict( - key_id=dict(type="str"), - md5string=dict(type="str"), - auth_type=dict(choices=["text", "encrypt"], default="text"), - trusted_key=dict(choices=["true", "false"], default="false"), - authentication=dict(choices=["on", "off"]), - state=dict(choices=["absent", "present"], default="present"), - ) - - module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True) - - warnings = list() - - key_id = module.params["key_id"] - md5string = module.params["md5string"] - auth_type = module.params["auth_type"] - trusted_key = module.params["trusted_key"] - authentication = module.params["authentication"] - state = module.params["state"] - - if key_id: - if not trusted_key and not md5string: - module.fail_json(msg="trusted_key or md5string MUST be specified") - - args = dict( - key_id=key_id, - md5string=md5string, - auth_type=auth_type, - trusted_key=trusted_key, - authentication=authentication, - ) - - changed = False - proposed = dict((k, v) for k, v in args.items() if v is not None) - - existing = get_ntp_auth_info(key_id, module) - end_state = existing - - delta = dict(set(proposed.items()).difference(existing.items())) - - commands = [] - if state == "present": - if delta: - command = set_ntp_auth_key( - key_id, - md5string, - delta.get("auth_type"), - delta.get("trusted_key"), - delta.get("authentication"), - ) - if command: - commands.append(command) - elif state == "absent": - auth_toggle = None - if existing.get("authentication") == "on": - auth_toggle = True - if not existing.get("key_id"): - key_id = None - command = remove_ntp_auth_key(key_id, md5string, auth_type, trusted_key, auth_toggle) - if command: - commands.append(command) - - cmds = flatten_list(commands) - if cmds: - if module.check_mode: - module.exit_json(changed=True, commands=cmds) - else: - load_config(module, cmds) - end_state = get_ntp_auth_info(key_id, module) - delta = dict(set(end_state.items()).difference(existing.items())) - if delta or (len(existing) != len(end_state)): - changed = True - if "configure" in cmds: - cmds.pop(0) - - results = {} - results["proposed"] = proposed - results["existing"] = existing - results["updates"] = cmds - results["changed"] = changed - results["warnings"] = warnings - results["end_state"] = end_state - - module.exit_json(**results) - - -if __name__ == "__main__": - main() diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_global.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_global.py index e99fbef83..18cd851c9 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_global.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_global.py @@ -241,7 +241,7 @@ EXAMPLES = """ - access_list: PeerAcl1 serve: - access_list: ServeAcl1 - authenticate: True + authenticate: true authentication_keys: - id: 1001 key: vagwwtKfkv @@ -249,7 +249,7 @@ EXAMPLES = """ - id: 1002 key: vagwwtKfkvgthz encryption: 7 - logging: True + logging: true master: stratum: 2 peers: @@ -260,7 +260,7 @@ EXAMPLES = """ vrf: default - peer: 192.0.2.2 key_id: 2 - prefer: True + prefer: true vrf: siteA servers: - server: 198.51.100.1 @@ -293,7 +293,7 @@ EXAMPLES = """ # - access_list: PeerAcl1 # serve: # - access_list: ServeAcl1 -# authenticate: True +# authenticate: true # authentication_keys: # - id: 1001 # key: vagwwtKfkv @@ -301,7 +301,7 @@ EXAMPLES = """ # - id: 1002 # key: vagwwtKfkvgthz # encryption: 7 -# logging: True +# logging: true # master: # stratum: 2 # peers: @@ -312,7 +312,7 @@ EXAMPLES = """ # vrf: default # - peer: 192.0.2.2 # key_id: 2 -# prefer: True +# prefer: true # vrf: siteA # servers: # - server: 198.51.100.1 @@ -362,7 +362,7 @@ EXAMPLES = """ - access_list: PeerAcl2 serve: - access_list: ServeAcl2 - logging: True + logging: true master: stratum: 2 peers: @@ -373,7 +373,7 @@ EXAMPLES = """ vrf: default - peer: 192.0.2.5 key_id: 2 - prefer: True + prefer: true vrf: siteA servers: - server: 198.51.100.1 @@ -389,7 +389,7 @@ EXAMPLES = """ # - access_list: PeerAcl1 # serve: # - access_list: ServeAcl1 -# authenticate: True +# authenticate: true # authentication_keys: # - id: 1001 # key: vagwwtKfkv @@ -397,7 +397,7 @@ EXAMPLES = """ # - id: 1002 # key: vagwwtKfkvgthz # encryption: 7 -# logging: True +# logging: true # master: # stratum: 2 # peers: @@ -408,7 +408,7 @@ EXAMPLES = """ # vrf: default # - peer: 192.0.2.2 # key_id: 2 -# prefer: True +# prefer: true # vrf: siteA # servers: # - server: 198.51.100.1 @@ -436,7 +436,7 @@ EXAMPLES = """ # - access_list: PeerAcl2 # serve: # - access_list: ServeAcl2 -# logging: True +# logging: true # master: # stratum: 2 # peers: @@ -447,7 +447,7 @@ EXAMPLES = """ # vrf: default # - peer: 192.0.2.5 # key_id: 2 -# prefer: True +# prefer: true # vrf: siteA # servers: # - server: 198.51.100.1 @@ -483,7 +483,7 @@ EXAMPLES = """ # - access_list: PeerAcl1 # serve: # - access_list: ServeAcl1 -# authenticate: True +# authenticate: true # authentication_keys: # - id: 1001 # key: vagwwtKfkv @@ -491,7 +491,7 @@ EXAMPLES = """ # - id: 1002 # key: vagwwtKfkvgthz # encryption: 7 -# logging: True +# logging: true # master: # stratum: 2 # peers: @@ -502,7 +502,7 @@ EXAMPLES = """ # vrf: default # - peer: 192.0.2.2 # key_id: 2 -# prefer: True +# prefer: true # vrf: siteA # servers: # - server: 198.51.100.1 @@ -542,7 +542,7 @@ EXAMPLES = """ - access_list: PeerAcl1 serve: - access_list: ServeAcl1 - authenticate: True + authenticate: true authentication_keys: - id: 1001 key: vagwwtKfkv @@ -550,7 +550,7 @@ EXAMPLES = """ - id: 1002 key: vagwwtKfkvgthz encryption: 7 - logging: True + logging: true master: stratum: 2 peers: @@ -561,7 +561,7 @@ EXAMPLES = """ vrf: default - peer: 192.0.2.2 key_id: 2 - prefer: True + prefer: true vrf: siteA servers: - server: 198.51.100.1 @@ -616,7 +616,7 @@ EXAMPLES = """ # - access_list: PeerAcl1 # serve: # - access_list: ServeAcl1 -# authenticate: True +# authenticate: true # authentication_keys: # - id: 1001 # key: vagwwtKfkv @@ -624,7 +624,7 @@ EXAMPLES = """ # - id: 1002 # key: vagwwtKfkvgthz # encryption: 7 -# logging: True +# logging: true # master: # stratum: 2 # peers: @@ -635,7 +635,7 @@ EXAMPLES = """ # vrf: default # - peer: 192.0.2.2 # key_id: 2 -# prefer: True +# prefer: true # vrf: siteA # servers: # - server: 198.51.100.1 diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_options.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_options.py deleted file mode 100644 index 28fd1aac6..000000000 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_ntp_options.py +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/python -# -# 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 . -# -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - - -DOCUMENTATION = """ -module: nxos_ntp_options -extends_documentation_fragment: -- cisco.nxos.nxos -short_description: Manages NTP options. -description: -- Manages NTP options, e.g. authoritative server and logging. -version_added: 1.0.0 -deprecated: - alternative: nxos_ntp_global - why: Updated module released with more functionality. - removed_at_date: '2024-01-01' -author: -- Jason Edelman (@jedelman8) -notes: -- Tested against NXOSv 7.3.(0)D1(1) on VIRL -- Limited Support for Cisco MDS -- When C(state=absent), master and logging will be set to False and stratum will be - removed as well -options: - master: - description: - - Sets whether the device is an authoritative NTP server. - type: bool - stratum: - description: - - If C(master=true), an optional stratum can be supplied (1-15). The device default - is 8. - type: str - logging: - description: - - Sets whether NTP logging is enabled on the device. - type: bool - state: - description: - - Manage the state of the resource. - default: present - choices: - - present - - absent - type: str -""" -EXAMPLES = """ -# Basic NTP options configuration -- cisco.nxos.nxos_ntp_options: - master: true - stratum: 12 - logging: false - host: '{{ inventory_hostname }}' - username: '{{ un }}' - password: '{{ pwd }}' -""" - -RETURN = """ -updates: - description: command sent to the device - returned: always - type: list - sample: ["no ntp logging", "ntp master 12"] -""" -import re - -from ansible.module_utils.basic import AnsibleModule - -from ansible_collections.cisco.nxos.plugins.module_utils.network.nxos.nxos import ( - load_config, - run_commands, -) - - -def get_current(module): - cmd = "show running-config | inc ntp" - - master = False - logging = False - stratum = None - - output = run_commands(module, ({"command": cmd, "output": "text"}))[0] - - if output: - match = re.search(r"^ntp master(?: (\d+))", output, re.M) - if match: - master = True - stratum = match.group(1) - logging = "ntp logging" in output.lower() - - return {"master": master, "stratum": stratum, "logging": logging} - - -def main(): - argument_spec = dict( - master=dict(required=False, type="bool"), - stratum=dict(required=False, type="str"), - logging=dict(required=False, type="bool"), - state=dict(choices=["absent", "present"], default="present"), - ) - - module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True) - - warnings = list() - - master = module.params["master"] - stratum = module.params["stratum"] - logging = module.params["logging"] - state = module.params["state"] - - if stratum and master is False: - if stratum != 8: - module.fail_json(msg="master MUST be True when stratum is changed") - - current = get_current(module) - - result = {"changed": False} - - commands = list() - - if state == "absent": - if current["master"]: - commands.append("no ntp master") - if current["logging"]: - commands.append("no ntp logging") - - elif state == "present": - if master and not current["master"]: - commands.append("ntp master") - elif master is False and current["master"]: - commands.append("no ntp master") - if stratum and stratum != current["stratum"]: - commands.append("ntp master %s" % stratum) - - if logging and not current["logging"]: - commands.append("ntp logging") - elif logging is False and current["logging"]: - commands.append("no ntp logging") - - result["commands"] = commands - result["updates"] = commands - - if commands: - if not module.check_mode: - load_config(module, commands) - result["changed"] = True - - result["warnings"] = warnings - - module.exit_json(**result) - - -if __name__ == "__main__": - main() diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_ospf_interfaces.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_ospf_interfaces.py index 81c4ad45b..7ed26117a 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_ospf_interfaces.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_ospf_interfaces.py @@ -41,7 +41,7 @@ options: description: - Name/Identifier of the interface. type: str - required: True + required: true address_family: description: - OSPF settings on the interfaces in address-family context. @@ -53,7 +53,7 @@ options: - Address Family Identifier (AFI) for OSPF settings on the interfaces. type: str choices: ['ipv4', 'ipv6'] - required: True + required: true processes: description: - Interfaces configuration for an OSPF process. @@ -64,7 +64,7 @@ options: description: - OSPF process tag. type: str - required: True + required: true area: description: - Area associated with interface. @@ -74,7 +74,7 @@ options: description: - Area ID in IP address format. type: str - required: True + required: true secondaries: description: - Do not include secondary IPv4/IPv6 addresses. @@ -129,7 +129,7 @@ options: - Valid values are Cisco type 7 ENCRYPTED password, 3DES ENCRYPTED password and UNENCRYPTED (cleartext) password based on the value of encryption key. type: str - required: True + required: true message_digest_key: description: - Message digest authentication password (key) settings. @@ -139,7 +139,7 @@ options: description: - Key ID. type: int - required: True + required: true encryption: description: - 0 Specifies an UNENCRYPTED ospf password (key) will follow. @@ -152,7 +152,7 @@ options: - Valid values are Cisco type 7 ENCRYPTED password, 3DES ENCRYPTED password and UNENCRYPTED (cleartext) password based on the value of encryption key. type: str - required: True + required: true cost: description: - Cost associated with interface. @@ -236,46 +236,46 @@ EXAMPLES = """ config: - name: Ethernet1/1 address_family: - - afi: ipv4 - processes: - - process_id: "100" - area: - area_id: 1.1.1.1 - secondaries: False - multi_areas: - - 11.11.11.11 - - afi: ipv6 - processes: - - process_id: "200" - area: - area_id: 2.2.2.2 + - afi: ipv4 + processes: + - process_id: '100' + area: + area_id: 1.1.1.1 + secondaries: false multi_areas: - - 21.0.0.0 - - process_id: "300" + - 11.11.11.11 + - afi: ipv6 + processes: + - process_id: '200' + area: + area_id: 2.2.2.2 + multi_areas: + - 21.0.0.0 + - process_id: '300' + multi_areas: + - 50.50.50.50 multi_areas: - - 50.50.50.50 - multi_areas: - - 16.10.10.10 + - 16.10.10.10 - name: Ethernet1/2 address_family: - - afi: ipv4 - authentication: - enable: True - key_chain: test-1 - message_digest_key: - key_id: 10 - encryption: 3 - key: abc01d272be25d29 - cost: 100 - - afi: ipv6 - network: broadcast - shutdown: True + - afi: ipv4 + authentication: + enable: true + key_chain: test-1 + message_digest_key: + key_id: 10 + encryption: 3 + key: abc01d272be25d29 + cost: 100 + - afi: ipv6 + network: broadcast + shutdown: true - name: Ethernet1/3 address_family: - - afi: ipv4 - authentication_key: - encryption: 7 - key: 12090404011C03162E + - afi: ipv4 + authentication_key: + encryption: 7 + key: 12090404011C03162E state: merged # Task output: @@ -399,17 +399,17 @@ EXAMPLES = """ - name: Replace OSPF configurations of listed interfaces with provided configurations cisco.nxos.nxos_ospf_interfaces: config: - - name: Ethernet1/1 - address_family: - - afi: ipv4 - processes: - - process_id: "100" - area: - area_id: 1.1.1.1 - secondaries: False - multi_areas: - - 11.11.11.12 - - name: Ethernet1/3 + - name: Ethernet1/1 + address_family: + - afi: ipv4 + processes: + - process_id: "100" + area: + area_id: 1.1.1.1 + secondaries: false + multi_areas: + - 11.11.11.12 + - name: Ethernet1/3 state: replaced # Task output: @@ -543,16 +543,16 @@ EXAMPLES = """ - name: Override all OSPF interfaces configuration with provided configuration cisco.nxos.nxos_ospf_interfaces: config: - - name: Ethernet1/1 - address_family: - - afi: ipv4 - processes: - - process_id: "100" - area: - area_id: 1.1.1.1 - secondaries: False - multi_areas: - - 11.11.11.12 + - name: Ethernet1/1 + address_family: + - afi: ipv4 + processes: + - process_id: "100" + area: + area_id: 1.1.1.1 + secondaries: false + multi_areas: + - 11.11.11.12 state: overridden # Task output: @@ -861,53 +861,56 @@ EXAMPLES = """ # Using rendered -- name: Render platform specific configuration lines with state rendered (without connecting to the device) +- name: >- + Render platform specific configuration lines with state rendered (without + connecting to the device) cisco.nxos.nxos_ospf_interfaces: config: - name: Ethernet1/1 address_family: - - afi: ipv4 - processes: - - process_id: "100" - area: - area_id: 1.1.1.1 - secondaries: False - multi_areas: - - 11.11.11.11 - - afi: ipv6 - processes: - - process_id: "200" - area: - area_id: 2.2.2.2 + - afi: ipv4 + processes: + - process_id: '100' + area: + area_id: 1.1.1.1 + secondaries: false multi_areas: - - 21.0.0.0 - - process_id: "300" + - 11.11.11.11 + - afi: ipv6 + processes: + - process_id: '200' + area: + area_id: 2.2.2.2 + multi_areas: + - 21.0.0.0 + - process_id: '300' + multi_areas: + - 50.50.50.50 multi_areas: - - 50.50.50.50 - multi_areas: - - 16.10.10.10 + - 16.10.10.10 - name: Ethernet1/2 address_family: - - afi: ipv4 - authentication: - enable: True - key_chain: test-1 - message_digest_key: - key_id: 10 - encryption: 3 - key: abc01d272be25d29 - cost: 100 - - afi: ipv6 - network: broadcast - shutdown: True + - afi: ipv4 + authentication: + enable: true + key_chain: test-1 + message_digest_key: + key_id: 10 + encryption: 3 + key: abc01d272be25d29 + cost: 100 + - afi: ipv6 + network: broadcast + shutdown: true - name: Ethernet1/3 address_family: - - afi: ipv4 - authentication_key: - encryption: 7 - key: 12090404011C03162E + - afi: ipv4 + authentication_key: + encryption: 7 + key: 12090404011C03162E state: rendered + # Task Output: # ------------ # rendered: diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_ospfv2.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_ospfv2.py index be23724d2..1d127b707 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_ospfv2.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_ospfv2.py @@ -1018,56 +1018,56 @@ EXAMPLES = """ cisco.nxos.nxos_ospfv2: config: processes: - - process_id: 100 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_1 - direction: in - - route_map: rmap_2 - direction: out - ranges: - - prefix: 198.51.100.64/27 - not_advertise: true - - prefix: 198.51.100.96/27 - cost: 120 - - area_id: 0.0.0.101 - authentication: - message_digest: true - redistribute: - - protocol: eigrp - id: 120 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - redistribute: - - protocol: static - route_map: zone1-static-connect - summary_address: - - prefix: 198.51.100.128/27 - tag: 121 - - prefix: 198.51.100.160/27 + - process_id: 100 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: true - no_summary: true - - area_id: 0.0.0.103 - nssa: - no_summary: true - translate: - type7: - always: true - - vrf: zone2 - auto_cost: - reference_bandwidth: 45 - unit: Gbps + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_1 + direction: in + - route_map: rmap_2 + direction: out + ranges: + - prefix: 198.51.100.64/27 + not_advertise: true + - prefix: 198.51.100.96/27 + cost: 120 + - area_id: 0.0.0.101 + authentication: + message_digest: true + redistribute: + - protocol: eigrp + id: 120 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + redistribute: + - protocol: static + route_map: zone1-static-connect + summary_address: + - prefix: 198.51.100.128/27 + tag: 121 + - prefix: 198.51.100.160/27 + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true + - area_id: 0.0.0.103 + nssa: + no_summary: true + translate: + type7: + always: true + - vrf: zone2 + auto_cost: + reference_bandwidth: 45 + unit: Gbps state: merged # Task output: @@ -1199,43 +1199,46 @@ EXAMPLES = """ # vrf zone2 # auto-cost reference-bandwidth 45 Gbps -- name: Replace device configurations of listed OSPF processes with provided configurations +- name: >- + Replace device configurations of listed OSPF processes with provided + configurations cisco.nxos.nxos_ospfv2: config: processes: - - process_id: 102 - router_id: 198.51.100.1 - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_8 - direction: in - ranges: - - prefix: 198.51.100.64/27 - not_advertise: true - - area_id: 0.0.0.101 - stub: - no_summary: true - redistribute: - - protocol: eigrp - id: 130 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - redistribute: - - protocol: bgp - id: 65563 - route_map: zone1-bgp-connect + - process_id: 102 + router_id: 198.51.100.1 areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: true - no_summary: true + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_8 + direction: in + ranges: + - prefix: 198.51.100.64/27 + not_advertise: true + - area_id: 0.0.0.101 + stub: + no_summary: true + redistribute: + - protocol: eigrp + id: 130 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + redistribute: + - protocol: bgp + id: 65563 + route_map: zone1-bgp-connect + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true state: replaced + # Task output: # ------------ # before: @@ -1389,11 +1392,11 @@ EXAMPLES = """ cisco.nxos.nxos_ospfv2: config: processes: - - process_id: 104 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - shutdown: true + - process_id: 104 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 + shutdown: true state: overridden # Task output: @@ -1511,7 +1514,7 @@ EXAMPLES = """ cisco.nxos.nxos_ospfv2: config: processes: - - process_id: 102 + - process_id: 102 state: deleted # Task output: @@ -1674,62 +1677,65 @@ EXAMPLES = """ # Using rendered -- name: Render platform specific configuration lines (without connecting to the device) +- name: >- + Render platform specific configuration lines (without connecting to the + device) cisco.nxos.nxos_ospfv2: config: processes: - - process_id: 100 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_1 - direction: in - - route_map: rmap_2 - direction: out - ranges: - - prefix: 198.51.100.64/27 - not_advertise: true - - prefix: 198.51.100.96/27 - cost: 120 - - area_id: 0.0.0.101 - authentication: - message_digest: true - redistribute: - - protocol: eigrp - id: 120 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - redistribute: - - protocol: static - route_map: zone1-static-connect - summary_address: - - prefix: 198.51.100.128/27 - tag: 121 - - prefix: 198.51.100.160/27 + - process_id: 100 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: true - no_summary: true - - area_id: 0.0.0.103 - nssa: - no_summary: true - translate: - type7: - always: true - - vrf: zone2 - auto_cost: - reference_bandwidth: 45 - unit: Gbps + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_1 + direction: in + - route_map: rmap_2 + direction: out + ranges: + - prefix: 198.51.100.64/27 + not_advertise: true + - prefix: 198.51.100.96/27 + cost: 120 + - area_id: 0.0.0.101 + authentication: + message_digest: true + redistribute: + - protocol: eigrp + id: 120 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + redistribute: + - protocol: static + route_map: zone1-static-connect + summary_address: + - prefix: 198.51.100.128/27 + tag: 121 + - prefix: 198.51.100.160/27 + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true + - area_id: 0.0.0.103 + nssa: + no_summary: true + translate: + type7: + always: true + - vrf: zone2 + auto_cost: + reference_bandwidth: 45 + unit: Gbps state: rendered + # Task output: # ------------ # rendered: diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_ospfv3.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_ospfv3.py index 357afda11..226de291b 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_ospfv3.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_ospfv3.py @@ -87,7 +87,7 @@ options: description: - The Area ID in IP Address format. type: str - required: True + required: true default_cost: description: - Specify the default cost. @@ -102,13 +102,13 @@ options: description: - The Route-map name. type: str - required: True + required: true direction: description: - The direction to apply the route map. type: str choices: [in, out] - required: True + required: true ranges: description: - Configure an address range for the area. @@ -119,7 +119,7 @@ options: description: - IP in Prefix format (x.x.x.x/len) type: str - required: True + required: true cost: description: - Cost to use for the range. @@ -169,7 +169,7 @@ options: - The name of the protocol. type: str choices: [bgp, direct, eigrp, isis, lisp, ospfv3, rip, static] - required: True + required: true id: description: - The identifier for the protocol specified. @@ -178,7 +178,7 @@ options: description: - The route map policy to constrain redistribution. type: str - required: True + required: true summary_address: description: - Configure route summarization for redistribution. @@ -189,7 +189,7 @@ options: description: - IPv6 prefix format 'xxxx:xxxx/ml', 'xxxx:xxxx::/ml' or 'xxxx::xx/128' type: str - required: True + required: true not_advertise: description: - Suppress advertising the specified summary. @@ -208,7 +208,7 @@ options: description: - The Route Map name. type: str - required: True + required: true filter: description: - Block the OSPF routes from being sent to RIB. @@ -250,7 +250,7 @@ options: description: - The Area ID in IP Address format. type: str - required: True + required: true nssa: description: - NSSA settings for the area. @@ -320,12 +320,12 @@ options: description: - Reference bandwidth used to assign OSPF cost. type: int - required: True + required: true unit: description: - Specify in which unit the reference bandwidth is specified. type: str - required: True + required: true choices: [Gbps, Mbps] flush_routes: description: @@ -378,7 +378,7 @@ options: description: - Set the maximum number of non self-generated LSAs. type: int - required: True + required: true threshold: description: - Threshold value (%) at which to generate a warning message. @@ -477,7 +477,7 @@ options: description: - The OSPF process tag. type: str - required: True + required: true router_id: description: - Set OSPF process router-id. @@ -537,7 +537,7 @@ options: description: - The Area ID in IP Address format. type: str - required: True + required: true nssa: description: - NSSA settings for the area. @@ -607,12 +607,12 @@ options: description: - Reference bandwidth used to assign OSPF cost. type: int - required: True + required: true unit: description: - Specify in which unit the reference bandwidth is specified. type: str - required: True + required: true choices: [Gbps, Mbps] graceful_restart: description: @@ -657,7 +657,7 @@ options: description: - Set the maximum number of non self-generated LSAs. type: int - required: True + required: true threshold: description: - Threshold value (%) at which to generate a warning message. @@ -799,7 +799,7 @@ options: description: - Name/Identifier of the VRF. type: str - required: True + required: true state: description: - The state the configuration should be left in. @@ -826,49 +826,49 @@ EXAMPLES = """ cisco.nxos.nxos_ospfv3: config: processes: - - process_id: 100 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - address_family: - afi: ipv6 - safi: unicast - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_1 - direction: in - - route_map: rmap_2 - direction: out - ranges: - - prefix: 2001:db2::/32 - not_advertise: true - - prefix: 2001:db3::/32 - cost: 120 - redistribute: - - protocol: eigrp - id: 120 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: true - no_summary: true - - area_id: 0.0.0.103 - nssa: - no_summary: true - translate: - type7: - always: true - - vrf: zone2 - auto_cost: - reference_bandwidth: 45 - unit: Gbps + - process_id: 100 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 + address_family: + afi: ipv6 + safi: unicast + areas: + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_1 + direction: in + - route_map: rmap_2 + direction: out + ranges: + - prefix: '2001:db2::/32' + not_advertise: true + - prefix: '2001:db3::/32' + cost: 120 + redistribute: + - protocol: eigrp + id: 120 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true + - area_id: 0.0.0.103 + nssa: + no_summary: true + translate: + type7: + always: true + - vrf: zone2 + auto_cost: + reference_bandwidth: 45 + unit: Gbps state: merged # Task output: @@ -992,33 +992,33 @@ EXAMPLES = """ cisco.nxos.nxos_ospfv3: config: processes: - - process_id: 102 - router_id: 198.51.100.1 - address_family: - afi: ipv6 - safi: unicast - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_8 - direction: in - ranges: - - not_advertise: true - prefix: 2001:db2::/32 - redistribute: - - protocol: eigrp - id: 130 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: True - no_summary: True + - process_id: 102 + router_id: 198.51.100.1 + address_family: + afi: ipv6 + safi: unicast + areas: + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_8 + direction: in + ranges: + - not_advertise: true + prefix: 2001:db2::/32 + redistribute: + - protocol: eigrp + id: 130 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true state: replaced # Task output: @@ -1158,11 +1158,11 @@ EXAMPLES = """ cisco.nxos.nxos_ospfv3: config: processes: - - process_id: 104 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - shutdown: true + - process_id: 104 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 + shutdown: true state: overridden # Task output: @@ -1278,7 +1278,7 @@ EXAMPLES = """ cisco.nxos.nxos_ospfv3: config: processes: - - process_id: 102 + - process_id: 102 state: deleted # Task output: @@ -1330,7 +1330,7 @@ EXAMPLES = """ # vrf: zone2 # # commands: -# - no router ospfv3 102 +# - no router ospfv3 102 # # after: # processes: @@ -1436,49 +1436,49 @@ EXAMPLES = """ cisco.nxos.nxos_ospfv3: config: processes: - - process_id: 100 - router_id: 203.0.113.20 - - process_id: 102 - router_id: 198.51.100.1 - address_family: - afi: ipv6 - safi: unicast - areas: - - area_id: 0.0.0.100 - filter_list: - - route_map: rmap_1 - direction: in - - route_map: rmap_2 - direction: out - ranges: - - prefix: 2001:db2::/32 - not_advertise: true - - prefix: 2001:db3::/32 - cost: 120 - redistribute: - - protocol: eigrp - id: 120 - route_map: rmap_1 - - protocol: direct - route_map: ospf102-direct-connect - vrfs: - - vrf: zone1 - router_id: 198.51.100.129 - areas: - - area_id: 0.0.0.102 - nssa: - default_information_originate: true - no_summary: true - - area_id: 0.0.0.103 - nssa: - no_summary: true - translate: - type7: - always: true - - vrf: zone2 - auto_cost: - reference_bandwidth: 45 - unit: Gbps + - process_id: 100 + router_id: 203.0.113.20 + - process_id: 102 + router_id: 198.51.100.1 + address_family: + afi: ipv6 + safi: unicast + areas: + - area_id: 0.0.0.100 + filter_list: + - route_map: rmap_1 + direction: in + - route_map: rmap_2 + direction: out + ranges: + - prefix: 2001:db2::/32 + not_advertise: true + - prefix: 2001:db3::/32 + cost: 120 + redistribute: + - protocol: eigrp + id: 120 + route_map: rmap_1 + - protocol: direct + route_map: ospf102-direct-connect + vrfs: + - vrf: zone1 + router_id: 198.51.100.129 + areas: + - area_id: 0.0.0.102 + nssa: + default_information_originate: true + no_summary: true + - area_id: 0.0.0.103 + nssa: + no_summary: true + translate: + type7: + always: true + - vrf: zone2 + auto_cost: + reference_bandwidth: 45 + unit: Gbps state: rendered # Task output: @@ -1571,7 +1571,7 @@ EXAMPLES = """ # router_id: 192.0.100.2 # - process_id: "102" # router_id: 198.54.100.1 -# shutdown: True +# shutdown: true # Using gathered diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_route_maps.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_route_maps.py index bcf7076f0..bf57dcb7a 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_route_maps.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_route_maps.py @@ -573,44 +573,44 @@ EXAMPLES = """ - route_map: rmap3 entries: - - sequence: 10 - description: "*** first stanza ***" - action: permit - set: - ip: - next_hop: - verify_availability: - - address: 3.3.3.3 - track: 1 - - address: 4.4.4.4 - track: 3 + - sequence: 10 + description: "*** first stanza ***" + action: permit + set: + ip: + next_hop: + verify_availability: + - address: 3.3.3.3 + track: 1 + - address: 4.4.4.4 + track: 3 - - sequence: 20 - description: "*** second stanza ***" - action: permit - set: - ip: - next_hop: - address: 6.6.6.6 2.2.2.2 - load_share: true - drop_on_fail: true + - sequence: 20 + description: "*** second stanza ***" + action: permit + set: + ip: + next_hop: + address: 6.6.6.6 2.2.2.2 + load_share: true + drop_on_fail: true - - sequence: 30 - description: "*** third stanza ***" - action: permit - set: - ip: - next_hop: - peer_address: true + - sequence: 30 + description: "*** third stanza ***" + action: permit + set: + ip: + next_hop: + peer_address: true - - sequence: 40 - description: "*** fourth stanza ***" - action: permit - set: - ip: - next_hop: - unchanged: true - redist_unchanged: true + - sequence: 40 + description: "*** fourth stanza ***" + action: permit + set: + ip: + next_hop: + unchanged: true + redist_unchanged: true state: merged # Task output @@ -875,35 +875,35 @@ EXAMPLES = """ - AllowPrefix1 set: community: - local_as: True + local_as: true - route_map: rmap3 entries: - - sequence: 10 - description: "*** first stanza ***" - action: permit - set: - ip: - next_hop: - verify_availability: - - address: 3.3.3.3 - track: 1 - - sequence: 20 - description: "*** second stanza ***" - action: permit - set: - ip: - next_hop: - peer_address: true - - sequence: 30 - description: "*** third stanza ***" - action: permit - set: - ip: - next_hop: - address: 6.6.6.6 2.2.2.2 - load_share: true - drop_on_fail: true + - sequence: 10 + description: "*** first stanza ***" + action: permit + set: + ip: + next_hop: + verify_availability: + - address: 3.3.3.3 + track: 1 + - sequence: 20 + description: "*** second stanza ***" + action: permit + set: + ip: + next_hop: + peer_address: true + - sequence: 30 + description: "*** third stanza ***" + action: permit + set: + ip: + next_hop: + address: 6.6.6.6 2.2.2.2 + load_share: true + drop_on_fail: true state: replaced # Task output @@ -1062,7 +1062,7 @@ EXAMPLES = """ # - AllowPrefix1 # set: # community: -# local_as: True +# local_as: true # # - route_map: rmap2 # entries: @@ -1210,7 +1210,7 @@ EXAMPLES = """ - AllowPrefix1 set: community: - local_as: True + local_as: true state: overridden # Task output @@ -1321,7 +1321,7 @@ EXAMPLES = """ # - AllowPrefix1 # set: # community: -# local_as: True +# local_as: true # # After state: # ------------ diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_snmp_server.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_snmp_server.py index 7354dc1ee..d31dbc72c 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_snmp_server.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_snmp_server.py @@ -727,18 +727,18 @@ EXAMPLES = """ location: serverroom-1 traps: aaa: - server_state_change: True + server_state_change: true system: - clock_change_notification: True + clock_change_notification: true hosts: - host: 192.0.2.1 - traps: True + traps: true version: '1' community: public - host: 192.0.2.1 source_interface: Ethernet1/1 - host: 192.0.2.2 - informs: True + informs: true version: '3' auth: NMS users: @@ -748,16 +748,16 @@ EXAMPLES = """ authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true - user: snmp_user_2 group: network-operator authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true priv: privacy_password: '0x5632724fb8ac3699296af26281e1d0f1' - aes_128: True + aes_128: true use_acls: - user: snmp_user_1 ipv4: acl1 @@ -776,7 +776,7 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" -# localized_key: True +# localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" # @@ -808,9 +808,9 @@ EXAMPLES = """ # location: serverroom-1 # traps: # aaa: -# server_state_change: True +# server_state_change: true # system: -# clock_change_notification: True +# clock_change_notification: true # hosts: # - host: 192.0.2.1 # traps: true @@ -831,7 +831,7 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" -# localized_key: True +# localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" # @@ -840,7 +840,7 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: "0x5632724fb8ac3699296af26281e1d0f1" -# localized_key: True +# localized_key: true # # - authentication: # algorithm: md5 @@ -914,16 +914,16 @@ EXAMPLES = """ location: serverroom-2 traps: aaa: - server_state_change: True + server_state_change: true hosts: - host: 192.0.2.1 - traps: True + traps: true version: '1' community: public - host: 192.0.2.1 source_interface: Ethernet1/1 - host: 192.0.3.2 - informs: True + informs: true version: '3' auth: NMS users: @@ -933,7 +933,7 @@ EXAMPLES = """ authentication: algorithm: md5 password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" - localized_key: True + localized_key: true priv: privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" @@ -942,17 +942,17 @@ EXAMPLES = """ authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true - user: snmp_user_2 group: network-operator authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true priv: privacy_password: '0x5632724fb8ac3699296af26281e1d0f1' - aes_128: True + aes_128: true use_acls: - user: snmp_user_1 ipv4: acl1 @@ -973,9 +973,9 @@ EXAMPLES = """ # location: serverroom-1 # traps: # aaa: -# server_state_change: True +# server_state_change: true # system: -# clock_change_notification: True +# clock_change_notification: true # hosts: # - host: 192.0.2.1 # traps: true @@ -996,7 +996,7 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" -# localized_key: True +# localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" # @@ -1005,7 +1005,7 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: "0x5632724fb8ac3699296af26281e1d0f1" -# localized_key: True +# localized_key: true # # - authentication: # algorithm: md5 @@ -1047,16 +1047,16 @@ EXAMPLES = """ # location: serverroom-2 # traps: # aaa: -# server_state_change: True +# server_state_change: true # hosts: # - host: 192.0.2.1 -# traps: True +# traps: true # version: '1' # community: public # - host: 192.0.2.1 # source_interface: Ethernet1/1 # - host: 192.0.3.2 -# informs: True +# informs: true # version: '3' # auth: NMS # users: @@ -1066,7 +1066,7 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" -# localized_key: True +# localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" # @@ -1075,17 +1075,17 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: '0x5632724fb8ac3699296af26281e1d0f1' -# localized_key: True +# localized_key: true # # - user: snmp_user_2 # group: network-operator # authentication: # algorithm: md5 # password: '0x5632724fb8ac3699296af26281e1d0f1' -# localized_key: True +# localized_key: true # priv: # privacy_password: '0x5632724fb8ac3699296af26281e1d0f1' -# aes_128: True +# aes_128: true # # use_acls: # - user: snmp_user_1 @@ -1151,9 +1151,9 @@ EXAMPLES = """ # location: serverroom-1 # traps: # aaa: -# server_state_change: True +# server_state_change: true # system: -# clock_change_notification: True +# clock_change_notification: true # hosts: # - host: 192.0.2.1 # traps: true @@ -1174,7 +1174,7 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" -# localized_key: True +# localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" # @@ -1183,7 +1183,7 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: "0x5632724fb8ac3699296af26281e1d0f1" -# localized_key: True +# localized_key: true # # - authentication: # algorithm: md5 @@ -1228,7 +1228,7 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" -# localized_key: True +# localized_key: true # priv: # privacy_password: "0xcbde46b02c46e0bcd3ac5af6a8b13da9" @@ -1254,18 +1254,18 @@ EXAMPLES = """ location: serverroom-1 traps: aaa: - server_state_change: True + server_state_change: true system: - clock_change_notification: True + clock_change_notification: true hosts: - host: 192.0.2.1 - traps: True + traps: true version: '1' community: public - host: 192.0.2.1 source_interface: Ethernet1/1 - host: 192.0.2.2 - informs: True + informs: true version: '3' auth: NMS users: @@ -1275,16 +1275,16 @@ EXAMPLES = """ authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true - user: snmp_user_2 group: network-operator authentication: algorithm: md5 password: '0x5632724fb8ac3699296af26281e1d0f1' - localized_key: True + localized_key: true priv: privacy_password: '0x5632724fb8ac3699296af26281e1d0f1' - aes_128: True + aes_128: true use_acls: - user: snmp_user_1 ipv4: acl1 @@ -1351,9 +1351,9 @@ EXAMPLES = """ # location: serverroom-1 # traps: # aaa: -# server_state_change: True +# server_state_change: true # system: -# clock_change_notification: True +# clock_change_notification: true # hosts: # - host: 192.0.2.1 # traps: true @@ -1374,7 +1374,7 @@ EXAMPLES = """ # authentication: # algorithm: md5 # password: "0x5632724fb8ac3699296af26281e1d0f1" -# localized_key: True +# localized_key: true # # - authentication: # algorithm: md5 diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_static_routes.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_static_routes.py index a7fdf6713..679f5cdb4 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_static_routes.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_static_routes.py @@ -184,7 +184,7 @@ EXAMPLES = """ - name: Delete routes based on VRF cisco.nxos.nxos_static_routes: config: - - vrf: trial_vrf + - vrf: trial_vrf state: deleted # Task Output @@ -264,9 +264,9 @@ EXAMPLES = """ - name: Delete routes based on AFI in a VRF cisco.nxos.nxos_static_routes: config: - - vrf: trial_vrf - address_families: - - afi: ipv4 + - vrf: trial_vrf + address_families: + - afi: ipv4 state: deleted # Task Output @@ -348,28 +348,28 @@ EXAMPLES = """ - name: Merge new static route configuration cisco.nxos.nxos_static_routes: config: - - vrf: trial_vrf - address_families: - - afi: ipv4 - routes: - - dest: 192.0.2.64/24 - next_hops: - - forward_router_address: 192.0.2.22 - tag: 4 - admin_distance: 2 - - address_families: - - afi: ipv4 - routes: - - dest: 192.0.2.16/24 - next_hops: - - forward_router_address: 192.0.2.24 - route_name: new_route - - afi: ipv6 - routes: - - dest: 2001:db8::/64 - next_hops: - - interface: eth1/3 - forward_router_address: 2001:db8::12 + - vrf: trial_vrf + address_families: + - afi: ipv4 + routes: + - dest: 192.0.2.64/24 + next_hops: + - forward_router_address: 192.0.2.22 + tag: 4 + admin_distance: 2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.0.2.16/24 + next_hops: + - forward_router_address: 192.0.2.24 + route_name: new_route + - afi: ipv6 + routes: + - dest: '2001:db8::/64' + next_hops: + - interface: eth1/3 + forward_router_address: '2001:db8::12' state: merged # Task Output @@ -431,19 +431,19 @@ EXAMPLES = """ - name: Overridden existing static route configuration with new configuration cisco.nxos.nxos_static_routes: config: - - vrf: trial_vrf - address_families: - - afi: ipv4 - routes: - - dest: 192.0.2.16/28 - next_hops: - - forward_router_address: 192.0.2.23 - route_name: overridden_route1 - admin_distance: 3 - - forward_router_address: 192.0.2.45 - route_name: overridden_route2 - dest_vrf: destinationVRF - interface: Ethernet1/2 + - vrf: trial_vrf + address_families: + - afi: ipv4 + routes: + - dest: 192.0.2.16/28 + next_hops: + - forward_router_address: 192.0.2.23 + route_name: overridden_route1 + admin_distance: 3 + - forward_router_address: 192.0.2.45 + route_name: overridden_route2 + dest_vrf: destinationVRF + interface: Ethernet1/2 state: overridden # Task Output @@ -520,18 +520,18 @@ EXAMPLES = """ - name: Replaced the existing static configuration of a prefix with new configuration cisco.nxos.nxos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 192.0.2.16/28 - next_hops: - - forward_router_address: 192.0.2.23 - route_name: replaced_route1 - admin_distance: 3 - - forward_router_address: 192.0.2.45 - route_name: replaced_route2 - dest_vrf: destinationVRF - interface: Ethernet1/2 + - address_families: + - afi: ipv4 + routes: + - dest: 192.0.2.16/28 + next_hops: + - forward_router_address: 192.0.2.23 + route_name: replaced_route1 + admin_distance: 3 + - forward_router_address: 192.0.2.45 + route_name: replaced_route2 + dest_vrf: destinationVRF + interface: Ethernet1/2 state: replaced # Task Output @@ -650,18 +650,18 @@ EXAMPLES = """ - name: Render required configuration to be pushed to the device cisco.nxos.nxos_static_routes: config: - - address_families: - - afi: ipv4 - routes: - - dest: 192.0.2.48/28 - next_hops: - - forward_router_address: 192.0.2.13 - - afi: ipv6 - routes: - - dest: 2001:db8::/64 - next_hops: - - interface: eth1/3 - forward_router_address: 2001:db8::12 + - address_families: + - afi: ipv4 + routes: + - dest: 192.0.2.48/28 + next_hops: + - forward_router_address: 192.0.2.13 + - afi: ipv6 + routes: + - dest: 2001:db8::/64 + next_hops: + - interface: eth1/3 + forward_router_address: 2001:db8::12 state: rendered # Task Output diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_system.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_system.py index df4bbde0d..dafbf9f1f 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_system.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_system.py @@ -98,14 +98,14 @@ EXAMPLES = """ - name: configure name servers cisco.nxos.nxos_system: name_servers: - - 8.8.8.8 - - 8.8.4.4 + - 8.8.8.8 + - 8.8.4.4 - name: configure name servers with VRF support cisco.nxos.nxos_system: name_servers: - - {server: 8.8.8.8, vrf: mgmt} - - {server: 8.8.4.4, vrf: mgmt} + - {server: 8.8.8.8, vrf: mgmt} + - {server: 8.8.4.4, vrf: mgmt} """ RETURN = """ diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_telemetry.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_telemetry.py index 7498ff880..89a58e2d2 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_telemetry.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_telemetry.py @@ -225,41 +225,41 @@ EXAMPLES = """ source_interface: Ethernet1/1 vrf: management destination_groups: - - id: 2 - destination: - ip: 192.168.0.2 - port: 50001 - protocol: gRPC - encoding: GPB - - id: 55 - destination: - ip: 192.168.0.55 - port: 60001 - protocol: gRPC - encoding: GPB + - id: 2 + destination: + ip: 192.168.0.2 + port: 50001 + protocol: gRPC + encoding: GPB + - id: 55 + destination: + ip: 192.168.0.55 + port: 60001 + protocol: gRPC + encoding: GPB sensor_groups: - - id: 1 - data_source: NX-API - path: - name: '"show lldp neighbors detail"' - depth: 0 - - id: 55 - data_source: DME - path: - name: sys/ch - depth: unbounded - filter_condition: ne(eqptFt.operSt,"ok") + - id: 1 + data_source: NX-API + path: + name: '"show lldp neighbors detail"' + depth: 0 + - id: 55 + data_source: DME + path: + name: sys/ch + depth: unbounded + filter_condition: ne(eqptFt.operSt,"ok") subscriptions: - - id: 5 - destination_group: 55 - sensor_group: - id: 1 - sample_interval: 1000 - - id: 6 - destination_group: 2 - sensor_group: - id: 55 - sample_interval: 2000 + - id: 5 + destination_group: 55 + sensor_group: + id: 1 + sample_interval: 1000 + - id: 6 + destination_group: 2 + sensor_group: + id: 55 + sample_interval: 2000 state: merged @@ -277,18 +277,16 @@ EXAMPLES = """ source_interface: Ethernet1/1 vrf: management destination_groups: - - id: 2 - destination: - ip: 192.168.0.2 - port: 50001 - protocol: gRPC - encoding: GPB + - id: 2 + destination: + ip: 192.168.0.2 + port: 50001 + protocol: gRPC + encoding: GPB subscriptions: - - id: 5 - destination_group: 55 + - id: 5 + destination_group: 55 state: replaced - - """ RETURN = """ before: diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_user.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_user.py index 2456c53ac..d3e847359 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_user.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_user.py @@ -170,8 +170,8 @@ EXAMPLES = """ - name: set multiple users role cisco.nxos.nxos_user: aggregate: - - name: netop - - name: netend + - name: netop + - name: netend role: network-operator state: present """ diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_vlans.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_vlans.py index cac276b64..4116f524b 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_vlans.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_vlans.py @@ -117,10 +117,10 @@ EXAMPLES = """ - name: Merge provided configuration with device configuration. cisco.nxos.nxos_vlans: config: - - vlan_id: 5 - name: test-vlan5 - - vlan_id: 10 - enabled: false + - vlan_id: 5 + name: test-vlan5 + - vlan_id: 10 + enabled: false state: merged # After state: @@ -147,11 +147,11 @@ EXAMPLES = """ - name: Replace device configuration of specified vlan with provided configuration. cisco.nxos.nxos_vlans: config: - - vlan_id: 5 - name: test-vlan - enabled: false - - vlan_id: 10 - enabled: false + - vlan_id: 5 + name: test-vlan + enabled: false + - vlan_id: 10 + enabled: false state: replaced # After state: @@ -182,10 +182,10 @@ EXAMPLES = """ - name: Override device configuration of all vlans with provided configuration. cisco.nxos.nxos_vlans: config: - - vlan_id: 5 - name: test-vlan - - vlan_id: 10 - state: active + - vlan_id: 5 + name: test-vlan + - vlan_id: 10 + state: active state: overridden # After state: @@ -210,8 +210,8 @@ EXAMPLES = """ - name: Delete vlans. cisco.nxos.nxos_vlans: config: - - vlan_id: 5 - - vlan_id: 10 + - vlan_id: 5 + - vlan_id: 10 state: deleted # After state: @@ -223,13 +223,13 @@ EXAMPLES = """ - name: Use rendered state to convert task input to device specific commands cisco.nxos.nxos_vlans: config: - - vlan_id: 5 - name: vlan5 - mapped_vni: 100 + - vlan_id: 5 + name: vlan5 + mapped_vni: 100 - - vlan_id: 6 - name: vlan6 - state: suspend + - vlan_id: 6 + name: vlan6 + state: suspend state: rendered # Task Output (redacted) diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_vrf.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_vrf.py index 6b81ba99a..6017d3c88 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_vrf.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_vrf.py @@ -169,48 +169,48 @@ EXAMPLES = """ name: ntc description: testing state: present - - name: Aggregate definition of VRFs cisco.nxos.nxos_vrf: aggregate: - - {name: test1, description: Testing, admin_state: down} - - {name: test2, interfaces: Ethernet1/2} - + - name: test1 + description: Testing + admin_state: down + - name: test2 + interfaces: Ethernet1/2 - name: Aggregate definitions of VRFs with Purge cisco.nxos.nxos_vrf: aggregate: - - {name: ntc1, description: purge test1} - - {name: ntc2, description: purge test2} + - name: ntc1 + description: purge test1 + - name: ntc2 + description: purge test2 state: present purge: true - - name: Delete VRFs exist on switch cisco.nxos.nxos_vrf: aggregate: - - {name: ntc1} - - {name: ntc2} + - name: ntc1 + - name: ntc2 state: absent - - name: Assign interfaces to VRF declaratively cisco.nxos.nxos_vrf: name: test1 interfaces: - - Ethernet2/3 - - Ethernet2/5 - + - Ethernet2/3 + - Ethernet2/5 - name: Check interfaces assigned to VRF cisco.nxos.nxos_vrf: name: test1 associated_interfaces: - - Ethernet2/3 - - Ethernet2/5 - -- name: Ensure VRF is tagged with interface Ethernet2/5 only (Removes from Ethernet2/3) + - Ethernet2/3 + - Ethernet2/5 +- name: >- + Ensure VRF is tagged with interface Ethernet2/5 only (Removes from + Ethernet2/3) cisco.nxos.nxos_vrf: name: test1 interfaces: - - Ethernet2/5 - + - Ethernet2/5 - name: Delete VRF cisco.nxos.nxos_vrf: name: ntc @@ -375,7 +375,9 @@ def map_obj_to_commands(updates, module): commands.append("vrf member {0}".format(name)) elif set(interfaces) != set(obj_in_have["interfaces"]): - missing_interfaces = list(set(interfaces) - set(obj_in_have["interfaces"])) + missing_interfaces = list( + set(interfaces) - set(obj_in_have["interfaces"]), + ) for i in missing_interfaces: commands.append("vrf context {0}".format(name)) commands.append("exit") @@ -541,7 +543,9 @@ def check_declarative_intent_params(want, module, element_spec, result): if obj_in_have: interfaces = obj_in_have.get("interfaces") if interfaces is not None and i not in interfaces: - module.fail_json(msg="Interface %s not configured on vrf %s" % (i, w["name"])) + module.fail_json( + msg="Interface %s not configured on vrf %s" % (i, w["name"]), + ) def vrf_error_check(module, commands, responses): diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_vrf_af.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_vrf_af.py index bf155ce8f..5bd043706 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_vrf_af.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_vrf_af.py @@ -103,55 +103,50 @@ EXAMPLES = """ afi: ipv4 route_target_both_auto_evpn: true state: present - - cisco.nxos.nxos_vrf_af: vrf: ntc afi: ipv4 route_targets: - - rt: 65000:1000 - direction: import - - rt: 65001:1000 - direction: import - + - rt: '65000:1000' + direction: import + - rt: '65001:1000' + direction: import - cisco.nxos.nxos_vrf_af: vrf: ntc afi: ipv4 route_targets: - - rt: 65000:1000 - direction: import - - rt: 65001:1000 - state: absent - + - rt: '65000:1000' + direction: import + - rt: '65001:1000' + state: absent - cisco.nxos.nxos_vrf_af: vrf: ntc afi: ipv4 route_targets: - - rt: 65000:1000 - direction: export - - rt: 65001:1000 - direction: export - + - rt: '65000:1000' + direction: export + - rt: '65001:1000' + direction: export - cisco.nxos.nxos_vrf_af: vrf: ntc afi: ipv4 route_targets: - - rt: 65000:1000 - direction: export - state: absent - + - rt: '65000:1000' + direction: export + state: absent - cisco.nxos.nxos_vrf_af: vrf: ntc afi: ipv4 route_targets: - - rt: 65000:1000 - direction: both - state: present - - rt: 65001:1000 - direction: import - state: present - - rt: 65002:1000 - direction: both - state: absent + - rt: '65000:1000' + direction: both + state: present + - rt: '65001:1000' + direction: import + state: present + - rt: '65002:1000' + direction: both + state: absent """ RETURN = """ @@ -248,10 +243,25 @@ def main(): if platform.startswith("N9K") and rt.get("rt") == "auto": rt_commands = match_current_rt(rt, "both", current, rt_commands) else: - rt_commands = match_current_rt(rt, "import", current, rt_commands) - rt_commands = match_current_rt(rt, "export", current, rt_commands) + rt_commands = match_current_rt( + rt, + "import", + current, + rt_commands, + ) + rt_commands = match_current_rt( + rt, + "export", + current, + rt_commands, + ) else: - rt_commands = match_current_rt(rt, rt.get("direction"), current, rt_commands) + rt_commands = match_current_rt( + rt, + rt.get("direction"), + current, + rt_commands, + ) if rt_commands: commands.extend(rt_commands) diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_vsan.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_vsan.py index d95d95a96..70f9b50ee 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_vsan.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_vsan.py @@ -51,25 +51,25 @@ EXAMPLES = """ - name: Test that vsan module works cisco.nxos.nxos_vsan: vsan: - - id: 922 - interface: - - fc1/1 - - fc1/2 - - port-channel 1 - name: vsan-SAN-A - remove: false - suspend: false - - id: 923 - interface: - - fc1/11 - - fc1/21 - - port-channel 2 - name: vsan-SAN-B - remove: false - suspend: true - - id: 1923 - name: vsan-SAN-Old - remove: true + - id: 922 + interface: + - fc1/1 + - fc1/2 + - port-channel 1 + name: vsan-SAN-A + remove: false + suspend: false + - id: 923 + interface: + - fc1/11 + - fc1/21 + - port-channel 2 + name: vsan-SAN-B + remove: false + suspend: true + - id: 1923 + name: vsan-SAN-Old + remove: true """ RETURN = """ @@ -198,7 +198,9 @@ def main(): interface=dict(type="list", elements="str"), ) - argument_spec = dict(vsan=dict(type="list", elements="dict", options=vsan_element_spec)) + argument_spec = dict( + vsan=dict(type="list", elements="dict", options=vsan_element_spec), + ) module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True) warnings = list() @@ -238,7 +240,9 @@ def main(): if vsanremove: # Negative case: if vsanid == "4079" or vsanid == "4094": - messages.append(str(vsanid) + " is a reserved vsan, hence cannot be removed") + messages.append( + str(vsanid) + " is a reserved vsan, hence cannot be removed", + ) continue if vsanid == sw_vsanid: commands.append("no vsan " + str(vsanid)) @@ -270,7 +274,9 @@ def main(): if vsanname is not None: # Negative case: if vsanid == "4079" or vsanid == "4094": - messages.append(str(vsanid) + " is a reserved vsan, and cannot be renamed") + messages.append( + str(vsanid) + " is a reserved vsan, and cannot be renamed", + ) else: if vsanname == sw_vsanname: messages.append( @@ -282,12 +288,16 @@ def main(): ) else: commands.append("vsan " + str(vsanid) + " name " + vsanname) - messages.append("setting vsan name to " + vsanname + " for vsan " + str(vsanid)) + messages.append( + "setting vsan name to " + vsanname + " for vsan " + str(vsanid), + ) if vsansuspend: # Negative case: if vsanid == "4079" or vsanid == "4094": - messages.append(str(vsanid) + " is a reserved vsan, and cannot be suspended") + messages.append( + str(vsanid) + " is a reserved vsan, and cannot be suspended", + ) else: if sw_vsanstate == "suspended": messages.append( @@ -322,7 +332,9 @@ def main(): + " interface list", ) else: - commands.append("vsan " + str(vsanid) + " interface " + each_interface_name) + commands.append( + "vsan " + str(vsanid) + " interface " + each_interface_name, + ) messages.append( "adding interface " + each_interface_name + " to vsan " + str(vsanid), ) diff --git a/ansible_collections/cisco/nxos/plugins/modules/nxos_zone_zoneset.py b/ansible_collections/cisco/nxos/plugins/modules/nxos_zone_zoneset.py index 7c9fba30a..5d519150f 100644 --- a/ansible_collections/cisco/nxos/plugins/modules/nxos_zone_zoneset.py +++ b/ansible_collections/cisco/nxos/plugins/modules/nxos_zone_zoneset.py @@ -10,180 +10,184 @@ DOCUMENTATION = """ module: nxos_zone_zoneset short_description: Configuration of zone/zoneset for Cisco NXOS MDS Switches. description: -- Configuration of zone/zoneset for Cisco MDS NXOS. + - Configuration of zone/zoneset for Cisco MDS NXOS. version_added: 1.0.0 author: -- Suhas Bharadwaj (@srbharadwaj) (subharad@cisco.com) + - Suhas Bharadwaj (@srbharadwaj) (subharad@cisco.com) notes: -- Tested against Cisco MDS NX-OS 8.4(1) + - Tested against Cisco MDS NX-OS 8.4(1) options: zone_zoneset_details: description: - - List of zone/zoneset details to be added or removed + - List of zone/zoneset details to be added or removed type: list elements: dict suboptions: vsan: description: - - vsan id + - vsan id required: true type: int mode: description: - - mode of the zone for the vsan + - mode of the zone for the vsan choices: - - enhanced - - basic + - enhanced + - basic type: str default_zone: description: - - default zone behaviour for the vsan + - default zone behaviour for the vsan choices: - - permit - - deny + - permit + - deny type: str smart_zoning: description: - - Removes the vsan if True + - Removes the vsan if True type: bool zone: description: - - List of zone options for that vsan + - List of zone options for that vsan type: list elements: dict suboptions: name: description: - - name of the zone + - name of the zone required: true type: str remove: description: - - Deletes the zone if True + - Deletes the zone if True type: bool default: false members: description: - - Members of the zone that needs to be removed or added + - Members of the zone that needs to be removed or added type: list elements: dict suboptions: pwwn: description: - - pwwn member of the zone, use alias 'device_alias' as option for - device_alias member + - >- + pwwn member of the zone, use alias 'device_alias' as option + for device_alias member aliases: - - device_alias + - device_alias required: true type: str remove: description: - - Removes member from the zone if True + - Removes member from the zone if True type: bool default: false devtype: description: - - devtype of the zone member used along with Smart zoning config + - >- + devtype of the zone member used along with Smart zoning + config choices: - - initiator - - target - - both + - initiator + - target + - both type: str zoneset: description: - - List of zoneset options for the vsan + - List of zoneset options for the vsan type: list elements: dict suboptions: name: description: - - name of the zoneset + - name of the zoneset required: true type: str remove: description: - - Removes zoneset if True + - Removes zoneset if True type: bool default: false action: description: - - activates/de-activates the zoneset + - activates/de-activates the zoneset choices: - - activate - - deactivate + - activate + - deactivate type: str members: description: - - Members of the zoneset that needs to be removed or added + - Members of the zoneset that needs to be removed or added type: list elements: dict suboptions: name: description: - - name of the zone that needs to be added to the zoneset or removed - from the zoneset + - >- + name of the zone that needs to be added to the zoneset or + removed from the zoneset required: true type: str remove: description: - - Removes zone member from the zoneset + - Removes zone member from the zoneset type: bool default: false + """ EXAMPLES = """ - name: Test that zone/zoneset module works cisco.nxos.nxos_zone_zoneset: zone_zoneset_details: - - mode: enhanced - vsan: 22 - zone: - - members: - - pwwn: 11:11:11:11:11:11:11:11 - - device_alias: test123 - - pwwn: 61:61:62:62:12:12:12:12 - remove: true - name: zoneA - - members: - - pwwn: 10:11:11:11:11:11:11:11 - - pwwn: 62:62:62:62:21:21:21:21 - name: zoneB - - name: zoneC - remove: true - zoneset: - - action: activate - members: - - name: zoneA - - name: zoneB - - name: zoneC - remove: true - name: zsetname1 - - action: deactivate - name: zsetTestExtra - remove: true - - mode: basic - smart_zoning: true - vsan: 21 - zone: - - members: - - devtype: both - pwwn: 11:11:11:11:11:11:11:11 - - pwwn: 62:62:62:62:12:12:12:12 - - devtype: both - pwwn: 92:62:62:62:12:12:1a:1a - remove: true - name: zone21A - - members: - - pwwn: 10:11:11:11:11:11:11:11 - - pwwn: 62:62:62:62:21:21:21:21 - name: zone21B - zoneset: - - action: activate - members: - - name: zone21A - - name: zone21B - name: zsetname212 - + - mode: enhanced + vsan: 22 + zone: + - members: + - pwwn: 31314874576271 + - device_alias: test123 + - pwwn: '61:61:62:62:12:12:12:12' + remove: true + name: zoneA + - members: + - pwwn: 28515514576271 + - pwwn: '62:62:62:62:21:21:21:21' + name: zoneB + - name: zoneC + remove: true + zoneset: + - action: activate + members: + - name: zoneA + - name: zoneB + - name: zoneC + remove: true + name: zsetname1 + - action: deactivate + name: zsetTestExtra + remove: true + - mode: basic + smart_zoning: true + vsan: 21 + zone: + - members: + - devtype: both + pwwn: 31314874576271 + - pwwn: '62:62:62:62:12:12:12:12' + - devtype: both + pwwn: '92:62:62:62:12:12:1a:1a' + remove: true + name: zone21A + - members: + - pwwn: 28515514576271 + - pwwn: '62:62:62:62:21:21:21:21' + name: zone21B + zoneset: + - action: activate + members: + - name: zone21A + - name: zone21B + name: zsetname212 """ RETURN = """ @@ -472,7 +476,11 @@ def main(): ) argument_spec = dict( - zone_zoneset_details=dict(type="list", elements="dict", options=zonedetails_spec), + zone_zoneset_details=dict( + type="list", + elements="dict", + options=zonedetails_spec, + ), ) module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True) @@ -519,13 +527,17 @@ def main(): if op_default_zone is not None: if op_default_zone != sw_default_zone: if op_default_zone == "permit": - commands_executed.append("zone default-zone permit vsan " + str(vsan)) + commands_executed.append( + "zone default-zone permit vsan " + str(vsan), + ) messages.append( "default zone configuration changed from deny to permit for vsan " + str(vsan), ) else: - commands_executed.append("no zone default-zone permit vsan " + str(vsan)) + commands_executed.append( + "no zone default-zone permit vsan " + str(vsan), + ) messages.append( "default zone configuration changed from permit to deny for vsan " + str(vsan), @@ -565,10 +577,14 @@ def main(): if op_smart_zoning is not None: if op_smart_zoning != sw_smart_zoning_bool: if op_smart_zoning: - commands_executed.append("zone smart-zoning enable vsan " + str(vsan)) + commands_executed.append( + "zone smart-zoning enable vsan " + str(vsan), + ) messages.append("smart-zoning enabled for vsan " + str(vsan)) else: - commands_executed.append("no zone smart-zoning enable vsan " + str(vsan)) + commands_executed.append( + "no zone smart-zoning enable vsan " + str(vsan), + ) messages.append("smart-zoning disabled for vsan " + str(vsan)) else: messages.append( @@ -589,8 +605,12 @@ def main(): removeflag = eachzone["remove"] if removeflag: if shZoneObj.isZonePresent(zname): - messages.append("zone '" + zname + "' is removed from vsan " + str(vsan)) - commands_executed.append("no zone name " + zname + " vsan " + str(vsan)) + messages.append( + "zone '" + zname + "' is removed from vsan " + str(vsan), + ) + commands_executed.append( + "no zone name " + zname + " vsan " + str(vsan), + ) else: messages.append( "zone '" @@ -606,8 +626,12 @@ def main(): "zone '" + zname + "' is already present in vsan " + str(vsan), ) else: - commands_executed.append("zone name " + zname + " vsan " + str(vsan)) - messages.append("zone '" + zname + "' is created in vsan " + str(vsan)) + commands_executed.append( + "zone name " + zname + " vsan " + str(vsan), + ) + messages.append( + "zone '" + zname + "' is created in vsan " + str(vsan), + ) else: cmdmemlist = [] for eachmem in zmembers: @@ -721,7 +745,9 @@ def main(): + str(vsan), ) if len(cmdmemlist) != 0: - commands_executed.append("zone name " + zname + " vsan " + str(vsan)) + commands_executed.append( + "zone name " + zname + " vsan " + str(vsan), + ) commands_executed = commands_executed + cmdmemlist # Process zoneset member options @@ -758,7 +784,10 @@ def main(): zsetmem_name = eachzsmem["name"] zsetmem_removeflag = eachzsmem["remove"] if zsetmem_removeflag: - if shZonesetObj.isZonePresentInZoneset(zsetname, zsetmem_name): + if shZonesetObj.isZonePresentInZoneset( + zsetname, + zsetmem_name, + ): cmd = "no member " + zsetmem_name cmdmemlist.append(cmd) messages.append( @@ -780,7 +809,10 @@ def main(): + " ,hence there is nothing to remove", ) else: - if shZonesetObj.isZonePresentInZoneset(zsetname, zsetmem_name): + if shZonesetObj.isZonePresentInZoneset( + zsetname, + zsetmem_name, + ): messages.append( "zoneset member '" + zsetmem_name @@ -844,7 +876,9 @@ def main(): messages.append( "activating zoneset '" + zsetname + "' in vsan " + str(vsan), ) - actcmd.append("zoneset activate name " + zsetname + " vsan " + str(vsan)) + actcmd.append( + "zoneset activate name " + zsetname + " vsan " + str(vsan), + ) else: messages.append( "no changes to existing zoneset '" diff --git a/ansible_collections/cisco/nxos/plugins/netconf/nxos.py b/ansible_collections/cisco/nxos/plugins/netconf/nxos.py index fcbee7952..f144a51aa 100644 --- a/ansible_collections/cisco/nxos/plugins/netconf/nxos.py +++ b/ansible_collections/cisco/nxos/plugins/netconf/nxos.py @@ -38,7 +38,6 @@ options: identify the ncclient device handler name refer ncclient library documentation. """ -from ansible.plugins.netconf import NetconfBase from ansible_collections.ansible.netcommon.plugins.plugin_utils.netconf_base import NetconfBase diff --git a/ansible_collections/cisco/nxos/pyproject.toml b/ansible_collections/cisco/nxos/pyproject.toml index fa4225f3e..66aa89b87 100644 --- a/ansible_collections/cisco/nxos/pyproject.toml +++ b/ansible_collections/cisco/nxos/pyproject.toml @@ -2,6 +2,8 @@ line-length = 100 [tool.pytest.ini_options] -addopts = ["-vvv", "-n", "2", "--log-level", "WARNING", "--color", "yes"] testpaths = ["tests"] -filterwarnings = ['ignore:AnsibleCollectionFinder has already been configured'] +filterwarnings = [ + 'ignore:AnsibleCollectionFinder has already been configured', + 'ignore:_AnsibleCollectionFinder.find_spec().*', +] diff --git a/ansible_collections/cisco/nxos/test-requirements.txt b/ansible_collections/cisco/nxos/test-requirements.txt index 94ff7c9e3..396789aed 100644 --- a/ansible_collections/cisco/nxos/test-requirements.txt +++ b/ansible_collections/cisco/nxos/test-requirements.txt @@ -1,9 +1,7 @@ -# For ansible-tox-linters -black==23.3.0 ; python_version >= '3.7' -flake8 -yamllint +# For CML +virl2-client==2.6.1 # Unit test runner -pytest-ansible ; python_version >= '3.9' -git+https://github.com/ansible-community/pytest-ansible-units.git ; python_version < '3.9' +pytest-ansible pytest-xdist +pytest-cov diff --git a/ansible_collections/cisco/nxos/tests/__init__.py b/ansible_collections/cisco/nxos/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ansible_collections/cisco/nxos/tests/config.yml b/ansible_collections/cisco/nxos/tests/config.yml index 41f529264..c26ea5966 100644 --- a/ansible_collections/cisco/nxos/tests/config.yml +++ b/ansible_collections/cisco/nxos/tests/config.yml @@ -1,3 +1,3 @@ --- modules: - python_requires: ">=3.6" + python_requires: ">=3.9" diff --git a/ansible_collections/cisco/nxos/tests/integration/__init__.py b/ansible_collections/cisco/nxos/tests/integration/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ansible_collections/cisco/nxos/tests/integration/labs/single.yaml b/ansible_collections/cisco/nxos/tests/integration/labs/single.yaml new file mode 100644 index 000000000..7f3e4d96f --- /dev/null +++ b/ansible_collections/cisco/nxos/tests/integration/labs/single.yaml @@ -0,0 +1,241 @@ +lab: + description: "" + notes: "" + title: cisco.nxos.nxos + version: 0.2.0 +links: + - id: l0 + n1: n0 + n2: n1 + i1: i1 + i2: i0 + label: nxos9000-0-mgmt0<->ext-conn-0-port +nodes: + - boot_disk_size: null + configuration: |2- + + !Command: show running-config + !Running configuration last done at: Mon Feb 12 07:11:33 2024 + !Time: Mon Feb 12 07:11:33 2024 + + version 10.3(1) Bios:version + hostname R1 + vdc R1 id 1 + limit-resource vlan minimum 16 maximum 4094 + limit-resource vrf minimum 2 maximum 4096 + limit-resource port-channel minimum 0 maximum 511 + limit-resource m4route-mem minimum 58 maximum 58 + limit-resource m6route-mem minimum 8 maximum 8 + + no password strength-check + username admin password 5 $5$AADOBF$GVXUV2cvmlZH42xDu6wnqfBpV9gXF61WGVNrGF5Gk6C role network-admin + username ansible password 5 $5$GHBNKA$8ccD8KWjmP6NzxzkIRufl7giaUWjrhAn4SRrVWYZ4R1 role network-admin + username ansible passphrase lifetime 99999 warntime 14 gracetime 3 + ssh key rsa 2048 + ip domain-lookup + snmp-server user admin network-admin auth md5 040F90283AEB9A92CCAF81F5CDA2639FFFCD priv aes-128 006084272498F8CD8F98DE888DEC6899C6D0 localizedV2key + snmp-server user ansible network-admin auth md5 5207BA419F48B4EB39149FDC00BE411BC828 priv aes-128 041EED4A876CACFD7656EA885CE15D3CE108 localizedV2key + rmon event 1 log trap public description FATAL(1) owner PMON@FATAL + rmon event 2 log trap public description CRITICAL(2) owner PMON@CRITICAL + rmon event 3 log trap public description ERROR(3) owner PMON@ERROR + rmon event 4 log trap public description WARNING(4) owner PMON@WARNING + rmon event 5 log trap public description INFORMATION(5) owner PMON@INFO + + vlan 1 + + vrf context management + ip name-server 192.168.255.1 + ip route 0.0.0.0/0 192.168.255.1 + + interface Ethernet1/1 + + interface Ethernet1/2 + + interface Ethernet1/3 + + interface Ethernet1/4 + + interface Ethernet1/5 + + interface Ethernet1/6 + + interface Ethernet1/7 + + interface Ethernet1/8 + + interface Ethernet1/9 + + interface Ethernet1/10 + + interface Ethernet1/11 + + interface Ethernet1/12 + + interface Ethernet1/13 + + interface Ethernet1/14 + + interface Ethernet1/15 + + interface Ethernet1/16 + + interface Ethernet1/17 + + interface Ethernet1/18 + + interface Ethernet1/19 + + interface Ethernet1/20 + + interface Ethernet1/21 + + interface Ethernet1/22 + + interface Ethernet1/23 + + interface Ethernet1/24 + + interface Ethernet1/25 + + interface Ethernet1/26 + + interface Ethernet1/27 + + interface Ethernet1/28 + + interface Ethernet1/29 + + interface Ethernet1/30 + + interface Ethernet1/31 + + interface Ethernet1/32 + + interface Ethernet1/33 + + interface Ethernet1/34 + + interface Ethernet1/35 + + interface Ethernet1/36 + + interface Ethernet1/37 + + interface Ethernet1/38 + + interface Ethernet1/39 + + interface Ethernet1/40 + + interface Ethernet1/41 + + interface Ethernet1/42 + + interface Ethernet1/43 + + interface Ethernet1/44 + + interface Ethernet1/45 + + interface Ethernet1/46 + + interface Ethernet1/47 + + interface Ethernet1/48 + + interface Ethernet1/49 + + interface Ethernet1/50 + + interface Ethernet1/51 + + interface Ethernet1/52 + + interface Ethernet1/53 + + interface Ethernet1/54 + + interface Ethernet1/55 + + interface Ethernet1/56 + + interface Ethernet1/57 + + interface Ethernet1/58 + + interface Ethernet1/59 + + interface Ethernet1/60 + + interface Ethernet1/61 + + interface Ethernet1/62 + + interface Ethernet1/63 + + interface Ethernet1/64 + + interface mgmt0 + ip address dhcp + vrf member management + icam monitor scale + + line console + exec-timeout 0 + line vty + exec-timeout 0 + boot nxos bootflash:/nxos64-cs.10.3.1.F.bin + + no logging console + cpu_limit: null + cpus: null + data_volume: null + hide_links: false + id: n0 + image_definition: null + label: nxos9000-0 + node_definition: nxosv9000 + ram: null + tags: [] + x: -1750 + y: -250 + interfaces: + - id: i0 + label: Loopback0 + type: loopback + - id: i1 + label: mgmt0 + slot: 0 + type: physical + - id: i2 + label: Ethernet1/1 + slot: 1 + type: physical + - id: i3 + label: Ethernet1/2 + slot: 2 + type: physical + - id: i4 + label: Ethernet1/3 + slot: 3 + type: physical + - boot_disk_size: null + configuration: virbr0 + cpu_limit: null + cpus: null + data_volume: null + hide_links: false + id: n1 + image_definition: null + label: ext-conn-0 + node_definition: external_connector + ram: null + tags: [] + x: -2250 + y: -250 + interfaces: + - id: i0 + label: port + slot: 0 + type: physical +annotations: [] diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_acl_interfaces/tests/common/remove_config.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_acl_interfaces/tests/common/remove_config.yaml index 3cad7ce53..f76058818 100644 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_acl_interfaces/tests/common/remove_config.yaml +++ b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_acl_interfaces/tests/common/remove_config.yaml @@ -22,6 +22,7 @@ - name: Remove configuration - 3 cisco.nxos.nxos_config: lines: + - no switchport - no ip access-group ACL1v4 out parents: interface Ethernet1/3 ignore_errors: true @@ -41,3 +42,8 @@ - no ip port access-group PortACL in parents: interface Ethernet1/6 ignore_errors: true + +- name: Remove configuration - 6 + cisco.nxos.nxos_config: + lines: no interface loopback1 + ignore_errors: true diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_acl_interfaces/tests/common/rtt.yml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_acl_interfaces/tests/common/rtt.yml index 90f72fb39..d42b4b19a 100644 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_acl_interfaces/tests/common/rtt.yml +++ b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_acl_interfaces/tests/common/rtt.yml @@ -83,6 +83,9 @@ - "'no ip port access-group PortACL in' in result.commands" - "'ipv6 port traffic-filter NewACLv6 in' in result.commands" + - ansible.builtin.debug: + msg: "{{ ansible_facts['network_resources']['acl_interfaces'] }}" + - name: Revert back to base configuration using facts round trip register: result cisco.nxos.nxos_acl_interfaces: diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_facts/tests/common/interface_facts.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_facts/tests/common/interface_facts.yaml new file mode 100644 index 000000000..2c237d360 --- /dev/null +++ b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_facts/tests/common/interface_facts.yaml @@ -0,0 +1,62 @@ +--- +- ansible.builtin.debug: + msg: START connection={{ ansible_connection }}/interface_facts.yaml + +- name: Setup + cisco.nxos.nxos_config: &default + lines: + - default interface Ethernet1/1 + - default interface Ethernet1/2 + +- block: + - name: Make sure interfaces are L3 + cisco.nxos.nxos_interfaces: + config: + - name: Ethernet1/1 + mode: layer3 + - name: Ethernet1/2 + mode: layer3 + + # since the | json output renders differently when only one + # interface has IPv6 address vs when more than one interface + # has IPv6 address, we need to test them separately + + - name: Assign IPv6 address to interface - 1 + register: result + cisco.nxos.nxos_l3_interfaces: + config: + - name: Ethernet1/1 + ipv6: + - address: 2001:db8::2/32 + + - name: Gather interface facts + cisco.nxos.nxos_facts: + gather_subset: + - "interfaces" + + - name: Assert that IPv6 address was found + ansible.builtin.assert: + that: + - "'2001:db8::2/32' in ansible_net_all_ipv6_addresses" + + - name: Assign IPv6 address to interface - 2 + register: result + cisco.nxos.nxos_l3_interfaces: + config: + - name: Ethernet1/2 + ipv6: + - address: 2001:db8::3/32 + + - name: Gather interface facts + cisco.nxos.nxos_facts: + gather_subset: + - "interfaces" + + - name: Assert that IPv6 address was found + ansible.builtin.assert: + that: + - "'2001:db8::2/32' in ansible_net_all_ipv6_addresses" + - "'2001:db8::3/32' in ansible_net_all_ipv6_addresses" + always: + - name: Teardown + cisco.nxos.nxos_config: *default diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_file_copy/tests/cli/sanity.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_file_copy/tests/cli/sanity.yaml index 70c450c39..0f2bdbb0f 100644 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_file_copy/tests/cli/sanity.yaml +++ b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_file_copy/tests/cli/sanity.yaml @@ -132,11 +132,11 @@ - result.changed == true - "'copy scp:' in result.copy_cmd" - "'bootflash:' in result.file_system" - - "'bootflash:dir1/dir2/dir3/{{ test_destination_file }}_copy' in result.local_file" - - "'/{{ test_destination_file }}' in result.remote_file" + - "'bootflash:dir1/dir2/dir3/test_destination_file_copy' in result.local_file" + - "'/test_destination_file' in result.remote_file" - "'Received: File copied/pulled to nxos device from remote scp server.' in result.transfer_status" - - "'{{ mgmt0_ip }}' in result.remote_scp_server" + - mgmt0_ip in result.remote_scp_server - ansible.builtin.pause: seconds: 60 @@ -169,11 +169,11 @@ - result.changed == true - "'copy sftp:' in result.copy_cmd" - "'bootflash:' in result.file_system" - - "'bootflash:dir1/dir2/dir3/{{ test_destination_file }}_another_copy' in result.local_file" - - "'/bootflash/{{ test_destination_file }}' in result.remote_file" + - "'bootflash:dir1/dir2/dir3/test_destination_file_another_copy' in result.local_file" + - "'/bootflash/test_destination_file' in result.remote_file" - "'Received: File copied/pulled to nxos device from remote scp server.' in result.transfer_status" - - "'{{ mgmt0_ip }}' in result.remote_scp_server" + - mgmt0_ip in result.remote_scp_server always: - name: Remove file diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/defaults/main.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/defaults/main.yaml deleted file mode 100644 index 5f709c5aa..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/defaults/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -testcase: "*" diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/meta/main.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/meta/main.yaml deleted file mode 100644 index f504a6ab2..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/meta/main.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - prepare_nxos_tests diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/cli.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/cli.yaml deleted file mode 100644 index d3d521f2a..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/cli.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: Collect common test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/common" - patterns: "{{ testcase }}.yaml" - connection: local - register: test_cases - -- name: Collect CLI test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/cli" - patterns: "{{ testcase }}.yaml" - connection: local - register: cli_cases - -- name: Set a fact for 'test_cases' - ansible.builtin.set_fact: - test_cases: - files: "{{ test_cases.files + cli_cases.files }}" - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test cases with connection network_cli - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - vars: - ansible_connection: ansible.netcommon.network_cli diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/main.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/main.yaml deleted file mode 100644 index ccb324f33..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/main.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -- name: Run the CLI and NX-API tests - block: - - name: Include the CLI tasks - ansible.builtin.include_tasks: cli.yaml - tags: - - cli - - - name: Include the NX-API tasks - ansible.builtin.include_tasks: nxapi.yaml - tags: - - nxapi - always: - - name: Set baud rate back to 9600 so our tests don't break - connection: ansible.netcommon.network_cli - cisco.nxos.nxos_config: - lines: - - speed 9600 - parents: line console diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/nxapi.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/nxapi.yaml deleted file mode 100644 index 5fec0f43b..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tasks/nxapi.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: Collect common test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/common" - patterns: "{{ testcase }}.yaml" - connection: local - register: test_cases - -- name: Collect NX-API test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/nxapi" - patterns: "{{ testcase }}.yaml" - connection: local - register: nxapi_cases - -- name: Set a fact for 'test_cases' - ansible.builtin.set_fact: - test_cases: - files: "{{ test_cases.files + nxapi_cases.files }}" - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test cases with connection httpapi - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - vars: - ansible_connection: ansible.netcommon.httpapi diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tests/common/basic.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tests/common/basic.yaml deleted file mode 100644 index 72bf146d1..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tests/common/basic.yaml +++ /dev/null @@ -1,485 +0,0 @@ ---- -- ansible.builtin.debug: - msg: START connection={{ ansible_connection }} nxos_logging basic test - -- name: Workaround to clear logging logfile size - ignore_errors: true - cisco.nxos.nxos_config: - lines: - - logging logfile test 1 size 4194304 - -- name: Purge logging configuration first - cisco.nxos.nxos_logging: - purge: true - -- name: Set up console logging - register: result - cisco.nxos.nxos_logging: &id001 - dest: console - dest_level: 0 - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging console 0" in result.commands' - -- name: Set up console logging again (idempotent) - register: result - cisco.nxos.nxos_logging: *id001 - -- ansible.builtin.assert: &id003 - that: - - result.changed == false - -- name: Set up console logging with level 2 (edge case) - register: result - cisco.nxos.nxos_logging: &id002 - dest: console - dest_level: 2 - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging console 2" in result.commands' - -- name: Set up console logging with level 2 (edge case) (idempotent) - register: result - cisco.nxos.nxos_logging: *id002 - -- ansible.builtin.assert: *id003 - -- block: - - name: Logfile logging with level - register: result - cisco.nxos.nxos_logging: &id004 - dest: logfile - name: test - dest_level: 1 - state: present - - - ansible.builtin.assert: - that: - - result.changed == true - - '"logging logfile test 1" in result.commands' - - - name: Logfile logging with level (idempotent) - register: result - cisco.nxos.nxos_logging: *id004 - - - ansible.builtin.assert: *id003 - when: platform is not search('N5K|N7K') and imagetag is not search("A8") - -- name: Configure module with level - register: result - cisco.nxos.nxos_logging: &id005 - dest: module - dest_level: 2 - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging module 2" in result.commands' - -- name: Configure module with level (idempotent) - register: result - cisco.nxos.nxos_logging: *id005 - -- ansible.builtin.assert: *id003 - -- name: Configure monitor with level - register: result - cisco.nxos.nxos_logging: &id006 - dest: monitor - dest_level: 3 - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging monitor 3" in result.commands' - -- name: Configure monitor with level (idempotent) - register: result - cisco.nxos.nxos_logging: *id006 - -- ansible.builtin.assert: *id003 - -- name: Configure monitor with level 5 (edge case) - register: result - cisco.nxos.nxos_logging: &id007 - dest: monitor - dest_level: 5 - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging monitor 5" in result.commands' - -- name: Configure monitor with level 5 (edge case) (idempotent) - register: result - cisco.nxos.nxos_logging: *id007 - -- ansible.builtin.assert: *id003 - -- name: Configure facility with level - register: result - cisco.nxos.nxos_logging: &id008 - facility: daemon - facility_level: 4 - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging level daemon 4" in result.commands' - -- name: Configure facility with level (idempotent) - register: result - cisco.nxos.nxos_logging: *id008 - -- ansible.builtin.assert: *id003 - -- name: Configure remote logging - register: result - cisco.nxos.nxos_logging: &id009 - dest: server - remote_server: test-syslogserver.com - facility: auth - facility_level: 1 - use_vrf: management - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging server test-syslogserver.com 1 facility auth use-vrf management" in result.commands' - -- name: Configure remote logging (idempotent) - register: result - cisco.nxos.nxos_logging: *id009 - -- ansible.builtin.assert: *id003 - -- name: Configure source interface for logging - register: result - cisco.nxos.nxos_logging: &id010 - interface: mgmt0 - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging source-interface mgmt 0" in result.commands' - -- name: Configure source interface for logging (idempotent) - register: result - cisco.nxos.nxos_logging: *id010 - -- ansible.builtin.assert: - that: - - result.changed == false - -- name: Remove logging as collection teardown - register: result - cisco.nxos.nxos_logging: &id011 - aggregate: - - dest: console - dest_level: 3 - - - dest: module - dest_level: 2 - - - dest: monitor - dest_level: 5 - - - dest: logfile - dest_level: 1 - name: test - - - facility: daemon - facility_level: 4 - - - dest: server - remote_server: test-syslogserver.com - facility: auth - facility_level: 1 - use_vrf: management - - - interface: mgmt0 - state: absent - -- ansible.builtin.assert: - that: - - result.changed == true - - '"no logging logfile" in result.commands' - - '"no logging level daemon 4" in result.commands' - - '"no logging monitor" in result.commands' - - '"no logging module" in result.commands' - - '"no logging server test-syslogserver.com" in result.commands' - - '"no logging source-interface" in result.commands' - when: platform is not search('N5K|N7K') and imagetag is not search("A8") - -- ansible.builtin.assert: - that: - - result.changed == true - - '"no logging level daemon 4" in result.commands' - - '"no logging monitor" in result.commands' - - '"no logging module" in result.commands' - - '"no logging server test-syslogserver.com" in result.commands' - - '"no logging source-interface" in result.commands' - when: platform is search('N5K|N7K') or imagetag is search("A8") - -- name: Remove aggregate logging (idempotent) - register: result - cisco.nxos.nxos_logging: *id011 - -- ansible.builtin.assert: *id003 - -- block: - - name: Configure logging message - register: result - cisco.nxos.nxos_logging: &id012 - interface_message: add-interface-description - state: present - - - ansible.builtin.assert: &id013 - that: - - result.changed == true - - - name: Configure logging message (idempotent) - register: result - cisco.nxos.nxos_logging: *id012 - - - ansible.builtin.assert: *id003 - - - name: Remove logging message - register: result - cisco.nxos.nxos_logging: - interface_message: add-interface-description - state: absent - - - ansible.builtin.assert: *id013 - when: platform is not search('N5K') and imagetag is not search("A8") - -- name: Logfile logging with level and size - register: result - cisco.nxos.nxos_logging: &id014 - dest: logfile - name: test - dest_level: 1 - file_size: 16384 - state: present - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging logfile test 1 size 16384" in result.commands' - -- name: Logfile logging with level and size (idempotent) - register: result - cisco.nxos.nxos_logging: *id014 - -- ansible.builtin.assert: *id003 - -- name: Remove logfile logging with level and size - register: result - cisco.nxos.nxos_logging: - dest: logfile - name: test - dest_level: 1 - file_size: 16384 - state: absent - -- ansible.builtin.assert: *id013 - -- name: Set up logging event link enable - register: result - cisco.nxos.nxos_logging: &id015 - event: link-enable - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging event link-status enable" in result.commands' - -- name: Set up logging event link enable again (idempotent) - register: result - cisco.nxos.nxos_logging: *id015 - -- ansible.builtin.assert: *id003 - -- name: Remove logging event link enable - register: result - cisco.nxos.nxos_logging: &id016 - event: link-enable - state: absent - -- ansible.builtin.assert: *id013 - -- name: Remove logging event link enable again (idempotent) - register: result - cisco.nxos.nxos_logging: *id016 - -- ansible.builtin.assert: *id003 - -- name: Set up logging event link default - register: result - cisco.nxos.nxos_logging: &id017 - event: link-default - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging event link-status default" in result.commands' - -- name: Set up logging event link default again (idempotent) - register: result - cisco.nxos.nxos_logging: *id017 - -- ansible.builtin.assert: *id003 - -- name: Remove logging event link default - register: result - cisco.nxos.nxos_logging: &id018 - event: link-default - state: absent - -- ansible.builtin.assert: *id013 - -- name: Remove logging event link default again (idempotent) - register: result - cisco.nxos.nxos_logging: *id018 - -- ansible.builtin.assert: *id003 - -- name: Set up logging event trunk enable - register: result - cisco.nxos.nxos_logging: &id019 - event: trunk-enable - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging event trunk-status enable" in result.commands' - -- name: Set up logging event trunk enable again (idempotent) - register: result - cisco.nxos.nxos_logging: *id019 - -- ansible.builtin.assert: *id003 - -- name: Remove logging event trunk enable - register: result - cisco.nxos.nxos_logging: &id020 - event: trunk-enable - state: absent - -- ansible.builtin.assert: *id013 - -- name: Remove logging event trunk enable again (idempotent) - register: result - cisco.nxos.nxos_logging: *id020 - -- ansible.builtin.assert: *id003 - -- name: Set up logging event trunk default - register: result - cisco.nxos.nxos_logging: &id021 - event: trunk-default - -- ansible.builtin.assert: - that: - - result.changed == true - - '"logging event trunk-status default" in result.commands' - -- name: Set up logging event trunk default again (idempotent) - register: result - cisco.nxos.nxos_logging: *id021 - -- ansible.builtin.assert: *id003 - -- name: Remove logging event trunk default - register: result - cisco.nxos.nxos_logging: &id022 - event: trunk-default - state: absent - -- ansible.builtin.assert: *id013 - -- name: Remove logging event trunk default again (idempotent) - register: result - cisco.nxos.nxos_logging: *id022 - -- ansible.builtin.assert: *id003 - -- name: Set up logging timestamp - register: result - cisco.nxos.nxos_logging: &id023 - timestamp: microseconds - state: present - -- ansible.builtin.assert: *id013 - -- name: Set up logging timestamp (idempotent) - register: result - cisco.nxos.nxos_logging: *id023 - -- ansible.builtin.assert: *id003 - -- name: Remove logging timestamp - register: result - cisco.nxos.nxos_logging: - timestamp: microseconds - state: absent - -- ansible.builtin.assert: *id013 - -- name: Set up facility ethpm link up error - register: result - cisco.nxos.nxos_logging: &id024 - facility: ethpm - facility_link_status: link-up-error - state: present - -- ansible.builtin.assert: *id013 - -- name: Set up facility ethpm link up error (idempotent) - register: result - cisco.nxos.nxos_logging: *id024 - -- ansible.builtin.assert: *id003 - -- name: Remove facility ethpm link up error - register: result - cisco.nxos.nxos_logging: - facility: ethpm - facility_link_status: link-up-error - state: absent - -- ansible.builtin.assert: *id013 - -- name: Set up facility ethpm link down error - register: result - cisco.nxos.nxos_logging: &id025 - facility: ethpm - facility_link_status: link-down-error - state: present - -- ansible.builtin.assert: *id013 - -- name: Set up facility ethpm link down error (idempotent) - register: result - cisco.nxos.nxos_logging: *id025 - -- ansible.builtin.assert: *id003 - -- name: Remove facility ethpm link down error - register: result - cisco.nxos.nxos_logging: - facility: ethpm - facility_link_status: link-down-error - state: absent - -- ansible.builtin.assert: *id013 - -- ansible.builtin.debug: - msg: END connection={{ ansible_connection }} nxos_logging basic test diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tests/common/purge.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tests/common/purge.yaml deleted file mode 100644 index fa773b58a..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_logging/tests/common/purge.yaml +++ /dev/null @@ -1,111 +0,0 @@ ---- -- ansible.builtin.debug: - msg: START connection={{ ansible_connection }} nxos_logging purge test - -- name: Purge logging configuration first - cisco.nxos.nxos_logging: - purge: true - -- block: - - name: Set up console logging - register: result - cisco.nxos.nxos_logging: - dest: console - dest_level: 0 - state: present - - - ansible.builtin.assert: - that: - - result.changed == true - - '"logging console 0" in result.commands' - - - name: Set up logging timestamp - register: result - cisco.nxos.nxos_logging: - timestamp: microseconds - state: present - - - ansible.builtin.assert: - that: - - result.changed == true - - '"logging timestamp microseconds" in result.commands' - - - name: Configure monitor with level - register: result - cisco.nxos.nxos_logging: - dest: monitor - dest_level: 3 - - - ansible.builtin.assert: - that: - - result.changed == true - - '"logging monitor 3" in result.commands' - - - name: Configure facility with level - register: result - cisco.nxos.nxos_logging: - facility: daemon - facility_level: 4 - - - ansible.builtin.assert: - that: - - result.changed == true - - '"logging level daemon 4" in result.commands' - - - name: Configure logging level virtual-service 7 using nxos_config - register: result - cisco.nxos.nxos_config: - lines: logging level virtual-service 7 - - - ansible.builtin.assert: - that: - - result.changed == true - - - name: Purge the outliers - register: result - cisco.nxos.nxos_logging: - purge: true - - - ansible.builtin.assert: - that: - - result.changed == true - - '"no logging level virtual-service 7" in result.commands' - - - block: - - name: Purge the outliers (idempotent) - register: result - cisco.nxos.nxos_logging: - purge: true - - - assert: - that: - - result.changed == false - when: imagetag is not search("A8") - - - name: Remove logging as collection teardown - register: result - cisco.nxos.nxos_logging: - aggregate: - - dest: console - dest_level: 0 - - - dest: monitor - dest_level: 3 - - - timestamp: microseconds - - - facility: daemon - facility_level: 4 - state: absent - - - ansible.builtin.assert: - that: - - result.changed == true - - '"no logging console" in result.commands' - - '"no logging timestamp microseconds" in result.commands' - - '"no logging level daemon 4" in result.commands' - - '"no logging monitor" in result.commands' - when: ansible_connection != "local" - -- ansible.builtin.debug: - msg: END connection={{ ansible_connection }} nxos_logging purge test diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/defaults/main.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/defaults/main.yaml deleted file mode 100644 index 5f709c5aa..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/defaults/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -testcase: "*" diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/meta/main.yml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/meta/main.yml deleted file mode 100644 index f504a6ab2..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/meta/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - prepare_nxos_tests diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/cli.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/cli.yaml deleted file mode 100644 index d3d521f2a..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/cli.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: Collect common test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/common" - patterns: "{{ testcase }}.yaml" - connection: local - register: test_cases - -- name: Collect CLI test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/cli" - patterns: "{{ testcase }}.yaml" - connection: local - register: cli_cases - -- name: Set a fact for 'test_cases' - ansible.builtin.set_fact: - test_cases: - files: "{{ test_cases.files + cli_cases.files }}" - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test cases with connection network_cli - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - vars: - ansible_connection: ansible.netcommon.network_cli diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/main.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/main.yaml deleted file mode 100644 index c9e70304e..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/main.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- name: Run the CLI and NX-API tests - block: - - name: Include the CLI tasks - ansible.builtin.include_tasks: cli.yaml - tags: - - cli - always: - - name: Include the NX-API tasks - ansible.builtin.include_tasks: nxapi.yaml - tags: - - nxapi diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/nxapi.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/nxapi.yaml deleted file mode 100644 index 5fec0f43b..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tasks/nxapi.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: Collect common test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/common" - patterns: "{{ testcase }}.yaml" - connection: local - register: test_cases - -- name: Collect NX-API test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/nxapi" - patterns: "{{ testcase }}.yaml" - connection: local - register: nxapi_cases - -- name: Set a fact for 'test_cases' - ansible.builtin.set_fact: - test_cases: - files: "{{ test_cases.files + nxapi_cases.files }}" - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test cases with connection httpapi - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - vars: - ansible_connection: ansible.netcommon.httpapi diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tests/common/sanity.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tests/common/sanity.yaml deleted file mode 100644 index f22c99f55..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp/tests/common/sanity.yaml +++ /dev/null @@ -1,114 +0,0 @@ ---- -- ansible.builtin.debug: - msg: START connection={{ ansible_connection }} nxos_ntp sanity test - -- name: Setup - remove ntp if configured - ignore_errors: true - cisco.nxos.nxos_ntp: &id005 - server: 1.2.3.4 - key_id: 32 - prefer: disabled - vrf_name: management - source_addr: 192.0.2.5 - state: absent - -- block: - - name: Configure ntp - register: result - cisco.nxos.nxos_ntp: &id001 - server: 1.2.3.4 - key_id: 32 - prefer: enabled - vrf_name: management - source_addr: 192.0.2.5 - state: present - - - ansible.builtin.assert: &id002 - that: - - result.changed == true - - - name: Idempotence check - register: result - cisco.nxos.nxos_ntp: *id001 - - - ansible.builtin.assert: &id004 - that: - - result.changed == false - - - name: Configure ntp with some defaults - register: result - cisco.nxos.nxos_ntp: &id003 - peer: 1.2.3.4 - key_id: default - prefer: enabled - vrf_name: default - source_addr: default - state: present - - - ansible.builtin.assert: *id002 - - - name: Idempotence check - register: result - cisco.nxos.nxos_ntp: *id003 - - - ansible.builtin.assert: *id004 - - - name: Remove ntp configuration - register: result - cisco.nxos.nxos_ntp: *id005 - - - ansible.builtin.assert: *id002 - - - name: Remove idempotence check - register: result - cisco.nxos.nxos_ntp: *id005 - - - ansible.builtin.assert: *id004 - - - name: Configure ntp again - register: result - cisco.nxos.nxos_ntp: &id006 - source_int: Ethernet1/3 - peer: 1.2.3.4 - prefer: enabled - state: present - - - ansible.builtin.assert: *id002 - - - name: Idempotence check - register: result - cisco.nxos.nxos_ntp: *id006 - - - ansible.builtin.assert: *id004 - - - name: Remove source interface - register: result - cisco.nxos.nxos_ntp: &id007 - source_int: default - state: present - - - ansible.builtin.assert: *id002 - - - name: Idempotence check - register: result - cisco.nxos.nxos_ntp: *id007 - - - ansible.builtin.assert: *id004 - - - name: Remove ntp - register: result - cisco.nxos.nxos_ntp: *id005 - - - ansible.builtin.assert: *id002 - - - name: Remove idempotence check - register: result - cisco.nxos.nxos_ntp: *id005 - - - ansible.builtin.assert: *id004 - always: - - name: Remove ntp configuration - cisco.nxos.nxos_ntp: *id005 - - - ansible.builtin.debug: - msg: END connection={{ ansible_connection }} nxos_ntp sanity test diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/defaults/main.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/defaults/main.yaml deleted file mode 100644 index 5f709c5aa..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/defaults/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -testcase: "*" diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/meta/main.yml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/meta/main.yml deleted file mode 100644 index f504a6ab2..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/meta/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - prepare_nxos_tests diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/cli.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/cli.yaml deleted file mode 100644 index d3d521f2a..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/cli.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: Collect common test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/common" - patterns: "{{ testcase }}.yaml" - connection: local - register: test_cases - -- name: Collect CLI test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/cli" - patterns: "{{ testcase }}.yaml" - connection: local - register: cli_cases - -- name: Set a fact for 'test_cases' - ansible.builtin.set_fact: - test_cases: - files: "{{ test_cases.files + cli_cases.files }}" - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test cases with connection network_cli - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - vars: - ansible_connection: ansible.netcommon.network_cli diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/main.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/main.yaml deleted file mode 100644 index a1da90e57..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/main.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: Include the CLI tasks - ansible.builtin.include_tasks: cli.yaml - tags: - - cli - -- name: Include the NX-API tasks - ansible.builtin.include_tasks: nxapi.yaml - tags: - - nxapi diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/nxapi.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/nxapi.yaml deleted file mode 100644 index 5fec0f43b..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tasks/nxapi.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: Collect common test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/common" - patterns: "{{ testcase }}.yaml" - connection: local - register: test_cases - -- name: Collect NX-API test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/nxapi" - patterns: "{{ testcase }}.yaml" - connection: local - register: nxapi_cases - -- name: Set a fact for 'test_cases' - ansible.builtin.set_fact: - test_cases: - files: "{{ test_cases.files + nxapi_cases.files }}" - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test cases with connection httpapi - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - vars: - ansible_connection: ansible.netcommon.httpapi diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tests/common/sanity.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tests/common/sanity.yaml deleted file mode 100644 index 3ceb9e122..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_auth/tests/common/sanity.yaml +++ /dev/null @@ -1,133 +0,0 @@ ---- -- ansible.builtin.debug: - msg: START connection={{ ansible_connection }} nxos_ntp_auth sanity test - -- name: Configure text ntp authentication - ignore_errors: true - cisco.nxos.nxos_ntp_auth: &id009 - key_id: 32 - md5string: hello - state: absent - -- block: - - name: Configure text ntp authentication - register: result - cisco.nxos.nxos_ntp_auth: - key_id: 32 - md5string: hello - authentication: false - state: present - - - ansible.builtin.assert: &id001 - that: - - result.changed == true - - - name: Remove text ntp authentication - register: result - cisco.nxos.nxos_ntp_auth: - key_id: 32 - md5string: hello - authentication: false - state: absent - - - ansible.builtin.assert: *id001 - - - name: Configure encrypt ntp authentication - register: result - cisco.nxos.nxos_ntp_auth: &id002 - key_id: 32 - md5string: hello - auth_type: encrypt - state: present - - - ansible.builtin.assert: *id001 - - - name: Check idempotence - configure encrypt ntp authentication - register: result - cisco.nxos.nxos_ntp_auth: *id002 - - - ansible.builtin.assert: &id004 - that: - - result.changed == false - - - name: Turn on authentication - register: result - cisco.nxos.nxos_ntp_auth: &id003 - authentication: true - state: present - - - ansible.builtin.assert: *id001 - - - name: Check idempotence - turn on authentication - register: result - cisco.nxos.nxos_ntp_auth: *id003 - - - ansible.builtin.assert: *id004 - - - name: Turn off authentication - register: result - cisco.nxos.nxos_ntp_auth: &id005 - authentication: false - state: present - - - ansible.builtin.assert: *id001 - - - name: Check idempotence - turn off authentication - register: result - cisco.nxos.nxos_ntp_auth: *id005 - - - ansible.builtin.assert: *id004 - - - name: Add trusted key - register: result - cisco.nxos.nxos_ntp_auth: &id006 - key_id: 32 - trusted_key: true - state: present - - - ansible.builtin.assert: *id001 - - - name: Check idempotence - add trusted key - register: result - cisco.nxos.nxos_ntp_auth: *id006 - - - ansible.builtin.assert: *id004 - - - name: Remove trusted key - register: result - cisco.nxos.nxos_ntp_auth: &id007 - key_id: 32 - trusted_key: false - state: present - - - ansible.builtin.assert: *id001 - - - name: Check idempotence - remove trusted key - register: result - cisco.nxos.nxos_ntp_auth: *id007 - - - ansible.builtin.assert: *id004 - - - name: Remove encrypt ntp authentication - register: result - cisco.nxos.nxos_ntp_auth: &id008 - key_id: 32 - md5string: hello - auth_type: encrypt - authentication: true - state: absent - - - ansible.builtin.assert: *id001 - - - name: Check idempotence - remove encrypt ntp authentication - register: result - cisco.nxos.nxos_ntp_auth: *id008 - - - ansible.builtin.assert: *id004 - always: - - name: Cleanup ntp auth configuration - ignore_errors: true - cisco.nxos.nxos_ntp_auth: *id009 - - - ansible.builtin.debug: - msg: END connection={{ ansible_connection }} nxos_ntp_auth sanity test diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/defaults/main.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/defaults/main.yaml deleted file mode 100644 index 5f709c5aa..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/defaults/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -testcase: "*" diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/meta/main.yml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/meta/main.yml deleted file mode 100644 index f504a6ab2..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/meta/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - prepare_nxos_tests diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/cli.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/cli.yaml deleted file mode 100644 index d3d521f2a..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/cli.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: Collect common test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/common" - patterns: "{{ testcase }}.yaml" - connection: local - register: test_cases - -- name: Collect CLI test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/cli" - patterns: "{{ testcase }}.yaml" - connection: local - register: cli_cases - -- name: Set a fact for 'test_cases' - ansible.builtin.set_fact: - test_cases: - files: "{{ test_cases.files + cli_cases.files }}" - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test cases with connection network_cli - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - vars: - ansible_connection: ansible.netcommon.network_cli diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/main.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/main.yaml deleted file mode 100644 index a1da90e57..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/main.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: Include the CLI tasks - ansible.builtin.include_tasks: cli.yaml - tags: - - cli - -- name: Include the NX-API tasks - ansible.builtin.include_tasks: nxapi.yaml - tags: - - nxapi diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/nxapi.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/nxapi.yaml deleted file mode 100644 index 5fec0f43b..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tasks/nxapi.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: Collect common test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/common" - patterns: "{{ testcase }}.yaml" - connection: local - register: test_cases - -- name: Collect NX-API test cases - ansible.builtin.find: - paths: "{{ role_path }}/tests/nxapi" - patterns: "{{ testcase }}.yaml" - connection: local - register: nxapi_cases - -- name: Set a fact for 'test_cases' - ansible.builtin.set_fact: - test_cases: - files: "{{ test_cases.files + nxapi_cases.files }}" - -- name: Set test_items - ansible.builtin.set_fact: - test_items: "{{ test_cases.files | map(attribute='path') | list }}" - -- name: Run test cases with connection httpapi - ansible.builtin.include_tasks: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run - vars: - ansible_connection: ansible.netcommon.httpapi diff --git a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tests/common/sanity.yaml b/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tests/common/sanity.yaml deleted file mode 100644 index 1ee9433ef..000000000 --- a/ansible_collections/cisco/nxos/tests/integration/targets/nxos_ntp_options/tests/common/sanity.yaml +++ /dev/null @@ -1,99 +0,0 @@ ---- -- ansible.builtin.debug: - msg: START connection={{ ansible_connection }} nxos_ntp_options sanity test - -- name: Apply default ntp configuration - ignore_errors: true - cisco.nxos.nxos_ntp_options: &id007 - state: absent - -- block: - - name: Configure ntp with master and default stratum - register: result - cisco.nxos.nxos_ntp_options: &id001 - master: true - logging: true - state: present - - - ansible.builtin.assert: &id002 - that: - - result.changed == true - - - name: Check idempotence - configure ntp with master and default stratum - register: result - cisco.nxos.nxos_ntp_options: *id001 - - - ansible.builtin.assert: &id004 - that: - - result.changed == false - - - name: Configure ntp with master and non-default stratum - register: result - cisco.nxos.nxos_ntp_options: &id003 - master: true - stratum: 10 - state: present - - - ansible.builtin.assert: *id002 - - - name: Check idempotence - configure ntp with master and non-default stratum - register: result - cisco.nxos.nxos_ntp_options: *id003 - - - ansible.builtin.assert: *id004 - - - name: Configure ntp with master and no logging - register: result - cisco.nxos.nxos_ntp_options: &id005 - master: true - stratum: 10 - logging: false - state: present - - - ansible.builtin.assert: *id002 - - - name: Check idempotence - configure ntp with master and no logging - register: result - cisco.nxos.nxos_ntp_options: *id005 - - - ansible.builtin.assert: *id004 - - - name: Configure ntp with logging and no master - register: result - cisco.nxos.nxos_ntp_options: &id006 - master: false - logging: true - state: present - - - ansible.builtin.assert: *id002 - - - name: Check idempotence - configure ntp with logging and no master - register: result - cisco.nxos.nxos_ntp_options: *id006 - - - ansible.builtin.assert: *id004 - - - name: Configure ntp with master and non-default stratum again - register: result - cisco.nxos.nxos_ntp_options: *id003 - - - ansible.builtin.assert: *id002 - - - name: Remove ntp options - register: result - cisco.nxos.nxos_ntp_options: *id007 - - - ansible.builtin.assert: *id002 - - - name: Check idempotence - remove - register: result - cisco.nxos.nxos_ntp_options: *id007 - - - ansible.builtin.assert: *id004 - always: - - name: Cleanup ntp configuration - register: result - cisco.nxos.nxos_ntp_options: *id007 - - - ansible.builtin.debug: - msg: END connection={{ ansible_connection }} nxos_ntp_options sanity test diff --git a/ansible_collections/cisco/nxos/tests/integration/test_integration.py b/ansible_collections/cisco/nxos/tests/integration/test_integration.py new file mode 100644 index 000000000..aed5c0548 --- /dev/null +++ b/ansible_collections/cisco/nxos/tests/integration/test_integration.py @@ -0,0 +1,43 @@ +import subprocess + +import pytest + + +def run(ansible_project, environment): + __tracebackhide__ = True + args = [ + "ansible-navigator", + "run", + str(ansible_project.playbook), + "-i", + str(ansible_project.inventory), + "--ee", + "false", + "--mode", + "stdout", + "--pas", + str(ansible_project.playbook_artifact), + "--ll", + "debug", + "--lf", + str(ansible_project.log_file), + "--skip-tags", + "local,nxapi", + ] + process = subprocess.run( + args=args, + env=environment, + stderr=subprocess.PIPE, + stdout=subprocess.PIPE, + check=False, + shell=False, + ) + if process.returncode: + print(process.stdout.decode("utf-8")) + print(process.stderr.decode("utf-8")) + + pytest.fail(reason=f"Integration test failed: {ansible_project.role}") + + +def test_integration(ansible_project, environment): + run(ansible_project, environment) diff --git a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.10.txt b/ansible_collections/cisco/nxos/tests/sanity/ignore-2.10.txt deleted file mode 100644 index 4f8c291ee..000000000 --- a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.10.txt +++ /dev/null @@ -1,34 +0,0 @@ -plugins/action/nxos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/module_utils/network/nxos/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospfv2/ospfv2.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/modules/nxos_bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py compile-2.6!skip -plugins/modules/nxos_bgp_neighbor_address_family.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospfv2/ospfv2.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospfv3/ospfv3.py import-2.6!skip -plugins/modules/nxos_bgp_global.py import-2.6!skip -plugins/modules/nxos_ospf_interfaces.py import-2.6!skip -plugins/modules/nxos_ospfv2.py import-2.6!skip -plugins/modules/nxos_ospfv3.py import-2.6!skip -plugins/modules/nxos_route_maps.py import-2.6!skip -plugins/module_utils/network/nxos/config/route_maps/route_maps.py import-2.6!skip -plugins/module_utils/network/nxos/config/route_maps/route_maps.py compile-2.6!skip -plugins/module_utils/network/nxos/config/snmp_server/snmp_server.py import-2.6!skip -plugins/module_utils/network/nxos/config/snmp_server/snmp_server.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/modules/nxos_bgp_address_family.py import-2.6!skip -plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/nxos_bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/nxos_prefix_lists.py import-2.6!skip -plugins/module_utils/network/nxos/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/nxos/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/modules/nxos_logging_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/logging_global/logging_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/logging_global/logging_global.py compile-2.6!skip -plugins/module_utils/network/nxos/utils/utils.py import-2.6!skip -plugins/module_utils/network/nxos/utils/utils.py compile-2.6!skip diff --git a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.11.txt b/ansible_collections/cisco/nxos/tests/sanity/ignore-2.11.txt deleted file mode 100644 index 4f8c291ee..000000000 --- a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.11.txt +++ /dev/null @@ -1,34 +0,0 @@ -plugins/action/nxos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/module_utils/network/nxos/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospfv2/ospfv2.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/modules/nxos_bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py compile-2.6!skip -plugins/modules/nxos_bgp_neighbor_address_family.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospfv2/ospfv2.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospfv3/ospfv3.py import-2.6!skip -plugins/modules/nxos_bgp_global.py import-2.6!skip -plugins/modules/nxos_ospf_interfaces.py import-2.6!skip -plugins/modules/nxos_ospfv2.py import-2.6!skip -plugins/modules/nxos_ospfv3.py import-2.6!skip -plugins/modules/nxos_route_maps.py import-2.6!skip -plugins/module_utils/network/nxos/config/route_maps/route_maps.py import-2.6!skip -plugins/module_utils/network/nxos/config/route_maps/route_maps.py compile-2.6!skip -plugins/module_utils/network/nxos/config/snmp_server/snmp_server.py import-2.6!skip -plugins/module_utils/network/nxos/config/snmp_server/snmp_server.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/modules/nxos_bgp_address_family.py import-2.6!skip -plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/nxos_bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/nxos_prefix_lists.py import-2.6!skip -plugins/module_utils/network/nxos/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/nxos/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/modules/nxos_logging_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/logging_global/logging_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/logging_global/logging_global.py compile-2.6!skip -plugins/module_utils/network/nxos/utils/utils.py import-2.6!skip -plugins/module_utils/network/nxos/utils/utils.py compile-2.6!skip diff --git a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.12.txt b/ansible_collections/cisco/nxos/tests/sanity/ignore-2.12.txt deleted file mode 100644 index d7b9bbd97..000000000 --- a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.12.txt +++ /dev/null @@ -1,36 +0,0 @@ -plugins/action/nxos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/module_utils/network/nxos/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospfv2/ospfv2.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/modules/nxos_bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py compile-2.6!skip -plugins/modules/nxos_bgp_neighbor_address_family.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospfv2/ospfv2.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospfv3/ospfv3.py import-2.6!skip -plugins/modules/nxos_bgp_global.py import-2.6!skip -plugins/modules/nxos_ospf_interfaces.py import-2.6!skip -plugins/modules/nxos_ospfv2.py import-2.6!skip -plugins/modules/nxos_ospfv3.py import-2.6!skip -plugins/modules/nxos_route_maps.py import-2.6!skip -plugins/module_utils/network/nxos/config/route_maps/route_maps.py import-2.6!skip -plugins/module_utils/network/nxos/config/route_maps/route_maps.py compile-2.6!skip -plugins/module_utils/network/nxos/config/snmp_server/snmp_server.py import-2.6!skip -plugins/module_utils/network/nxos/config/snmp_server/snmp_server.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/modules/nxos_bgp_address_family.py import-2.6!skip -plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/nxos_bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/nxos_prefix_lists.py import-2.6!skip -plugins/module_utils/network/nxos/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/nxos/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/modules/nxos_logging_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/logging_global/logging_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/logging_global/logging_global.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ntp_global/ntp_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/ntp_global/ntp_global.py compile-2.6!skip -plugins/module_utils/network/nxos/utils/utils.py import-2.6!skip -plugins/module_utils/network/nxos/utils/utils.py compile-2.6!skip diff --git a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.13.txt b/ansible_collections/cisco/nxos/tests/sanity/ignore-2.13.txt deleted file mode 100644 index 46cfbc643..000000000 --- a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.13.txt +++ /dev/null @@ -1 +0,0 @@ -plugins/action/nxos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` diff --git a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.18.txt b/ansible_collections/cisco/nxos/tests/sanity/ignore-2.18.txt new file mode 100644 index 000000000..46cfbc643 --- /dev/null +++ b/ansible_collections/cisco/nxos/tests/sanity/ignore-2.18.txt @@ -0,0 +1 @@ +plugins/action/nxos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` diff --git a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.9.txt b/ansible_collections/cisco/nxos/tests/sanity/ignore-2.9.txt deleted file mode 100644 index ada896a7b..000000000 --- a/ansible_collections/cisco/nxos/tests/sanity/ignore-2.9.txt +++ /dev/null @@ -1,55 +0,0 @@ -plugins/modules/nxos_logging.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/nxos_logging.py validate-modules:invalid-documentation # removed_at_date not -plugins/action/nxos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` -plugins/modules/nxos_ntp.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/nxos_ntp.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict -plugins/modules/nxos_ntp_auth.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/nxos_ntp_auth.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict -plugins/modules/nxos_ntp_options.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/nxos_ntp_options.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict -plugins/modules/nxos_snmp_community.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/nxos_snmp_community.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict -plugins/modules/nxos_snmp_contact.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/nxos_snmp_contact.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict -plugins/modules/nxos_snmp_host.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/nxos_snmp_host.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict -plugins/modules/nxos_snmp_location.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/nxos_snmp_location.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict -plugins/modules/nxos_snmp_traps.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/nxos_snmp_traps.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict -plugins/modules/nxos_snmp_user.py validate-modules:deprecation-mismatch # 2.9 expects METADATA -plugins/modules/nxos_snmp_user.py validate-modules:invalid-documentation # removed_at_date not supported in `deprecated` dict -plugins/module_utils/network/nxos/config/bgp_global/bgp_global.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospf_interfaces/ospf_interfaces.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospfv2/ospfv2.py compile-2.6!skip -plugins/module_utils/network/nxos/config/ospfv3/ospfv3.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_address_family/bgp_address_family.py compile-2.6!skip -plugins/modules/nxos_bgp_address_family.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py compile-2.6!skip -plugins/modules/nxos_bgp_neighbor_address_family.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_global/bgp_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospf_interfaces/ospf_interfaces.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospfv2/ospfv2.py import-2.6!skip -plugins/module_utils/network/nxos/config/ospfv3/ospfv3.py import-2.6!skip -plugins/modules/nxos_bgp_global.py import-2.6!skip -plugins/modules/nxos_ospf_interfaces.py import-2.6!skip -plugins/modules/nxos_ospfv2.py import-2.6!skip -plugins/modules/nxos_ospfv3.py import-2.6!skip -plugins/modules/nxos_route_maps.py import-2.6!skip -plugins/module_utils/network/nxos/config/route_maps/route_maps.py import-2.6!skip -plugins/module_utils/network/nxos/config/route_maps/route_maps.py compile-2.6!skip -plugins/module_utils/network/nxos/config/bgp_address_family/bgp_address_family.py import-2.6!skip -plugins/modules/nxos_bgp_address_family.py import-2.6!skip -plugins/module_utils/network/nxos/config/bgp_neighbor_address_family/bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/nxos_bgp_neighbor_address_family.py import-2.6!skip -plugins/modules/nxos_prefix_lists.py import-2.6!skip -plugins/module_utils/network/nxos/config/prefix_lists/prefix_lists.py import-2.6!skip -plugins/module_utils/network/nxos/config/prefix_lists/prefix_lists.py compile-2.6!skip -plugins/modules/nxos_logging_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/logging_global/logging_global.py import-2.6!skip -plugins/module_utils/network/nxos/config/logging_global/logging_global.py compile-2.6!skip -plugins/modules/nxos_snmp_server.py import-2.6!skip -plugins/module_utils/network/nxos/config/snmp_server/snmp_server.py import-2.6!skip -plugins/module_utils/network/nxos/config/snmp_server/snmp_server.py compile-2.6!skip -plugins/module_utils/network/nxos/utils/utils.py import-2.6!skip -plugins/module_utils/network/nxos/utils/utils.py compile-2.6!skip diff --git a/ansible_collections/cisco/nxos/tests/unit/compat/__init__.py b/ansible_collections/cisco/nxos/tests/unit/compat/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/ansible_collections/cisco/nxos/tests/unit/compat/mock.py b/ansible_collections/cisco/nxos/tests/unit/compat/mock.py deleted file mode 100644 index 50583cd6f..000000000 --- a/ansible_collections/cisco/nxos/tests/unit/compat/mock.py +++ /dev/null @@ -1,127 +0,0 @@ -# (c) 2014, Toshio Kuratomi -# -# 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 . - -# Make coding more python3-ish -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -""" -Compat module for Python3.x's unittest.mock module -""" -import sys - - -# Python 2.7 - -# Note: Could use the pypi mock library on python3.x as well as python2.x. It -# is the same as the python3 stdlib mock library - -try: - # Allow wildcard import because we really do want to import all of mock's - # symbols into this compat shim - # pylint: disable=wildcard-import,unused-wildcard-import - from unittest.mock import * -except ImportError: - # Python 2 - # pylint: disable=wildcard-import,unused-wildcard-import - try: - from mock import * - except ImportError: - print("You need the mock library installed on python2.x to run tests") - - -# Prior to 3.4.4, mock_open cannot handle binary read_data -if sys.version_info >= (3,) and sys.version_info < (3, 4, 4): - file_spec = None - - def _iterate_read_data(read_data): - # Helper for mock_open: - # Retrieve lines from read_data via a generator so that separate calls to - # readline, read, and readlines are properly interleaved - sep = b"\n" if isinstance(read_data, bytes) else "\n" - data_as_list = [l + sep for l in read_data.split(sep)] - - if data_as_list[-1] == sep: - # If the last line ended in a newline, the list comprehension will have an - # extra entry that's just a newline. Remove this. - data_as_list = data_as_list[:-1] - else: - # If there wasn't an extra newline by itself, then the file being - # emulated doesn't have a newline to end the last line remove the - # newline that our naive format() added - data_as_list[-1] = data_as_list[-1][:-1] - - for line in data_as_list: - yield line - - def mock_open(mock=None, read_data=""): - """ - A helper function to create a mock to replace the use of `open`. It works - for `open` called directly or used as a context manager. - - The `mock` argument is the mock object to configure. If `None` (the - default) then a `MagicMock` will be created for you, with the API limited - to methods or attributes available on standard file handles. - - `read_data` is a string for the `read` methoddline`, and `readlines` of the - file handle to return. This is an empty string by default. - """ - - def _readlines_side_effect(*args, **kwargs): - if handle.readlines.return_value is not None: - return handle.readlines.return_value - return list(_data) - - def _read_side_effect(*args, **kwargs): - if handle.read.return_value is not None: - return handle.read.return_value - return type(read_data)().join(_data) - - def _readline_side_effect(): - if handle.readline.return_value is not None: - while True: - yield handle.readline.return_value - for line in _data: - yield line - - global file_spec - if file_spec is None: - import _io - - file_spec = list(set(dir(_io.TextIOWrapper)).union(set(dir(_io.BytesIO)))) - - if mock is None: - mock = MagicMock(name="open", spec=open) - - handle = MagicMock(spec=file_spec) - handle.__enter__.return_value = handle - - _data = _iterate_read_data(read_data) - - handle.write.return_value = None - handle.read.return_value = None - handle.readline.return_value = None - handle.readlines.return_value = None - - handle.read.side_effect = _read_side_effect - handle.readline.side_effect = _readline_side_effect() - handle.readlines.side_effect = _readlines_side_effect - - mock.return_value = handle - return mock diff --git a/ansible_collections/cisco/nxos/tests/unit/compat/unittest.py b/ansible_collections/cisco/nxos/tests/unit/compat/unittest.py deleted file mode 100644 index df4266ec9..000000000 --- a/ansible_collections/cisco/nxos/tests/unit/compat/unittest.py +++ /dev/null @@ -1,41 +0,0 @@ -# (c) 2014, Toshio Kuratomi -# -# 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 . - -# Make coding more python3-ish -from __future__ import absolute_import, division, print_function - - -__metaclass__ = type - -""" -Compat module for Python2.7's unittest module -""" - -import sys - - -# Allow wildcard import because we really do want to import all of -# unittests's symbols into this compat shim -# pylint: disable=wildcard-import,unused-wildcard-import -if sys.version_info < (2, 7): - try: - # Need unittest2 on python2.6 - from unittest2 import * - except ImportError: - print("You need unittest2 installed on python2.6.x to run tests") -else: - from unittest import * diff --git a/ansible_collections/cisco/nxos/tests/unit/mock/path.py b/ansible_collections/cisco/nxos/tests/unit/mock/path.py index d15430fde..6053b30f2 100644 --- a/ansible_collections/cisco/nxos/tests/unit/mock/path.py +++ b/ansible_collections/cisco/nxos/tests/unit/mock/path.py @@ -2,9 +2,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -from ansible.utils.path import unfrackpath +from unittest.mock import MagicMock -from ansible_collections.cisco.nxos.tests.unit.compat.mock import MagicMock +from ansible.utils.path import unfrackpath mock_unfrackpath_noop = MagicMock(spec_set=unfrackpath, side_effect=lambda x, *args, **kwargs: x) diff --git a/ansible_collections/cisco/nxos/tests/unit/mock/procenv.py b/ansible_collections/cisco/nxos/tests/unit/mock/procenv.py index e14ad0ece..e6e09464b 100644 --- a/ansible_collections/cisco/nxos/tests/unit/mock/procenv.py +++ b/ansible_collections/cisco/nxos/tests/unit/mock/procenv.py @@ -27,12 +27,11 @@ import sys from contextlib import contextmanager from io import BytesIO, StringIO +from unittest import TestCase from ansible.module_utils._text import to_bytes from ansible.module_utils.six import PY3 -from ansible_collections.cisco.nxos.tests.unit.compat import unittest - @contextmanager def swap_stdin_and_argv(stdin_data="", argv_data=tuple()): @@ -78,7 +77,7 @@ def swap_stdout(): sys.stdout = old_stdout -class ModuleTestCase(unittest.TestCase): +class ModuleTestCase(TestCase): def setUp(self, module_args=None): if module_args is None: module_args = { diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos.py index fd5cdb36f..25f3dfe62 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos.py @@ -29,13 +29,14 @@ try: except ImportError: from mock import MagicMock +from unittest import TestCase + from ansible.module_utils._text import to_bytes, to_text from ansible_collections.cisco.nxos.plugins.cliconf import nxos -from ansible_collections.cisco.nxos.tests.unit.compat import unittest -class TestPluginCLIConfNXOS(unittest.TestCase): +class TestPluginCLIConfNXOS(TestCase): """Test class for NXOS CLI Conf Methods""" def setUp(self): @@ -112,13 +113,19 @@ class TestPluginCLIConfNXOS(unittest.TestCase): def test_get_command_with_output_nxos(self): """Test _get_command_with_output for nxos""" self._prepare() - cmd = self._cliconf._get_command_with_output(command="show version", output="json") + cmd = self._cliconf._get_command_with_output( + command="show version", + output="json", + ) self.assertEqual(cmd, "show version | json") def test_get_command_with_output_mds(self): """Test _get_command_with_output for mds""" self._prepare(platform="mds") - cmd = self._cliconf._get_command_with_output(command="show version", output="json") + cmd = self._cliconf._get_command_with_output( + command="show version", + output="json", + ) self.assertEqual(cmd, "show version | json native") diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_acl_interfaces.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_acl_interfaces.py index ae56208fd..0c262d6a3 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_acl_interfaces.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_acl_interfaces.py @@ -8,8 +8,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_acl_interfaces -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from ansible_collections.cisco.nxos.tests.unit.modules.utils import set_module_args from .nxos_module import TestNxosModule diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_acls.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_acls.py index b7c0e8663..de3595cef 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_acls.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_acls.py @@ -9,9 +9,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_acls -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from ansible_collections.cisco.nxos.tests.unit.modules.utils import set_module_args from .nxos_module import TestNxosModule @@ -475,22 +475,33 @@ class TestNxosAclsModule(TestNxosModule): self.assertEqual(result["parsed"], compare_list, result["parsed"]) def test_nxos_acls_gathered(self): + self.execute_show_command.return_value = dedent( + """\ + ip access-list ACL1v4 + 10 permit ip any any + 20 deny udp any any + ip access-list ComplicatedAcl + 10 permit tcp any range 1024 65500 192.168.0.0 0.0.0.255 eq 1700 + ipv6 access-list ACL1v6 + 10 permit sctp any any + """, + ) set_module_args(dict(config=[], state="gathered")) result = self.execute_module(changed=False) compare_list = [ { "acls": [ { + "name": "ACL1v6", "aces": [ { - "destination": {"any": True}, "sequence": 10, + "grant": "permit", "protocol": "sctp", "source": {"any": True}, - "grant": "permit", + "destination": {"any": True}, }, ], - "name": "ACL1v6", }, ], "afi": "ipv6", @@ -498,23 +509,42 @@ class TestNxosAclsModule(TestNxosModule): { "acls": [ { + "name": "ACL1v4", "aces": [ { - "destination": {"any": True}, "sequence": 10, + "grant": "permit", "protocol": "ip", "source": {"any": True}, - "grant": "permit", + "destination": {"any": True}, }, { - "destination": {"any": True}, "sequence": 20, + "grant": "deny", "protocol": "udp", "source": {"any": True}, - "grant": "deny", + "destination": {"any": True}, + }, + ], + }, + { + "name": "ComplicatedAcl", + "aces": [ + { + "sequence": 10, + "grant": "permit", + "protocol": "tcp", + "source": { + "any": True, + "port_protocol": {"range": {"start": "1024", "end": "65500"}}, + }, + "destination": { + "address": "192.168.0.0", + "wildcard_bits": "0.0.0.255", + "port_protocol": {"eq": "1700"}, + }, }, ], - "name": "ACL1v4", }, ], "afi": "ipv4", diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_banner.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_banner.py index c9d564ddb..9f5a63a92 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_banner.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_banner.py @@ -20,8 +20,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_banner -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bfd_global.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bfd_global.py index e0e48ac7a..1ccc9dacf 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bfd_global.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bfd_global.py @@ -22,6 +22,8 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + # TBD: These imports / import checks are only needed as a workaround for # shippable, which fails this test due to import yaml & import ordereddict. import pytest @@ -30,7 +32,6 @@ from ansible_collections.cisco.nxos.plugins.module_utils.network.nxos.nxos impor nxosCmdRef_import_check, ) from ansible_collections.cisco.nxos.plugins.modules import nxos_bfd_global -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bfd_interfaces.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bfd_interfaces.py index e40f5fc2e..848788c46 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bfd_interfaces.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bfd_interfaces.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_bfd_interfaces -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_address_family.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_address_family.py index d9c6c2357..10140e776 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_address_family.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_address_family.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_bgp_address_family -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args @@ -2314,7 +2314,7 @@ class TestNxosBGPAddressFamilyModule(TestNxosModule): result = self.execute_module(changed=True) self.assertEqual(set(result["commands"]), set(commands)) - def test_nxos_bgp_af_delete(self): + def test_nxos_bgp_af_delete_1(self): # test gathered self.get_config.return_value = dedent( """\ diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_global.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_global.py index 22c9378eb..acf79b77e 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_global.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_global.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_bgp_global -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args @@ -233,7 +233,7 @@ class TestNxosBgpGlobalModule(TestNxosModule): result = self.execute_module(changed=True) self.assertEqual(set(result["commands"]), set(commands)) - def test_nxos_bgp_global_bfd(self): + def test_nxos_bgp_global_bfd_1(self): run_cfg = dedent( """\ router bgp 65536 @@ -1046,7 +1046,7 @@ class TestNxosBgpGlobalModule(TestNxosModule): result = self.execute_module(changed=False) self.assertEqual(result["commands"], []) - def test_nxos_bgp_global_purged(self): + def test_nxos_bgp_global_purged_1(self): run_cfg = dedent( """\ router bgp 65001 diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_neighbor_address_family.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_neighbor_address_family.py index b3943f370..0b325d2e8 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_neighbor_address_family.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_neighbor_address_family.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_bgp_neighbor_address_family -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args @@ -868,7 +868,7 @@ class TestNxosBGPNeighborAddressFamilyModule(TestNxosModule): result = self.execute_module(changed=True) self.assertEqual(set(result["commands"]), set(commands)) - def test_nxos_bgp_nbr_af_originate_peer_as_merged(self): + def test_nxos_bgp_nbr_af_originate_peer_as_merged_1(self): # test merged for default_originate, disable_peer_as_check self.get_config.return_value = dedent( """\ diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_templates.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_templates.py index 8d2fd74b5..2eedccaf8 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_templates.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_bgp_templates.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_bgp_templates -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_command.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_command.py index cb7c40ba9..9a0714e9c 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_command.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_command.py @@ -24,8 +24,9 @@ __metaclass__ = type import json +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_command -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_config.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_config.py index ce5c987c7..be762de23 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_config.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_config.py @@ -22,9 +22,10 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import MagicMock, patch + from ansible_collections.cisco.nxos.plugins.cliconf.nxos import Cliconf from ansible_collections.cisco.nxos.plugins.modules import nxos_config -from ansible_collections.cisco.nxos.tests.unit.compat.mock import MagicMock, patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_devicealias.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_devicealias.py index 640bcd150..d034a3aaa 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_devicealias.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_devicealias.py @@ -7,10 +7,11 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + import pytest from ansible_collections.cisco.nxos.plugins.modules import nxos_devicealias -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from ansible_collections.cisco.nxos.tests.unit.modules.utils import AnsibleFailJson from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_evpn_global.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_evpn_global.py index c9fa7911e..55e2a4151 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_evpn_global.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_evpn_global.py @@ -23,8 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_evpn_global -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_evpn_vni.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_evpn_vni.py index 0211a5a31..9b08b6164 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_evpn_vni.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_evpn_vni.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_evpn_vni -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_fc_interfaces.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_fc_interfaces.py index 098a5b7ff..18cef069a 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_fc_interfaces.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_fc_interfaces.py @@ -29,13 +29,13 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.module_utils.network.nxos.rm_templates.fc_interfaces import ( allowed_port_modes, allowed_speed_values, ) from ansible_collections.cisco.nxos.plugins.modules import nxos_fc_interfaces -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_feature.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_feature.py index 1c79537f1..e98fbce1e 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_feature.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_feature.py @@ -24,8 +24,9 @@ __metaclass__ = type import json +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_feature -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hostname.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hostname.py index 732f59e7a..9ddb9e306 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hostname.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hostname.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_hostname -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hsrp.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hsrp.py index 4ffcc43f3..794ecd896 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hsrp.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hsrp.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_hsrp -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hsrp_interfaces.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hsrp_interfaces.py index e4f21a825..8bbe79ae4 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hsrp_interfaces.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_hsrp_interfaces.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_hsrp_interfaces -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_interfaces.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_interfaces.py index fb8dae234..e0b0b55ce 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_interfaces.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_interfaces.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_interfaces -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args @@ -84,7 +84,7 @@ class TestNxosInterfacesModule(TestNxosModule): self.edit_config.return_value = None if device == "legacy": # call execute_module() with device='legacy' to use this codepath - self.get_platform.return_value = "N3K-Cxxx" + self.get_platform.return_value = "N5K-Cxxx" else: self.get_platform.return_value = "N9K-Cxxx" diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_l3_interfaces.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_l3_interfaces.py index 289c36ffd..7bb5da30e 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_l3_interfaces.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_l3_interfaces.py @@ -23,12 +23,12 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import PropertyMock, patch from ansible_collections.cisco.nxos.plugins.module_utils.network.nxos.config.l3_interfaces.l3_interfaces import ( L3_interfaces, ) from ansible_collections.cisco.nxos.plugins.modules import nxos_l3_interfaces -from ansible_collections.cisco.nxos.tests.unit.compat.mock import PropertyMock, patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_lacp_interfaces.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_lacp_interfaces.py index e6850278a..3e9c0c64d 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_lacp_interfaces.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_lacp_interfaces.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_lacp_interfaces -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_lldp_interfaces.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_lldp_interfaces.py index c2acfcc49..c2292a3cb 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_lldp_interfaces.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_lldp_interfaces.py @@ -8,8 +8,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_lldp_interfaces -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from ansible_collections.cisco.nxos.tests.unit.modules.utils import set_module_args from .nxos_module import TestNxosModule diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_logging_global.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_logging_global.py index aea13fc94..465ea0116 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_logging_global.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_logging_global.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_logging_global -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args @@ -190,7 +190,7 @@ class TestNxosLoggingGlobalModule(TestNxosModule): result = self.execute_module(changed=True) self.assertEqual(set(result["commands"]), set(commands)) - def test_nxos_logging_global_linear_replaced(self): + def test_nxos_logging_global_linear_replaced_1(self): # test replaced for linear attributes self.get_config.return_value = dedent( """\ @@ -464,7 +464,7 @@ class TestNxosLoggingGlobalModule(TestNxosModule): result = self.execute_module(changed=True) self.assertEqual(set(result["commands"]), set(commands)) - def test_nxos_logging_global_event_merged(self): + def test_nxos_logging_global_event_merged_1(self): # test merged for `event` self.get_config.return_value = dedent( """\ @@ -731,7 +731,7 @@ class TestNxosLoggingGlobalModule(TestNxosModule): result = self.execute_module(changed=True) self.assertEqual(set(result["commands"]), set(commands)) - def test_nxos_logging_global_event_replaced_2(self): + def test_nxos_logging_global_event_replaced_3(self): # test replaced for `event` - 2 self.get_config.return_value = dedent( """\ diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ntp_global.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ntp_global.py index 7c49d8668..d931a357b 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ntp_global.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ntp_global.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_ntp_global -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args @@ -268,7 +268,7 @@ class TestNxosNtpGlobalModule(TestNxosModule): result = self.execute_module(changed=False) self.assertEqual(result["commands"], []) - def test_nxos_ntp_global_complex_merged_idempotent(self): + def test_nxos_ntp_global_complex_merged_idempotent_1(self): # test merged for complex attributes self.get_config.return_value = dedent( """\ diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_nxapi.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_nxapi.py index 7eb12a21c..12ceeac82 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_nxapi.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_nxapi.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_nxapi -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospf_interfaces.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospf_interfaces.py index f22889574..159086004 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospf_interfaces.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospf_interfaces.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_ospf_interfaces -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospfv2.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospfv2.py index 175570499..80234c11a 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospfv2.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospfv2.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_ospfv2 -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospfv3.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospfv3.py index 70a2ae47e..ea8759c20 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospfv3.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ospfv3.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_ospfv3 -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_overlay_global.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_overlay_global.py index 976aa0964..1368ab240 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_overlay_global.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_overlay_global.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_overlay_global -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim.py index eea384836..cb427c967 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_pim -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim_interface.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim_interface.py index b746b8b46..9cc7b48ed 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim_interface.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim_interface.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_pim_interface -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim_rp_address.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim_rp_address.py index f4dbd13ac..a03b78026 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim_rp_address.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_pim_rp_address.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_pim_rp_address -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ping.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ping.py index bdaabe881..e92649b74 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ping.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_ping.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_ping -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_prefix_lists.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_prefix_lists.py index d94f0b3e0..f93f9b8f4 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_prefix_lists.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_prefix_lists.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_prefix_lists -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_route_maps.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_route_maps.py index 06d76fe38..d247c02b4 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_route_maps.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_route_maps.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_route_maps -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_snmp_server.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_snmp_server.py index 1b7672775..a15562b10 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_snmp_server.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_snmp_server.py @@ -23,9 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_snmp_server -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args @@ -391,7 +391,7 @@ class TestNxosSnmpServerModule(TestNxosModule): result = self.execute_module(changed=True) self.assertEqual(set(result["commands"]), set(commands)) - def test_nxos_snmp_server_traps_replaced(self): + def test_nxos_snmp_server_traps_replaced_1(self): # test replaced for traps self.get_config.return_value = dedent( """\ @@ -482,7 +482,7 @@ class TestNxosSnmpServerModule(TestNxosModule): result = self.execute_module(changed=True) self.assertEqual(set(result["commands"]), set(commands)) - def test_nxos_snmp_server_hosts_merged(self): + def test_nxos_snmp_server_hosts_merged_1(self): # test merged for hosts self.get_config.return_value = dedent( """\ @@ -591,7 +591,7 @@ class TestNxosSnmpServerModule(TestNxosModule): result = self.execute_module(changed=True) self.assertEqual(set(result["commands"]), set(commands)) - def test_nxos_snmp_server_users_merged(self): + def test_nxos_snmp_server_users_merged_1(self): # test merged for users self.get_config.return_value = dedent( """\ @@ -662,18 +662,19 @@ class TestNxosSnmpServerModule(TestNxosModule): ) commands = [ "snmp-server user snmp_user_2 network-admin auth md5 0x5632724fb8ac3699296af26281e1d0f1 priv 0x5632724fb8ac3699296af26281e1d0f1" - " localizedkey engineID 2:2:2:2:2", + " localizedV2key engineID 2:2:2:2:2", "snmp-server user snmp_user_3 network-admin auth md5 0x5632724fb8ac3699296af26281e1d0f1 priv aes-128" - " 0x5632724fb8ac3699296af26281e1d0f1 localizedV2key engineID 3:3:3:3:3", + " 0x5632724fb8ac3699296af26281e1d0f1 localizedkey engineID 3:3:3:3:3", "snmp-server user snmp_user_1 network-admin auth md5 0x5632724fb8ac3699296af26281e1d0f1" " localizedkey engineID 1:1:1:1:1", "snmp-server user snmp_user_4 network-admin auth sha-256 0x5632724fb8ac3699296af26281e1d0f1 priv aes-128" " 0x5632724fb8ac3699296af26281e1d0f1 localizedkey engineID 4:4:4:4:4", ] result = self.execute_module(changed=True) + print(result["commands"]) self.assertEqual(set(result["commands"]), set(commands)) - def test_nxos_snmp_server_users_merged(self): + def test_nxos_snmp_server_users_merged_2(self): # test merged for users self.get_config.return_value = dedent( """\ @@ -705,7 +706,9 @@ class TestNxosSnmpServerModule(TestNxosModule): algorithm="md5", password="0x5632724fb8ac3699296af262", engine_id="2:2:2:2:2", - priv=dict(privacy_password="0x5632724fb8ac3699296af262"), + priv=dict( + privacy_password="0x5632724fb8ac3699296af262", + ), localizedv2_key=True, ), ), @@ -906,7 +909,9 @@ class TestNxosSnmpServerModule(TestNxosModule): algorithm="md5", password="0x7d425fbf09417c44bca69e1d9e9ce889", localized_key=True, - priv=dict(privacy_password="0x7d425fbf09417c44bca69e1d9e9ce889"), + priv=dict( + privacy_password="0x7d425fbf09417c44bca69e1d9e9ce889", + ), ), ), dict( diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_static_routes.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_static_routes.py index 76ed4a3a9..7cd021314 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_static_routes.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_static_routes.py @@ -9,9 +9,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch from ansible_collections.cisco.nxos.plugins.modules import nxos_static_routes -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_system.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_system.py index ea7eec95c..634f69758 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_system.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_system.py @@ -23,8 +23,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_system -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_telemetry.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_telemetry.py index 160804c11..2c8027443 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_telemetry.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_telemetry.py @@ -23,6 +23,7 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type from textwrap import dedent +from unittest.mock import patch # TBD: These imports / import checks are only needed as a workaround for # shippable, which fails this test due to import yaml & import ordereddict. @@ -32,7 +33,6 @@ from ansible_collections.cisco.nxos.plugins.module_utils.network.nxos.nxos impor nxosCmdRef_import_check, ) from ansible_collections.cisco.nxos.plugins.modules import nxos_telemetry -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from ansible_collections.cisco.nxos.tests.unit.modules.utils import AnsibleFailJson from .nxos_module import TestNxosModule, load_fixture, set_module_args @@ -183,7 +183,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_global_idempotent_n9k(self): # Assumes feature telemetry is enabled # TMS global config is present. - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" set_module_args( dict( @@ -205,7 +208,10 @@ class TestNxosTelemetryModule(TestNxosModule): # Assumes feature telemetry is enabled # TMS global config is present # Change certificate - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" set_module_args( dict( @@ -233,7 +239,10 @@ class TestNxosTelemetryModule(TestNxosModule): # Assumes feature telemetry is enabled # TMS global config is present # Change interface - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" set_module_args( dict( @@ -262,7 +271,10 @@ class TestNxosTelemetryModule(TestNxosModule): # Assumes feature telemetry is enabled # TMS global config is present # Change source_interface, vrf and cert - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" set_module_args( dict( @@ -314,14 +326,19 @@ class TestNxosTelemetryModule(TestNxosModule): with pytest.raises(AnsibleFailJson) as errinfo: self.execute_module() testdata = errinfo.value.args[0] - assert "Parameter under is required" in str(testdata["msg"]) + assert "Parameter under is required" in str( + testdata["msg"], + ) assert testdata["failed"] def test_tms_destgroup_input_validation_2(self): # Parameter 'destination' is not a dict. self.execute_show_command.return_value = None self.get_platform_shortname.return_value = "N9K" - args = build_args([{"id": "88", "destination": "192.168.1.1"}], "destination_groups") + args = build_args( + [{"id": "88", "destination": "192.168.1.1"}], + "destination_groups", + ) set_module_args(args, ignore_provider_arg) with pytest.raises(AnsibleFailJson) as errinfo: self.execute_module() @@ -343,7 +360,9 @@ class TestNxosTelemetryModule(TestNxosModule): with pytest.raises(AnsibleFailJson) as errinfo: self.execute_module() testdata = errinfo.value.args[0] - assert "Playbook entry contains unrecongnized parameters" in str(testdata["msg"]) + assert "Playbook entry contains unrecongnized parameters" in str( + testdata["msg"], + ) assert testdata["failed"] def test_tms_destgroup_merged_n9k(self): @@ -460,7 +479,10 @@ class TestNxosTelemetryModule(TestNxosModule): # Assumes feature telemetry is enabled # TMS destgroup config is not present. # Configure only identifier - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -483,7 +505,10 @@ class TestNxosTelemetryModule(TestNxosModule): # Assumes feature telemetry is enabled # TMS destgroup config is not present. # Configure only identifier - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args([{"id": "2"}], "destination_groups") set_module_args(args, ignore_provider_arg) @@ -492,7 +517,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_destgroup_merged_aggregate_idempotent_n9k(self): # Assumes feature telemetry is enabled # TMS destgroup config is present. - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -523,7 +551,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_destgroup_change_n9k(self): # TMS destgroup config is not present. # Change protocol and encoding for dest group 2 - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -562,7 +593,10 @@ class TestNxosTelemetryModule(TestNxosModule): # TMS destgroup config is not present. # Add destinations to destgroup 10 # Add new destgroup 55 and 56 - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -705,7 +739,9 @@ class TestNxosTelemetryModule(TestNxosModule): with pytest.raises(AnsibleFailJson) as errinfo: self.execute_module() testdata = errinfo.value.args[0] - assert "Parameter under is required" in str(testdata["msg"]) + assert "Parameter under is required" in str( + testdata["msg"], + ) assert testdata["failed"] def test_tms_sensorgroup_input_validation_2(self): @@ -730,7 +766,9 @@ class TestNxosTelemetryModule(TestNxosModule): with pytest.raises(AnsibleFailJson) as errinfo: self.execute_module() testdata = errinfo.value.args[0] - assert "Parameter under requires key" in str(testdata["msg"]) + assert "Parameter under requires key" in str( + testdata["msg"], + ) assert testdata["failed"] def test_tms_sensorgroup_resource_key_n9k(self): @@ -857,7 +895,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_sensorgroup_merged_idempotent_n9k(self): # Assumes feature telemetry is enabled # TMS sensorgroup config is not present. - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -880,7 +921,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_sensorgroup_quotes_merged_idempotent_n9k(self): # Assumes feature telemetry is enabled # TMS sensorgroup config is present with quotes in NX-API path. - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K_SGs.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K_SGs.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -906,7 +950,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_sensorgroup_vxlan_idempotent_n9k(self): # TMS sensorgroup config present. - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [{"id": "56", "data_source": "DME", "path": {"name": "vxlan"}}], @@ -917,7 +964,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_sensorgroup_idempotent_variable1_n9k(self): # TMS sensorgroup config is present with path key name. - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -936,7 +986,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_sensorgroup_idempotent_variable2_n9k(self): # TMS sensorgroup config is present with path key name and depth. - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -953,7 +1006,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_sensorgroup_idempotent_resource_key_n9k(self): # TMS sensorgroup config is present resource key only. - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args([{"id": "55"}], "sensor_groups") set_module_args(args, ignore_provider_arg) @@ -1013,7 +1069,7 @@ class TestNxosTelemetryModule(TestNxosModule): ], ) - def test_tms_sensorgroup_present_path_interface_n9k(self): + def test_tms_sensorgroup_present_path_interface_n9k_1(self): # TMS sensorgroup config is not present. # Path name 'resources' test self.execute_show_command.return_value = None @@ -1080,7 +1136,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_subscription_merged_idempotent_n9k(self): # TMS subscription config is not present. - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -1104,7 +1163,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_subscription_merged_change1_n9k(self): # TMS subscription config present. # Change sample interval for sensor group 2 - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -1135,7 +1197,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_subscription_add_n9k(self): # TMS subscription config present. # Add new destination_group and sensor_group to subscription 5 - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" args = build_args( [ @@ -1322,7 +1387,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_telemetry_deleted_input_validation_n9k(self): # State is 'deleted' and 'config' key present. - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" set_module_args( dict( @@ -1342,14 +1410,19 @@ class TestNxosTelemetryModule(TestNxosModule): with pytest.raises(AnsibleFailJson) as errinfo: self.execute_module() testdata = errinfo.value.args[0] - assert "Remove config key from playbook when state is " in str(testdata["msg"]) + assert "Remove config key from playbook when state is " in str( + testdata["msg"], + ) assert testdata["failed"] def test_telemetry_deleted_n9k(self): # Assumes feature telemetry is enabled # TMS global config is present. # Make absent with all playbook keys provided - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" set_module_args(dict(state="deleted"), ignore_provider_arg) self.execute_module(changed=True, commands=["no telemetry"]) @@ -1366,7 +1439,10 @@ class TestNxosTelemetryModule(TestNxosModule): def test_tms_replaced1_n9k(self): # Assumes feature telemetry is enabled # Modify global config and remove everything else - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" set_module_args( dict( @@ -1409,7 +1485,10 @@ class TestNxosTelemetryModule(TestNxosModule): # Modify destination-group 10, add 11 and 99, remove 2 # Modify sensor-group 55, 56 # remove all subscriptions - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" set_module_args( { @@ -1525,7 +1604,10 @@ class TestNxosTelemetryModule(TestNxosModule): # remove all other destination-groups # Modify sensor-group 55 and delete all others # Modify subscription 7, add 10 and delete all others - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" set_module_args( { @@ -1616,7 +1698,10 @@ class TestNxosTelemetryModule(TestNxosModule): # remove all other destination-groups # Modify sensor-group 55 and delete all others # Modify subscription 7, add 10 and delete all others - self.execute_show_command.return_value = load_fixture("nxos_telemetry", "N9K.cfg") + self.execute_show_command.return_value = load_fixture( + "nxos_telemetry", + "N9K.cfg", + ) self.get_platform_shortname.return_value = "N9K" set_module_args( { diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_user.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_user.py index c397c82cb..ba0d43756 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_user.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_user.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_user -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vlans.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vlans.py index 97870e76d..d686e74fb 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vlans.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vlans.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_vlans -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vpc.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vpc.py index a74525e86..5475b52e7 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vpc.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vpc.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_vpc -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vpc_interface.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vpc_interface.py index de7ad79bd..4ccb31994 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vpc_interface.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vpc_interface.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_vpc_interface -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vrf.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vrf.py index 8f2a2ae1d..e69cdc2aa 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vrf.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vrf.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_vrf -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vrf_af.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vrf_af.py index bfc2adef8..f104fc295 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vrf_af.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vrf_af.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_vrf_af -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vsan.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vsan.py index af9ee7ad3..66e04ba79 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vsan.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vsan.py @@ -7,10 +7,11 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + import pytest from ansible_collections.cisco.nxos.plugins.modules import nxos_vsan -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from ansible_collections.cisco.nxos.tests.unit.modules.utils import AnsibleFailJson from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vxlan_vtep.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vxlan_vtep.py index f6862a77e..e30c5c01f 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vxlan_vtep.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vxlan_vtep.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_vxlan_vtep -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vxlan_vtep_vni.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vxlan_vtep_vni.py index c6dc6e8d8..2592b1a6a 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vxlan_vtep_vni.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_vxlan_vtep_vni.py @@ -22,8 +22,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_vxlan_vtep_vni -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_zone_zoneset.py b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_zone_zoneset.py index 6afe78a5b..381eef8a6 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_zone_zoneset.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/network/nxos/test_nxos_zone_zoneset.py @@ -8,8 +8,9 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type +from unittest.mock import patch + from ansible_collections.cisco.nxos.plugins.modules import nxos_zone_zoneset -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch from .nxos_module import TestNxosModule, load_fixture, set_module_args diff --git a/ansible_collections/cisco/nxos/tests/unit/modules/utils.py b/ansible_collections/cisco/nxos/tests/unit/modules/utils.py index cd3b7b05f..87be9cf8e 100644 --- a/ansible_collections/cisco/nxos/tests/unit/modules/utils.py +++ b/ansible_collections/cisco/nxos/tests/unit/modules/utils.py @@ -4,12 +4,12 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type import json +from unittest import TestCase +from unittest.mock import patch + from ansible.module_utils import basic from ansible.module_utils._text import to_bytes -from ansible_collections.cisco.nxos.tests.unit.compat import unittest -from ansible_collections.cisco.nxos.tests.unit.compat.mock import patch - def set_module_args(args): if "_ansible_remote_tmp" not in args: @@ -40,7 +40,7 @@ def fail_json(*args, **kwargs): raise AnsibleFailJson(kwargs) -class ModuleTestCase(unittest.TestCase): +class ModuleTestCase(TestCase): def setUp(self): self.mock_module = patch.multiple( basic.AnsibleModule, diff --git a/ansible_collections/cisco/nxos/tox-ansible.ini b/ansible_collections/cisco/nxos/tox-ansible.ini new file mode 100644 index 000000000..5e1f4b36a --- /dev/null +++ b/ansible_collections/cisco/nxos/tox-ansible.ini @@ -0,0 +1,10 @@ +[ansible] + +skip = + py3.7 + py3.8 + 2.9 + 2.10 + 2.11 + 2.12 + 2.13 diff --git a/ansible_collections/cisco/nxos/tox.ini b/ansible_collections/cisco/nxos/tox.ini deleted file mode 100644 index 6ada631cb..000000000 --- a/ansible_collections/cisco/nxos/tox.ini +++ /dev/null @@ -1,31 +0,0 @@ -[tox] -minversion = 1.4.2 -envlist = linters -skipsdist = True - -[testenv] -deps = -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt - -[testenv:black] -install_command = pip install {opts} {packages} -commands = - black -v {toxinidir} - -[testenv:linters] -install_command = pip install {opts} {packages} -commands = - black -v --diff --check {toxinidir} - flake8 {posargs} - -[testenv:venv] -commands = {posargs} - -[flake8] -# E123, E125 skipped as they are invalid PEP-8. - -show-source = True -ignore = E123,E125,E203,E402,E501,E741,F401,F811,F841,W503 -max-line-length = 160 -builtins = _ -exclude = .git,.tox,tests/unit/compat/ -- cgit v1.2.3